DotNet平臺主要開發技術總結與經驗 .

自微軟2000年發佈.Net戰略以來有10年多,世界上有數百萬的程序員在.Net Framework上構建了自己的應用產品。從2002年發佈.Net1.0開始,先後發佈了.Net1.0、1.1、2.0、3.5、4.0等重要版本。與之同時,微軟也同時推出了集成IDE開發環境Visual Studio,目前最新版本是Visual Studio 2010。同時微軟在VS2005引入了軟件生命週期過程管理工具Visual Studio Team System(VSTS),擴展了Visual Studio的功能,提供了單元測試及代碼分析工具,爲項目經理、架構師、測試人員等角色都提供了相應的管理工具,使整個團隊的軟件開發的過程能夠清晰可見。

結合本人.net的一些認識,下面簡單總結一下在.Net平臺使用的一些核心技術及組件。

 

1. .Net框架

通過在Windows內核操作系統之上創建了一個虛擬框架,使得開發者不需要考慮程序運行時CPU或其他硬件特性,封裝了內核API以及一些核心類庫及公用組件。這個環境又稱爲公用語言運行時(CLR)。我們編寫.Net的程序需要在.Net framework之上來運行,又稱爲託管應用程序。CLR還實現了安全、異常管理,以及在C++時代令人頭疼的內存管理問題。

2. 數據訪問

  • ADO.Net:提供了統一的數據訪問模型,實現對數據的CRUD操作。包括了對Access訪問的OLEDB Provider、開放數據連接ODBC的ODBC .Net Data Provider、SQL SERVER訪問的SQLServer Provider以及Oracle訪問的Oracle Provider等。 
    微軟也提供了開源的Enterprice Library封裝了數據訪問類,簡化了很多常見的數據訪問任務,如讀取顯示數據,增刪除改查,以及事務管理,並且對不同的數據源使用工廠模型提供了統一的數據庫編程模型。
  • ADO.Net Data Services Framework:提供了基於http的RESTful風格的Web Service,用來訪問實體數據模型。使用URL統一資源路徑來訪問數據,可提供純Atom格式或JSON格式的數據返回。
  • ADO.Net Entity Framework:微軟的O/RM解決方案。早期有開源的NHibernate框架,微軟遲遲未加入,直到.Net Framework 3.5 SP1,目前版本Entity Framework 4.1。Entity Framework 利用了抽象化數據結構的方式,將每個數據庫對象都轉換成應用程序對象(entity),而數據字段都轉換爲屬性(property),關係則轉換爲結合屬性(association),讓數據庫的 E/R 模型完全的轉成對象模型。EF將關係表的物理結構轉化爲精確反映通用業務對象的概念模型,讓開發人員更容易理解業務並集中以對象的模型操作業務數據。
  • ADO.Net Sync Framework:ADO.Net提供的同步服務,使用此框架我們可以使用一致的方式在應用、設備、服務之間同步數據。前提是數據庫雙方都要支持Ado.net,支持間歇性連接。
  • LINQ:.Net 3.0引入在C#中以查詢數據庫TSQL相同的方式操作內存數據。包括:LINQ TO Objects、LINQ to XML、LINQ to SQL、LINQ to DataSet、LINQ to Entities以及LINQ to Data Servies。其中微軟放棄了LINQ to SQL,已在.Net 4.0中被ADO.Net Entity Framework取代。
  • SQL Server:重量級關係數據庫引擎,自SQL SERVER 2005以來,加入了更多如數據庫鏡像等高級特性,性能及穩定性有了很大的改善。目前版本SQL SERVER 2008 R2。SQL SERVER不僅提供了關係數據庫引擎,SQL 2005之後還集成SSIS集成服務,SSRS報表服務,提供BI(SSAS)等商業智能組件。

3..Net服務

  • WCF:.Net3.0引入的重要組件,WCF統一了數據通訊模型,使用一種可管理的方式來進行分佈式通訊,並提供了良好的互操作性、安全機制。WCF整合了Enterprise Services、System.Messaging、Microsoft .NET Remoting、ASMX和Web Services Extensions (WSE)等通訊模型,使用單一的模型來處理不同類型的應用程序行爲,顯著降低應用程序開發的複雜性。 在.Net2008正式發佈之後,本人帶領團隊基於.Net 3.5+WCF構建了一個大型的分佈式應用系統,其良好的互操作性以及不同通訊協議統一的編程模型,大大降低了數據通訊開發的複雜度,提高了團隊開發效率。並且提供了事務、日誌監控機制,以及良好的安全特性。
  • Asp.net Web Service:提供了一種簡單的方式,發佈Web服務來解決分佈式計算與數據通訊需求,僅支持http協議。

4.工作流

  • WF: .Net3.0引入的重要組件,它並不是一個像SQL Server這樣可以直接用來執行業務流程的產品,而是一個用於開發工作流的基礎組件。我們可以用它來開發順序或基於狀態機的工作流。
  • Workflow Service:基於WCF服務提供的工作流服務,是將WCF進行擴展,整合了WCF及WF,將工作流以服務的形式提供出來並可被調用。
  • MOSS:即SharePoint Services。MOSS是一個內容管理及協作平臺,並提供基於WF引擎的工作流服務。可以使用Sharepoint Designer或VS中的Windows workflow designer來創建工作流,也可以直接用VisualStudio手工基於WF開發工作流跑在MOSS服務上。
  • BizTalk Server: MS的重量級企業服務器產品,BizTalk主要面向業務流程,來設計和規劃低耦合的業務流程。功能包括業務流程自動化,業務流程管理,企業應用集成以及企業之間的集成。通過BizTalk創建業務流程,可以將各種分散的應用程序融爲一體利用圖形用戶界面來創建和修改業務流程。

5. B/S應用

  • Asp.net:通過.Net創建瀏覽器應用,提供標準用戶界面及窗體設計,通過IIS進行託管。
  • AJax: 使用Ajax解決asp.net與客戶端之間的異步請求,提升應用程序的響應,改善用戶體驗,避免過多的Postback。
  • Jquery: jQuery是一套優秀的Javascript腳本庫,對主流瀏覽器提供了良好的兼容性。是一個輕量級的js庫(壓縮後只有21k) 但不是框架。VS2008 SP1以及VS2010創建Web應用程序時,自動給你的項目添加Scripts/jquery_1.x.x.js腳本。 jQuery使用戶能更方便地處理HTML documents、events、實現豐富的UI及動畫效果,能方便地使用AJAX技術進行交互。安裝VS2008 SP1後以及KB958502補丁,就可以在集成開發環境中使用Jquery並且有智能感知特性。
  • Asp.net MVC: 通過使用MVC模式(模式-視圖-控制器)創建ASP.NET應用程序,支持測試驅動開發。使用MVC可以將用戶顯示界面(視圖)從業務邏輯(控制器)中分離出來,提高了代碼的重用性與可讀性,將數據(模型)從對其操作的邏輯(控制器)分離出來可以設計一個與後臺數據無關的系統。在iPhone應用程序開發,大量應用了MVC模式。
  • Silverlight: WPF的一個子集,爲跨瀏覽器及跨操作系統平臺而設計。是微軟應對RIA策略的舉措(直接對手是Flash),以瀏覽器的外掛組件方式(Silverlight4插件大約5~6M),在Web程序中能提供良好的用戶交互與體驗,以及流媒體應用等前端解決方案。Silverlight封裝了.Net的一些基礎組件(包括WCF/LINQ等一些高級特性),直接以.net framework編程模型來開發應用程序。Silverlight使用XMAL標記來描述UI界面,並且爲設計人員提供了Expression Blend工具,實現了開發與設計良好的職責分工。但是在HTML5標準發佈後,各大廠商包括微軟都在積極擁抱HTML5,特別是微軟PDC2010大會上發佈“微軟的戰略已經改變”,先後出現了各種擔優的聲音。微軟又先後在2010 Silverlight Firestarter發佈會上發佈了Silverlight 5特性,以及在2011 Build大會前發佈了Silverlight 5 RC版本,證明微軟將繼續支持並發展Silverlight瀏覽器插件技術。此外在Windows Phone 7中也是應用Silverlight技術來開發WP7應用。個人看來,HTML5畢竟是大趨勢,各大廠商以及W3C標準,跨平臺的互聯網應用HTML5是最佳選擇, 但Siverlight仍會在企業內部(Intranet)應用中發揮重要價值。我公司使用的一套內部應用系統,就是基於Silverlight技術創建。在HTML5還有很長的路要走,在其成熟前,Silverlight提供了快速的.net原生開發,以及像Winform一樣良好的用戶操作與界面響應能力。
  • Web服務器-IIS: 通過IIS提供Internet上的web應用託管,包括基於http請求的www服務,以及ftp服務。另外使用SSL能提供http通訊的數據加密。IIS7.0微軟重新設計,提供了重大功能及性能改進。

6. C/S應用

  • Windows Form: Win32時代最經典的標準用戶界面。比較適合開發一些交互性很強,界面複雜,實例程序以及一些本地化應用。對於企業應用缺點是傳統的C/S程序安裝部署比較麻煩,可以使用Click Once技術及自動升級安裝部署的方式解決。
  • WPF: 如果要展現更高級漂亮的用戶界面、展現靈活多變的動畫效果以及基於流媒體、向量圖形的應用,使用WPF是最佳選擇。WPF是.Net3.0框架加入的重要組件,使用標準的XML語言描述界面佈局(被稱爲XAML語言),支持數據綁定及事件定義。WPF可以直接部署在安裝有.Net framework的桌面上(C/S),也可以運行在支持XBAP的瀏覽器內(B/S)。 WPF使得在開發程序時,通過分離UI與邏輯層,更易分工(如讓美工人員進行專業的UI界面設計)。 另外專爲UI設計人員提供了Expression Blend工具。

7. Mobile應用

  • .Net Compact Framework: 在WindowsMobile上的創建的一個.Net framework子集,用來設計移動應用程序。不過在有限的CPU與內存資源下,系統運行效率並不是太高。此外微軟已徹底放棄WindowsMobile,相信.NET Compact Framework3.7是最後一個版本。
  • WP7: 面對移動失利的市場,WindowsMobile遲遲未見改進,直到去年微軟正式發佈了WindowsPhone7,但銷量不佳,今年微軟也與Nokia宣佈深度合作。微軟本週在臺灣地區先行發佈了WindowsPhone 7.5芒果的推送更新,但估計在Nokia大量發佈新手機之前市場佔有率很難有起色。其實個人更看好三星以及HTC的硬件及其創新能力,微軟早就應與HTC等深度合作。 HTC曾是微軟早期WindowsMobile的最有力的合作伙伴,記得在04、05年多普達手機佔居了高端用戶羣,本人也一直使用過多款HTC手機。  如今Android與iPhone已佔領絕大多數智能機市場,WP7的壓力確實不小。 微軟發佈了免費的Visual Studio Express版本以及Windows Phone 7 SDK 來開發WP7應用。在WP7中可以使用Silverlight及XNA 2套框架分別開發WP7應用系統及遊戲程序。WP7的XNA框架可以與微軟的XBOX遊戲兼容。 WP7中使用標準的Metro界面風格來創建應用。(說實話個人並不喜歡,色塊很大並不友好,Title字體太大並且切割在不同的屏幕中)

8. VSTO

Visual Studio Tools for Office,也是VBA的替代品。利用VisualStudio創建基於 Microsoft Office System 的應用,擴展增強Office的文件共享、協作、權限管理、數字分析、圖表、電子郵件、日曆等強大功能。

9. WinRT/Metro

在前幾天微軟2011 Build大會上,微軟發佈了Windows8開發人員預覽版。微軟在應對iPad/iPhone居大成功壓力下做出了重大舉動,改變從Windows NT時代以來的僅以Win32 API爲內核的框架,引入全部的WinRT API。WinRT將是Windows 8以Metro UI風格下核心API組件,它不是另一個抽象層,就像 Win32 API 一樣,直接駐留在OS內核之上。WinRT API 從設計之初就是面向對象的,提供一致性、易用性、以及高性能特性。WinRT API 中支持C++、C#及VB,甚至JavaScript都可以直接調用WinRT底層API。雖然在Windows8中傳統的UI仍可使用,但無疑Metro界面將是微軟未來Windows8的主流。

原文地址:http://blog.csdn.net/smarttony/article/details/6817537

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章