Presentation is loading. Please wait.

Presentation is loading. Please wait.

DEV309 ASP.NET MVC4 新功能概論 范連喜(demo 電魔小鋪數位有限公司 http://demo.tc.

Similar presentations


Presentation on theme: "DEV309 ASP.NET MVC4 新功能概論 范連喜(demo 電魔小鋪數位有限公司 http://demo.tc."— Presentation transcript:

1 DEV309 ASP.NET MVC4 新功能概論 范連喜(demo 電魔小鋪數位有限公司

2 ASP.NET MVC4 新功能 範本加強 行動開發 網路應用 其他功能

3 ASP.NET MVC4 新功能 範本加強 真正的空白範本
Layout全面翻新,使用HTML5為基礎,支援響應式設計( Responsive Web Design ) 專屬行動應用程式的範本 專屬Web API的範本

4 ASP.NET MVC4 全新空白範本 比 MVC 3 的空範本更乾淨 完全不包含 Layout 只載入基本套件

5 MVC 4 全新空白範本

6 ASP.NET MVC4 全新基本範本 就是原本 MVC 3 的空範本 有基本的 Layout 範例 CSS JavaScript

7 MVC 4 全新基本範本

8 ASP.NET MVC4 網際網路應用程式範本 初學者必看的範本 完整的 Layout 範例 CSS、JavaScript 文件
EntityFramework 5.0 完整的會員註冊、登入範例 表單驗證機制範例 ActionFilter範例

9 ASP.NET MVC4 內部網路應用程式範本 與網際網路應用程式範本大多數相同 沒有會員註冊、登入範例 沒有ActionFilter範例

10 MVC 4 網際/內部 網路應用程式範本 從範例程式中挖寶

11 ASP.NET MVC4 全新範本

12 ASP.NET MVC4 全新範本

13 ASP.NET MVC4 行動應用程式範本 使用 jQuery.mobile與 jQuery.UI

14 ASP.NET MVC4 行動應用程式範本 使用 jQuery.mobile與 jQuery.UI 沒了…這範本就這樣……..

15 MVC 4 行動應用程式範本

16 ASP.NET MVC4 Web API 範本 與網際網路應用程式範本大多數相同 沒有會員註冊、登入範例 沒有ActionFilter範例

17 MVC 4 Web API 範本

18 ASP.NET MVC4 新功能 行動開發 顯示模式的設定 (Display Modes 預設支援 mobile 顯示模式
利用 User Agent 決定顯示模式 (Browser Overriding 擴充方便

19 Display Modes 靈活切換你的 View

20 ASP.NET MVC4 新功能 行動開發 顯示模式的設定 (Display Modes jQuery Mobile
利用 User Agent 決定顯示模式 (Browser Overriding 擴充方便 jQuery Mobile

21 Display Modes 搭配 jQuery.Mobile

22 ASP.NET MVC4 新功能 網路應用 Windows Azure SDK 支援 OAuth 整合 Web API

23 ASP.NET MVC4 整合OAuth // For security purposes, we need to create session-specific callback URLs when not using HTTPS. public static string GetUrlForSession() { return ConfigurationManager.AppSettings["wl_wrap_client_callback"] + "?wl_session_id=" + HttpContext.Current.Session.SessionID; } protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["wrap_verification_code"] != null) { try { // Construct a request for an access token. WebRequest tokenRequest = WebRequest.Create( " tokenRequest.ContentType = "application/x-www-form-urlencoded"; tokenRequest.Method = "POST"; using (StreamWriter writer = new StreamWriter(tokenRequest.GetRequestStream())) { writer.Write(string.Format( "wrap_client_id={0}&wrap_client_secret={1}&wrap_callback={2}&wrap_verification_code={3}", HttpUtility.UrlEncode(ConfigurationManager.AppSettings["wl_wrap_client_id"]), HttpUtility.UrlEncode(ConfigurationManager.AppSettings["wl_wrap_client_secret"]), HttpUtility.UrlEncode(GetUrlForSession()), HttpUtility.UrlEncode(Request.QueryString["wrap_verification_code"]))); } // Send the request and get the response. WebResponse tokenResponse = tokenRequest.GetResponse(); // Read the first line of the response body. string tokenResponseText = new StreamReader(tokenResponse.GetResponseStream()).ReadLine(); // Parse the response body as being in the format of 'x-www-form-urlencoded'. NameValueCollection tokenResponseData = HttpUtility.ParseQueryString(tokenResponseText); // Store data in cookies where the JS API will pick them up. Response.Cookies["wl_clientId"].Value = ConfigurationManager.AppSettings["wl_wrap_client_id"]; Response.Cookies["wl_clientState"].Value = Request.QueryString["wrap_client_state"]; Response.Cookies["wl_scope"].Value = Request.QueryString["exp"]; Response.Cookies["wl_accessToken"].Value = tokenResponseData["wrap_access_token"]; Response.Cookies["wl_accessTokenExpireTime"].Value = tokenResponseData["wrap_access_token_expires_in"]; Response.Cookies["wl_cid"].Value = tokenResponseData["cid"]; Response.Cookies["wl_complete"].Value = "done"; } catch (System.Net.WebException webException) { string responseBody = null; if (webException.Response != null) { using (StreamReader sr = new StreamReader(webException.Response.GetResponseStream(), Encoding.UTF8)) { responseBody = sr.ReadToEnd(); } } throw new Exception(String.Format( "Failure occurred contacting consent service: Response=\r\n\r\n----\r\n{0}\r\n----\r\n\r\n", responseBody), webException); } catch (System.Exception innerException) { throw new Exception("Failed to get access token. Ensure that the verifier token provided is valid.", innerException); } }

24 ASP.NET MVC4 整合OAuth

25 ASP.NET MVC4 整合OAuth

26 ASP.NET MVC4 整合 Microsoft OAuth

27 ASP.NET MVC4 整合 Microsoft OAuth

28 ASP.NET MVC4 整合 Microsoft OAuth

29 ASP.NET MVC4 整合 Microsoft OAuth

30 ASP.NET MVC4 整合 Twitter OAuth

31 ASP.NET MVC4 整合 Twitter OAuth

32 ASP.NET MVC4 整合 Twitter OAuth

33 ASP.NET MVC4 整合 Facebook OAuth

34 ASP.NET MVC4 整合 Facebook OAuth

35 ASP.NET MVC4 整合 Facebook OAuth

36 ASP.NET MVC4 整合 Google OAuth

37 ASP.NET MVC4 整合 OAuth

38 ASP.NET MVC4 整合OAuth 預設已經寫好的知名應用 Microsoft Facebook Twitter
Google (OpenID) LinkedIn Yahoo (OpenID)

39 OAuth 登入操作示範 使用 Facebook 做示範

40 ASP.NET MVC4 Web API Web API RESTful 獨立出一個 WebApiConfig.cs
利用網址簡單呼叫 CRUD 習慣取代配置的另一個實例 RESTful 是一種相當簡潔的軟體架構

41 簡單的新增(C)、查詢(R)、修改(U)、刪除(D)
Web API 簡單的新增(C)、查詢(R)、修改(U)、刪除(D)

42 ASP.NET MVC4 Web API Web API RESTful 獨立出一個 WebApiConfig.cs
利用網址簡單呼叫 CRUD 習慣取代配置的另一個實例 OData獨立為單一專案

43 ASP.NET MVC4 Web API - OData
獨立專案可從NuGET下載 Install-Package Microsoft.AspNet.WebApi.OData -Pre REST + Web API 利用URL即可完成進階查詢功能 $top=n $skip=n $filter=<expression> $orderby=<expression>

44 簡單的 top , skip , filter , orderby
Web API - OData 簡單的 top , skip , filter , orderby

45 ASP.NET MVC4 Web API - OData
eq(Equal to,等於) gt(Greater than,大於) lt(Less than,小於) ne(Not equal to,不等於)

46 ASP.NET MVC 4 新功能 其他功能 CSS 和 JS檔案的壓縮和合併 非同步的支援
不再限制Controller只能建立在預設的Controllers資料夾內 AllowAnonymous _references.js Page Inspector

47 ASP.NET MVC4 壓縮和合併 有效降低網頁傳輸的大小 彈性的設定 支援CDN 智慧判斷載入檔案 .NET 4.5 也可用 不限版本
單一目錄 忽略清單 支援CDN 智慧判斷載入檔案 .NET 4.5 也可用

48 Bundling and Minification
優化網頁輸出大小,有效節省頻寬流量

49 最佳的前端偵錯工具 Internet Explorer
最佳化後的偵錯議題 最佳的前端偵錯工具 Internet Explorer

50 ASP.NET MVC 4 新功能 其他功能 CSS 和 JS檔案的壓縮和合併 非同步的支援
不再限制Controller只能建立在預設的Controllers資料夾內 AllowAnonymous _references.js Page Inspector

51 ASP.NET MVC4 非同步的支援 大幅簡化非同步控制項撰寫的困難度 屬於.NET 4.5 新增功能

52 Task Support for Asynchronous Controllers

53 ASP.NET MVC 4 新功能 其他功能 CSS 和 JS檔案的壓縮和合併 非同步的支援
不再限制Controller只能建立在預設的Controllers資料夾內 AllowAnonymous _references.js Page Inspector

54 Add Controller to any project folder

55 ASP.NET MVC 4 新功能 其他功能 CSS 和 JS檔案的壓縮和合併 非同步的支援
不再限制Controller只能建立在預設的Controllers資料夾內 AllowAnonymous (attribute) _references.js Page Inspector

56 AllowAnonymous 權限驗證的好幫手

57 ASP.NET MVC 4 新功能 其他功能 CSS 和 JS檔案的壓縮和合併 非同步的支援
不再限制Controller只能建立在預設的Controllers資料夾內 AllowAnonymous _references.js Page Inspector

58 ASP.NET MVC 4 新功能 其他功能 CSS 和 JS檔案的壓縮和合併 非同步的支援
不再限制Controller只能建立在預設的Controllers資料夾內 AllowAnonymous _references.js Page Inspector

59 Page Inspector

60 聯絡方式 Blog: http://demo.tc twMVC: http://mvc.tw
Google+: Facebook: Plurk:

61 立即啟動!免費開發人員帳戶!! Windows Store / Windows Azure / Windows Phone
擁有 MSDN 訂閱 「取得代碼」後進行註冊 優惠內容: Windows Store / Windows Phone – 啟用後12個月, 完全免費! Windows Azure – 訂閱期間, 每月固定的免費使用量!

62

63

64

65


Download ppt "DEV309 ASP.NET MVC4 新功能概論 范連喜(demo 電魔小鋪數位有限公司 http://demo.tc."

Similar presentations


Ads by Google