C#Windows服务开发从入门到精通

一、课程介绍

大家都知道如果想要程序一直运行在windows服务器上,最好是把程序写成windows服务程序;这样程序会随着系统的自动启动而启动,自动关闭而关闭,不需要用户直接登录,直接开机就可以启动。 今天将给大家带来实际项目中经常运用的技术—C# 如何使用创建Windows服务进行应用程序开发。

本课程适合人群如下:

1、有一定的NET开发基础并对Windows服务编程技术有一定了解和认识。

2、进一步加深提高和扩展对Windows服务编程技术的认识视野。

3、喜欢阿笨的干货分享课程的童鞋们。

如果你觉得阿笨的《C# Windows服务开发从入门到精通》分享课程只是仅仅带领大家学习"C#如何一步一步的创建Windows服务应用程序的话,那么你就大错特错了。

阿笨:你说好的给大家带来的干货呢?

如果您同样对本次分享课程感兴趣的话,那么请跟着阿笨一起学习,看看阿笨在实际项目中是如何玩转Windows服务编程技术的吧!

废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

二、涉及覆盖的知识点

2.1、 C# Windows服务应用程序开发零基础上手入门实战演练。

2.2、通过第三方组件 (Topshelf)创建C# Windows服务应用程序。

2.3、分享C# Windows服务编程在实际项目中的一些小技巧和小技能。

1)、掌握常用 Windows服务操作bat命令。

2)、System.Threading.Timer定时器的妙用 。

3)、如何优雅的调试Windows服务应用程序。通过Debugger对象采用编程方式灵活的调试我们的部署的Windows服务应用程序。

4)、如何为应用程序添加管理员权限。

5)、如何通过bat文件制作 Windows服务安装和卸载一键安装包。

6)、系统项目中有很多后台定时任务,我们该怎么办?阿笨推荐采用"按功能模块划分+ 服务自治的原则",进行管理。

本次分享课程最终目的:

熟练地掌握在实际项目开发中遇到此类需求开发场景能够灵活并高效的以优雅方式创建Windows服务应用程序!

三、概念名称含义解释

3.1、什么是计算机服务?

计算机系统服务(system services):指的是执行指定系统功能的程序、例程或进程,以便支持其他程序!

3.2、什么是Windows服务?

Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这种服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。

一句话总结:Windows服务:Microsoft Windows 服务,使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。

3.3、 什么是 Topshelf ?

Topshelf是一个开源的跨平台的服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务使用Topshelf创建Windows服务。一句话: 和ServiceBase、ServiceInstaller那一套的目的一样,都是用来创建Windows服务的。

参考博客:

https://www.cblogs.com/51net/p/3871861.html

https://www.cnblogs.com/jys509/p/4614975.html

https://www.cnblogs.com/yunfeng83/p/6375078.html

四、源码在线解读和演示

4.1、 C# Windows服务应用程序开发零基础上手入门实战演练。

4.1.1、C#编写的Windows服务基本应用流程如下:

1)、如何编写windows服务程序。

2)、如何卸载windows服务程序。

3)、如何调试windows服务程序。

4)、如何安装windows服务程序。

4.2、通过第三方组件 (Topshelf)创建C# Windows服务应用程序。

Install-Package Topshelf Install-Package Topshelf.Log4Net

github官网地址:https://github.com/Topshelf/Topshelf

4.3、分享C# Windows服务编程在实际项目中的一些小技巧和小技能。

1)、掌握常用 Windows服务操作bat命令。

2)、System.Threading.Timer定时器的妙用 。

NET给我们提供了三种定时器,阿笨之所以推 System.Threading.Timer ,只要是因为它是通过.NET Thread Pool实现的,轻量,计时精确,对应用程序消息没有特别的要求。同时也是使用最简单的。*如何灵活的解决我们实际项目中经常遇到的定时器执行时间和间隔时间出现的并发问题。

3)、如何优雅的调试Windows服务应用程序。通过Debugger对象采用编程方式灵活的调试我们的部署的Windows服务应用程序。

4)、 如何为应用程序添加管理员权限。

添加应用程序清单文件 app.manifest,为应用程序添加管理员权限。

5)、 如何通过bat文件制作 Windows服务安装和卸载一键安装包

Windows服务安装包的制作,阿笨推荐用bat文件进行直接安装吧,完全没有必要制作成exe可执行文件。

6)、系统项目中有很多后台定时任务,我们该怎么办?阿笨推荐采用"按功能模块划分+ 服务自治的原则“,进行管理。

在线观看

五、总结

如果您想更加全面的学习一下关于阿笨项目中使用Windows服务应用程序的实战技能,推荐大家可以学习一下阿笨早期之前分享的《.NET线程池技术项目实战演练》课程。俗话说的好:师父领进门修行在个人,希望大家在学习的道路上一直坚持下去!

不信的话,扫一扫

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180323G1VJCB00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券