Windows Service with TopShelf
Rekan-rekan pasti sudah mengetahui apa yg dimaksud dengan windows service. Singkatnya, Windows service memungkinkan kita untuk menjalankan aplikasi yg berjalan pada sesi windowsnya sendiri. Service ini dapat dapat otomatis berjalan ketika komputer booting. Kita bisa start, pause dan jug restart service. Service tidak memiliki interface.Service ini cocok digunakan untuk server side dimana kita butuh fungsionalitas yg tidak menggangu dengan user yang bekerja pada komputer yang sama.
Aneh aja klo kita buat aplikasi server dengan menggunakan Console Application. Bisa aja sih. Tapi bakalan gak aman dan bisa di close tanpa sengaja sama orang lain. Klo di Linux kita punya daemon di windows kita punya Windows Service.
Ada beberapa langkah standar yang harus kita lakukan untuk membuat windows service. Hal tersebut merupakan code infrastructure yang sebenarnya hampir sama di setiap project. Karena kita menganut paham DRY (Don't Repeat Yourself) maka kita sudah pasti mencari alternatif lain untuk menghilangkan pekerjaan yang berulang-ulang tersebut. Untungnya di komunitas Open Source .NET sudah ada framework yang menyelesaikan masalah tersebut. TopShelf memudahkan kita untuk membuat windows service. Dengan beberapa line of code kita dapat membuat windows service.
TopShelf juga memiliki fitur lain yang disebut Shelving. Shelving merupakan TopShelf service host. Jadi kita tidak perlu membangun plumbing dan boiler plate code lagi utk hosting. Tetapi tinggal copy service yang kita mau ke directory deploy dan TopShelf akan otomatis merun service tersebut. Konsep ini mirip seperti yang di implementasikan di IIS.
Untuk penjelasan step by step nya bisa dilihat di sini