Home > Uncategorized > Windows Service made Easy

Windows Service made Easy

What is Windows service?

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.

Just run services.msc you will see the list of windows service

Jika anda memiliki SQL Server running pada system anda maka kita dapat melihat services dari SQL Server sebagai berikut.

Untuk lebih jelasnya dapat dibaca pada referensi berikut
Introduction to Windows Service Applications

Langkah2 untuk membuatnya dengan cara manual dapat diikuti pada tutorial berikut

Windows Services Step By Step

So Whats new?? We already know that…. Sabar kita akan segera masuk kepada kemudahan yang ditawarkan Open Source pada .NET Development

Getting Easy with TopShelf

Salah satu yang saya suka dari development di windows based khususnya .NET Framework adalah zero friction. Banyak yang bisa dilakukan dengan mengurangi hal2 yang tidak perlu dan focus ke hal2 yang essential saja. Term Zero Friction Development dipopulerkan oleh Ayende Rahien – NHibernate Creator. That’s why I choose .NET for my primary platform instead of Java.

Kita dapat menggunakan TopShelf utk menghilangkan friction yang kita alami dalam membuat windows service. Kita tidak perlu lagi mengulangi step by step walkthrough yang membosankan itu setiap kali akan membuat windows service. Hanya dengan beberapa line of code kia dapat membuat windows service.
Pertama kali download terlebih dahulu library TopShelf nya. Pilih versi yg terbaru.

Jika anda penasaran dan ingin mengutak atik source code nya bisa di clone repository. Tetapi sebelumnya install Git untuk windows terlebih dahulu. Dan kemudian jalankan command berikut ini.

git clone git://github.com/Topshelf/Topshelf.git

Extract binary yang telah kita download tadi dan kita akan mendapatkan TopShelf.dll. Untuk kali ini abaikan saja dulu assembly yang lain. Pilih folder sesuai dengan framework yang kita gunakan.

Pada tutorial kali ini kita akan membuat File Watcher yang berfungsi untuk medelete setiap file yang ada di directory D:\sterilfolder. Yapz. Saya sudah kehabisan akal untuk memilih contoh yang sesuai. Yg penting intinya windows servicenya dan background processing nya toh. Anda bisa menyesuaikannya dengan kebutuhan.

Buat Project Console Application

Tambahkan reference ke TopShelf.dll

Ubah target frameworknya dari .NET Framework 4 Client Profile menjadi .NET Framework 4

Buat kelas yang berisi long running process utk watcher kita tersebut.

Ketikkan code berikut pada Main.cs untuk meng host service tersebut.

Kita mendapat keuntungan dengan dapat menjalankan aplikasi tersebut dari console dan dari window service. Jika ingin menjalankan sebagai console tekan saja F5 atau CTRL + F5 atau Jalankan executablenya

Untuk menjalankannya sebagai windows service pindah ke direktori dimana exe nya telah dibuat. Dan ketikkan perintah berikut ini dari command prompt. Jangan lupa untuk menjalankan command prompt dengan priviledge administrator.

Perhatikan bahwa service kita tersebut sudah terinstall di service control panel. Hanya saja servicenya masih dalam keadaan mati.

Jika kita ingin menginstall dan langsung menjalankan service tersebut kita dapat mengeksekusi perintah. Kita akan melihat apakah service kita berjalan.

Copy file apa saja ke dalam directory D:\sterilfolder. Maka file tersebut akan di delete dengan segera .
Mudah sekali bukan?

Untuk lebih lengkapnya silahkan baca reference berikut ini

TopShelf Getting Started
Command Line Syntax
Windows Service in 5 Steps with TopShelf

Categories: Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 1,507 other followers

%d bloggers like this: