Pendahuluan

Dokumen library adalah sarana untuk menyimpan file seperti seperti *.doc, *.xls atau *.txt , yang disediakan oleh SharePoint. Dokumen library dapat dibayangkan sebagai sebuah folder didalam komputer ditambah kemampuan untuk mengasosiasikan metadata kedalam file, merekam jejak perubahan (version history), mendefinisikan workflow dan lain sebagainya.

Meskipun pengguna dapat mengupload hampir semua jenis file ke dalam Document library, namun sayangnya SharePoint hanya menyediakan integrasi dengan aplikasi klien berbasis Microsoft Office. Integrasi dengan aplikasi klien ini memungkinkan SharePoint membuka aplikasi klien pada saat pengguna mengklik tautan file Office  seperti *.docx, *.xlsx dsb. Sementara itu jika pengguna mengklik tautan bukan file-file Office, maka akan muncul jendela dialog untuk mengunduh file itu terlebih dahulu karena SharePoint tidak dapat meluncurkan aplikasi klien yang sesuai.

Bagaimana cara SharePoint menyediakan integrasi dengan aplikasi klien?

Integrasi dengan aplikasi klien terjadi dengan bantuan kontrol ActiveX yang didistribusikan secara transparan pada saat instalasi aplikasi Microsoft Office. Kontrol ActiveX ini terdapat didalam file OWSSUPP.dll, yang diinstall di folder %ProgramFiles%\Microsoft Office\Office14.

Dari sisi server, SharePoint membaca definisi kontrol ActiveX yang ada didalam docicon.xml untuk mengetahui kontrol ActiveX yang sesuai untuk jenis file tertentu. Kemudian aplikasi web SharePoint akan mengirimkan script JavaScript ke browser klien (sebagai bagian dari core.js). JavaScript tersebut berfungsi untuk mendeteksi keberadaan kontrol ActiveX di komputer klien dan kemudian mengaktifkan/me-non-aktifkan fungsi-fungsi yang terkait.

 

 


 

Mengintegrasikan Remote Desktop Client dengan SharePoint

Remote Desktop Client adalah aplikasi yang berguna untuk melakukan koneksi desktop jarak jauh dengan menggunakan protokol RDP. Koneksi desktop jarak jauh ini memberi jalan bagi pengguna untuk dapat mengakses sebuah komputer target tanpa harus mendatanginya secara fisik. Selama komputer target terhubung dengan jaringan komputer, maka pengguna akan dapat melakukan operasi di dalam komputer target seperti layaknya sedang berada didepan konsol secara fisik.

Konfigurasi koneksi Remote Desktop Client ini dapat disimpan didalam file, dengan tipe *.rdp. Sistem operasi Windows mengasosiasikan file *.rdp dengan aplikasi Remote Desktop Client, sehingga pada saat pengguna mengklik file *.rdp; aplikasi Remote Desktop Client akan diluncurkan dan melakukan koneksi ke komputer target seperti yang tersimpan didalam file *.rdp tersebut.

File *.rdp tersebut dapat *** disimpan di Dokumen library, namun sayangnya aplikasi Remote Desktop Client tidak akan langsung diluncurkan oleh SharePoint karena bukan termasuk file aplikasi berbasis Microsoft Office.

Untuk mengintegrasikan Remote Desktop Client dengan SharePoint, dibutuhkan JavaScript dan ActiveX yang bersesuaian. Microsoft telah menyediakan ActiveX untuk Remote Desktop Client yang terinstall pada saat installasi aplikasi remote dekstop, bernama MsRdpWebAccess.MsRdpClientShell.  Untuk menyisipkan JavaScript kita dapat menggunakan berbagai macam pilihan strategi, masterpage, delegated control, httphandler dsb. Pilihan jatuh pada HttpHandler karena kita dapat melakukan intervensi respon secara spesifik, dalam hal ini kita akan mengintervensi respon terhadap request untuk mengambil file *.rdp.

HttpHandler tersebut bertugas untuk :
1. Mengkonstruksi JavaScript untuk mendeteksi dan meluncurkan kontrol ActiveX MsRdpWebAccess.MsRdpClientShell. Jika JavaScript tidak dapat mendeteksi kontrol ActiveX, maka script tersebut akan mengirimkan request dengan parameter query Download=1. Parameter query tersebut akan menginstruksikan HttpHandler untuk mengirimkan stream file.
2. Mengirimkan stream file *.rdp jika JavaScript tidak dapat mendeteksi kontrol ActiveX .

Kode sumber lengkap dan download solusi

Kode sumber lengkap dapat dibaca pada tautan berikut RDPViewer SharePoint Solution Source Code. WSP dapat *** diunduh dari tautan berikut RdpHttpHandler.wsp.