Microsoft Stack 仍然是可行選擇的八個原因

已發表: 2022-03-11

10 年前,微軟開發人員的生活是美好的。 公司對他們的開發項目 100% 使用 Microsoft 感到滿意。 使用前端的 ASP.NET、.NET 中間層和後端的 SQL Server,大部分情況下工作得很好。 當他們不這樣做時,開發人員只是將其視為領土附帶的東西。 微軟幾乎是在做這個節目。 然後,在過去十年末,微軟重達 800 磅的大猩猩地位開始瓦解。 可能是因為 iPhone 的推出和微軟錯過了向移動的轉變,或者可能是因為開源項目的激增,但事情發生了變化,今天需要說服那些相同的公司,與 Microsoft Stack 合作是一個好主意。 本文介紹了支持堅持使用 Microsoft 軟件堆棧的八個理由。

原因 #1:.NET 仍然是最好的之一

.NET Framework 於 10 多年前推出,功能豐富且經過全面的實戰測試。 雖然在 .NET 早期必須將本機開發與託管代碼結合起來是司空見慣的,但如今絕大多數開發任務都得到了開箱即用的支持。 甚至像 Oracle 這樣的公司也發布了 100% 為 .NET 託管代碼(即 ODP.NET 託管驅動程序)的組件來與他們的產品進行交互。 .NET API 是一致的、有據可查的並被數百萬人使用。

通過 MSDN、StackOverflow 和數以千計的論壇和博客獲得的知識庫非常龐大。 在我使用 .NET 開發的這些年中,我不記得有一個實例會在框架錯誤上卡住很長時間。 每次,有人已經體驗過、研究過並發布了一個答案,這並不總是我希望的答案,但仍然是推動我前進的東西。 隨著即將發布的 2015 版本,.NET Core 將是開源的,並且可以在非 Windows 系統上使用。

原因 #2:ASP.NET 已經發展

微軟堆棧

回顧 10 年前傳統的 Web 到數據庫 Microsoft 堆棧,有趣的是看看哪些部分經受住了時間的考驗,哪些部分逐漸消失。 雖然 Microsoft 堆棧的後端幾乎沒有變化(我們仍然使用相同的模式和組件集,例如依賴注入、任務、Linq、EF 或 ADO),但前端,即 ASP.NET 部分,看到從“按照微軟的方式做”(即 Web 表單)到“按照自己的方式做並使用 ASP.NET 作為平台”的根本轉變。 今天,ASP.NET 是一個基於 MVC 的框架,具有用於身份驗證、捆綁和路由的強大基礎架構,它與許多非 Microsoft 技術(如 Bootstrap 和 AngularJS)集成。 ASP.NET 站點在從手機到台式機的各種外形尺寸上看起來都不錯,而且它的 Web API 功能使公開 Web 服務變得輕而易舉。 該框架已開源多年,因此如果您遇到問題,可以在 GitHub 上找到源代碼。 ASP.NET 發生了變化,並且變得更好了。

原因 #3:Web API 的簡單性和 WCF 的強大功能

網絡和微軟堆棧

我一直最喜歡的名言來自艾倫凱,他說:“簡單的事情應該簡單; 複雜的事情應該是可能的”。 當 Windows Communication Foundation (WCF) 於 2006 年首次問世時,它絕非簡單。 行為、端點和綁定是壓倒性的。 因此,Microsoft 發布了 Web API,這是一個易於使用的框架,使公開 HTTP Web 服務變得輕而易舉。 只需幾行配置,您的 API 就會變成一個安全的“行業標準”Web 服務。

如果您的用例不符合“標準”模式,並且您需要完全控制您的 API 如何通過網絡公開,您總是可以求助於 WCF。 憑藉無數的配置選項和掛鉤,WCF 允許您自定義序列化數據、記錄、攔截、路由消息、使用對等和排隊等等。 Web API 與 WCF 一起實現了 Kay 引用的兩條原則:如果您需要一個簡單的 Web 服務,您可以在幾分鐘內完成 Web API; 如果您的服務要求很複雜,那麼使用 WCF 可以實現“全部”。 這兩種技術提供了對服務場景的全面覆蓋,並與 .NET 框架一起預打包。

原因 #4:SQL Server 一如既往的穩固

多年來,新開發語言、框架和模式的浪潮似乎從前端和中間層傳來,並沒有影響數據庫後端。 畢竟,古老的“SELECT”在今天仍然像 20 年前一樣被廣泛使用。 我想這是因為許多公司將他們的數據視為其業務的核心,並且保持該核心的完整性遠遠超過在數據庫層嘗試“新事物”的興奮。

SQL Server 擅長其作為數據管理員的主要角色,具有用於事務、參照完整性、備份、鏡像和復制的無數功能,但 SQL Server 與競爭對手的不同之處在於它與 Microsoft 堆棧的其餘部分的集成程度。 為了快速開發,有實體框架,目前版本 6,已經過了青春期,並很好地兌現了其簡化數據訪問的承諾。 如果您需要計算能力,.NET Framework 與 SQL Server 一起在進程內加載,這意味著您可以將 .NET 代碼嵌入為存儲過程、函數或聚合,而不會犧牲性能。 再加上 SQL Server 2014 帶有內存表這一事實,您可以想出一些非常巧妙的實時解決方案,這些解決方案僅靠 SQL 和常規表是不夠快的。 經過多年的行業發展,SQL Server 仍然在我的 RDBMS 列表中名列前茅。

原因 #5:它很容易測試

很多次,在企業 IT 部門工作時,我看到軟件變成了這些無法觸及的黑匣子,因為沒有測試,沒有人願意因為害怕“破壞其他東西”而弄亂代碼。 然後,我在擁有數千次測試的系統上工作,在軟件發布多年後,能夠告訴企業“是的,我們可以做出這些改變”,這是一種很棒的感覺。 Microsoft 堆棧的設計考慮了可測試性。 ASP.NET MVC 有依賴注入的鉤子,在版本 5 中,依賴注入將包含在框架本身中。 在中間層,情況類似:我們使用依賴注入將實現與接口分離,這使我們可以在測試時將生產類型與模擬交換。 即使在數據庫方面,也有帶有用於針對存儲過程層進行測試的模板的 SQL Server Data Tools。 測試是當今軟件開發過程中不可分割的一部分,Microsoft 堆棧為這一新現實做好了充分準備。

原因#6:精心設計的支持生態系統

在支持方面,最好有多種選擇,從社區論壇開始,到在您的服務器上現場工作的真人結束。 Microsoft 產品的在線生態系統是業內最大的生態系統之一。 畢竟,微軟是由軟件開發人員比爾蓋茨創立的,他認為開發人員的廣泛採用是微軟產品擴散的關鍵。 這意味著為這些開發人員提供大量支持。

微軟是最先鼓勵員工在博客上介紹他們正在研究的技術的公司之一,雖然行業的其他公司肯定已經趕上了,但今天直接來自微軟的教學視頻、指南和文章的數量和質量仍然非常令人印象深刻。 大量基於社區的支持生態系統(例如 StackOverflow)補充了這一層高質量的在線內容,這些生態系統在內容質量方面並不一致,但無論如何,比沒有幫助要大得多。

最後,始終可以選擇拿起電話並致電 Microsoft 支持。 我很少需要使用它,但是當讓 Microsoft 開發人員分析核心轉儲時,出現了一些生產緊急情況,從而挽救了局面。 支持選項的範圍顯然是支持使用 Microsoft 堆棧的一個因素。

原因 #7:微軟堅持他們的產品

幾年前,選擇 Microsoft Silverlight 作為應用程序的前端似乎是一個有效的選擇,但現在已經不是這樣了。 隨著移動趨勢的全面展開和 JavaScript 框架主導前端領域,Silverlight 不再是一個可行的選擇; 儘管如此,它仍然得到微軟的支持,直到 2021 年。微軟堅持自己的立場,這對於我們這些必須做出技術選擇而沒有魔術八球告訴我們未來將主導軟件領域的技術趨勢的人來說是件好事。 與 Microsoft 堆棧一起使用可確保將時間和金錢投入到將得到支持的技術上,即使它在行業中失寵。

原因 #8:Visual Studio 傘

十年前,我大約 50% 的時間在 Visual Studio 上工作,大約 50% 的時間在其他工具上。 今天,這種分裂壓倒性地有利於 Visual Studio。 Microsoft 將 Visual Studio 視為託管 IDE 的一站式解決方案的願景正在實現,許多 Microsoft 和非 Microsoft 產品都提供了與 Visual Studio 的某種程度的集成。 從使用 SQL Server Data Tools 進行數據庫開發到使用 Xamarin 編寫 iPad 和 Android 應用程序,Visual Studio 通過一致的用戶界面提供熟悉的開發人員體驗。 使用 Microsoft Azure 也是如此,這是一個包含從數據庫託管到移動服務的各種服務的雲平台。

Visual Studio 混淆了分佈式雲基礎架構的複雜性,使開發雲應用程序的體驗與開發非雲託管應用程序的體驗一致。 在 Visual Studio 的保護下,所有部分似乎都很好地結合在一起,從而使整個開發過程非常高效。

Microsoft Stack - 兩全其美

今天,與 10 年前相比,編寫高質量軟件的選擇要多得多。 這當然是一件好事,因為競爭迫使谷歌、蘋果、亞馬遜和微軟等大公司繼續創新,而不是自滿。 雖然微軟在過去十年的技術發展中被推上山頂,但該公司已經表明它願意適應並適應當前技術趨勢的現實。 ASP.NET 採用了其他技術和方法,其中許多是開源的,而最初的 Web 窗體已逐漸淡出歷史。 .NET 框架不斷發展,通過用於多線程和眾核計算的庫打破了新領域。 隨著即將發布的 2015 年版本,該框架的核心將是開源的並且可移植到非 Windows 平台,這是朝著包容性和透明性方向邁出的一步。

這些受歡迎的改進來自一家公司,該公司擁有長期建立的發布經過測試、記錄和支持的軟件的流程。 與 Microsoft 堆棧一起使用會帶來使用現代語言和框架的興奮以及由在開發行業擁有數十年經驗的軟件巨頭支持的穩定性。 這就是我今天推薦微軟堆棧的原因。