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