C# 選擇合適的ASP.MET
當(dāng)解決方案架構(gòu)師或程序員認(rèn)定運(yùn)行自己程序的最好平臺是網(wǎng)站后,下一歩是決定使用哪種風(fēng)格的ASP.NETo Microsoft 的第一代 Web 開發(fā)平臺是 Active Server Pages,簡稱 ASP。ASP 在.asp 文件中使用與Razor類似的語法,且常包含一個(gè)嵌入的VB COM,該VB COM是使用Service.CreateObject()初始化的,以便能引用API中公開的方法。雖然仍然支持ASP這種技術(shù),但在創(chuàng)建新的基于Web的程序時(shí),不建議使用這種應(yīng)用程 序類型。
在21世紀(jì)初創(chuàng)建出.NET Framework時(shí),ASP需要進(jìn)行更新,自然會利用該框架,結(jié)果被重命名為ASP.NET。二者主要的區(qū)別在于,ASP.NET將表示層(.aspx文件)與業(yè)務(wù)邏輯層(aspx.cs或aspx.vb文件)分開,業(yè)務(wù)邏輯層常被稱為代碼隱藏。代碼隱藏支持的語言包括C#和VB.NET, ASP.NET模型則被稱為Web Forms。在創(chuàng)建面向IIS和Windows Server操作系統(tǒng)的功能友好、高度復(fù)雜的應(yīng)用程序時(shí),ASP.NET Web Forms仍然是有效的、得到完全支持的技術(shù)。經(jīng)過多年的設(shè)計(jì)和功能改進(jìn),ASRNETWebForms顯然變得有些臃腫。稍后將介紹“臃腫”的具體含義,現(xiàn)在只需要知道,這種“臃腫”標(biāo)簽促使Microsoft開發(fā)一種新風(fēng)格的ASP.NET,即ASP.NETMVC。
ASP.NET MVC 中的 MVC 代表 Model-View-Controller(模型項(xiàng)圖在制器)。如前所述,ASP.NET Web Forms 將ASP代碼分為兩個(gè)不同的層:表示層和業(yè)務(wù)邏輯層。MVC還分出了第三個(gè)層,這三個(gè)層分別是:
? 模型——業(yè)務(wù)層
? 視圖——表不層
? 控制器一輸入控制層
ASP.NET MVC是ASP.NET Web Forms模型的邏輯迭代版本,但要注意,ASP.NET MVC的設(shè)計(jì)、支持概念和實(shí)踐發(fā)生了明顯變化。一些具有ASP.NET Web Forms背景的程序員可能一開始覺得這些變化很有挑戰(zhàn)性,但當(dāng)認(rèn)真使用這個(gè)模型后,將能清晰理解其概念。
ASP.NET Core是ASP.NET大家庭中的新成員,它與.NET Core的關(guān)系就像ASP.NET與.NET Framework的關(guān)系。與.NET Core—樣,ASP.NET Core是一個(gè)開源框架和平臺,可面向Microsoft Windows以外的操作系統(tǒng),如 Linux 和 macOS。ASP.NET Core 支持 Web Applications 和 Web Applications (Model-View-Controller)項(xiàng)目類型。ASP.NET Core Web Applications與ASP.NET Web Pages風(fēng)格類似,為小型網(wǎng)站的程序員提供了一個(gè)比較簡單的實(shí)現(xiàn),而ASP.NETCore Web Applications (MVC)為跨平臺運(yùn)行Web應(yīng)用程序提供了完整的MVC功能。
總之,ASP.NET Web API就像是一個(gè)公開了API的.dll。沒有表示層,只能調(diào)用公開的API方法,并傳入必要的參數(shù)。API方法調(diào)用的結(jié)果是一個(gè)數(shù)據(jù)字符串,在ASP.NET Web API中,這個(gè)字符串采用JSON格式。之后,發(fā)出調(diào)用的客戶端需要解析并以可用形式呈現(xiàn)JSON數(shù)據(jù)。
點(diǎn)擊加載更多評論>>