這篇文章列出了針對 ASP.NET 開發人員的有用工具。
工具
1. Visual Studio
Visual Studio Productivity Power tool:Visual Studio 專業版(及以上)的擴展,具有豐富的功能,如快速查找,導航解決方案,可搜索的附加參考對話框等
ASPCMS批量添加產品 ReSharper:提高 .NET 開發人員生產力的工具,提高代碼質量,通過提供快速修復消除錯誤,等等
MZ-Tools:它可以在方法、文件、項目、解決方案或項目組、選定的文本,文件組合或項目組合中找到字符串。結果示于下面的結果窗口中,比由 Microsoft IDE 提供的要更方便。
Web Essentials:提高生產力和幫助高效編寫 CSS,Java,HTML 等
ASPCMS批量助手 MSVSMON:遠程調試監視器(msvsmon.exe)是一個 Visual Studio 連接進行遠程調試的小型應用程序。在遠程調試時,Visual Studio 運行在一臺計算機(調試器主機)上,遠程調試監視器運行與你正在調試的應用程序運行在一臺遠程計算機上。
WIX toolset:從 XML 源代碼構建 Windows 安裝程序包。
Code digger::Code Digger 是 Visual Studio 2012/2013 擴展程序,它可以幫助你了解你的代碼行為。
CodeMaid:CodeMaid 是一個開源的 Visual Studio 2012/2013/2015 擴展程序,用于清理,挖掘和簡化你的代碼。
OzCode:強大的 Visual Studio 調試器可視化工具。
CodeRush:這是一個 Visual Studio 的重構和生產率插件。
T4 Text Template::在 Visual Studio 中,T4 Text Template 用作生成代碼文件的模板。模板可以通過編寫文本塊和控制邏輯來定義。
Indent Guides:在每個縮進級別添加垂直線。
PowerShell Tools:一套用于開發和調試 PowerShell 腳本以及 Visual Studio 2015中模塊的工具。
Visual Studio Code:免費的跨平臺編輯器,用來構建和調試現代 web 和云的應用程序。 [由 Cheung Tat Ming提供]
AutoPoco:AutoPoco 是一個高度可配置的框架,用于流暢構建可讀的來自于 Plain Old CLRObjects 的測試數據。
Supercharger:這是一個旨在顯著改善 Visual Studio 開發體驗的擴展程序。它建立在并增強了先前的 VS10x 產品,如 CodeMAP、Editor View Enhancer、Comments Extender,同時還增加了新的高品質工具。
2. ASP.NET
Fiddler:捕捉 HTTP 請求/響應以及模擬請求行為。
AutoMapper:對象到對象的映射。例如,該工具可用于映射實體對象到領域對象,而不是寫手動映射代碼。
Unity/Ninject/Castle Windsor/StructureMap/Spring.Net:依賴注入框架。有很多可用的 DI 框架。
.NET Reflector:.NET 程序集反編譯器。
dotPeek:.NET 程序集反編譯器。
ILSpy::.NET 程序集反編譯器。
memprofiler:查找內存泄漏并優化內存使用的強大工具ASPCMS批量助手。
PostSharp:刪除重復編碼,并防止由于橫切關注點以及面向方面編程而造成的代碼膨脹。
ASPhere:有 GUI 的 web.config 編輯器。
3. REST API
Swagger UI:API 測試和文檔工具。[視頻]
PostMan:REST 客戶端 Chrom 擴展程序。 [由 Cheung Tat Ming提供]
4. WCF
SOAP UI:API 測試工具,支持所有標準協議和技術。
WireShark:這是一個針對 Unix 和 Windows 的網絡協議分析儀。它可以在 TCP 層捕獲流量,幫助你發現 soap 封套。
SvcTraceViewer:可以更好地查看由 WCF 產出的巨大跟蹤文件。
Svc Config Editor:用于管理 WCF 相關配置的 GUI 工具。
ASP.NET MVC隨想錄漫談OWIN
OWIN是Open Web Server Interface for .NET的首字母縮寫,他的定義如下:
OWIN在.NET Web Servers與Web Application之間定義了一套標準接口,OWIN的目標是用于解耦Web Server和Web Application?;诖藰藴?,鼓勵開發者開發簡單、靈活的模塊,從而推進.NET Web Development開源生態系統的發展ASPCMS批量更新文章。
正如你看到的這樣,OWIN是接口、契約,而非具體的代碼實現,僅僅是規范(specifications),所以要實現自定義基于OWIN的Web Server必須要實現此規范。
歷時兩年(2010-2012),OWIN的規范終于完成并且當前版本是1.0,在OWIN的官網上可以看到更具體的信息。
為什么我們需要OWIN
過去,IIS作為.NET 開發者來說是最常用的Web Server(沒有之一),源于微軟產品的緊耦合關系,我們不得不將Website、Web Application、Web API等部署在IIS上,事實上在2010年前并沒有什么不妥,但隨著近些年來Web的發展,特別是移動互聯網飛速發展,IIS作為Web Server已經暴露出他的不足了。主要體現在兩個方面,ASP.NET (System.Web)緊耦合IIS,IIS緊耦合OS,這就意味著,我們的Web Framework必須部署在微軟的操作系統上,難以跨平臺。
ASP.NET 和IIS
我們知道,不管是ASP.NET MVC 還是ASP.NET WEB API 等都是基于ASP.NET Framework的,這種關系從前綴就可以窺倪出來。而ASP.NET的核心正是System.Web這個程序集,而且System.Web緊耦合IIS,他存在于.NET Framework中。所以,這導致了Web Framework嚴重的局限性:
ASP.NET 的核心System.Web,而System.Web緊耦合IIS
System.Web 是.NET Framework重要組成,已有15年以上歷史,沉重、冗余,性能差,難于測試,約2.5M
System.Web要更新和發布新功能必須等待.NET Framework發布
.但NET Framework是Windows的基ASPCMS批量添加欄目礎,往往不會隨意更新。
所以要想獲取最新的Web Framework是非常麻煩的,幸運的事,微軟已經意識到了問題的嚴重性,最新的Web Framework都是通過Nuget來獲取。
當然這是一部分原因,還有一層原因是ASP.NET & IIS實在太過于笨重,如何講呢?
復雜的生命周期已成為累贅?簡單來說,當請求到達服務器時,Windows內核組件HTTP.SYS組件捕獲請求,他會分析請求并決定是否交給IIS來處理,當請求到達IIS之后,IIS會根據處理程序映射來匹配請求并交給對應的程序集(實現了ISAPI接口,比如我們熟知的aspnet_isapi.dll是專門用來處理ASP.NET Application)處理,最后加載了CLR運行環境,將請求交給aspnet_wp.exe去處理,這時復雜的ASP.NET生命周期往往令人頭大,但事實上有很多時候我們并不需要他。
如下圖所示ASP.NET Architecture:
打開IIS,你會發現他提供了非常豐富的功能:緩存、身份驗證、壓縮、加密等。但隨著移動互聯網蓬勃的發展,特別是HTML 5越來越成熟的今天,我們看到越來越多的操作發生在客戶端,而不是沉重的從服務器產生HTML返回,更多的是通過異步AJAX返回原生的數據。同理,對于APP來說我們只需要Mobile Service返回數據。顯然IIS顯得笨重了點,而且IIS作為微軟產品系的一環,耦合程度太高。所以我們迫切需要輕量、快速、可擴展的宿主來承載Web Application和Web Service。
ASPCMS批量上傳內容Microsoft ASP.NET Core 權限提升漏洞(CVE-2017-11879)
文章地址:http://www.meyanliao.com/article/other/dASPNETcxyfcyygj.html