Pengantar
Kemunculan Visual Studio LightSwitch versi RTM menjadi babak baru bagi para developer untuk membuat aplikasi bisnis. Kemudahan dan fitur-fitur dari Visual Studio LightSwitch (disingkat menjadi LS) membuat pekerjaan developer menjadi lebih mudah dan –mungkin– mempersingkat waktu development (ini harapannya ya). LS ini sendiri masih seperti bayi sehingga fitur-fitur yang ada pada LS pun bisa jadi tidak sesuai dengan kebutuhan dari aplikasi Anda. Alih-alih membangun aplikasi menjadi lebih sulit jika Anda menggunakan LS. Sebaiknya pelajari dulu atau tanyakan kepada konsultan IT, jika Anda ingin membangun aplikasi LS ini.
Fokus postingan saya hanya di tahap deployment dari aplikasi lightSwitch (LS). Jika Anda tertarik mengenai cara membuat aplikasi LS, Anda dapat membaca link berikut:
- http://lightswitchhelpwebsite.com/Blog/tabid/61/EntryId/12/Online-Ordering-System-An-End-To-End-LightSwitch-Example.aspx (en)
- http://students.netindonesia.net/blogs/alysangadji/archive/2011/08/10/mudah-membuat-aplikasi-dengan-lightswitch.aspx (id)
- Atau Anda dapat mencarinyavia Google.
Aplikasi VS LightSwitch menggunakan arsitektur 3-tier yang terdiri dari klien, servis aplikasi (middle-tier), dan penyimpanan data (basisdata). Aplikasi LS dapat di-deploy ke berbagai lingkungan dengan berbagai macam cara. Anda dapat men-deploy aplikasi sebagai aplikasi desktop atau web (berbasis browser). Aplikasi desktop dapat berjalan di luar browser di dalam komputer Windows dan memiliki akses ke penyimpanan komputer (seperti HDD) dan aplikasi yang berjalan (seperti MS. Word). Sebenarnya aplikasi desktop dari LightSwitch merupakan fitur dari Silverlight yaitu OOB (Out Of Browser). Sedangkan aplikasi web berjalan di browser dan tidak memiliki akses penuh ke penyimpanan komputer atau aplikasi lainnya di dalam komputer tersebut. [1, terjemahan dari paragraf 1 dengan sedikit penambahan]
Jika Anda ingin men-deploy aplikasi LightSwitch pada server sendiri Anda dapat membaca [1]. Kali ini kita akan men-deploy pada web hosting di erudeye. Jika Anda meng-deploy aplikasi LS di web hosting lain, sebaiknya tanyakan terlebih dahulu kepada provider hosting tersebut apakah sudah mendukung LightSwitch atau belum. Pilihan deploy dari LightSwitch adalah jenis aplikasi (desktop atau web) dan jenis publishing (manual [dengan membuat MSDeploy package] atau menggunakan MS Web Deployment). Jenis aplikasi yang akan kita gunakan adalah aplikasi web, cara yang sama pun dapat dilakukan pada aplikasi desktop.
Proses deployment yang kita lakukan adalah mengikuti proses berikut (lihat gambar di bawah):

Ada 3 proses yaitu:
- Kita akan mendeploy aplikasi LightSwitch ke localhost menggunakan MS Web Deploy.
- Dari poin 1), akan menghasilkan file-file aplikasi LighSwitch yang kita buat dan juga database. Compress web folder dan backup database (bisa menggunakan fasilitas backup dari SQL Server Management [SSMS] atau generate SQL script dengan Data Publishing Wizard).
- Upload webFolder.zip ke server via FTP/file manager di control panel dan restore database Anda via SQL Server Web Admin yang disediakan oleh erudeye Hosting (jika berupa script SQL) atau jika berupa berkas .bak dapat menghubungi ke support erudeye Hosting.
Kebutuhan sebelum melakukan deploy:
- Anda sudah memiliki Visual Studio LightSwitch,
- Download source code dari http://www.codeproject.com/KB/silverlight/OnlineOrdering.aspx atau alternatif lainnya di sini (jika Anda tidak memiliki akun codeProject). Proyek tersebut memiliki lisensi Ms-PL.
- Web Deployment Tool 2.1
- Visual Studio LightSwitch 2011 Server Runtime and Local SQL (deploy ke SQL Server lokal)
- Visual Studio LightSwitch 2011 Server Runtime without Local SQL (deploy ke remote SQL Server)
Catatan: Untuk memudahkan instalasi Web Deployment Tool dan LightSwitch requisites, gunakan Web Platform Installer.
Proses#1: Deploy aplikasi LightSwitch ke localhost via MS Web Deploy:
- Extract berkas OnlineOrdering.zip ke Visual Studio default folder (folder saya seperti ini C:\Users\toni\Documents\Visual Studio 2010\Projects) atau folder bebas.
- Jalankan Visual Studio 2010 sebagai administrator, karena kita akan mem-publish ke folder wwwroot.
- Buka berkas OnlineOrdering.sln.
- Ubah Configuration dari Debug menjadi Release, lalu Build Solution atau CTRL+SHIFT+B.
- Pada Solution Explorer, klik kanan OnlineOrdering project > klik Publish.
- Pada LightSwitch Publish Application Wizard, klik Client Configuration pada menu navigasi di sebelah kiri lalu pilih Web pada radio button. Lalu klik Next.
- Karena kita akan men-deploy ke web hosting maka kita pilih IIS Server (atau biarkan secara default). Lalu klik Next.
- Kita akan menggunakan MS Web Deploy. Pilih radio button “Remotely publish to a server now”. Karena kita akan mem-publish ke localhost maka kita tidak akan diminta untuk mengisi username dan password dan Web Deploy, jika kita mengganti service URL ke MSDeployService URL dari suatu server maka kita akan diminta untuk mengisi username dan password. Biarkan nama default service URL dan Site/Application. Lalu klik Next.
- Pada Database Connections, sebelumnya Anda buat database baru dengan nama onlineOrdering dengan menggunakan SSMS. Lalu pada textbox pertama klik tombol (…). Isi nama server, pilih “Use Windows Authentcation”, lalu pilih database yang kita buat tadi yaitu onlineOrdering. Lalu klik Ok. Karena masih muncul warning pada textbox kedua yang diakibtkan karena ConnectionStrings tidak boleh menggunakan Integrated Security. Solusinya yaitu klik “Create Database Login…”. Isi username dan password, lalu klik Create (pastikan Anda mengaktifkan mixed authentication pada SQL Server). Anda dapat mengecek pada textbox kedua username database yang sudah kita buat. Lalu klik Next.
- Asumsinya untuk masuk ke aplikasi yang kita buat diperlukan autentikasi. Oleh karena itu, pilih radio button “Yes, create the Application Administrator at this time”. Isikan username, fullname dan password. Lalu klik Next.
- Berdasarkan [1], “This should be a valid certificate from a trusted Certificate Authority like VeriSign or if this is an internal application then you probably have certificates you use for enterprise deployment. If you don’t sign the application then users will see a warning message when installing the desktop application and they will not be able to get automatic updates if you update the application.”. Jadi, kita akan membuat membuat sertifikat untuk menge-sign berkas .xap atau client application. Centang “Specify a Certificate”. Lalu klik “Create a test certificate…”, lalu masukan password sertifikat ini, lalu klik OK. Lalu klik Next.
- Anda akan melihat ringkasan dari setting LightSwitch publish application wizard yang telah kita lakukan sebelumnya. Jika Anda menjalankan kembali publish wizard ini, secara otomatis Anda akan dibawa ke halaman Summary. Lalu klik Publish.
- Lalu tunggu hingga publish telah berhasil dilakukan (dan tidak ada error, jika terjadi error pastikan Anda sudah menginstall kebutuhan deployment aplikasi LightSwitch atau cari error tersebut via google). Untuk mengecek kita sudah berhasil mem-publish. Buka URL berikut http://localhost/onlineOrdering , ternyata ada error, coba set mode customErrors menjadi “Off”. Lalu jika kita lihat ternyata website tersebut membutuhkan application pool .NET 4. Oleh karena itu, buka IIS Manager lalu arahkan ke virtual directory onlineOrdering lalu ubah app pool menjadi ASP.NET v4.0. Setelah itu buka kembali URL tadi. Pada halaman awal terdapat halaman login, isi username dan password, lalu klik login. Berikut adalah tampilan dari aplikasi LightSwitch yang sudah kita deploy ke localhost.
Proses#2: Compress web folder dan backup database/generate SQL script dari lokal:
- Buka Windows Explorer lalu pergi ke C:\inetpub\wwwroot\OnlineOrdering. Compress file-file yang terdapat di dalam folder OnlineOrdering menjadi OnlineOrdering.zip. Karena user kita tidak memiliki hak tulis ke folder tersebut maka jalankan program compress file seperti 7-zip sebagai administrator.
- Backup database dengan cara menggunakan fasilitas Backup dari SSMS, klik kanan database yang ingin di-backup > klik Tasks > klik “Backup…” > lalu klik OK. Anda juga dapat menggunakan Database Publishing Wizard untuk menghasilkan SQL script schema dan data, bisa dibaca di sini.
Proses#3: Upload OnlineOrdering.zip dan restore database ke server:
- Buat website di control panel lalu pada tab Extensions, pilih ASP.NET 4 (Integrated Pipeline), lalu klik Update.
- Pindahkan web folder yaitu OnlineOrdering.zip via FTP/File Manager di control panel.
- Buat database baru dengan nama onlineOrdering lalu jika Anda menggunakan berkas .bak maka mintalah support erudeye untuk me-restore database Anda atau Anda dapat menggunakan SQL Server Web Admin jika menggunakan SQL Script hasil Database Publishing Wizard. Pada bagian Tools di SQL Server Web Admin, klik “New Query”, lalu copy SQL script lalu klik Submit.
- Lalu tahapan terakhir adalah menguji aplikasi LigthSwitch yaitu OnlineOrdering bisa berjalan di atas server atau tidak. Pastikan ConnectionString pada web.config sudah benar. Berikut tampilan aplikasi OnlineOrdering di server erudeye.
Catatan:
- Jika tahapan di atas belum berhasil silakan dicari error-nya di google atau MSDN forum.
Referensi:
[1] http://blogs.msdn.com/b/bethmassi/archive/2011/03/23/deployment-guide-how-to-configure-a-web-server-to-host-lightswitch-applications.aspx