1. Fun with Windows
Services
Michael Melusky –Tuesday November 18, 2014 (central penn .net)
https://twitter.com/mrjavascript
https://github.com/mrjavascript
2. What is a Windows Service?
▪ A long running executable application that runs in its own Windows
Session
▪ Can be started automatically upon Windows restart, can be paused
and stopped
▪ No user interface is shown
3. When to use Windows Services?
▪ Your program accepts incoming requests and connections (e.g. mail
server, FTP server, et al.)
▪ If you need to do processing without an active user logged in
▪ Monitoring queues, file systems
4. Managing Windows Services:
▪ In Windows 8.1, hit WIN key and type “services.msc”
▪ In Windows 7/XP, Run -> “services.msc”
5. Managing Windows Services:
6
5
4
3
2
1
0
Chart Title
Category 1 Category 2 Category 3 Category 4
Series 1 Series 2 Series 3
6. Windows Service Details
▪ Manage Startup Type
▪ Manage Service Status
▪ Manage Description
▪ Manage Security
8. Alternatives to Windows Services:
▪ Windows Task Scheduler:
– Ideal for nightly FTP retrieval
– Hourly backup
– Weekly Defrag
▪ Example (“Hello World”)
9. Building Services with Visual Studio
▪ Can be built using the “Windows Service” project type in Visual
Studio
▪ Built with either C# or VB.NET
▪ Example (“File Creator”)
10. Topshelf
▪ http://topshelf-project.com/
▪ Easier approach for developing Windows Services
▪ Can convert a Windows Console application into a Service (easy for
debugging!)
▪ NUGET:
– PM> Install-Package Topshelf
▪ Example (“File Creator Redux”)
11. Quartz.NET
▪ http://www.quartz-scheduler.net/
▪ Enterprise Job Scheduler ported from the famous Java framework
– Jobs implement the IJob interface
– Jobs can be scheduled using Triggers
– Jobs and triggers can be stored in a data store (e.g. relational database)
▪ NUGET:
– PM> Install-Package Quartz