由于現(xiàn)在會使用WinForm的人是越來越少了,可能有時候做點小東西就只好用ASP.NET去完成了(喜歡控制臺的朋友請不要頂針),如果是這樣,悲劇就發(fā)生了:一個小工具(或者小的演示項目),發(fā)給朋友去用,總不至于讓人家也裝個IIS或者VS20XX吧?如果沒有這二樣,這種小工具還真不方便運行。怎么辦?做過ASP.NET開發(fā)的人都知道:網(wǎng)站通常要布署到IIS上才能直接運行,當(dāng)然也不排除你用VS打開項目并使用VS自帶的WebDev.WebServer.exe來啟動程序。這種方式難免有不方便的時候。
我平時就喜歡寫些小工具,還好,我會WinForm,所以這個問題還好解決。但有時我要把一些小的網(wǎng)站作品給別人使用時,同樣會遇到這種問題。終于我做了一個很方便的小工具,徹底地解決了ASP.NET網(wǎng)站不能像WINFORM那樣運行的難題。今天,我給大家演示一下這個小工具(它非常小,還不到300K),我相信你會喜歡它的。
記住哦,我的工具的名字叫:FishAspnetLoader
操作方式
工具好不好用,操作的易用性很關(guān)鍵,來看看我的工具是如何啟動一個網(wǎng)站的。
在Windows資源管理器中,找到您要啟動的網(wǎng)站所在目錄,右擊鼠標(biāo),如下圖:
此時只要點擊【用FishAspnetLoader加載此目錄為網(wǎng)站】即可。
是的,我沒說錯,這樣就可以了,任何目錄都可以,也不需要您把什么什么文件拷貝到什么地方,【只要右擊鼠標(biāo),點一下菜單就行了】。
網(wǎng)站的運行效果如下:
您說現(xiàn)在是不是一個WinForm程序在運行?
你說什么,沒有對話框?那你再來看:
現(xiàn)在像個WinForm程序了吧。
支持的ASP.NET程序類別
前面也說過,設(shè)計這個小工具是為了解決ASP.NET程序運行受限制的問題。這個工具可以支持WebForm, MVC二種ASP.NET框架。包括我的WEB框架也支持哦。
所以,理論上,只要是一個ASP.NET程序,應(yīng)該都是可以運行的,程序會自動識別,也不需要做任何設(shè)置。還是那句話:【只要右擊鼠標(biāo),點一下菜單就行了】。
而且ASP.NET的版本也不是問題,從.net 2.0 到 .net 4.0 全線支持。
它也是個HTTP服務(wù)器
剛才我說到我的工具可以支持在任何文件夾上右擊并加載為網(wǎng)站。是的,我沒瞎說,就算那個目錄不是個ASP.NET程序目錄,是一個普通的文件目錄,或者是一個靜態(tài)網(wǎng)頁的目錄,都是可以的,此時就和IIS的行為一樣了,如果請求的是靜態(tài)頁面,就顯示靜態(tài)頁面,遇到目錄時,就列目錄。而且此時的運行速度會比ASP.NET程序更快哦。原因很簡單:此時不加載ASP.NET運行時環(huán)境。
來張列目錄的效果圖:
還有一點要補充:與WebDev.WebServer.exe不同,只要是Windows能支持的文件名或者目錄名,我的工具就能支持,與IIS的行為完全一致。
很遺憾,我好久沒做那種純靜態(tài)頁面的網(wǎng)站了,就不截圖展示了。我想你懂的。
支持遠程機器訪問
看到上一張截圖,您有沒有一種想法:以后如果有人找我要文件,我就讓他們?nèi)ハ螺d呀,這樣比共享目錄還安全呢。
哈哈,如果您有這種想法,那我要恭喜您了,您的安全覺悟還不錯。是的,我的工具支持這個功能:可以讓遠程機器瀏覽【做為網(wǎng)站加載的目錄】(并不是任何目錄)。
為了安全,程序默認(rèn)是不允許遠程機器連接的,需要您來手工打開。操作也簡單,如下圖:
用文字描述就是:右擊系統(tǒng)托盤圖標(biāo),點擊【設(shè)置安全參數(shù)】菜單。此時將出現(xiàn)以下對話框:
這個對話框很簡單,我想您懂的,此處略過78個字.....
不受限于Windows防火墻
剛才說到可以讓遠程機器訪問,這里有個問題:從WindowsXP開始,操作系統(tǒng)就集成了防火墻的功能,而且打開這個功能的機器還真不少。如果真是這樣,前面所說的功能就要遇到問題了:可能會被防火墻阻攔!哦,這個工具太不完美了,人家什么什么工具怎么就沒被防火墻攔住呢?幸好,我的工具不受這個問題的困擾,它能自動把它添加到Windows防火墻的例外列表中,完全不打擾您的操作。
Windows 7 的防火墻也能支持哦:
尊重每個人的操作習(xí)慣
我比較注重操作體驗,我的工具對于這個理念也有很好的支持,從啟動網(wǎng)站的那一刻起就開始了。
當(dāng)您將一個目錄加載為網(wǎng)站時,將會出現(xiàn)以下對話框,問您要選擇什么樣的瀏覽器來瀏覽網(wǎng)站:
注意了,下面還有一個小勾勾,有時也很方便哦。
即使您當(dāng)時選擇了一個瀏覽器,后面想更換瀏覽器,也很簡單??聪聢D:
用文字描述就是:右擊系統(tǒng)托盤圖標(biāo),點擊【選擇瀏覽器】菜單。此時將出現(xiàn)以下對話框:
仍然可以讓您選擇其它的瀏覽器。我裝了5種瀏覽器,你裝了幾種呢?
內(nèi)置多標(biāo)簽瀏覽器支持
我的這個小工具,它內(nèi)置一個多標(biāo)簽的瀏覽器(IE內(nèi)核),哪怕您的機器上只安裝了IE6,仍然可以享受多標(biāo)簽的功能。而且切換有二種方式哦:
注意:點擊窗口右上角的關(guān)閉按鈕,程序并沒有完全退出。要退出程序請右擊拖盤圖標(biāo),并點擊【退出】菜單。
而且對于在內(nèi)置瀏覽器的工作模式時,還可以右擊任務(wù)欄,直接退出程序。如下圖(好像不支持Win7):
啟動參數(shù)及配置文件
我的這個小工具,為了能提供一些人性化的支持,可以在啟動時設(shè)置一些啟動參數(shù)。此時需要從Windows開始菜單中啟動它,此時的啟動界面如下:
注意哦:當(dāng)您設(shè)置好相關(guān)的啟動參數(shù)后,可以將它保存起來,對話框上面有個【另存為】按鈕,此時程序?qū)堰@些參數(shù)保存為一個siteconfig文件。
一個siteconfig文件可以保存一個網(wǎng)站在啟動時FishAspnetLoader所需的配置參數(shù)。
為了方便操作,您可以將經(jīng)常瀏覽的網(wǎng)站或目錄的配置參數(shù)保存到一個siteconfig文件中。
當(dāng)您在資源管理器的文件夾上右擊菜單或從命令行傳遞一個目錄時,
FishAspnetLoader會在安裝目錄中查找是否存在關(guān)于這個目錄的配置,
如果沒有,則繼續(xù)查找目標(biāo)目錄下有沒有相關(guān)的配置文件,
如果沒有,還會查找【我的文檔】目錄有沒有相關(guān)的配置文件。
如果發(fā)現(xiàn)有相關(guān)的配置文件,則讀取那個配置文件。
當(dāng)您從“開始菜單”中啟動FishAspnetLoader時,程序會顯示“設(shè)置啟動參數(shù)”對話框。
如果您只是固定的瀏覽一個目錄或本機網(wǎng)站,則可以將當(dāng)前設(shè)置保存為一個名為:default.siteconfig的文件。
或者,如果是將網(wǎng)站“當(dāng)成工具”來發(fā)布,也可以事先準(zhǔn)備好這個文件。那么以后將不會出現(xiàn)這個對話框。
當(dāng)您從“資源管理器”的右鍵菜單或命令行傳遞一個目錄路徑時,且在沒有找到有關(guān)這個目錄的配置時,
FishAspnetLoader會查看那個目錄下是否存在web.config ,如果存在這個文件,則加載Asp.net Runtime,否則不加載,以加快啟動速度。
如果這種判斷方式對于某個目錄不適用時,請從“開始菜單”中啟動FishAspnetLoader,并為這個目錄創(chuàng)建一個siteconfig文件以指定合適的參數(shù)。
啟動配置文件,是為了讓您能更好定制程序運行行為而設(shè)計的,我特別提供一些參數(shù),可以讓網(wǎng)站在內(nèi)置的瀏覽器更好地偽裝成普通桌面程序。
不僅如此,工具還支持命令行的啟動方式,可以接收一個siteconfig文件,您只要寫個批處理并在做安裝包時運行批處理就好了。
或者參考我的另一個工具的安裝包的快捷方式做法。那個工具的啟動命令行更簡單。
也可以參考這個演示程序的配置文件。
總之:還是為了讓您方便地使用這個工具。
支持 .NET 4.0
說明:運行本程序僅需要 .net Frarmework 2.0
但是,如果您要運行的網(wǎng)站是基于ASP.NET 3.5的,那么您需要安裝 .net 3.5,要運行 .net 4.0的網(wǎng)站,要安裝 .net 4.0
如果您的機器上已經(jīng)安裝了 .net framework 4.0 ,而且希望啟用 .net 4 的支持。
只需要將安裝目錄下的文件【FishAspnetLoader.exe.config.bak】改名成【FishAspnetLoader.exe.config】即可。
部署問題
在本文結(jié)尾,我提供這個工具的安裝包,安裝包中還包含了一些其它的文件。提供安裝包只是為了讓您更方便地使用我的工具而已。
如果您有一個網(wǎng)站,且希望由我的工具來啟動并以桌面程序的方式來運行,那么只需要在安裝后,把FishAspnetLoader.exe這一個程序拿出來就行了,你可以把FishAspnetLoader.exe放在您的安裝包中,并提供一個siteconfig文件,然后以命令行的方式啟動我的工具就行了。具體做法請參考我的博客:
通用數(shù)據(jù)訪問層及Ajax服務(wù)端框架的綜合示例,展示與下載
發(fā)一款數(shù)據(jù)庫的輔助工具:My-SqlViewer
上述軟件打包下載
原文: cnblogs.com fish-li
您可能感興趣的文章:- C# WinForm 判斷程序是否已經(jīng)在運行,且只允許運行一個實例,附源碼
- WinForm實現(xiàn)程序一段時間不運行自動關(guān)閉的方法
- .Net WInform開發(fā)筆記(二)Winform程序運行結(jié)構(gòu)圖及TCP協(xié)議在Winform中的應(yīng)用
- c# Winform 程序自動更新實現(xiàn)方法
- C#中WinForm程序退出方法技巧總結(jié)
- C# WinForm應(yīng)用程序降低系統(tǒng)內(nèi)存占用方法總結(jié)
- C# WinForm程序完全退出的問題解決
- 解讀在C#中winform程序響應(yīng)鍵盤事件的詳解
- .Net中導(dǎo)出數(shù)據(jù)到Excel(asp.net和winform程序中)
- WinForm防止程序重復(fù)運行的方法分析