Presentation is loading. Please wait.

Presentation is loading. Please wait.

 Wallace B. McClure  Scalable Development, Inc. Scalable Development, Inc. Building systems today that perform tomorrow. Designing & Building Windows.

Similar presentations


Presentation on theme: " Wallace B. McClure  Scalable Development, Inc. Scalable Development, Inc. Building systems today that perform tomorrow. Designing & Building Windows."— Presentation transcript:

1  Wallace B. McClure  Scalable Development, Inc. Scalable Development, Inc. Building systems today that perform tomorrow. Designing & Building Windows Services with VB.NET

2 .NET Experiences  PDC 2000 Build (July 2000).  Visual Studio 1.0 Beta 1 (November 2000).  Book began (January 2001).  Visual Studio 1.0 Beta 2 (June 2001).  First Production ASP.NET App (July 2001).  Production Windows Service (November 2001). Runs today.  4 Production Applications by shipment.  Multiple running applications.

3 .NET Resources  ASP.NET – www.asp.net  AspAdvice – www.aspadvice.com  Windows Forms – www.windowsforms.net  Architecture – msdn.microsoft.com/architecture .NET News – www.dotnetwire.com

4 What are Windows Services?  Applications (Database, Web Server, …).  Good for long running / complicated operations.  Run all the time.  No User Interface.  Run within their own security context.  Limited access to local resources.  Limited access to remote resources.  Debugging.  Non-interactive.

5 Design Guidelines  Consistency.  No popup messages.  Information/Errors need to be written to somewhere.  EventLog.  Database.  Be careful blocking.

6 Types of.NET Applications  ASP.NET.  Web Services.  WinForms.  Components.  Windows Services.  Others.

7 .NET Support for Services  System.ServiceProcess namespace.  Inherit from the ServiceBase Class.  Installation.  ServiceController Class Allows communication from authorized user (WinForms, ASP.NET, or other) to a Service (thru SCM).

8 Languages Support  C++ (Managed & Unmanaged).  Visual Basic.  C#.  Other.NET Languages.

9 Parts of a.NET Windows Service  Service Control Manager (SCM).  System.ServiceProcess.ServiceBase class  Events.  Installation.  Process Installation.  Service Installation.

10 Events in ServiceBase  OnStart().  OnStop().  OnPause().  OnContinue().  OnShutdown().  OnPowerEvent().  OnCustomCommand().

11 OnStart() Event  Called when the Service is issued the start command.  VB Syntax: Protected Overridable Sub OnStart ( _ByVal args() as String )  Hard to Debug By Default.

12 Debugging the OnStart() Event  Create a dummy service that is a part of your process.  Start the dummy service to start the process.  Attach to running process.  Place breakpoint.  Start “real” service.

13 OnStop() Event  Called when the Service is issued the stop command.  Protected Overridable Sub OnStop().

14 OnPause() Event  Called when the Service is issued the pause command.  Protected Overrideable Sub OnPause().

15 OnContinue() Event  Called when the Service is issued the continue command.  Protected Overrideable Sub OnContinue().

16 OnShutdown() Event  Called when the System sends the shutdown command to all Applications specifying that a system shutdown is inprogress.  Similar to the OnStop() event.  Protected Overrideable Sub OnShutdown().

17 OnPowerEvent() Event  Called when the computer’s power status has changed. Typically, this applies to a laptop computer when it goes into a suspended state.  Not the same as a system shutdown.  Protected Overrideable Function OnPowerEvent( ByVal powerStatus as PowerBroadcastStatus ) as Boolean  Boolean return value is a response to a QuerySuspend broadcast.  True = Application is in a state where a suspend is ok. False = suspend is not ok.  PowerBroadcastStatus is an enumertion with 9 values.

18 OnCustomCommand() Event  Executed when a custom command is passed from the SCM to the service.  Protected Overridable Sub OnCustomCommand( ByVal command as Integer )  Command values between 128 & 255.

19 Security Context  Service runs within a defined security context (UserId/PassWord).  What you do not necessarily have access to:  Desktop.  Remote Resources.  Mapped Drives.  What you do have access to:  Local FileSystem.  Network Protocols (TCP/IP, …).  Database (ODBC, OleDb, MP).

20 Custom Commands / ServiceController  Use the ServiceController class.  ExecuteCommand( ByVal command as Integer ) method.  Start, Stop, Pause, Continue.  MachineName, ServiceName, Status properties.

21 Installation  Each executable must have a process installer.  Each service within a process must have a service installer.  Command line utility (installutil.exe)

22 App.Config  XML Format.  Excellent for read only information.

23 Great, Now What can You do with a Service?  Listen for events to occur.  Network requests.  Timer countdown.  Messages arriving in a message queue.  File system changes.  Other.

24 Example  Timer.  When the Timer counts down to zero, an event fires and our application performs an operation.  No continual polling occurs, no blocking, and no extra processing occurs on the system.

25 What’s Not to Like?  Requires the.NET Framework.  If a framework exception occurs when the framework stops, the Windows Service stops…….and there is nothing within the framework to restart that Windows Service.  Problem is rare, but possible. (ODP.NET 9.2.0.2.100.0 users, problem has been resolved)

26 Monitoring a Windows Service  Need something that won’t stop.  Can do it with.NET and a Console application.  Drop back to COM/API.  Use WMI & “Scheduled Tasks.”  Use ServiceController class.  Run every few days/hours/minutes to monitor the status of your Service.

27 Things to look at / Last Thoughts  Event Processing vs. Blocking.  EventLog.  Multiple Threads of Execution.  Weak References.  Performance Monitor Integration.  Nothing wrong with Interop.

28 Questions?  Scalable Development, Inc.  Consulting & Development Services.  http://www.scalabledevelopment.com http://www.scalabledevelopment.com  865-693-3004.  wallym@scalabledevelopment.com wallym@scalabledevelopment.com END Scalable Development, Inc. Building systems today that perform tomorrow.


Download ppt " Wallace B. McClure  Scalable Development, Inc. Scalable Development, Inc. Building systems today that perform tomorrow. Designing & Building Windows."

Similar presentations


Ads by Google