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

Christian Ivan's Blog

  • [Sharepoint] Menambahkan WCF Services di dalam Sharepoint Server 2010

    Hmm, topik yang akan kita bahas sekarang adalah cara menambahkan WCF Services di dalam Sharepoint Server 2010. Memang buat apa neh susah-susah nambahin WCF Services ke Sharepoint?

    Jawabannya gampang aja, karena teknologi ini rencananya akan saya pakai sebagai topik Tugas Akhir saya, haha. Statement di atas cuma bercanda lho ya :) Andaikan neh, ada sistem dengan platform non Microsoft yang ingin mengakses data pada Sharepoint Server, maka memakai web services merupakan suatu pilihan yang lebih mudah diterapkan. Seperti yang kita ketahui XML merupakan bahasa global yang dapat menghubungkan komunikasi antar platform sehingga memungkinkan untuk menciptakan sebuah Interopbility.

    Penambahan web services juga akan membuat akses data pada sharepoint lebih luwes dalam digunakan. Tanpa panjang lebar lagi, sebaiknya langsung saja kita simak langkah-langkah berikut.

    1. Langkah pertama yang harus kita lakukan tentu saja membuat project baru dengan tipe Empty SharePoint Project
    2. Selanjutnya kita perlu melakukan Token Replacement. Sementara ini saya mengetahui ada 2 cara dalam melakukan token replacement. Cara pertama adalah dengan mengubah konfigurasi token replacement pada project itu sendiri. Klik kanan pada project - klik "Unload Project"
      Unload Project
      Klik kanan lagi pada projectnya - klik “Edit WCFTest001.csproj”
      Edit
      Kemudian tambahkan baris kode dibawah ini
      Code
      Kemudian save dan klik kanan - Reload Project
      Reload
    3. Cara ke-2 yang dapat dilakukan adalah merubah konfigurasi pada Visual Studio.
      Buka C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\SharePointTools Buka Microsoft.VisualStudio.SharePoint.targets file menggunakan notepad atau alat bantu editing lainnya
      Temukan tag TokenReplacementFileExtensions kemudian tambahkan svc pada list yang ada
       <TokenReplacementFileExtensions>$(TokenReplacementFileExtensions);xml;aspx;ascx;webpart;dwp;svc </TokenReplacementFileExtensions>  
      
    4. Setelah masalah Token Replacement selesai, kita perlu menambahkan folder _vti_bin pada Sharepoint Project _vti_bin
      Pilih ISAPI
      ISAPI
      Sekarang seharusnya ada folder ISAPI didalam project anda.
      ISAPI_2
    5. Klik kanan pada folder ISAPI - Add New Item - pilih Text File - beri nama WCFTest.svc. Lalu klik kanan pada solution, add project baru bertipe WCF Service Library. Sebenarnya kita cuma memerlukan 2 class yang digenerate otomatis sama WCF Service Library.
      WCF Lib

      Setelah meng-copy 2 class tadi ke project sharepoint, silahkan segera di hapus karena sudah tidak diperlukan.
      Pasca di copy
      Rename 2 class yang baru aja dicopy tadi, Service1.cs dan IService1.cs dengan nama seperti yang kalian inginkan. Pastikan keluar message box seperti dibawah ini karena proses rename juga mengubah nama namespacenya.
      messageBox
      Nah, sekarang di file masing-masing akan dijumpai banyak sekali error. Tapi jangan khawatir, karena kita cukup menambahkan tambahan reference dibawah ini - System.ServiceModel - System.Runtime.Serialization - Microsoft.SharePoint.Client.ServerRuntime.dll (dapat ditemukan pada C:\windows\assembly\GAC_MSIL\Microsoft.SharePoint.Client.ServerRuntime\ 14.0.0.0__[something]\Microsoft.SharePoint.Client.ServerRuntime.dl)
    6. Tambahkan baris kode dibawah ini pada class service
    7. Sekarang kita sudah mengetahui nama file, namespace dan nama class, buka WCFTest.svc dan copy code dibawah
       <TokenReplacementFileExtensions>$(TokenReplacementFileExtensions);xml;aspx;ascx;webpart;dwp;svc </TokenReplacementFileExtensions>  
      

      Nah, disini ada potongan code
       $SharePoint.Project.AssemblyFullName$  
      

      Hal ini ada hubungannya dengan Token Replacement yang tadi kita bahas. $SharePoint.Project.AssemblyFullName$ akan di replace dengan assembly name yang saya juga sebenernya gag tau itu apa, tapi itu penting :)
    8. Langkah selanjutnya ada membuat web.config. Klik kanan pada ISAPI folder, tambahkan text file lagi, kali ini beri nama web.config
      Pastikan untuk mengedit code yang berwarna merah.
    9. Pada akhirnya, project akan terlihat seperti gambar dibawah
      Tampilan akhir project
    10. Enable ‘Anonymous’ Authentication pada II


      enabled
    11. Klik kanan pada project - Deploy. Ketika keluar notif “Deploy Succeeded”, coba cek alamat url ini http://site_url/_vti_bin/service_Name.svc
    12. Nah, web services telah sukses ditambahkan pada Sharepoint Server, semoga bermanfaat ^_^
    313 Views, 0 Comment(s), Published on: 11-13-2011 20:57 by ivan to Christian Ivan's Blog
    | More
  • [Sharepoint] Membaca Sharepoint list melalui Console Application

    Ketika kita memerlukan data di sharepoint server, tentu akan dibuat bingung jika belum mengetahui caranya. Mungkin sebagian dari kita akan membayangkan akan memakai web service atau mengakses databasenya saja langsung. Web service mungkin ada benarnya, tetapi untuk mengakses databasenya secara langsung ternyata cukup merepotkan jika kita belum mengetahui struktur database pada sharepoint. Berikut ada satu cara yang cukup mudah untuk diimplementasikan. (Saya memakai console hanya sebagai contoh, jika yang diperlukan seperti Windows Form maka cara sebenarnya sama saja)
    1. Langkah pertama yang dilakukan tentu saja membuat project bertipe Console Application, jangan lupa tambahkan reference Microsoft.Sharepoint.
    2. Berikutnya kita tinggal melakukan coding untuk membaca list yang ada pada sharepoint server. Kebetulan saya membuat 2 class yaitu class Employees yang isi attribute di dalamnya sama dengan tipe data list Employees yang ada di Sharepoint server dan class Server yang berisi code untuk membaca Sharepoint list.
      Employees.cs
       class Employees  
       {  
         public string Title { get; set; }  
         public string JobTitle { get; set; }  
         public string Team { get; set; }  
         public string Project { get; set; }  
       }  
      

      Server.cs
       class Server  
       {  
         public List GetEmployeesList()  
         {  
           SPList oList;  
           try  
           {  
             List retList = new List();  
             SPSecurity.RunWithElevatedPrivileges(delegate()  
             {  
               using (SPSite oSite = new SPSite("http://zuckerberg/"))  
               {  
                 using (SPWeb oWeb = oSite.OpenWeb())  
                 {  
                   oList = oWeb.Lists["Employees"];  
                   SPListItemCollection collListItems = oList.Items;  
                   foreach (SPListItem oListItem in collListItems)  
                   {  
                     Employees tempClass = new Employees();  
                     tempClass.Title = Convert.ToString(oListItem["Title"]);  
                     tempClass.JobTitle = Convert.ToString(oListItem["Job Title"]);  
                     tempClass.Team = Convert.ToString(oListItem["Team"]);  
                     tempClass.Project = Convert.ToString(oListItem["Project"]);  
                     retList.Add(tempClass);  
                   }  
                 }  
               }  
             });  
             return retList;  
           }  
           catch (Exception ex)  
           {  
             throw new Exception(ex.Message);  
           }  
         }  
       }  
      

      Program.cs
       class Program  
       {  
         static void Main(string[] args)  
         {  
           Server server = new Server();  
           List list = server.GetEmployeesList();  
           foreach (Employees employeese in list)  
           {  
             Console.WriteLine(employeese.Title + "\t" + employeese.JobTitle  
               + "\t" + employeese.Project + "\t" + employeese.Team);  
           }  
           Console.ReadLine();  
         }  
       }  
      

    3. Oh iya, hampir aja lupa, berikut adalah data yang terdapat pada Sharepoint server

      Disini terlihat kalau nama list yang ingin saya tampilkan bernama "Employees" dengan nama kolom "Title", "Job Title", "Team", "Project". Nama-nama yang juga ada pada code yang ditampilkan diatas. Jadi bisa teman-teman ganti sesuai dengan data pada sharepoint server kalian.
    4. Ketika program dijalankan, maka output yang dihasilkan akan seperti gambar dibawah ini

      Sama bukan seperti pada data di server
    5. Adapun error yang sering terjadi ketika proses kompilasi yaitu Retrieving the COM class factory for component with CLSID {BDEADF26-C265-11D0-BCED-00A0C90AB50F} failed due to the following error: 80040154
      Retrieving the COM class factory for component with CLSID {BDEADF26-C265-11D0-BCED-00A0C90AB50F} failed due to the following error: 80040154

      Hal ini terjadi karena console yang kita pakai bertipe 32 bit sedangkan Sharepoint sendiri bertipe 64 bit. Solusinya mudah saja, pada project Properties - Build - Platform Target - Pilih AnyCPU atau x64
    6. Semoga bermanfaat ^_^
    247 Views, 0 Comment(s), Published on: 11-13-2011 20:41 by ivan to Christian Ivan's Blog
    | More
  • Event Report : Road To Imagine Cup 2012 @ITS Surabaya

    Pendahuluan

    Kali ini Microsoft Student Partner regional Jawa Timur bekerja-sama dengan Himpunan Mahasiswa Teknik Computer (HMTC) Teknik Informatika ITS menyelenggarakan acara Road To Imagine Cup 2012 di ITS Surabaya. Acara ini bertujuan untuk membangkitkan semangat mahasiswa di Jawa Timur, khususnya Surabaya untuk berpartisipasi dalam Imagine Cup 2012.

    Pembicara:

    1. Julius Fenata, Microsoft Academic Developer Evangelist

    2. Tim peserta Imagine Cup 2011 dari ITS di bidang Software Design yaitu Ms.id dan Yuva Racsaca

    3. Peserta Imagine Cup 2011 dari ITS di bidang IT Challenge yaitu Bayu Ditaprawira

    Pelaksanaan

    Hari, tanggal : Rabu, 09 November 2011

    Waktu : 13.30 s.d. 16.00

    Tempat : Aula Teknik Informatika ITS Surabaya

    Agenda

    Acara dibuka oleh pak Dwi Sunaryono selaku Sekretaris Jurusan Teknik Informatika. Kemudian acara dilanjutkan oleh pak Julius sebagai pembicara dengan menjelaskan apa itu Imagine Cup dan beberapa video mengenai Imagine Cup. Para peserta terlihat antusias dengan megahnya penyelenggaraan acara Imagine Cup di New York 2011 kemarin. Hal ini dapat dibuktikan dengan adanya beberapa peserta yang melontarkan pertanyaan.

    Pertanyaan 1

    Pertanyaan 2 

    Kemudian acara diteruskan dengan sharing peserta Imagine Cup 2011 dimulai oleh Bayu Ditaprawira yang menceritakan pengalamannya mengikuti IT Challenge.

    Bayu Ditaprawira 

    Setelah Bayu menceritakan pengalamannya, giliran bagi tim Ms.id dan Yuva Racsaca untuk berbagi pengalaman, kesalahan yang dibuat tahun lalu, dan tips'n trick kepada para peserta.

    Tim Ms.id

    Ms.id

     Tim Yuva Racsaca

    Yuva Racsaca 

    Acara dilanjutkan dengan evaluasi pak Julius terhadap tim Ms.id dan Yuva Racsaca dan ditutup dengan pemberian kenang-kenangan dari Teknik Informatika ITS diwakili oleh bapak Imam Kuswardayan

    Kenang-kenangan

    567 Views, 1 Comment(s), Published on: 11-12-2011 20:50 by ivan to Christian Ivan's Blog
    | More
  • Koneksi telnet menggunakan C# .NET

    Sebelum mengimplementasikan telnet dengan menggunakan C#, alangkah lebih baik apabila kita mengenal terlebih dahulu apa itu telnet.

    Telnet adalah sebuah protokol dalam jaringan, baik Internet maupun lokal, yang menyediakan komunikasi 2 arah berbasis text dengan media virtual terminal. Telnet memiliki tipe koneksi TCP dengan menggunakan port 23. Aturan-aturan mengenai telnet bisa dibaca di RFC. Secara garis besar, telnet memiliki 5 perintah dalam protokolnya, yaitu : WILL, WON'T, DO, DON'T, dan IAC.

    Secara default, telnet sudah tersedia di Windows hanya saja kita perlu mengaktifkannya melalui Programs and Features - Turn Windows features on or off. Lalu kalau program telnet memang sudah tersedia di dalam Windows, mengapa kita perlu mempelajari koneksi telnet dengan menggunakan .NET? Contoh studi kasus, jika kita bertemu dengan sebuah sistem yang hanya bisa diakses melalui telnet dan kita memerlukan data dari sistem tersebut yang tentu saja melalui telnet, tentu mudah saja kita hanya membuka command prompt di Windows lalu menggunakan command telnet, nah tetapi jika kita ingin melakukan automasi pengambilan data terhadap sistem tersebut tentu saja kita membutuhkan aplikasi yang bisa berkomunikasi dengan sistem tersebut. Karena hal inilah, dengan menggunakan C# .NET, adalah merupakan satu solusi jika ingin membuat aplikasi dengan menggunakan telnet.

    Tanpa perlu berpanjang-lebar lagi, kita dapat melihat contoh class yang bisa digunakan untuk melakukan koneksi:

     

    namespace Telnet
    {
    enum Verbs {
    WILL = 251,
    WONT = 252,
    DO = 253,
    DONT = 254,
    IAC = 255
    }

    enum Options
    {
    SGA = 3
    }

    class TelnetConnection
    {
    TcpClient tcpSocket;

    int TimeOutMs = 100;

    public TelnetConnection(string Hostname, int Port)
    {
    tcpSocket = new TcpClient(Hostname, Port);

    }

    public string Login(string Username,string Password,int LoginTimeOutMs)
    {
    int oldTimeOutMs = TimeOutMs;
    TimeOutMs = LoginTimeOutMs;
    string s = Read();
    if (!s.TrimEnd().EndsWith(":"))
    throw new Exception("Failed to connect : no login prompt");
    WriteLine(Username);

    s += Read();
    if (!s.TrimEnd().EndsWith(":"))
    throw new Exception("Failed to connect : no password prompt");
    WriteLine(Password);

    s += Read();
    TimeOutMs = oldTimeOutMs;
    return s;
    }

    public void WriteLine(string cmd)
    {
    Write(cmd + "\n");
    }

    public void Write(string cmd)
    {
    if (!tcpSocket.Connected) return;
    byte[] buf = System.Text.ASCIIEncoding.ASCII.GetBytes(cmd.Replace("\0xFF","\0xFF\0xFF"));
    tcpSocket.GetStream().Write(buf, 0, buf.Length);
    }

    public string Read()
    {
    if (!tcpSocket.Connected) return null;
    StringBuilder sb=new StringBuilder();
    do
    {
    ParseTelnet(sb);
    System.Threading.Thread.Sleep(TimeOutMs);
    } while (tcpSocket.Available > 0);
    return sb.ToString();
    }

    public bool IsConnected
    {
    get { return tcpSocket.Connected; }
    }

    void ParseTelnet(StringBuilder sb)
    {
    while (tcpSocket.Available > 0)
    {
    int input = tcpSocket.GetStream().ReadByte();
    switch (input)
    {
    case -1 :
    break;
    case (int)Verbs.IAC:
    // interpret as command
    int inputverb = tcpSocket.GetStream().ReadByte();
    if (inputverb == -1) break;
    switch (inputverb)
    {
    case (int)Verbs.IAC:
    //literal IAC = 255 escaped, so append char 255 to string
    sb.Append(inputverb);
    break;
    case (int)Verbs.DO:
    case (int)Verbs.DONT:
    case (int)Verbs.WILL:
    case (int)Verbs.WONT:
    // reply to all commands with "WONT", unless it is SGA (suppres go ahead)
    int inputoption = tcpSocket.GetStream().ReadByte();
    if (inputoption == -1) break;
    tcpSocket.GetStream().WriteByte((byte)Verbs.IAC);
    if (inputoption == (int)Options.SGA )
    tcpSocket.GetStream().WriteByte(inputverb == (int)Verbs.DO ? (byte)Verbs.WILL:(byte)Verbs.DO);
    else
    tcpSocket.GetStream().WriteByte(inputverb == (int)Verbs.DO ? (byte)Verbs.WONT : (byte)Verbs.DONT);
    tcpSocket.GetStream().WriteByte((byte)inputoption);
    break;
    default:
    break;
    }
    break;
    default:
    sb.Append( (char)input );
    break;
    }
    }
    }
    }
    }

     

    Untuk menggunakan class diatas cukup dengan melakukan instansiasi dan panggil method yang bersangkutan

     

    class Program
    {
    static void Main(string[] args)
    {
    //create a new telnet connection to hostname "gobelijn" on port "23"
    TelnetConnection tc = new TelnetConnection("NaughtyPanda", 23);

    //login with user "root",password "rootpassword", using a timeout of 100ms, and show server output
    string s = tc.Login("root", "rootpassword",100);
    Console.Write(s);

    Console.WriteLine("***DISCONNECTED");
    Console.ReadLine();
    }
    }

     

    Dengan demikian koneksi telnet telah berhasil dilakukan dan program bisa dikembangkan lebih lanjut sesuai keinginan anda.

    338 Views, 0 Comment(s), Published on: 03-16-2011 7:38 by ivan to Christian Ivan's Blog
    | More
  • Microsoft Forefront Threat Management Gateway 2010

    Microsoft Forefont Threat Management Gateway adalah sebuah aplikasi yang menyediakan layanan keamaman dalam melakukan akses ke jaringan lokal ataupun internet. Beberapa kelebiahnnya antara lain : beberapa macam proteksi yang terintegrasi satu sama lain, kemudahan dalam mengatur gateway, dan tentu saja mengurangi kompleksitas dan biaya dalam membuat keamanan web.

    Bagi yang sebelumnya lebih mengenal Microsoft Internet Security and Acceleration Server (ISA Server), Microsoft Forefont Threat Management Gateway merupakan generasi lanjut dari ISA Server. Berikut history Microsoft ISA Server hingga menjadi Microsoft Forefont TMG :

    • 1997 - Microsoft Proxy Server
    • 2001 - Microsoft ISA Server 2000
    • 2004 - Microsoft ISA Server 2004
    • 2006 - Microsoft ISA Server 2006
    • 2008 - Microsoft Forefront Threat Management Gateway Medium Business Edition
    • 2010 - Microsoft Forefront Threat Management Gateway 2010
    Beberapa fitur terbaru diantaranya :
    1. URL Filtering : Forefront TMG menggunakan Microsoft Reputation Services untuk melakukan URL filtering, menggabungkan berbagai sumber untuk memperbesar lingkup URL dan karegori URL
    2. Web anti-malware protection : Dalam sebuah traffic web akan dilakukan pengecekan terhadap malware atau virus, termasuk file yang terkompresi. Folder atau file yang terenkripsi dapat diblock.
    3. HTTPS inspection : HTTPS-encrypted sessions dapat dihindarkan dari malware ataupun serangan semacam exploit. Group khusus seperti perbankan dapat tidak dibuatkan pengecualian dalam pengecekan dengan alasan privacy.
    4. Network Inspection System (NIS) : Traffic akan dicek apabila ada exploit yang dilakukan terhadap Microsoft vulnerabilities. Proteksi dapat diupdate apabila dibutuhkan.
    5. Enhanced Voice over IP support : Forefont TMG termasuk SIP Tranversal, menyediakan pengembangan VOIP didalam jaringan dengan pengaturan yang sederhana.
    6. Windows Server 64-bit support : Forefont TMG dapat diinstall di Windows Server 2008 64 bit

    Perbandingan Forefont TMG dengan versi sebelumnya :

    Untuk fitur lebih lengkap dapat dilihat di situs Microsoft.

    435 Views, 0 Comment(s), Published on: 03-10-2011 23:05 by ivan to Christian Ivan's Blog
    | More