Aug 21, 2008

Sharepoint Development Issue

VISUAL STUDIO EXTENSION FOR WSS v1.2 (Visual Studio 2005)

Error "Object reference not set to an instance of an object" saat Deploy WebPart


Saat proses Deploy Web Part, memang sedari awal tidak disarankan Deploy secara "Remote", artinya Web Part cuma bisa di-Deploy kalau Visual Studio 2005 berada satu mesin dengan Sharepoint, entah WSS ato MOSS. Hal ini yang gak pernah aku sadari dari awal deploy aplikasi.

Dari banyak blog yang aku baca tentang masalah ini, kemungkinan karena credential user login di komputer deploy dan development berbeda. But, It's just an issue. Belum ada pemecahan masalah ini ketika aku mencoba nge-Lab sendiri, menggunakan VPC lengkap dg AD, dan Server, plus Notebook Acer kesayangan ini Join Domain ke server VPC. User login di Notebook dan user administrator (yang digunakan saat instalasi WSS 3.0) adalah sama.

Licensing Issue
Dari blog yang sering muncul di Microsoft, kebanyakan bilang bahwa hal ini tidak dipungkiri karena mslh licensing. Apa alasannya, aku tak tahu. Hanya Bill Gates dan Tuhan yang tahu. Bahkan, saat kamu coba develop aplikasi Windows Based, dengan notabene aplikasi untuk mengakses List di WSS 3.0, tidak akan berhasil ketika jalan di beda server / mesin. Jika aplikasi windows based itu berjalan 1 mesin dengan engine WSS 3.0 ataupun MOSS 2007, aplikasi itu jalan. Ketika berada di luar mesin yang tertanam core engine Sharepoint, aplikasi itu akan tiba-tiba menganggap bahwa URL tidak ditemukan.
Entry dari Windows Based Application saat mengakses portal, umumnya mendefinisikan fungsi ini, tetapi yang terjadi jika diakses diluar mesin, berakibat pada aplikasi menganggap bahwa URL tidak ditemukan. (Gilaaa.... Microsoft mata duitan...lisensi...lisensi...dan lisensi melulu). Maklum, WSS 3.0 kan barang gratisan. Tapi masih sama dengan MOSS 2007, tetap tidak bisa diakses.

Mengambil Sharepoint Core Assembly File


Konyol juga kalo ada beberapa assembly yang sudah merasa kita ambil (saat develop assembly file berbeda mesin dengan WSS 3.0) ternyata masih ada assembly yang tidak terambil. Saat develop aplikasi untuk WSS 3.0 di mesin berbeda, saat awal setelah melakukan copy assembly di folder Program Files\Common Files\Microsoft Shared\Web Server Extension\12\BIN akan keluar error bahwa VS 2005 tidak menemukan assembly Microsoft.Sharepoint.intl.dll. Pada dasarnya, GlobalAssemblyCache (letaknya berada di C:\Windows\Assembly) merupakan folder biasa. Sekilas dg Windows Explorer Search, tidak akan menemukan file Microsoft.Sharepoint.intl.dll.

Practice
Buka Command Prompt, tuju C:\Windows\Assembly, ketik DIR. Masih kurang jelas? Assembly itu folder biasa. Karena tipe Microsoft.Sharepoint.* family adalah MSIL, maka tuju GAC_MSIL. Cari Microsoft.Sharepoint.intl.dll. Masih ada folder lagi di dalamnya? Pasti ada, tapi cuma ada 1 folder. Buka dan BINGO, dapat file DLLnya.



Kesimpulan
Pertama,
Sharepoint WebPart tidak bisa dibangun di dalam machine yang berbeda dari machine Sharepoint itu sendiri. Install WSS 3.0 atau MOSS 2007 di mesin / server A, ya running aplikasinya (Windows Based) di server itu sendiri. Kecuali, WSS 2.0 (yang dulu namanya adalah SPS 2.0).

Kedua,
VSeWSS juga tidak bisa diinstall di machine yang berbeda dengan machine utk WSS 3.0 atau MOSS 2007. Saat develop, VSeWSS menggunakan user yang ada di machine terinstall, dan untuk develop, dia butuh akses full control ke WSS server. Teori ini bisa dibantah, karena pembuktian bahwa ketika aku join domain ke server WSS 3.0, login dengan user yang sama yang digunakan saat install WSS 3.0, develop tetap gagal.

That's all, Folks...!