使用MVC 5創(chuàng)建動態(tài)的、數(shù)據(jù)驅(qū)動的網(wǎng)站
《ASP.NET MVC 5高級編程(第5版)》作為Microsoft備受歡迎的MVC技術(shù)的最新版本,MVC 5是一個成熟的Web應(yīng)用程序框架,支持快速的、TDD友好的開發(fā)。MVC允許開發(fā)人員創(chuàng)建動態(tài)的、數(shù)據(jù)驅(qū)動的網(wǎng)站。這樣的網(wǎng)站具有復(fù)雜的功能,如單頁面應(yīng)用程序、針對移動設(shè)備優(yōu)化、適應(yīng)性呈現(xiàn)等。本書還包括了MVC 5.1和MVC 5.2中的一些新特性。通過采用分步驟講解的方法,指導(dǎo)讀者如何充分利用MVC。本書的作者不是Microsoft的ASP.NET MVC專家,就是ASP.NET MVC領(lǐng)域的智者,所以作為一本實用的教程,不但強化開發(fā)人員對概念的認(rèn)識,也幫助開發(fā)人員創(chuàng)建自己的應(yīng)用程序。
主要內(nèi)容
◆ 解釋了ASP.NET MVC框架與其他“每個頁面一個文件”的Web框架的區(qū)別
◆ 介紹了控制器、視圖、模型、表單、HTML輔助方法、數(shù)據(jù)注解和驗證、成員資格、授權(quán)、安全性和路由
◆ 新增了對One ASP.NET項目模板、ASP.NET Identity、Bootstrap和特性路由的介紹
◆ 探討了一些重要主題,如Ajax、NuGet、依賴注入、單元測試和MVC擴展
◆ 提供了分步驟指導(dǎo)、真實案例以及眾多代碼示例,幫助讀者從入門階段進階
JonGalloway,是Microsoft的一位專注于ASP.NETMVC的技術(shù)傳道者。
BradWilson,擁有超過20年的專業(yè)軟件開發(fā)經(jīng)驗,10年的Web開發(fā)經(jīng)驗。
K.ScottAllen,是OdeToCode公司的創(chuàng)始人,為全球客戶提供定制開發(fā)、顧問和指導(dǎo)服務(wù)。
DavidMatson,是Microsoft的一名軟件開發(fā)人員。他是MVC5和WebAPI2產(chǎn)品團隊的一員。
2.ASP.NETMVC2概述
與ASP.NETMVC1發(fā)布時隔一年,ASP.NETMVC2于2010年3月發(fā)布。ASP.NETMVC2的部分主要特點如下:
●帶有自定義模板的UI輔助程序
●在客戶端和服務(wù)器端基于特性的模型驗證
●強類型HTML輔助程序
●改善的VisualStudio開發(fā)工具
根據(jù)應(yīng)用ASP.NETMVC1開發(fā)各種應(yīng)用程序的開發(fā)人員的反饋意見,ASP.NETMVC2中增強了許多API的功能以增強其專業(yè)性,比如:
●支持將大型應(yīng)用程序劃分為域
●支持異步控制器
●使用Html.RenderAction支持渲染網(wǎng)頁或網(wǎng)站的某一部分
●許多新的輔助函數(shù)、實用工具和API增強
ASP.NETMVC2發(fā)布的一個重要先例是很少有重大改動,這是ASP.NETMVC結(jié)構(gòu)化設(shè)計的一個證明,這樣就可以實現(xiàn)在核心不變的情況下進行大量的擴展。
3.ASP.NETMVC3概述
在WebMatrix發(fā)布的推動下,ASP.NETMVC3于ASP.NETMVC2發(fā)布之后的第10個月推出。ASP.NETMVC3的主要特征如下:
●支持Razor視圖引擎
●支持.NET4數(shù)據(jù)注解
●改進了模型驗證
●提供更強的控制和更大的靈活性,支持依賴項解析(DependencyResolution)和全局操作過濾器(GlobalActionFilter)
●豐富的JavaScript支持,其中包括非侵入式JavaScript、jQuery驗證和JSON綁定
●支持NuGet,可以用來發(fā)布軟件,管理整個平臺的依賴
自10余年前ASP.NET1.0發(fā)布以來,Razor是在渲染HTML方面的第一個重大更新。在ASP.NETMVC1和ASP.NETMVC2中默認(rèn)使用的視圖引擎普遍稱為WebForms視圖引擎(WebFormsViewEngine),因為它和WebForms使用了同樣的ASPX/ASCX/MASTER文件和語法。但是它的設(shè)計目標(biāo)是支持在圖形編輯器中的編輯控件。下面是在WebForms頁面中這種語法的一個示例:
<%@PageLanguage="C#"
MasterPageFile="~/Views/Shared/Site.Master"Inherits=
"System.Web.Mvc.ViewPage"
%>
BrowseAlbums
<%:Model.Genre.Name%>Albums
<%foreach(varalbuminModel.Albums){%>
<%:album.Title%>
<%:album.Title%>
<%}%>
Razor被專門設(shè)計成視圖引擎的語法。它有一個主要的作用:集中生成HTML代碼模板。下面展示如何應(yīng)用Razor生成同樣的標(biāo)記:
@modelMvcMusicStore.Models.Genre
@{ViewBag.Title="BrowseAlbums";}
@Model.NameAlbums
@foreach(varalbuminModel.Albums)
{
@album.Title
@album.Title
}
Razor語法易于輸入和閱讀。Razor不像WebForms視圖引擎那樣具有類似于XML的繁雜語法規(guī)則。第3章將詳細(xì)討論Razor。
……