Saat ini saya sedang mempelajari sedikit mengenai WinForm & Smart Client. Berikut informasi yang bisa saya tangkap. Maaf jika ada yang salah, mohon dikoreksi.

Aplikasi berbasis Windows adalah aplikasi yang dikembangkan dibawah Sistem Operasi Windows, tidak termasuk aplikasi yang dikembangkan dibawah Sistem Operasi lain seperti Linux & Unix. Ada 2 macam aplikasi berbasis Windows di .net yaitu WinForm & Web application.

Salah satu teknologi Desktop Client Windows yang berbasis .NET dikenal dengan teknologi WinForm (Windows Form). Windows Form adalah perkembangan desktop client berbasis Win32 yang sering kita pakai pada saat ini.  Basis dari Windows Form adalah suatu class form dari namespace System.Windows.Form. yang merupakan class base dari teknologi Windows Form. Berdasar class ini kita dapat menaruh berbagai macam control, component hingga jenis form yang hendak ditampilkan (SDI atau MDI).

Pada umumnya aplikasi di bagi dalam 3 layer:
– Presentation / User Interface Layer
– Business Logic / Domain Layer
– Data Access Layer

WinForm terdapat pada layer Presentation. Tidak ada yang dilakukan kecuali ‘takes & validates’ inputan user dan juga menampilkan result. Tidak boleh ada business logic maupun akses ke database.

WinForm merupakan cara terbaik untuk membangun aplikasi smart client saat ini. Aplikasi Smart Client memiliki sebuah User Interface yang kaya yang menampilkan informasi yang datang dari sumber yang bermacam-macam. Untuk end user, data terlihat seperti datang dari sebuah sistem back-end. Tiap ada perubahan dalam aplikasi, sebuah perubahan tersebut akan tercermin ke semua client saat itu juga. Ini disebut Smart Client.

Proces yang terjadi saat user membuka sebuah aplikasi Smart Client :
1. User membuka aplikasi
2. Aplikasi merujuk pada assembly hosted dalam sebuah Web Server
3. Framework .NET memeriksa apakah assembly yang terakhir di download adalah benar versi terakhir
4. Jika tidak me-download versi terakhir dari server, unduh assembly secara lokal dan buka aplikasi

Dengan cara ini, tiap ada perubahan pada aplikasi dapat ditangani secara mudah pada satu lokasi, sehingga pengembangan aplikasi menjadi lebih mudah.

Karakteristik dari Smart Client, antara lain :
1. Mendukung kerja offline – smart clients dapat bekerja bahkan saat tidak terhubung dengan Internet. Saat client terbuhung, aplikasi Smart Client mampu meningkatkan performansi dan kegunaaannya dengan mengambil data dan mengaturnya dengan cara yang cerdas.
2. Aplikasi Smart client dapat dikembangkan dan diperbaharui secara real time di atas jaringan dari sebuah server pusat.
3. Aplikasi Smart client mendukung platform dan bahasa yang berbeda-beda karena dibangun dalam Web services.
4. Aplikasi Smart client dapat berjalan hampir di semua device yang dapat melakukan koneksi ke Internet, termasuk desktops, workstations, notebook, tablet PCs, PDA, dan mobile phones.