Subscribe RSS Join our Facebook Group Follow us on Twitter!
in Search

Catatan Billy Riantono

sebuah catatan kecil dari sebuah kehidupan :)
  • Are you Students ?? Want submit your WP 7 apps ?

    Yeahhhh ,, sesuai judul ,, apakah teman – teman pelajar yang berkedudukan di Indonesia ?? dan ingin mem-publish apps teman – teman ke Windows Phone Marketplace ? saya membuka kesempatan untuk membantu rekan – rekan yang menginginkan hal itu . Smile

    BIAYA ??? FREE !!!

    Apa saja yang perlu dipersiapkan ??

    Yang perlu teman – teman perhatikan :

    1. Description harus berbahasa Inggris walaupun aplikasi teman – teman menggunakan bahasa Indonesia
    2. Screenshooot dan Image Lainnya wajib PNG
    3. Screenshoot wajib hasil dari screenshoot tools pada Emulator
    4. Screenshoot jangan menampilkan hasil frame counter dan debug number yang secara default akan muncul , untuk mendisablenya : http://msdn.microsoft.com/en-us/library/gg442300(v=vs.92).aspx
    5. Test aplikasi teman – teman pada dark dan light themes dan pastikan UI teman – teman terlihat dengan nyaman Smile

    Are you ready to submit your apps ? just contact me Smile

    non students ??? please visit menu Submit Apps in Menu Bar at http://belajarwp7.com Open-mouthed smile

    473 Views, 0 Comment(s), Published on: 04-24-2012 13:49 by billy.riantono to Catatan Billy Riantono
  • Indonesian Students Portal for Windows Phone 7 Had Released !!!

    Hello all,

    ini sebenarnya apps yang sudah lama sekali saya bikin, namun dari dulu selalu direject karena masalah bahasa Open-mouthed smile

    Fitur :

    1 . Read Article Easily from your WP 7 Device

    2. Share Article to Social Media in Easily Way

    3. Animation in Whats New Section

    Screenshot :

    54e6e71d-806e-4aca-ab37-b29cf488292d778ccecb-7061-473d-9d9c-824ecfcb50ffd379169b-d56d-4643-8441-fb0a35398ca3

    Next Feature :

    1. Save Article to Local Storage

    2. Caching, so You Can read Offline The Article Smile

    3. ????

     

    Silahkan di Unduh di :

    Download-EN-Med

    This Apps Developed By Black Pearl Software

    Selamat Menikmati Rekans ……

    Mohon maaf kalo masih ada kekurangan Open-mouthed smile

    Ada Ide atau kritik ataupun saran ?? silahkan japri ajah ke billy{at}blackpearlsoft{titik}com Open-mouthed smile

    553 Views, 0 Comment(s), Published on: 04-07-2012 15:21 by billy.riantono to Catatan Billy Riantono
  • USSD Decoder VB.Net

    Hello All,

    Lama tak bersua Smile ini jadi postingan pertama saya setelah resmi bukan menjadi MSP dan MSP Lead Interim Regional Jawa Barat Lagi Open-mouthed smile. Oke, kali ini kita akan sedikit membahas tentang bagaimana menerjemahkan PDU Code dari USSD Response yang kita terima dari Operator. Kenapa saya membahas ini ? yaps karena sekarang saya sedang bermain dengan AT Command + Modem untuk membuat sebuah SMS Gateway disini saya mencoba mengembangkan dari salah satu Library untuk Platform .Net yaitu ATSMS Library ( Library ini boleh dibilang cukup lengkap, tapi ada salah satu kekurangnnya yaitu kita belum bisa mengirimkan command USSD ) Smile *maaf kalo sudah sedikit jadul .. hahaha Smile with tongue out

    Oke Apa itu USSD ?

    Menurut Wikipedia, USSD ( Unstructured Supplementary Service Data ) adalah yang protokol digunakan oleh telepon selular GSM untuk berkomunikasi dengan komputer operator selular. USSD dapat digunakan untuk browsing WAP, layanan panggilan balik prabayar, jasa uang mobile, layanan konten berbasis lokasi , dan sebagai bagian dari konfigurasi telepon pada jaringan.

    Bagaimana bentuk rupa PDU Code ?

    07911326040000F0040B911346610089F600002080629 17314080CC8F71D14969741F977FD07

    pdu

     

    Example :

    USSD PDU Code :

    00500075006C007300610020003500370030003000200073002F006400200032003500410070007200310032002E004E0069006B006D00610074006900200053004D00530020004B006100700061006E00200041006A006100200033003000300053004D0053002C0020003500680072002C002000520070003500720062000A00310020004D00610075000A003200200049006E007400650072006E00650074002F00420042000A003300200050006B0074002000530075007000650072002000480065006D00610074000A003400200050006B00740020004E0065006C0070006F006E000A00350020004B006F006E00740065006E000A003600200049006E0066006F00200052006F0061006D0069006E0067000A003700200049006E0066006F0020004C006100790061006E0061006E000A

    Apabila diConvert menjadi Text Biasa ( Readable Text ) adalah :

    Pulsa 5700 s/d 25Apr12.Nikmati SMS Kapan Aja 300SMS, 5hr, Rp5rb
    1 Mau
    2 Internet/BB
    3 Pkt Super Hemat
    4 Pkt Nelpon
    5 Konten
    6 Info Roaming
    7 Info Layanan

     

    Abrakadabra ,…. berbeda sekali bukan dari kombinasi angka dan huruf begitu diterjemahkan menjadi Kata – kata penunjuk pulsa saya yang sangat sedikit sekali Embarrassed smile

    Oke sekarang Snippet Code yang bisa teman – teman gunakan : ( Code ini tidak saya ciptakan sendiri , saya hanya mengkonversi dari coding Javascript seseorang, menjadi VB.Net)

       1: Imports System.Text
       2:  
       3: Public Class USSDDecoder
       4:     ' USSD USCS2 PDU Decoder By Billy Riantono - Batu Kajang 2012
       5:  
       6:     Public Shared Function DecodeUSCS2Text(ByVal s_str_string As String) As String
       7:         Dim result_prefix As String = ""
       8:         Dim NewString As String = ""
       9:         Dim i As Integer
      10:         For i = 0 To s_str_string.Length - 1
      11:             If (MakeNum(s_str_string.Substring(i, 1)) <> 16) Then
      12:                 NewString += s_str_string.Substring(i, 1)
      13:             End If
      14:         Next
      15:         s_str_string = NewString
      16:         Dim i_int_length = s_str_string.Length
      17:         If (i Mod 2) Then
      18:             Return "Error : Length is Not Even"
      19:         End If
      20:         Dim messageLength = s_str_string.Length / 2
      21:         Dim buffer = GetUserMessage16(0, s_str_string, messageLength)
      22:         Return buffer
      23:     End Function
      24: #Region "Private FUnction"
      25:  
      26:     Private Shared Function HexToNum(ByVal numbers As String) As String
      27:         Dim tens = MakeNum(numbers.Substring(0, 1))
      28:         Dim ones = "0"
      29:         Dim strNumber As String = Convert.ToString(numbers)
      30:         If (strNumber.Length > 1) Then
      31:             ones = MakeNum(numbers.Substring(1, strNumber.Length - 1))
      32:         End If
      33:         If (Convert.ToString(ones) = "X") Then
      34:             Return "00"
      35:         End If
      36:         Return Convert.ToString((tens * 16) + (ones * 1))
      37:     End Function
      38:     Private Shared Function GetUserMessage16(ByVal skip_char As Integer, ByVal Input As String, ByVal truelength As Integer)
      39:         Dim smsMessage = ""
      40:         Dim charCounter As Integer = 0
      41:         Dim i As Integer = 0
      42:         While i < Input.Length
      43:             Dim EndLength1 = i + 2
      44:             Dim EndLength2 = i + 4
      45:             Dim hex1 = Input.Substring(i, EndLength1 - i)
      46:             Dim hex2 = Input.Substring(i + 2, EndLength2 - (i + 2))
      47:             charCounter += 1
      48:             If charCounter > skip_char Then
      49:                 smsMessage += "" & Character(Convert.ToInt32(Convert.ToInt32(HexToNum(hex1)) * 256 + Convert.ToInt32(HexToNum(hex2))))
      50:             End If
      51:             i = i + 4
      52:         End While
      53:         Return smsMessage
      54:     End Function
      55:     Private Shared Function Character(ByVal Num As Long, Optional ByVal Special As Integer = 256) As String
      56:         'This Function from http://www.freevbcode.com/ShowCode.asp?ID=8541
      57:         'Special must not be higher then 256 or lower then 0
      58:         If Special < 1 Then
      59:             Num = 1
      60:         ElseIf Special > 256 Then
      61:             Num = 256
      62:         End If
      63:  
      64:         'If passed Num is higher then 255, it keeps subtracting
      65:         'the Num by Special(256) until Num becomes legal ASCII number.
      66:         If Num > 255 Then
      67:             While Num > 255
      68:                 Num = Num - Special
      69:             End While
      70:         End If
      71:  
      72:         'If Num is lower then 0, it keeps adding Special(256)
      73:         'until Num becomes legal ASCII number.
      74:         If Num < 0 Then
      75:             While Num < 0
      76:                 Num = Num + Special
      77:             End While
      78:         End If
      79:  
      80:         'At the end it just passes the Num to Chr() function
      81:         Return Chr(Num)
      82:  
      83:     End Function
      84:  
      85:  
      86:     Private Shared Function MakeNum(ByVal str As String) As Integer
      87:  
      88:         If Not (str = "0" Or str = "1" Or str = "2" Or str = "3" Or str = "4" Or str = "5" Or str = "6" Or str = "7" Or str = "8" Or str = "9") Then
      89:             Select Case UCase(str)
      90:                 Case "A"
      91:                     Return 10
      92:                 Case "B"
      93:                     Return 11
      94:                 Case "C"
      95:                     Return 12
      96:                 Case "D"
      97:                     Return 13
      98:                 Case "E"
      99:                     Return 14
     100:                 Case "F"
     101:                     Return 15
     102:                 Case Else
     103:                     Return 16
     104:             End Select
     105:         End If
     106:         If ((Convert.ToInt32(str) >= 0) And (Convert.ToInt32(str) <= 9)) Then
     107:             Return Convert.ToInt32(str)
     108:         End If
     109:     End Function
     110: #End Region
     111: End Class

     

    Oke Selamat mencoba rekans Smile

     

    Cheers Ninja

  • Congratulation for New Microsoft Students Partner Regional Jawa Barat

    Dear All,

    Setelah mengalami proses rekruitmen dan screening yang cukup panjang, sekarang kita telah memiliki beberapa nama yang baru.

    Berikut ini adalah nama - nama yang selama beberapa bulan kedepan bakal menjadi MSP di Jawa Barat, kenapa beberapa bulan ? ya karena seberapa lamanya nama - nama dibawah ini bakal menyandang status Microsoft Students Partner tergantung dari pribadi masing - masing kembali.

     

    Akhir Kata CONGRATULATION .. and Now, It's Your Time To SHINE !!!!

     

    Regards,

    B Billy Riantono

    MSP Lead Interim West Java

    558 Views, 0 Comment(s), Published on: 04-03-2012 6:02 by billy.riantono to Catatan Billy Riantono
    | More
  • Cara simple untuk Mengamankan ASP Page anda !!!

     Hello teman - teman,

    ketemu lagi deh ,, hehehe , euhm kali ini saya coba ingin membagikan bagaimana cara sederhana untuk membantu mengamankan ASP Page anda diakses oleh orang yang tidak berwenang dan orang berwenang mengakses halaman dengan cara direct url tanpa melalui login. Euhm , disini kita akan coba menggunakan session.

    untuk bagaimana cara membuat halaman login bisa lihat postingan saya sebelumnya disini  

    oke Session yang dipakai untuk melakukan penandaan adalah Session["isLogin"].

    sekarang codenya :D

    tambahkan pada halaman aspx anda code berikut ( diletakan pada section head ) :

    <%
        Response.Buffer = true;
        Response.Expires = 0;
        Response.CacheControl = "no-cache";
       
    %>

    Code diatas berfungsi untuk mencegah user mengakses halaman yang merupakan cache dari browser :)

    kemudian tambahkan code berikut pada .aspx.cs teman - teman :

    letakan pada bagian page_load :)

    if (!IsPostBack)
                {
                    if (Session["isLogin"] != null)
                    { 

     Response.Redirect("~/Logout.aspx");

    }

    }

     tralala udah deh ,, emang sih belum seratus persen aman , tapi setidaknya dapat membantu :D kalo teman - teman ada cara lain atau mungkin lebih simple , minta dunk :D

     

    sekian kali ini,

    semoga bermanfaat :D

     

    Cheers

    411 Views, 0 Comment(s), Published on: 09-14-2011 13:57 by billy.riantono to Catatan Billy Riantono
  • Windows 8 Developer Preview Released !!!

    Setelah semalam Microsoft melakukan WebCast dengan Keynote Steven Sinofsky ( President Windows Division di Microsoft )  tentang preview Windows 8. maka mulai hari ini Windows 8 Developer Preview resmi diluncurkan dan dapat diunduh pada alamat :

     Screenshott

    Windows Developer Preview with developer tools English, 64-bit (x64)

    DOWNLOAD (4.8 GB)

    Sha 1 hash - 6FE9352FB59F6D0789AF35D1001BD4E4E81E42AF

    Apa aja yang disertakan di file ISO versi ini :

    • 64-bit Windows Developer Preview
    • Windows SDK for Metro style apps
    • Microsoft Visual Studio 11 Express for Windows Developer Preview
    • Microsoft Expression Blend 5 Developer Preview
    • 28 Metro style apps including the BUILD Conference app

    Windows Developer Preview English, 64-bit (x64)

    DOWNLOAD (3.6 GB)

    Sha 1 hash – 79DBF235FD49F5C1C8F8C04E24BDE6E1D04DA1E9

     file (.iso) yang dapat digunakan untuk install Windows Developer Preview and Metro style apps di  PC 64-bit.

     

    Windows Developer Preview English, 32-bit (x86)

    DOWNLOAD (2.8 GB)

    Sha 1 hash - 4E0698BBABE01ED27582C9FC16AD21C4422913CC

     file (.iso) yang dapat digunakan untuk install Windows Developer Preview and Metro style apps di  PC 32-bit.

    Untuk System Requirement tidak jauh beda dengan apa yang dibutuhkan oleh Windows Vista dan Windows 7 :)

    System Requirements

    • 1 gigahertz (GHz) or faster 32-bit (x86) or 64-bit (x64) processor
    • 1 gigabyte (GB) RAM (32-bit) or 2 GB RAM (64-bit)
    • 16 GB available hard disk space (32-bit) or 20 GB (64-bit)
    • DirectX 9 graphics device with WDDM 1.0 or higher driver
    • Taking advantage of touch input requires a screen that supports multi-touch

    So , bagi temen - temen yang ingin merasakan preview Windows 8 silahkan unduh saja link diatas :)

    tapi inget yah .. di edisi developer preview ini belum semua fungsi yang ditampilkan pada WebCast semalam ada :) , tapi gak ada salahnya buat mencobanya .

    Untuk preview selanjutnya tunggu saja :D masih proses download soalnya , hehehe :D

     

    Thanks

     

    Cheers

     

     BUILD Logo

    342 Views, 2 Comment(s), Published on: 09-14-2011 10:36 by billy.riantono to Catatan Billy Riantono
  • Mendapatkan Unique ID dari Store Procedure Insert ( ASP.Net + SQL Server)

    Hello all,

    ketemu lagi :) sekarang  saya akan coba membagikan bagaimana cara mengetahui Unique ID ( Identity ID ) pada saat kita melakukan insert data menggunakan store procedure :)

    Hal ini biasanya kita perlukan untuk melakukan Insert pada dua buah tabel / lebih yang saling berkaitan dan saling terpisah store procedurenya.

    contoh store procedure yang akan membalikan nilai Identity ID yang baru adalah sebagai berikut :

    CREATE PROCEDURE [dbo].[test]
    AS
    INSERT INTO dbo.A
         VALUES
                ('Billy')

    RETURN SCOPE_IDENTITY();

    maka nanti sql tersebut akan mengembalikan nilai dari unique id yang baru saja digunakan. untuk di ASP.Net bagaimana kita menangkap value kembaliannya ?

    dibawah ini contoh code function yang dapat digunakan :)

    public int insertDataTest()
            {

                SqlConnection conn = new SqlConnection(strConnectionString);
                SqlCommand command = new SqlCommand("test", conn);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.Add("@ReturnValue", SqlDbType.Int, 4).Direction = ParameterDirection.ReturnValue;
                conn.Open();
                command.ExecuteNonQuery();
                int returnId = (int)command.Parameters["@ReturnValue"].Value;
                conn.Close();
                return returnId;
            }
        

    Oke sekian kali ini :)

     

    semoga bermanfaat,

    apabila teman - teman ada cara yang lebih simple ataupun yang lainnya mohon berbagi juga yah, biar kita sama - sama belajar :D

    Cheers

    491 Views, 0 Comment(s), Published on: 09-13-2011 13:58 by billy.riantono to Catatan Billy Riantono
  • Mendapatkan value dari Drop Down List tanpa PostBack ( ASP.Net )

    Hello All,

    seringkali kita ingin mendapatkan value dari sebuah Drop Down List dalam asp.net untuk digunakan oleh control yang lain semisal textbox. dalam asp.net event selectedIndexChanged pada Dropdownlist tidak akan dieksekusi tanpa dilakukan sebuah PostBack hal ini cukup merepotkan pada waktu / situasi tertentu :)

    Hal itu sebenarnya dapat kita akali dengan menggunakan bantuan javascript :)

    oke langsung ajah :)

    semisal ada dropdownlist dengan id : DDL_A dan textbox dengan id : txt_A.

    ini code javascriptnya :

    <script type="text/javascript>

    function changeDDL(){

    document.getElementById('<%=txt_A.ClientID%>').value = document.getElementById('<%=DDL_A.ClientID%>').value;

    }

    </script>

     

    kemudian tambahkan script berikut pada .aspx.cs :

    protected void Page_Load(object sender, EventArgs e)
            {

                  //your another code

                  if (!IsPostBack)
                {
                    DDL_A.Attributes.Add("onchange", "BLOCKED SCRIPTchangeValueText();");

    }

    }

    oke sekarang coba jalankan :) apabila berhasil maka value pada textbox " txt_A" akan berubah mengikuti value dari DDL_A.

     

    sekian ,

     

    semoga bermanfaat.

    Cheers :)

     

     

    532 Views, 0 Comment(s), Published on: 09-13-2011 12:28 by billy.riantono to Catatan Billy Riantono
    | More
  • IDM Upil Importer Initial Release v 1.0

    Neh Bagi para downloader yang hobi download banget and kesulitan masukin cookiesnya ke IDM ane bikinin aplikasi.
    aplikasi ini free
    aplikasi ini mirip IDM Cookie Import nya Tomtest
    fitur : Multi Link ( 30 Links) , Multi Cookie
    tampilan kurang lebih begini :

    idmupil

    Download :

    http://www.jalurcepat.com/owzahjc3w5yv/IDMUpilImporter.zip.htm
    Fungsinya : buat yang *** kumpulin cookie premium user dan pengen download via IDM , jadi lebih gampang pake aplikasi ini Smile
    How To Use ? : ada di aplikasi kok penjelasan pemakaiannya
    ada saran , kritik , request feature ? please feel free to mail me at : billy [at] blackpearlsoft.com
    next release IDWS v5 direct link converter. Please Wait Open-mouthed smile
     
    Semoga Bermanfaat , 
     
    Cheers
    449 Views, 0 Comment(s), Published on: 09-11-2011 13:03 by billy.riantono to Catatan Billy Riantono
  • Membuat Form Login ASP.Net menggunakan LDAP ( Active Directory ) Auth

    Hello all,

    kali ini saya akan share lagi tentang hal bagaimana cara membuat form Login yang berbasiskan pada user di Active Directory ( pengalaman di kantor :D ).

    Hal ini biasanya digunakan pada aplikasi yang akan menggunakan sistem SSO ( Single Sign On ) sehingga user hanya memiliki satu account credential untuk semua aplikasi ( baik itu dalam satu platform ataupun lintas platform ).

     

    Oke langsung saja go to the code :)

    dibawah ini adalah helper class yang dapat digunakan untuk dapat melakukan LDAP ( AD ) Auth.

    ( dalam contoh ini saya beri nama class ini dengan : ActiveDirectoryValidator.cs )

    code :

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.DirectoryServices;

    namespace UserAuthentication
    {
        public class ActiveDirectoryValidator
        {
            private string _path;
            private string _filterAttribute;
            private string _deptName;

            public ActiveDirectoryValidator(string path)
            {
                _path = path;
            }

            public bool IsAuthenticated(string domainName, string userName, string password)
            {
                string domainAndUsername = domainName + @"\" + userName;
                DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, password);
                try
                {
                    // Bind to the native AdsObject to force authentication.
                    Object obj = entry.NativeObject;
                    DirectorySearcher search = new DirectorySearcher(entry);
                    search.Filter = "(SAMAccountName=" + userName + ")";
                    search.PropertiesToLoad.Add("cn");
                    SearchResult result = search.FindOne();
                    if (null == result)
                    {
                        return false;
                    }
                    // Update the new path to the user in the directory
                    _path = result.Path;
                    _filterAttribute = (String)result.Properties["cn"][0];
                    string[] _split;
                    _split = _path.Split(',');
                    _deptName = _split[1];
                    _deptName = _deptName.Replace("OU=", "");
                }
                catch (Exception ex)
                {
                    throw new Exception("Login Error: " + ex.Message);
                }
                return true;
            }

            public string getDeptName()
            {
                if (_deptName != "")
                {
                    return _deptName;
                }
                else
                {
                    return null;
                }
            }
        }
    }
     

    kemudian contoh penggunaan di dalam UI ( .aspx ) adalah sebagai berikut :

    ....

    // Path to you LDAP directory server.
            // Contact your network administrator to obtain a valid path.
            string adPath;

            //string adPath = "LDAP://" + System.Configuration.ConfigurationSettings.AppSettings["DefaultActiveDirectoryServer"]; ;
            if (domainName.Length > 0)
            {
                adPath = "LDAP://" + domainName;
            }
            else
            {
                adPath = "LDAP://" + System.Configuration.ConfigurationSettings.AppSettings["DefaultActiveDirectoryServer"];
            }
            ActiveDirectoryValidator adAuth = new ActiveDirectoryValidator(adPath);
            if (true == adAuth.IsAuthenticated(domainName, userName, password))
            {
                // Create the authetication ticket
                FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(60), false, "");
                // Now encrypt the ticket.
                string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
                // Create a cookie and add the encrypted ticket to the
                // cookie as data.
                string deptName = adAuth.getDeptName();
                lblError.Text = deptName;
                HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
                // Add the cookie to the outgoing cookies collection.
                HttpContext.Current.Response.Cookies.Add(authCookie);
                // Redirect the user to the originally requested page
                //HttpContext.Current.Response.Redirect(FormsAuthentication.GetRedirectUrl(userName, false));
            }
    ......

    jadi gampang bukan membuat sebuah Login Form di ASP.net yang berbasis LDAP ( AD ) Auth ? :D
     
    selamat mencoba :) cheers... 
  • Membuat Data Access Layer Class LinQ ( C-Sharp )

    hello all,

    n-Tier

     

    ketemu lagi dengan saya Smile kali ini kita akan coba membahas bagaimana membuat Data Access Layer Class secara manual ( by code ) menggunakan C-Sharp.

    Data Access Layer Class sering kali digunakan di kala kita mencoba membuat aplikasi dengan N-Tier. :) oke kita langsung saja :) 

    semisal ada sebuah table products dengan column id_product dan nama_product .

    maka kita dapat membuat sebuah class sebagai berikut :

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.Linq.Mapping;
    using System.Data.Linq;
    using System.Reflection;
    namespace Test
    {
        [Table(Name = "PRODUCTS")]
        public class selectAllProducts
        {
            private int id_product_;
            private string nama_product_;

            [Column(DbType = "int", IsPrimaryKey = true)]
            public int id_product
            {
                get { return id_product_; }
                set { id_product_ = value; }
            }

            [Column(DbType = "varchar(50)", CanBeNull = true)]
            public string nama_product
            {
                get { return nama_product_; }
                set { nama_product_ = value; }
            }
        }

        public class selectAllProducts : DataContext
        {
            public selectAllProducts(string connection)
                : base(connection)
            {
            }
            [Function(Name = "selectAllProducts", IsComposable = false)] // selectAllProducts <-- nama store procedure
            public ISingleResult<selectAllProducts> getAllComment()
            {

                IExecuteResult objResult = this.ExecuteMethodCall(this, (MethodInfo)(MethodInfo.GetCurrentMethod()));
                ISingleResult<selectAllProducts> objresults = (ISingleResult<selectAllProducts>)objResult.ReturnValue;
                return objresults;
            }

        }

    }

     

    382 Views, 0 Comment(s), Published on: 09-07-2011 9:51 by billy.riantono to Catatan Billy Riantono
  • SQL User Defined Function

    Hello all,

    kali ini saya akan share lagi tentang hal berbau query sql server. kita akan coba membuat function pada sql server ( Scalar - Valued  ) .

    Manfaat SQL Server User-Defined Function sangat banyak. Pertama, kita dapat menggunakan fungsi-fungsi di berbagai tempat begitu banyak bila dibandingkan dengan Store Procedure SQL Server . Kemampuan untuk fungsi untuk bertindak seperti table (untuk table Inline dan Multi-Statement table) memberikan pengembang kemampuan untuk membuat logika kompleks ke dalam blok kode lebih pendek dan lebih pendek. Ini biasanya akan memberikan manfaat tambahan membuat kode yang kurang kompleks dan lebih mudah untuk menulis dan memelihara. Dalam kasus Scalar Valued User-Defined , kemampuan untuk menggunakan fungsi ini di mana saja Anda dapat menggunakan skalar dari tipe data yang sama juga merupakan hal yang sangat kuat. Menggabungkan keuntungan ini dengan kemampuan untuk melewati parameter ke dalam database objek membuat SQL Server User-Defined Function menjadi alat yang powerfull.

    contohnya : 

    CREATE FUNCTION whichContinent 
    (@Country nvarchar(15))
    RETURNS varchar(30)
    AS
    BEGIN
    declare @Return varchar(30)
    select @return = case @Country
    when 'Argentina' then 'South America'
    when 'Belgium' then 'Europe'
    when 'Brazil' then 'South America'
    when 'Canada' then 'North America'
    when 'Denmark' then 'Europe'
    when 'Finland' then 'Europe'
    when 'France' then 'Europe'
    else 'Unknown'
    end
    
    return @return
    end
     
    apabila kita coba jalankan maka akan menghasilkan :
    print dbo.WhichContinent('USA')
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    
    Country          Continent
    ---------------  ------------------------------
    USA              North America
     
    jadi gampang bukan membuat sebuah function di dalam sql server ? :D
     
    selamat mencoba :) cheers... 

     

     

    561 Views, 0 Comment(s), Published on: 09-07-2011 8:55 by billy.riantono to Catatan Billy Riantono
  • Membuat Youtube Instant di Silverlight ( SL 4 )

    Hello all,

    ketemu lagi Open-mouthed smile kali ini kita akan mencoba youtube instant ( like ytinstant.com ) tapi versi simplenya menggunakan Silverlight 4 ( Out of Browser ). kurang lebih aplikasinya nanti akan berbentuk seperti gambar dibawah .

    ytinstantsl

    developer tools yang digunakan seperti biasa menggunakan visual studio 2010.

    untuk pertama buatlah project baru dengan menggunakan Silverlight Application kemudian beri nama project secara bebas kemudian klik create.

    untuk XAML Code ( tampilan ) yang digunakan antara lain :

       1: <UserControl.Background>
       2:        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
       3:            <GradientStop Color="Black" Offset="0" />
       4:            <GradientStop Color="White" Offset="1" />
       5:        </LinearGradientBrush>
       6:    </UserControl.Background>
       7:    <Grid x:Name="LayoutRoot" DataContext="{Binding}">
       8:        <Grid Margin="12,20,12,12" Name="grid1">
       9:            <Grid.RowDefinitions>
      10:                <RowDefinition Height="53*" />
      11:            </Grid.RowDefinitions>
      12:            <TextBox Margin="17,20,0,0" Name="txtKeyword" Text="Please enter your keyword ...." GotFocus="txtKeyword_GotFocus" TextChanged="txtKeyword_TextChanged" Height="28" VerticalAlignment="Top" HorizontalAlignment="Left" Width="264" />
      13:            <WebBrowser Margin="17,62,17,147" Name="webBrowser1" />
      14:            <TextBlock Height="28" Margin="296,20,0,0" Name="tbStatus" Text="" VerticalAlignment="Top" Foreground="Black" HorizontalAlignment="Left" Width="213" FontSize="8" />
      15:            <ListBox Margin="18,0,17,14" Name="lbOther" Height="128" VerticalAlignment="Bottom" ItemsSource="{Binding}" SelectionChanged="lbOther_SelectionChanged">
      16:             <ListBox.ItemTemplate>
      17:                    <DataTemplate>
      18:                        <StackPanel Orientation="Horizontal">
      19: Image Name="thumbnails" Source="{Binding thumbnail}" Stretch="Fill" Width="100" Height="100" />
      20:                            <TextBlock Name="title" Text="{Binding title}"  Foreground="Black"/>
      21:                        </StackPanel>
      22:                    </DataTemplate>
      23:                </ListBox.ItemTemplate>   
      24:            </ListBox>
      25:        </Grid>
      26:        <sdk:Label Height="20" Margin="12,3,360,0" Name="label1" VerticalAlignment="Top" Content="Youtube Instant in Silverlight" />
      27:        <Grid.Background>
      28:            <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
      29:                <GradientStop Color="#FFBAE4FF" Offset="0" />
      30:                <GradientStop Color="White" Offset="1" />
      31:            </LinearGradientBrush>
      32:        </Grid.Background>
      33:    </Grid>
      34: /UserControl>

    kemudian buat sebuah class bernama ydata ( digunakan untuk membuat custom list ) , coding didalamnya antara lain :

       1: public class ydata
       2:    {
       3:        public string url { get; set; }
       4:        public string title { get; set; }
       5:        public string thumbnail { get; set; }
       6:        public string description { get; set; }
       7:    }

    kemudian main behind code ada dibawah ( diletakana pada MainPage.xaml.cs ) :

       1: using System;
       2: using System.Collections.Generic;
       3: using System.Linq;
       4: using System.Net;
       5: using System.Windows;
       6: using System.Windows.Controls;
       7: using System.Windows.Documents;
       8: using System.Windows.Input;
       9: using System.Windows.Media;
      10: using System.Windows.Media.Animation;
      11: using System.Windows.Shapes;
      12: using Newtonsoft.Json.Linq;
      13: using System.Threading;
      14: using System.Windows.Threading;
      15: using System.Collections.ObjectModel;
      16:  
      17: namespace YtInstantSL
      18: {
      19:     public partial class MainPage : UserControl
      20:     {
      21:         string MyDevKey = "YourDevKey";
      22:         IList<ydata> videos;
      23:         IList<ydata> videosThumb;
      24:         private bool isi;
      25:         DispatcherTimer dispatcherTimer = new DispatcherTimer();
      26:         public MainPage()
      27:         {
      28:             InitializeComponent();
      29:             isi = false;
      30:             
      31:             dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
      32:             dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
      33:             
      34:         }
      35:  
      36:         private void txtKeyword_GotFocus(object sender, RoutedEventArgs e)
      37:         {
      38:             if (txtKeyword.Text == "Please enter your keyword ....")
      39:             {
      40:                 txtKeyword.Text = "";
      41:             }
      42:         }
      43:  
      44:         private void txtKeyword_TextChanged(object sender, TextChangedEventArgs e)
      45:         {
      46:  
      47:             wc_todo("http://gdata.youtube.com/feeds/api/videos?v=2&format=5&alt=jsonc&max-results=5&q=" + txtKeyword.Text + "&key=" + MyDevKey);
      48:             if (txtKeyword.Text.Length > 0)
      49:             {
      50:                 dispatcherTimer.Start();
      51:             }
      52:  
      53:         }
      54:  
      55:         private void wc_todo(string Uri)
      56:         {
      57:             WebClient wc1 = new WebClient();
      58:             WebClient wc2 = new WebClient();
      59:             try
      60:             {
      61:                 if (!(wc1.IsBusy))
      62:                 {
      63:                     wc1.DownloadStringAsync(new Uri(Uri, UriKind.Absolute));
      64:                     wc1.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
      65:                 }
      66:                 else if (!(wc2.IsBusy))
      67:                 {
      68:                     wc2.DownloadStringAsync(new Uri(Uri, UriKind.Absolute));
      69:                     wc2.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
      70:                 }
      71:             }
      72:             catch (WebException ex)
      73:             {
      74:                 MessageBox.Show(ex.Message);
      75:             }
      76:  
      77:         }
      78:  
      79:         public void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs c)
      80:         {
      81:             try
      82:             {
      83:                 var o = JObject.Parse(c.Result);
      84:                 videos = (from v in o["data"]["items"].Children() select new ydata { title = (string)v["title"], description = (string)v["description"], thumbnail = (string)v["thumbnail"]["sqDefault"], url = (string)v["content"]["5"] }).ToList<ydata>();
      85:  
      86:                 if (videos.Count() > 0)
      87:                 {
      88:                     isi = true;
      89:                     tbStatus.Text = txtKeyword.Text;
      90:                     videosThumb =videos ;
      91:                     lbOther.DataContext = videosThumb;
      92:                 }
      93:             }
      94:             catch (Exception ex)
      95:             {
      96:                 if (txtKeyword.Text != "")
      97:                 {
      98:                     tbStatus.Text = "Error : Video with this keyword not found.";
      99:                 }
     100:             }
     101:         }
     102:         private void dispatcherTimer_Tick(object sender, EventArgs e)
     103:         {
     104:             if(isi == true){
     105:             try
     106:             {
     107:                 
     108:                 webBrowser1.Navigate(new Uri(videos[0].url,UriKind.Absolute));
     109:                 dispatcherTimer.Stop();
     110:             }
     111:             catch (Exception ex)
     112:             {
     113:                 MessageBox.Show(ex.Message);
     114:  
     115:             }
     116:             }
     117:         }
     118:  
     119:         private void lbOther_SelectionChanged(object sender, SelectionChangedEventArgs e)
     120:         {
     121:             webBrowser1.Navigate(new Uri(videos[lbOther.SelectedIndex].url));
     122:         }
     123:     }
     124: }

    setelah itu sekarang coba debug , bila gak ada error , maka teman – teman telah berhasil Smile . dari sini temen- temen bisa kembangkan ke fitur yang lain Smile

    seperti auto next to next queue video dan lain sebagainya Smile

    Selamat mencoba dan berkreatif ria Smile

     

    Cheers All.

    Beer mug

  • Membuat Paging di GridView menggunakan linQ ( ASP.Net )

    hello all,

    ketemu lagi dengan saya Smile kali ini kita akan coba membahas bagaimana membuat paging di gridview secara manual ( by code ) menggunakan linQ.

    semisal ada sebuah table products dengan column id_product dan nama_product .

    dengan isi sebagai berikut :

    id_product | nama_product

    1 | bola

    2 | raket

    3 | net

    4 | senar'

    5 | kaos olahraga

    6 | peluit

    kita akan mencoba membuat paging yang akan memunculkan 2 data pada setiap halamannya Smile

    maka query linqnya kurang lebih adalah sebagai berikut Smile

       1: var Results = (from p in products
       2:                select p).Take(jumlahdata).Skip(StartRow);

    dimana jumlahdata nantinya akan kita isi 2 dan untuk mencari start row akan kita bahas di postingan selanjutnya.

     

    so stay tune di channel ini Smile hahaha

    Thumbsup

    504 Views, 0 Comment(s), Published on: 08-16-2011 21:49 by billy.riantono to Catatan Billy Riantono
  • Monitoring DNS Server di Windows Server 2008

    Sering kali ketika kita membangun sebuah DNS server, mengalami sebuah gangguan, dan kita perlu melakukan monitoring. Dalam Windows Server 2008 disediakan fitur untuk melakukan hal tersebut dengan sangat mudah Smile

    Untuk langkah – langkahnya antara lain adalah : ( Maaf untuk screenshot menyusul yah Open-mouthed smile )

    >>. Klik Start kemudian klik Administrative Tools dan kemudian klik DNS,

    >>. Pada list pane, klik kanan <YourComputerName> dan kemudian klik properties,

    >>. Klik tab monitoring,

    >>. Pada monitoring tab , check pilihan A Simple query against this DNS Server ,      dan kemudian klik Test Now,

    >>. Pada tab monitoring, pastikan A recursive query to Other DNS Servers dicentang dan kemudian klik Test Now,

    >>. Perhatikan hasil pengetestannya.

    untuk melakukan penghentian service DNS Server sementara dapat dilakukan dengan command : sc stop dns dan untuk menjalankannya kembali kita dapat menggunakan sc start dns , karena terkadang kita perlu melakukan restart pada DNS Server kita.

    Demikian tulisan kali ini, semoga dapat bermanfaat.

     

    Cheers,

    Banana

    333 Views, 0 Comment(s), Published on: 08-06-2011 12:23 by billy.riantono to Catatan Billy Riantono
More Posts Next page »