很多時候都在討論是否需要了解一個組件或者一個語言的底層原理這個問題,其實我個人覺得,對于這個問題,每個人都有自己的看法,個人情況不同,選擇的方式也就會不同了。我個人覺得無論學習什么,都應(yīng)該嘗試著去了解對應(yīng)的原理和源碼(這里就不要急著吐槽,容我說完)。對底層的了解不是為了讓你寫出類似的東西,讓你寫也不可能寫的出來,重寫一個就需要以此修改整個底層結(jié)構(gòu),了解底層知識只是為了讓你可以在寫業(yè)務(wù)代碼時,選擇合適的方式,以此使底層與業(yè)務(wù)層配合達到效率最佳。任何一種方式有壞有好,需要合適的選擇。
如果覺得樓主以上的說法不對,或者有些不妥,還望見諒,因為爭論一個觀點沒有意義,認為對的人自己會去理解,認為不對的,可以忽略。沒有這個必要去花費時間和精力取討論這種事情。
以上是扯淡,下面切入正題。前面介紹了一個組件Hangfire,用于設(shè)置定時任務(wù)等等操作,在這里介紹另一款組件Topshelf。
一.Topshelf組件概述
Topshelf是.NET平臺的Windows服務(wù)框架。Topshelf可以輕松創(chuàng)建Windows服務(wù),測試服務(wù),調(diào)試服務(wù),并最終將其安裝到Windows服務(wù)控制管理器(SCM)中。Topshelf通過允許開發(fā)人員專注于服務(wù)邏輯,而不是與.NET框架中的內(nèi)置服務(wù)支持交互的細節(jié)。開發(fā)人員不需要了解服務(wù)類的復雜細節(jié),通過InstallUtil執(zhí)行安裝,或者了解如何將調(diào)試器附加到服務(wù)以進行故障排除問題。
創(chuàng)建Windows服務(wù)與創(chuàng)建控制臺應(yīng)用程序類似,控制臺應(yīng)用程序創(chuàng)建后,創(chuàng)建一個具有公共Start和Stop方法的單一服務(wù)類。服務(wù)操作的方式較多,自動,自動(延遲),手動和禁用啟動選項本地系統(tǒng),本地服務(wù),網(wǎng)絡(luò)服務(wù),用戶名/密碼或安裝期間提示的服務(wù)憑證。服務(wù)啟動依賴項,包括SQL Server,MSMQ和其他具有不同服務(wù)名稱的多實例服務(wù)安裝服務(wù)恢復選項,包括重新啟動,重新引導或運行程序。