.Net框架理论
.NET框架
.NET Framework是該平臺的第一個也是最早的實現。它包括三個主要的應用程序模型 - WPF,Windows窗體,ASP.NET窗體 - 和基類庫。
Windows Presentation Foundation(WPF)是一個UI框架,用于主要為Windows操作系統上的桌面客戶端應用程序創建圖形界面。WPF使用可擴展應用程序標記語言(XAML)的功能。
Windows Forms是.NET Framework中的GUI類庫。Windows窗體用于開發具有易于更新和部署的豐富圖形的桌面應用程序。
ASP.NET。雖然前兩個組件是為桌面工程設計的,但ASP.NET用于開發動態網站和Web應用程序。其核心中有公共語言運行時(CLR),使開發人員有機會使用不同的.NET語言編寫ASP.NET代碼。公共語言運行時是一個應用程序虛擬機,它管理內存,實現代碼訪問安全性,驗證代碼安全性,并提供線程和代碼的執行。
基類庫(BCL)提供最常見的功能,如命名空間中的類?,是框架類庫(FCL)的核心,它是一組可重用的接口,類和值類型,與公共語言運行時(CLR)緊密集成)。FCL和CLR的組合構成了.NET Framework。
由于.NET Framework僅支持基于Windows的設備,因此需要發生跨平臺程序包。
.NET核心
.NET Core于2016年發布。它是.NET Framework的跨平臺重構。與舊版本不同,工程師現在可以在Linux和OS X上使用該產品,并創建不一定與Windows系列相關的應用程序。新系統旨在征服云空間,因為像Digital Ocean這樣的供應商是由Linux驅動的。不僅.NET Core是跨平臺的,它的不同版本可以在同一設備上并排安裝。.NET Core包括ASP.NET Core和通用Windows平臺(UWP)。
通用Windows平臺(UWP)是由Microsoft創建的API,用于開發在所有兼容的Microsoft Windows設備(即Windows,Windows Phone和HoloLens)上運行的通用應用程序。
ASP.NET Core是ASP.NET的重構,恰好是一個比其前身更模塊化的框架。ASP.NET Core允許您構建移動后端,Web應用程序和服務。它也是跨平臺的,可在OS X,Windows和Linux上運行。
Xamarin
第三種實現稱為Xamarin,用于移動應用程序和Mac產品。最初,Xamarin是獨立于Microsoft設計的,并且是微軟在2016年收購它之前的專有產品,是.NET平臺的完全開源分支。Xamarin使用Mono運行時和.NET Framework的一個版本進行調整,以便與iOS,Android和Xamarin.Mac的API一起使用。要詳細了解該產品,請查看我們的Xamarin利弊文章。
所有運行時都使用通用基礎架構,使整個生態系統工作。它提供運行時組件,語言和編譯器。
.NET標準
2016年,Microsoft還推出了.NET Standard,這是一個結合了.NET Framework,.NET Core和Xamarin的API的庫,允許工程師使用單個基類庫,而不是掌握與每個.NET實現相關的三個不同的庫。此步驟統一了生態系統,并為不同平臺的組件重用提供了更高的一致性。
.NET開發平臺最適合用于跨所有平臺和設備構建,調試和發布應用程序的Visual Studio IDE。
目前,最流行的.NET實現是.NET Core和Xamarin。因此,讓我們更深入地了解使用.NET開發平臺的優缺點。大多數點可以應用于整個生態系統,而其中一些點僅與其特定組件相關,我們將在相應的部分中指定。
.NET開發的優點
面向對象的軟件開發模型
.NET基于面向對象編程(OOP)。OOP是一種開發模型,其思想是將軟件分解為更易于管理和組合的小塊。OOP將數據劃分為對象(即數據字段),并通過類的聲明描述對象行為和內容。
模塊化結構有助于定義對象及其交互的行為,而無需管理對象內部屬性。OOP通過使代碼易于管理,更易于測試以及響應重復出現的問題來簡化編程。它還消除了不必要的編程,通常意味著開發人員編碼更少。.NET使重用代碼和組件成為可能,節省時間,并隨后 - 開發成本。
可靠而簡單的緩存系統
緩存意味著將數據保存在臨時存儲位置,以便在需要時更快地調用它。存儲的數據是較早的信息請求或存儲在其他地方的信息的副本的結果,這些信息需要更長的時間才能從中檢索。
.NET中的緩存系統功能強大且易于使用。它也被設計為可擴展的。Object Cache類允許開發人員創建自定義緩存實現,以用于提高Windows客戶端和服務器應用程序的性能和可伸縮性。
Visual Studio IDE
集成開發環境(IDE)是程序員的單一產品,它通過提供編寫和測試軟件的所有工具使應用程序開發更容易。
Visual Studio是一個Microsoft IDE,用于在所有平臺(包括Android和iOS)上構建,調試和發布應用程序。Visual Studio與.NET集成,并提供特定于語言的環境的功能。
Visual Studio IDE的主要功能:
-
它被用作所有.NET應用程序的單個IDE
-
IDE集成了編譯和調試功能
-
該解決方案可用于基于以不同語言編寫的代碼的應用程序
-
Visual Studio允許自定義環境以匹配用戶首選項
最重要的是,Visual Studio Marketplace提供了來自Microsoft和其他提供商的各種編輯器擴展,以支持團隊協作,持續集成,第三方連接,云開發管理等。
.NET Core的跨平臺設計和語言獨立性
.NET Core是一種跨平臺的.NET實現,允許代碼在OS X,Windows和Linux上運行。與原始.NET框架(僅部分開放)不同,.NET Core具有完全開放的源代碼,可確保廣泛的工程社區能夠不斷為其開發做出貢獻。
如果您使用C#,F#或Visual Basic編寫代碼,則代碼將在每個兼容的操作系統上運行。這使公司能夠覆蓋.NET生態系統中最廣泛的平臺。同時,跨平臺設計和語言獨立性確保了具有大量不同工程技能組的整個.NET社區分享經驗。目前,.NET支持超過25種語言,包括C#,Visual Basic.NET,J#,托管C ++,IronPython和IronRuby。
靈活部署,易于維護
.NET Core的一項重要功能是靈活部署。它可以作為應用程序的一部分安裝,也可以單獨安裝。模塊化設計允許包含您需要的所有依賴項。部署本身就像復制文件夾一樣簡單。
另一個好處是,您可以在同一臺計算機上并行運行多個.NET Core版本,以涵蓋不同的項目并無縫執行部署任務。
通用.NET標準
自2016年以來,.NET生態系統通過名為.NET Standard的大型類庫得到了增強。它基于.NET Framework,.NET Core和Xamarin的基類庫的數量。這些用于處理常見功能,如圖形渲染,數據庫交互和XML文檔操作。.NET標準庫極大地簡化了開發人員的工作。
在.NET Standard之前,程序員必須為新平臺重新開發應用程序或庫,然后在各種平臺上分發所有更新。目前,該庫支持跨應用程序的所有依賴庫。但是,您應該檢查版本兼容性以成功利用.NET Standard。
大社區
.NET擁有龐大的開發人員社區。有趣的是,它將工程師與小型,中型和企業級公司聯合起來。這意味著幾乎所有問題都可以在社區成員的幫助下解決。
由于.NET Core是開源的,因此它的庫,運行時和編譯器可以在GitHub上獲得,并且有許多貢獻。根據Stack Overflow 2018的調查,兩款.NET產品被列入最受歡迎的技術:.NET Core排在第四位,Xamarin排在第九位。
最重要的是,有一個名為.NET Foundation的獨立組織,它促進圍繞.NET生態系統的開放式開發和團隊合作。.NET社區和商業開發人員將其用作想法交換的主要論壇。
ASP.NET中的自動監視
ASP.NET具有內置的自動監控功能。Windows Web Server嚴格監視在其上運行的網頁和應用程序。如果發生內存泄漏或無限循環等任何問題,它會立即發出警告。這允許直接糾正這些行為并創建新流程。監控可確保.NET應用程序的更高穩定性和透明性。
.NET開發的缺點
盡管由于廣泛的基礎架構和成熟的產品開發歷史,.NET被認為是最強大的工程平臺之一,但它帶來了一系列問題。
有限的對象關系支持
如上所述,.NET使用面向對象編程(OOP)語言模型。該模型基于對象而不是“動作”和數據而不是邏輯。實體框架提供了.NET Framework中面向數據的軟件應用程序開發的支持。
實體是一種對象關系映射器(ORM),它在面向對象的.NET Framework和關系(SQL)數據庫之間架起橋梁。一些工程師認為實體框架不夠靈活,可能不支持所有可用的數據庫設計。這也意味著在某些時候實體框架可能不支持新的數據庫設計。另一個問題是該框架可能最終被微軟拋棄,這將迫使您適應供應商建議的一些新技術。
從好的方面來說,我們還沒有遇到實體的問題,所以它仍然是一個值得商榷的問題。
供應商鎖定
第二個缺點部分與前一個有關。.NET運行并基于Microsoft。雖然.NET Core和Xamarin是開源的,但整個生態系統遠非社區驅動。這意味著您的產品仍然依賴于Microsoft提供的供應商和決策。
許可費用
無論開源技術如何,構建.NET應用程序并不便宜。大多數情況下,您的開支將用于Visual Studio IDE以及Microsoft提供的其他協作和質量保證服務,以簡化您的工作。截至今天,Visual Studio的基礎版本將為一名工程師每年花費539美元。包含各種云,企業移動性,QA功能等的企業版本每年約為3000美元。但是,您仍然可以嘗試成為Microsoft合作伙伴,免費獲得許多訂閱。出于非營利和教育目的,還有免費的??Visual Studio社區。
即使您可以在Mac和Linux計算機上使用.NET Core,最好的方法是使用Windows for .NET工程,這也帶來了許可成本。
如果您以前從未使用過Microsoft產品,并且必須從AWS云生態系統遷移到Azure,那么障礙將會更高。
釋放與穩定之間的差距
也許,這個問題削弱了所有Microsoft產品而不是.NET堆棧。但它絕對值得一提。新發布的產品缺乏適當的文檔,支持,穩定性,并且容易發生劇烈變化。在AltexSoft的一個項目中,我們的架構師決定使用新的DocumentDB(現在是Azure Cosmos DB),但后來被迫設計自定義數據架構,因為該產品遇到了許多可能危及整個項目的技術問題。
Y Combinator的一位用戶生動地描述了這個問題:“?我對這些微軟技術傳福音文章/視頻的問題在于,似乎微軟總是讓他們的新工作變得熱情,并告訴全世界它很棒,并且準備生產。然后你去實現它,一旦你離開他們的演示的完美世界,它一切都崩潰了,然后你發現文檔是為測試版編寫的,不再適用,所以你只是猜測在你需要的方法的正確的調用簽名。“
較小的缺點包括由于封閉系統中的垃圾收集而發生的性能問題。而且,通常,托管環境比直接與硬件通信的環境要慢。
何時使用.NET
可擴展的產品。通常,業務需求正在增長,您的軟件必須隨之擴展。.NET提供可擴展的環境,允許重新設計正在進行的應用程序,以滿足不斷增長的業務需求。
跨平臺需求。如果您需要可跨平臺工作的應用程序.NET將是一個很好的選擇,因為大多數平臺都已涵蓋,您可以在將桌面或移動應用程序擴展到其他操作系統的同時減少開發工作量。最重要的是,.NET可用于游戲(包括Xbox)和AR開發(包括HoloLens)等特定工程案例。
企業級基礎設施。.NET是否主要是為企業使用而設計仍然是一個值得商榷的問題。但微軟確保提供最廣泛的工具集來構建和交叉集成企業產品,包括內部和公共產品。它還支持強大的企業移動生態系統。
?
原文地址:https://www.kingwins.com.cn/content-7050.html
轉載于:https://www.cnblogs.com/suqq/p/11130941.html
總結
- 上一篇: 第十届机器学习及其应用研讨会 MLA’2
- 下一篇: mysql在可视化软件navicat中如