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