Fun with windows services

Post on 19-Jul-2015

366 views 2 download

Tags:

transcript

Fun with Windows Services

Michael Melusky – Tuesday November 18, 2014 (central penn .net)https://twitter.com/mrjavascripthttps://github.com/mrjavascript

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

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

Managing Windows Services:

▪ In Windows 8.1, hit WIN key and type “services.msc”

▪ In Windows 7/XP, Run -> “services.msc”

Managing Windows Services:

0

1

2

3

4

5

6

Category 1 Category 2 Category 3 Category 4

Chart Title

Series 1 Series 2 Series 3

Windows Service Details

▪ Manage Startup Type

▪ Manage Service Status

▪ Manage Description

▪ Manage Security

Goal of Windows Service Development?

Alternatives to Windows Services:

▪ Windows Task Scheduler:– Ideal for nightly FTP retrieval

– Hourly backup

– Weekly Defrag

▪ Example (“Hello World”)

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”)

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”)

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

log4net

▪ http://logging.apache.org/log4net/

▪ Enterprise logging framework built off of the famous Java framework log4j

▪ NUGET– PM> Install-Package log4net

Example #1

▪ Automated Backup

Example #2

▪ Event Viewer

Example #3

▪ Automated SMS Resource Reminder

Example #4

▪ Fun with OneNote

Example #5

▪ SQL Server Job Store