內容簡介
使用MVC 5創建動態的、數據驅動的網站
《ASP.NET MVC 5高級編程(第5版)(.NET開發經典名著)》作為Microsoft備受歡迎的MVC技術的全新版本,MVC 5是一個成熟的Web應用程序框架,支持快速的、TDD友好的開發。MVC允許開發人員創建動態的、數據驅動的網站。這樣的網站具有復雜的功能,如單頁麵應用程序、針對移動設備優化、適應性呈現等。本書還包括瞭MVC 5.1和MVC 5.2中的一些新特性。通過采用分步驟講解的方法,指導讀者如何充分利用MVC。本書的作者不是Microsoft的ASP.NET MVC專傢,就是ASP.NET MVC領域的智者,所以作為一本實用的教程,不但強化開發人員對概念的認識,也幫助開發人員創建自己的應用程序。
主要內容
◆ 解釋瞭ASP.NET MVC框架與其他“每個頁麵一個文件”的Web框架的區彆
◆ 介紹瞭控製器、視圖、模型、錶單、HTML輔助方法、數據注解和驗證、成員資格、授權、安全性和路由
◆ 新增瞭對One ASP.NET項目模闆、ASP.NET Identity、Bootstrap和特性路由的介紹
◆ 探討瞭一些重要主題,如Ajax、NuGet、依賴注入、單元測試和MVC擴展
◆ 提供瞭分步驟指導、真實案例以及眾多代碼示例,幫助讀者從入門階段進階
作者簡介
JonGalloway,是Microsoft的一位專注於ASP.NETMVC的技術傳道者。
BradWilson,擁有超過20年的專業軟件開發經驗,10年的Web開發經驗。
K.ScottAllen,是OdeToCode公司的創始人,為全球客戶提供定製開發、顧問和指導服務。
DavidMatson,是Microsoft的一名軟件開發人員。他是MVC5和WebAPI2産品團隊的一員。
目錄
第1章入門
1.1ASP.NETMVC簡介
1.1.1ASP.NETMVC如何適應ASP.NET
1.1.2MVC模式簡介
1.1.3MVC在Web框架中的應用
1.1.4ASP.NETMVC5的發展曆程
1.1.5ASP.NETMVC4概述
1.1.6開源發布
1.2ASP.NETMVC5概述
1.2.1OneASP.NET
1.2.2新的Web項目體驗
1.2.3ASP.NETIdentity
1.2.4Bootstrap模闆
1.2.5特性路由
1.2.6ASP.NET基架
1.2.7身份驗證過濾器
1.2.8過濾器重寫
1.3安裝MVC5和創建應用程序
1.3.1ASP.NETMVC5的軟件需求
1.3.2安裝ASP.NETMVC5
1.3.3創建ASP.NETMVC5應用程序
1.3.4NewASP.NETProject對話框
1.4ASP.NETMVC應用程序的結構
1.4.1ASP.NETMVC和約定
1.4.2約定優於配置
1.4.3約定簡化通信
1.5小結
第2章控製器
2.1控製器的角色
2.2示例應用程序:MVCMusicStore
2.3控製器基礎
2.3.1簡單示例:HomeController
2.3.2創建
第一個控製器
2.3.3控製器操作中的參數
2.4小結
第3章視圖
3.1視圖的作用
3.2視圖的基礎知識
3.3理解視圖約定
3.4強類型視圖
3.4.1ViewBag的不足
3.4.2理解ViewBag、ViewData和ViewDataDictionary
3.5視圖模型
3.6添加視圖
3.7Razor視圖引擎
3.7.1Razor的概念
3.7.2代碼錶達式
3.7.3HTML編碼
3.7.4代碼塊
3.7.5Razor語法示例
3.7.6布局
3.7.7ViewStart
3.8指定部分視圖
3.9小結
第4章模型
4.1為MVCMusicStore建模
4.2為商店管理器構造基架
4.2.1基架的含義
4.2.2基架和實體框架
4.2.3執行基架模闆
4.2.4執行基架代碼
4.3編輯專輯
4.3.1創建編輯專輯的資源
4.3.2響應編輯時的POST請求
4.4模型綁定
4.4.1DefaultModelBinder
4.4.2顯式模型綁定
4.5小結
第5章錶單和HTML輔助方法
5.1錶單的使用
5.1.1action和method特性
5.1.2GET方法還是POST方法
5.2HTML輔助方法
5.2.1自動編碼
5.2.2輔助方法的使用
5.2.3HTML輔助方法的工作原理
5.2.4設置專輯編輯錶單
5.2.5添加輸入元素
5.2.6輔助方法、模型和視圖數據
5.2.7強類型輔助方法
5.2.8輔助方法和模型元數據
5.2.9模闆輔助方法
5.2.10輔助方法和ModelState
5.3其他輸入輔助方法
5.3.1Html.Hidden
5.3.2Html.Password
5.3.3Html.RadioButton
5.3.4Html.CheckBox
5.4渲染輔助方法
5.4.1Html.ActionLink和Html.RouteLink
5.4.2URL輔助方法
5.4.3Html.Partial和Html.RenderPartial
5.4.4Html.Action和Html.RenderAction
5.5小結
第6章數據注解和驗證
6.1為驗證注解訂單
6.1.1驗證注解的使用
6.1.2自定義錯誤提示消息及其本地化
6.1.3注解的後颱原理
6.1.4控製器操作和驗證錯誤
6.2自定義驗證邏輯
6.2.1自定義注解
6.2.2IValidatableObject
6.3顯示和編輯注解
6.3.1Display
6.3.2ScaffoldColumn
6.3.3DisplayFormat
6.3.4ReadOnly
6.3.5DataType
6.3.6UIHint
6.3.7HiddenInput
6.4小結
第7章成員資格、授權和安全性
7.1安全性:無趣、但極其重要
7.2使用Authorize特性登錄
7.2.1保護控製器操作
7.2.2Authorize特性在錶單身份驗證和AccountController控製器中的用法
7.2.3WindowsAuthentication
7.3要求角色成員使用Authorize特性
7.4擴展用戶身份
7.4.1存儲額外的用戶資料數據
7.4.2持久化控製
7.4.3管理用戶和角色
7.5通過OAuth和OpenID的外部登錄
7.5.1注冊外部登錄提供器
7.5.2配置OpenID提供器
7.5.3配置OAuth提供器
7.5.4外部登錄的安全性
7.6Web應用程序中的安全嚮量
7.6.1威脅:跨站腳本
7.6.2威脅:跨站請求僞造
7.6.3威脅:cookie盜竊
7.6.4威脅:重復提交
7.6.5威脅:開放重定嚮
7.7適當的錯誤報告和堆棧跟蹤
7.7.1使用配置轉換
7.7.2在生産環境中使用Retail部署配置
7.7.3使用專門的錯誤日誌係統
7.8安全迴顧和有用資源
7.9小結
第8章Ajax
第9章路由
第10章NuGet
第11章ASP.NETWebAPI
第12章應用AngularJS構建單頁麵應用程序
第13章依賴注入
第14章單元測試
第15章擴展ASP.NETMVC
第16章高級主題
第17章ASP.NETMVC實戰:構建NuGet.org網站
17.11小結
附錄AASP.NETMVC5.1
精彩書摘
2.ASP.NETMVC2概述
與ASP.NETMVC1發布時隔一年,ASP.NETMVC2於2010年3月發布。ASP.NETMVC2的部分主要特點如下:
●帶有自定義模闆的UI輔助程序
●在客戶端和服務器端基於特性的模型驗證
●強類型HTML輔助程序
●改善的VisualStudio開發工具
根據應用ASP.NETMVC1開發各種應用程序的開發人員的反饋意見,ASP.NETMVC2中增強瞭許多API的功能以增強其專業性,比如:
●支持將大型應用程序劃分為域
●支持異步控製器
●使用Html.RenderAction支持渲染網頁或網站的某一部分
●許多新的輔助函數、實用工具和API增強
ASP.NETMVC2發布的一個重要先例是很少有重大改動,這是ASP.NETMVC結構化設計的一個證明,這樣就可以實現在核心不變的情況下進行大量的擴展。
3.ASP.NETMVC3概述
在WebMatrix發布的推動下,ASP.NETMVC3於ASP.NETMVC2發布之後的第10個月推齣。ASP.NETMVC3的主要特徵如下:
●支持Razor視圖引擎
●支持.NET4數據注解
●改進瞭模型驗證
●提供更強的控製和更大的靈活性,支持依賴項解析(DependencyResolution)和全局操作過濾器(GlobalActionFilter)
●豐富的JavaScript支持,其中包括非侵入式JavaScript、jQuery驗證和JSON綁定
●支持NuGet,可以用來發布軟件,管理整個平颱的依賴
自10餘年前ASP.NET1.0發布以來,Razor是在渲染HTML方麵的第一個重大更新。在ASP.NETMVC1和ASP.NETMVC2中默認使用的視圖引擎普遍稱為WebForms視圖引擎(WebFormsViewEngine),因為它和WebForms使用瞭同樣的ASPX/ASCX/MASTER文件和語法。但是它的設計目標是支持在圖形編輯器中的編輯控件。下麵是在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被專門設計成視圖引擎的語法。它有一個主要的作用:集中生成HTML代碼模闆。下麵展示如何應用Razor生成同樣的標記:
@modelMvcMusicStore.Models.Genre
@{ViewBag.Title="BrowseAlbums";}
@Model.NameAlbums
@foreach(varalbuminModel.Albums)
{
@album.Title
@album.Title
}
Razor語法易於輸入和閱讀。Razor不像WebForms視圖引擎那樣具有類似於XML的繁雜語法規則。第3章將詳細討論Razor。
……
前言/序言
對於一名ASP.NET開發人員來說,這是一個偉大的時刻!
無論是對於已經擁有ASP.NET多年開發經驗的開發人員,還是對於剛剛入門的初學者,現在都是深入學習ASP.NETMVC的絕佳時機。ASP.NETMVC從一開始就有很多樂趣,但最近兩個版本添加瞭許多特性,使整個開發過程變得非常愉悅。
ASP.NETMVC3帶來瞭像Razor視圖引擎這樣的新特性,與NuGet包管理係統和jQuery內置整閤來簡化Ajax開發。 ASP.NETMVC5繼續這一趨勢,添加瞭更新的可視化設計、移動Web支持、使用ASP.NETWebAPI的HTTP服務、內置支持OAuth與流 行網站的整閤等。這樣我們就可以快速地開始使用全功能Web應用程序。
這也不是簡單地利用拖放功能提高短期生産率。這一切都建立在一個基於模式的Web框架上,當需要時,這個框架可幫助我們控製應用程序的每個方麵。
加入我們會踏上有趣翔實的ASP.NETMVC5之旅!
本書讀者對象
本書由淺入深地介紹ASP.NETMVC,是一本優秀的ASP.NETMVC教程。
如果剛剛接觸ASP.NETMVC,本書首先會幫助學習MVC概念,然後演示如何在應用代碼示例中應用這些概念。本書作者已經指導成韆上萬名開發人員開始學習ASP.NETMVC,指導怎樣安排結構思路,以便快速創建,入門開發。
我們知道許多讀者都熟悉ASP.NETWebForms,在一些上下文中,我們介紹它們之間的異同來幫助理解它們之間的關係。事實 上,ASP.NETMVC5不是ASP.NETWebForms的替換品。許多Web開發人員也使用其他Web框架,比如RubyonRails、 Node.js、Django,一些PHP框架等,這些框架都適用於MVC(模型-視圖-控製器,Model-View-Controller)應用模 式。如果你屬於這類開發人員,或者隻是好奇,本書就適閤你。
我們也付齣瞭很大努力,確保本書能夠為擁有ASP.NETMVC經驗的開發人員提 供一些幫助。在本書的各個章節,我們介紹瞭組件設計原理,以及如何最好地使用它們。我們添加瞭新的內容,包括大大擴展瞭介紹路由的一章,以介紹 ASP.NETMVC5中新增的特性路由功能。我們還利用從NuGetGallery開發團隊那裏直接得到的知識,更新瞭最後一章的 NuGetGallery案例分析,解釋瞭NuGet開發團隊如何構建和開發真實世界中高容量的ASP.NETMVC網站。另 外,K.ScottAllen還新撰寫瞭一章,解釋瞭如何使用AngularJS構建單頁麵應用程序。
本書組織結構
本書分為兩大部分,每部分由幾個章節構成。前6章主要介紹瞭MVC模式,以及ASP.NETMVC是如何實現MVC模式的。
第1章"入門"幫助你開始進行ASP.NETMVC5開發。首先介紹瞭ASP.NETMVC的概念,然後解釋ASP.NETMVC5如何順應以前的發布版本。最後,在確保正確安裝軟件之後,幫助你開始創建你的第一個ASP.NETMVC5應用程序。
第2章"控製器"講解控製器和操作的基礎內容。你開始編寫一些基本的"helloworld"示例,然後創建從URL中提取信息並在屏幕上顯示應用程序。
第3章"視圖"介紹如何從控製器操作中使用視圖模闆控製輸齣的可視化錶示。此外,還會全麵地介紹Razor視圖引擎,其中包括幫助組織和維護的語法和特徵。
第4章"模型"幫助你學習如何使用模型在控製器和視圖之間傳遞信息,以及如何使用EntityFramework的CodeFirst開發集成數據庫和模型。
第5章"錶單和HTML輔助方法"深入介紹編輯情形,解釋ASP.NETMVC處理錶單的方式。你將從本章中學習到如何使用HTML輔助方法精簡視圖。
第6章"數據注解和驗證"介紹如何使用特性定義模型顯示、編輯和驗證的規則。
接下來的10章以前麵的內容為基礎,介紹瞭一些更加高級的概念和應用程序。
第7章"成員資格、授權和安全性"介紹如何確保ASP.NETMVC應用程序安全,並指齣常見的安全陷阱以及避開這些陷阱的方法。此外,你還會學習到如 何利用ASP.NETMVC應用程序中的ASP.NET成員資格和授權特性來控製訪問權限。另外還將學到新增的ASP.NETIdentity係統的重要 信息。
第8章"Ajax"介紹ASP.NETMVC應用程序中的Ajax程序,並特彆強調jQuery和jQuery插件。本章中,你將會學習到如何使用ASP.NETMVC的Ajax輔助方法,以及如何高效地應用jQuery驗證係統。
第9章"路由"深入介紹用來管理如何將URL映射到控製器操作的路由機製。本章介紹瞭傳統路由和新增的特性路由,展示瞭如何結閤使用這兩種路由,並解釋瞭兩種路由的適用場閤。
第10章"NuGet"介紹NuGet包管理係統。通過本章內容,你將學習到如何將NuGet關聯到ASP.NETMVC,如何安裝NuGet以及如何使用NuGet來安裝、更新和創建新包。
第11章"ASP.NETWebAPI"展示如何使用ASP.NETWebAPI創建HTTP服務。
第12章"應用AngularJS構建單頁麵應用程序"介紹如何將ASP.NETMVC技能和WebAPI技能與流行的AngularJS庫結閤起來使用,創建齣單頁麵應用程序。另外還提供瞭一個有趣的"AtTheMovies"示例應用程序。
第13章"依賴注入"介紹依賴注入以及如何在應用程序中利用依賴注入。
第14章"單元測試"教你如何在ASP.NET應用程序中使用測試驅動開發,並提供編寫高效測試的一些有益忠告。
第15章"擴展ASP.NETMVC"深入講解ASP.NETMVC中的擴展點,並展示如何擴展MVC框架來滿足你的具體需求。
第16章"高級主題"介紹一些高級主題,這些主題在閱讀本書前15章之前講解可能會使你感到吃力。本章涵蓋Razor、基架係統、路由機製、模闆和控製器的一些復雜應用。
第17章"ASP.NETMVC實戰:構建NuGet.org網站"結閤學習的每個知識點來進行NuGetGallery網站 (http://nuget.org)案例研究。在這裏,你會學習到,當使用ASP.NETMVC構建高性能網站時,高級ASP.NET工程師處理測試、 成員資格、部署和數據遷移的方法。
經驗豐富的讀者請注意:
本書前6章的節奏有點慢。這些章節介紹瞭ASP.NETMVC中的一些基本概念,並假定讀者沒有多少相關經驗。如果讀者已經熟悉瞭MVC,可以快速瀏覽前幾章。從第7章開始,講解速度將會加快。
使用本書的條件
為使用ASP.NETMVC5,你可能需要安裝VisualStudio。可以使用MicrosoftVisualStudioExpress2013 的Web版或VisualStudio2013的任何付費版本(如VisualStudio2013Professional)。 VisualStudio2013中包含瞭ASP.NETMVC5。可以從以下網址下載VisualStudio和 VisualStudioExpress:
●VisualStudio
●VisualStudioExpress
也可以在VisualStudio2012中使用ASP.NETMVC5。ASP.NETMVC5包含在VisualStudio2012的ASP.NET和WebTools更新中,下載地址如下:
●ASP.NETandWebTools2013.2forVisualStudio201 第1章詳細介紹瞭軟件需求,並演示瞭如何在開發機和服務器上
ASP.NET MVC 5高級編程(第5版)(.NET開發經典名著) 下載 mobi epub pdf txt 電子書