SlideShare a Scribd company logo
1 of 39
多奇數位創意有限公司
技術總監 黃保翕 ( Will 保哥 )
部落格:http://blog.miniasp.com/
Introducing ASP.NET 5
介紹 ASP.NET 5
• 跨平台
• 使用 .NET 技術
• 開放原始碼 (GitHub)
• 可建構雲端應用程式
• 可部署到雲端或本地環境
• 使用模組化的 CoreFX 框架
• 一套全新且重新打造的 ASP.NET 框架
什麼是 ASP.NET 5
• 歷史包袱
• ASP.NET 1.0 是 15 年前打造的框架
• ASP.NET 5 不再使用 System.Web.dll 組件
• 整合 MVC, Web API 與 WebForms 框架,去蕪存菁
• 雲端狂潮
• 最佳化模組載入與使用,並以最小資源執行 Web 應用程式
• ASP.NET 5 實現輕量且模組化的 HTTP 要求管線
• ASP.NET 5 使用 NuGet 載入必要的 CoreFX
• ASP.NET 5 可執行在任意 self-host 環境 (IIS, Kestrel, …)
• 現有 Web 開發主流
• 開放原始碼與跨平台
• 明顯區分前端開發與後端開發
• 使用相依性注入 (Dependency injection)
為什麼要建構 ASP.NET 5
Installing ASP.NET 5 Beta 7
安裝 ASP.NET 5 Beta 7
• ASP.NET and Web Tools 2015 (Beta7)
• 安裝 beta7 版本 (14.0.60831.0)
http://go.microsoft.com/fwlink/?LinkId=623894
• 下載並安裝 .NET Version Manager (DNVM)
DotNetVersionManager-x64.msi
• 若為 Visual Studio 2015 (Community, Professional, Enterprise)
• 下載並安裝 WebToolsExtensionsVS14.msi
• 下載並安裝 WebToolsExtensionsVSLP14_cht.msi
• 若為 Visual Studio 2015 Express for Web
• 下載並安裝 WebToolsExtensionsVWD14.msi
• 下載並安裝 WebToolsExtensionsVWDLP14_cht.msi
安裝必要工具 ( Windows )
• Installing ASP.NET 5 On Mac OS X
• 安裝 1.0.0-beta7 版本
http://docs.asp.net/en/1.0.0-beta7/getting-
started/installing-on-mac.html
• 下載並安裝 .NET Version Manager (DNVM)
curl -sSL
https://raw.githubusercontent.com/aspnet/Home/dev/dnvmin
stall.sh | DNX_BRANCH=dev sh && source
~/.dnx/dnvm/dnvm.sh
• 下載並安裝 .NET Execution Environment (DNX) (無須 Mono 相依)
• DNX for .NET Core
dnvm upgrade -r coreclr
• 增加 NuGet 套件來源
~/.config/NuGet/NuGet.Config
安裝必要工具 ( Mac OS X )
• DNX for Mono
dnvm upgrade -r mono
• Installing ASP.NET 5 On Linux
• 安裝 1.0.0-beta7 版本
http://docs.asp.net/en/1.0.0-beta7/getting-
started/installing-on-linux.html
• 下載並安裝 .NET Version Manager (DNVM) (與 Mac 相同指令)
• 下載並安裝以下套件
• libunwind8, gettext, libssl-dev, libcurl3-dev, zlib1g
• libuv ( 因為 Kestrel 會用到 )
• 下載並安裝 .NET Execution Environment (DNX) (無須 Mono 相依)
• DNX for .NET Core
dnvm upgrade -r coreclr
• 增加 NuGet 套件來源
~/.config/NuGet/NuGet.Config
安裝必要工具 ( Linux )
• DNX for Mono
dnvm upgrade -r mono
• 重要觀念
• ASP.NET 5 基於 .NET Execution Environment (DNX) 打造
• DNX 是一個微軟官方支援的跨平台支援 .NET 執行環境 (Win, Mac, Linux)
• 可選版本
• .NET Framework (CLR)
• 擁有完整的元件與大量的 API 與較慢的發行週期
• .NET 4.6 可在線上瀏覽完整原始碼
• 只能跑在 Windows 作業系統
• .NET Core (CoreCLR)
• 為 .NET 4.6 的子集合,擁有較少的 API 支援,但支援跨平台執行,也可執行在資
源受限的執行環境中 ( 例如 Windows Server Nano )
• .NET Core 包含一組函式庫稱為 "CoreFX",並統一由 NuGet 發佈
• 目前 Windows 平台已有完整功能實作,而 Linux, OS X 還在持續開發中
• 現有的 .NET 專案若要跑在 CoreCLR 上,必須重新編譯
• Mono
• 支援跨平台的完整 .NET Framework 實作,開源原始碼,但微軟官方不支援
選擇正確的 .NET 版本
• 從這版開始不再「主動」新增功能
• 專注於讓 ASP.NET 5 進入穩定狀態、工具支援
• 除非有人提出重要的建議:
https://github.com/aspnet/Home/issues
• ASP.NET 5 Beta 8 預計在 2015/10/05 釋出!
• 開發伺服器
• 會移除 Helios 專案
• Microsoft.AspNet.Server.IIS (Windows)
• 會專注在以下兩項專案
• Microsoft.AspNet.Server.WebListener (Windows)
• Microsoft.AspNet.Server.Kestrel (跨平台)
關於 ASP.NET 5 Beta 8
Creating your first ASP.NET 5 project
建立 ASP.NET 5 專案
• 安裝 Node.js
• npm install -g yo
• npm install -g generator-aspnet
• yo aspnet
• cd WebApplication
• dnu restore
• dnu build (非必要步驟)
• dnx web
建立專案 ( 使用 yo 工具 )
建立專案 ( 使用 VS2015 工具 )
• 修改任何檔案,不再需要事先建置
• 優點:更流暢的開發體驗
• 缺點:會有不知道何時編譯完成的不確定感
• 前端與後端的分工與整合
• ASP.NET 5 從純後端技術,轉向整合更多前端工程
• ASP.NET 5 整合許多常見的前端技術與前端工具
• 技術:Less, Sass, Font Awesome, TypeScript, RWD, …
• 框架:Bootstrap, Knockout.js, AngularJS, ReactJS, …
• 工具:Gulp, Grunt, npm, Bower, Yeoman, …
全新的 .NET 執行環境與開發環境
• HomeController.About()
• ViewBag.EnvName = Environment.MachineName;
• ViewBag.Software = Environment.OSVersion.ToString();
• 編譯專案 ( F6 )
• 修正錯誤
• 移除 project.json 裡面的 frameworks 裡面的 dnxcore50
修改 Controller 與編譯專案
The ASP.NET 5 project template
專案內容介紹
• 一樣有 *.sln 方案檔
• WebApplication1.sln
• 專案的 NuGet 定義檔
• NuGet.Config
• 方案定義
• global.json
• 定義專案目錄
• 會自動匯入 *.sln 方案檔
• 定義 SDK 版本
ASP.NET 5 方案設定
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-beta7"
}
}
• 改用 *.xproj 專案檔
• ASP.NET 5 取消 *.csproj 定義專案 (使用正向表列檔案)
• ASP.NET 5 改用 *.xproj 定義專案 (改用負向表列檔案)
• 所有專案項目都改採「自動掃描」的方式匯入專案
• 優點:不再需要手動加入專案,減少檔案忘記加入版控的問題
• 缺點:需要不斷掃描是否有新檔案加入專案
• 許多專案設定都移到 project.json 設定檔
• https://github.com/aspnet/Home/wiki/Project.json-file
ASP.NET 5 專案設定
• ASP.NET 5 專案設定檔
• 摘要說明
• ASP.NET 5 已改用 project.json 定義專案 (現在改用負向表列專案檔案)
• 此檔案是 JSON 格式,其內容會與 Gulp 共用 (透過 Node.js 載入)
• 重要屬性
• webroot
• 定義網站根目錄位置 (所有靜態檔案)
• userSecretsId
• 定義網站的 "使用者秘密ID"
• 同主機每個網站應用程式都不能重複
• version
• 定義目前 ASP.NET 5 應用程式版本
• commands
• 設定 dnx 的自訂命令
project.json
• dependencies
• 設定專案要載入哪些套件
• frameworks
• 設定特定執行框架下 (Runtime
Framework) 要載入哪些套件
• exclude
• 哪些資料夾或檔案要排除編譯範圍
• publishExclude
• 哪些資料夾在發布時要排除在外
• scripts
• 設定 dnu 的事件動作
• ASP.NET 5 參數設定檔
• 摘要說明
• 類似之前 web.config 中的 appSettings 設定
• 這裡定義著應用程式執行過程所需的參數,例如連接字串
• 由於檔案是 JSON 格式,因此可以自由添加任何所需參數
• 這裡的 JSON 參數設定完全沒有限制,不一定要按照預設的下去設定
config.json
• ASP.NET 5 開發伺服器設定檔
• 摘要說明
• 這裡定義 ASP.NET 5 開發伺服器所需的參數定義
• 設定說明
• server=Microsoft.AspNet.Server.WebListener
• 定義伺服器種類
• 可能的選項有:
• Microsoft.AspNet.Server.Kestrel
• "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta7"
• Microsoft.AspNet.Server.WebListener
• "Microsoft.AspNet.Server.WebListener": "1.0.0-beta7",
• server.urls=http://localhost:5000
• 定義伺服器的啟動 URL 與 Port
hosting.ini
• ASP.NET 5 專案的進入點
• Startup() 建構式
• 注入物件
• IHostingEnvironment env
• 宿主環境變數
• 提供環境名稱(EnvironmentName)、
網站根目錄位置(WebRootPath)等資訊
• IApplicationEnvironment appEnv
• 應用程式環境變數
• 提供應用程式名稱、路徑、版本、執行框架等資訊
• 定義設定檔來源
• AddJsonFile("config.json")
• AddCommandLine(args)
• AddEnvironmentVariables()
• AddIniFile("config.ini")
• AddInMemoryCollection()
• AddUserSecrets()
Startup.cs 1/3
• 公開屬性:Configuration
• 用於共享設定資訊於類別之中
• ASP.NET 5 專案的進入點
• ConfigureServices() 方法
• 注入物件
• IServiceCollection services
• 用來記錄那些服務要被加入到 ASP.NET 5 容器內的重要物件
• 因為一個 ASP.NET 5 應用程式會包含多個「服務」並在此被註冊進去
• 註冊服務
• Add*() 增加服務到集合裡
• Configure<T>() 設定特定服務選項
• AddTransient<T1, T2>() 註冊自訂的應用程式服務物件
• 重要觀念
• 「服務」是 ASP.NET 5 的模組化元件
Startup.cs 2/3
• ASP.NET 5 專案的進入點
• Configure() 方法
• 注入物件
• IApplicationBuilder app
• 用來建立應用程式 執行管線 (Execution Pipeline) 的重要物件
• IHostingEnvironment env
• 宿主環境變數
• 提供環境名稱(EnvironmentName)、網站根目錄位置(WebRootPath)等資訊
• ILoggerFactory loggerFactory
• ASP.NET 5 內建的 Logger 物件,用來設定 Logger 的紀錄方式
• 使用服務
• Use*() 使用服務
• UseMvc() 使用 ASP.NET MVC 6 服務,路由 (Routing) 也改從這裡宣告
• 注意事項
• 這個方法會決定 ASP.NET 5 執行時期的 執行管線 (Execution Pipeline) 的順序
• 這裡執行順序很重要,必須想清楚你要如何處理每一個 HTTP 要求
Startup.cs 3/3
• package.json
• npm 設定檔
• bower.json
• Bower 設定檔
• gulpfile.js
• Gulp 工作定義檔
前端工程相關檔案
The Main Concepts about ASP.NET 5
重要觀念解析
• ASP.NET 5 的模組化以「服務」為中心
• 要在 ASP.NET 5 中使用這些元件,必須靠 DI (相依性注入)
• ASP.NET 5 內建 IoC (控制反轉) 容器,也可抽換成其他的 IoC
• ASP.NET 5 預設可讓類別建構式注入服務元件
• 服務區分三種類型
• Singleton 每次 Web 應用程式啟動會只會建立一個實體
• services.AddSingleton<IMyApp, MyApp>();
• Scoped 每次 HTTP 要求都會建立一次實體
• services.AddScoped<IMember, Member>();
• Transient 每次執行注入都會建立全新實體
• services.AddTransient<IEmailSender, AuthMessageSender>();
服務元件 ( service components )
• ASP.NET 5 支援 Middleware 架構
• 可將元件依序套用到 HTTP 要求管線 (順序很重要)
• 預設定義在 Startup 類別中的 Configure() 方法
中介元件 ( Middleware )
• 看一下 Startup.cs 的 Configure() 方法
• 為何 loggerFactory.AddConsole(); 要擺在第一順位?
• 為何 app.UseStaticFiles(); 要設定在app.UseIdentity(); 之前?
• 如果順序調換會怎樣?
• 如果加入 app.UseDirectoryBrowser(); 應該擺在哪裡?
• 每個 Middleware 到底在做甚麼?做了什麼事?有沒有文件?
思考題:套用 Middleware 順序
• Authentication
• 提供身分驗證支援
• CORS
• 設定 Cross-Origin Resource Sharing (CORS)
• Diagnostics
• 支援錯誤頁面顯示與執行時期資訊
• Routing
• 定義路由與限制
• Session
• 提供 Session 支援
• Static Files
• 提供 wwwroot (網站根目錄) 下的靜態檔案
ASP.NET 5 內建的 Middleware
• ASP.NET 5 可依據不同環境套用不同設定
• 指定 ASPNET_ENV 環境變數
• Development
• Staging
• Production
• 專案設定
• launchSettings.json
多重執行環境
• SET ASPNET_ENV=LogInline
• dnx web http://localhost:5000
自訂環境與 Middleware 範例
Learning Resources for ASP.NET 5
ASP.NET 5 學習資源
• ASP.NET 5 Documentation
• http://docs.asp.net/en/1.0.0-beta7/ (1.0.0-beta7)
• http://docs.asp.net/en/latest/ (最新版)
• JabbR – AspNetvNext
• https://jabbr.net/#/rooms/AspNetvNext (線上聊天室)
• ASP.NET 5 專案 (GitHub)
• https://github.com/aspnet/Home/issues (討論議題)
• https://github.com/aspnet/Home/wiki (Wiki文件)
• https://github.com/aspnet/Home/releases (版本資訊)
• https://github.com/aspnet/Home/wiki/Roadmap(開發時程)
• https://github.com/aspnet/Announcements/issues (公佈欄)
相關學習資源
• The Will Will Web
記載著 Will 在網路世界的學習心得與技術分享
• http://blog.miniasp.com/
• Will 保哥的技術交流中心 (臉書粉絲專頁)
• http://www.facebook.com/will.fans
• Will 保哥的噗浪
• http://www.plurk.com/willh/invite
• Will 保哥的推特
• https://twitter.com/Will_Huang
聯絡資訊
© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to
changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the
date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
只要完成「大會線上問卷」,可於活動期間於大會服務台兌換問卷禮哦!
請協助完成「本課程線上問卷」,我們重視您的寶貴意見
本課程影音及簡報檔未來將公布於 http://aka.ms/td2015
問卷網址 http://aka.ms/td2015-survey
TechDays 2015 課程影片及簡報檔載點
( 將於九月底陸續釋出 )
aka.ms/td2015
免費線上課程及簡報檔下載
Channel 9
aka.ms/c9-learning
MSDN 台灣
aka.ms/msdntw-fb
TechNet 台灣
aka.ms/tntw-fb
MVA
mva.ms
開發人員社群 IT 專業人員社群
- 您不可不知的微軟四大核心學習資源 -
© 2014 Microsoft Corporation. All rights reserved

More Related Content

What's hot

Frontend Devops at Cloudinsight
Frontend Devops at CloudinsightFrontend Devops at Cloudinsight
Frontend Devops at CloudinsightYan Wang
 
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 TaiwanAzure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 TaiwanWill Huang
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管Will Huang
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!Will Huang
 
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)Will Huang
 
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架Will Huang
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例Will Huang
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽Will Huang
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)Will Huang
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)Will Huang
 
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格Will Huang
 
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)Jeff Chu
 
Micro-frontends with Angular 10 (Modern Web 2020)
Micro-frontends with Angular 10 (Modern Web 2020)Micro-frontends with Angular 10 (Modern Web 2020)
Micro-frontends with Angular 10 (Modern Web 2020)Will Huang
 
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)Will Huang
 
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)Jeff Chu
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Will Huang
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Will Huang
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Jeff Chu
 
Entity framework + Linq 介紹
Entity framework + Linq 介紹Entity framework + Linq 介紹
Entity framework + Linq 介紹Alan Tsai
 

What's hot (20)

Frontend Devops at Cloudinsight
Frontend Devops at CloudinsightFrontend Devops at Cloudinsight
Frontend Devops at Cloudinsight
 
宅學習 Firebase
宅學習 Firebase宅學習 Firebase
宅學習 Firebase
 
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 TaiwanAzure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
 
Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)Angular 4 網站開發最佳實務 (Modern Web 2017)
Angular 4 網站開發最佳實務 (Modern Web 2017)
 
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
 
快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)快速上手 Windows Containers 容器技術 (Docker Taipei)
快速上手 Windows Containers 容器技術 (Docker Taipei)
 
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
使用 C#/Razor 開發互動式 WebAssembly 網站 (Modern Web 2018)
 
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
 
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
ASP.NET 開發人員不可不知的 IIS (IIS for ASP.NET Developers)
 
Micro-frontends with Angular 10 (Modern Web 2020)
Micro-frontends with Angular 10 (Modern Web 2020)Micro-frontends with Angular 10 (Modern Web 2020)
Micro-frontends with Angular 10 (Modern Web 2020)
 
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
 
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
ASP.NET 5 快速入門 (Getting Started ASP.NET 5)
 
Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸Angular 4 新手入門攻略完全制霸
Angular 4 新手入門攻略完全制霸
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
 
Entity framework + Linq 介紹
Entity framework + Linq 介紹Entity framework + Linq 介紹
Entity framework + Linq 介紹
 

Viewers also liked

簡介 GitHub 平台
簡介 GitHub 平台簡介 GitHub 平台
簡介 GitHub 平台Will Huang
 
Growth Mindset 經驗分享
Growth Mindset 經驗分享Growth Mindset 經驗分享
Growth Mindset 經驗分享Will Huang
 
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用Will Huang
 
簡介 Git hub 平台 ( 1.5 hrs )
簡介 Git hub 平台 ( 1.5 hrs )簡介 Git hub 平台 ( 1.5 hrs )
簡介 Git hub 平台 ( 1.5 hrs )Will Huang
 
中小企業選擇雲端服務的實戰密技
中小企業選擇雲端服務的實戰密技中小企業選擇雲端服務的實戰密技
中小企業選擇雲端服務的實戰密技Will Huang
 
初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎Will Huang
 
Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)Will Huang
 
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具Will Huang
 
你所不知道的 Microsoft Azure 雲端資源採購技巧 (2016 Azure 新春特惠方案)
你所不知道的 Microsoft Azure 雲端資源採購技巧 (2016 Azure 新春特惠方案)你所不知道的 Microsoft Azure 雲端資源採購技巧 (2016 Azure 新春特惠方案)
你所不知道的 Microsoft Azure 雲端資源採購技巧 (2016 Azure 新春特惠方案)Will Huang
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Will Huang
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式Will Huang
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWill Huang
 
TypeScript 綜合格鬥技
TypeScript 綜合格鬥技TypeScript 綜合格鬥技
TypeScript 綜合格鬥技Will Huang
 
從開發人員角度十分鐘理解區塊鏈技術
從開發人員角度十分鐘理解區塊鏈技術從開發人員角度十分鐘理解區塊鏈技術
從開發人員角度十分鐘理解區塊鏈技術Will Huang
 

Viewers also liked (14)

簡介 GitHub 平台
簡介 GitHub 平台簡介 GitHub 平台
簡介 GitHub 平台
 
Growth Mindset 經驗分享
Growth Mindset 經驗分享Growth Mindset 經驗分享
Growth Mindset 經驗分享
 
git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用git merge 與 rebase 的觀念與實務應用
git merge 與 rebase 的觀念與實務應用
 
簡介 Git hub 平台 ( 1.5 hrs )
簡介 Git hub 平台 ( 1.5 hrs )簡介 Git hub 平台 ( 1.5 hrs )
簡介 Git hub 平台 ( 1.5 hrs )
 
中小企業選擇雲端服務的實戰密技
中小企業選擇雲端服務的實戰密技中小企業選擇雲端服務的實戰密技
中小企業選擇雲端服務的實戰密技
 
初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎初學者都該了解的 HTTP 通訊協定基礎
初學者都該了解的 HTTP 通訊協定基礎
 
Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)
 
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
《保哥線上講堂》打造一個具有 Linux 溫度的 Windows 命令提示字元工具
 
你所不知道的 Microsoft Azure 雲端資源採購技巧 (2016 Azure 新春特惠方案)
你所不知道的 Microsoft Azure 雲端資源採購技巧 (2016 Azure 新春特惠方案)你所不知道的 Microsoft Azure 雲端資源採購技巧 (2016 Azure 新春特惠方案)
你所不知道的 Microsoft Azure 雲端資源採購技巧 (2016 Azure 新春特惠方案)
 
Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰Visual Studio 2015 與 Git 開發實戰
Visual Studio 2015 與 Git 開發實戰
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
 
Windows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, KubernetesWindows Container 101: dotNET, Container, Kubernetes
Windows Container 101: dotNET, Container, Kubernetes
 
TypeScript 綜合格鬥技
TypeScript 綜合格鬥技TypeScript 綜合格鬥技
TypeScript 綜合格鬥技
 
從開發人員角度十分鐘理解區塊鏈技術
從開發人員角度十分鐘理解區塊鏈技術從開發人員角度十分鐘理解區塊鏈技術
從開發人員角度十分鐘理解區塊鏈技術
 

Similar to DEV305 - ASP.NET 5 開發攻略

Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0國昭 張
 
.NET 7 家族新成員: Microsoft Orleans v7
.NET 7 家族新成員:Microsoft Orleans v7.NET 7 家族新成員:Microsoft Orleans v7
.NET 7 家族新成員: Microsoft Orleans v7twMVC
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛Edward Kuo
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練22016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2Duran Hsieh
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍Tianwei Liu
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
.NET Conf Taiwan 2022 - Tauri - 前端人員也能打造小巧快速的 Windows 應用程式
.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式
.NET Conf Taiwan 2022 - Tauri - 前端人員也能打造小巧快速的 Windows 應用程式升煌 黃
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open CampAndrew Wu
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web frameworkBo-Yi Wu
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩Wen-Tien Chang
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CDChen-Tien Tsai
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用謝 宗穎
 
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式Gelis Wu
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1YI-CHING WU
 
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletServlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletJustin Lin
 
Kubernetes project update and how to contribute
Kubernetes project update and how to contributeKubernetes project update and how to contribute
Kubernetes project update and how to contributeinwin stack
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式Bo-Yi Wu
 

Similar to DEV305 - ASP.NET 5 開發攻略 (20)

Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
 
.NET 7 家族新成員: Microsoft Orleans v7
.NET 7 家族新成員:Microsoft Orleans v7.NET 7 家族新成員:Microsoft Orleans v7
.NET 7 家族新成員: Microsoft Orleans v7
 
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練22016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
 
Node分享 展烨
Node分享 展烨Node分享 展烨
Node分享 展烨
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
.NET Conf Taiwan 2022 - Tauri - 前端人員也能打造小巧快速的 Windows 應用程式
.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式.NET Conf Taiwan 2022 - Tauri -前端人員也能打造小巧快速的 Windows 應用程式
.NET Conf Taiwan 2022 - Tauri - 前端人員也能打造小巧快速的 Windows 應用程式
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
 
How to choose web framework
How to choose web frameworkHow to choose web framework
How to choose web framework
 
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
 
Artifacts management with CI and CD
Artifacts management with CI and CDArtifacts management with CI and CD
Artifacts management with CI and CD
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用
 
使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式使用 .NET Standard 開發跨平台應用程式
使用 .NET Standard 開發跨平台應用程式
 
Elastic stack day-1
Elastic stack day-1Elastic stack day-1
Elastic stack day-1
 
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletServlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
 
Kubernetes project update and how to contribute
Kubernetes project update and how to contributeKubernetes project update and how to contribute
Kubernetes project update and how to contribute
 
用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式用 Docker 改善團隊合作模式
用 Docker 改善團隊合作模式
 

More from Will Huang

深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)Will Huang
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境Will Huang
 
你一定不能不知道的 Markdown 寫作技巧
你一定不能不知道的 Markdown 寫作技巧你一定不能不知道的 Markdown 寫作技巧
你一定不能不知道的 Markdown 寫作技巧Will Huang
 
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)Will Huang
 
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)Will Huang
 
從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點Will Huang
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門Will Huang
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)Will Huang
 
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)Will Huang
 
Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)Will Huang
 
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)Will Huang
 
Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Will Huang
 
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)Will Huang
 
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)Will Huang
 
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)Will Huang
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)Will Huang
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談Will Huang
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018Will Huang
 
迎接嶄新的Windows容器叢集架構:Kubernetes
迎接嶄新的Windows容器叢集架構:Kubernetes迎接嶄新的Windows容器叢集架構:Kubernetes
迎接嶄新的Windows容器叢集架構:KubernetesWill Huang
 
Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017Will Huang
 

More from Will Huang (20)

深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
深入理解 CVE-2022-24765 漏洞的攻擊與防護策略 (Git v2.35.2)
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
 
你一定不能不知道的 Markdown 寫作技巧
你一定不能不知道的 Markdown 寫作技巧你一定不能不知道的 Markdown 寫作技巧
你一定不能不知道的 Markdown 寫作技巧
 
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
使用 .NET 5 實現美股期貨的量化交易策略 (.NET Conf 2020)
 
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
 
從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
 
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
你不可不知的 ASP.NET Core 3 全新功能探索 (.NET Conf 2019)
 
Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)Protractor: The Hacker way (NG-MY 2019)
Protractor: The Hacker way (NG-MY 2019)
 
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
邁向 Windows Server 應用程式現代化 (Windows Server Application Modernization)
 
Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)Angular 开发技巧 (2018 ngChina 开发者大会)
Angular 开发技巧 (2018 ngChina 开发者大会)
 
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
利用.NET Core 與 Azure Kubernetes Service (AKS) 建立高彈性 Microservices (Azure TechDay)
 
AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)AKS 與開發人員體驗 (Kubernetes 大講堂)
AKS 與開發人員體驗 (Kubernetes 大講堂)
 
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
使用 ASP.NET Blazor 開發 SPA 網頁應用程式 (.NET Conf 2018)
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
 
迎接嶄新的Windows容器叢集架構:Kubernetes
迎接嶄新的Windows容器叢集架構:Kubernetes迎接嶄新的Windows容器叢集架構:Kubernetes
迎接嶄新的Windows容器叢集架構:Kubernetes
 
Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017Angular 5 全新功能探索 @ JSDC2017
Angular 5 全新功能探索 @ JSDC2017
 

DEV305 - ASP.NET 5 開發攻略

  • 1. 多奇數位創意有限公司 技術總監 黃保翕 ( Will 保哥 ) 部落格:http://blog.miniasp.com/
  • 3. • 跨平台 • 使用 .NET 技術 • 開放原始碼 (GitHub) • 可建構雲端應用程式 • 可部署到雲端或本地環境 • 使用模組化的 CoreFX 框架 • 一套全新且重新打造的 ASP.NET 框架 什麼是 ASP.NET 5
  • 4. • 歷史包袱 • ASP.NET 1.0 是 15 年前打造的框架 • ASP.NET 5 不再使用 System.Web.dll 組件 • 整合 MVC, Web API 與 WebForms 框架,去蕪存菁 • 雲端狂潮 • 最佳化模組載入與使用,並以最小資源執行 Web 應用程式 • ASP.NET 5 實現輕量且模組化的 HTTP 要求管線 • ASP.NET 5 使用 NuGet 載入必要的 CoreFX • ASP.NET 5 可執行在任意 self-host 環境 (IIS, Kestrel, …) • 現有 Web 開發主流 • 開放原始碼與跨平台 • 明顯區分前端開發與後端開發 • 使用相依性注入 (Dependency injection) 為什麼要建構 ASP.NET 5
  • 5. Installing ASP.NET 5 Beta 7 安裝 ASP.NET 5 Beta 7
  • 6. • ASP.NET and Web Tools 2015 (Beta7) • 安裝 beta7 版本 (14.0.60831.0) http://go.microsoft.com/fwlink/?LinkId=623894 • 下載並安裝 .NET Version Manager (DNVM) DotNetVersionManager-x64.msi • 若為 Visual Studio 2015 (Community, Professional, Enterprise) • 下載並安裝 WebToolsExtensionsVS14.msi • 下載並安裝 WebToolsExtensionsVSLP14_cht.msi • 若為 Visual Studio 2015 Express for Web • 下載並安裝 WebToolsExtensionsVWD14.msi • 下載並安裝 WebToolsExtensionsVWDLP14_cht.msi 安裝必要工具 ( Windows )
  • 7. • Installing ASP.NET 5 On Mac OS X • 安裝 1.0.0-beta7 版本 http://docs.asp.net/en/1.0.0-beta7/getting- started/installing-on-mac.html • 下載並安裝 .NET Version Manager (DNVM) curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvmin stall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh • 下載並安裝 .NET Execution Environment (DNX) (無須 Mono 相依) • DNX for .NET Core dnvm upgrade -r coreclr • 增加 NuGet 套件來源 ~/.config/NuGet/NuGet.Config 安裝必要工具 ( Mac OS X ) • DNX for Mono dnvm upgrade -r mono
  • 8. • Installing ASP.NET 5 On Linux • 安裝 1.0.0-beta7 版本 http://docs.asp.net/en/1.0.0-beta7/getting- started/installing-on-linux.html • 下載並安裝 .NET Version Manager (DNVM) (與 Mac 相同指令) • 下載並安裝以下套件 • libunwind8, gettext, libssl-dev, libcurl3-dev, zlib1g • libuv ( 因為 Kestrel 會用到 ) • 下載並安裝 .NET Execution Environment (DNX) (無須 Mono 相依) • DNX for .NET Core dnvm upgrade -r coreclr • 增加 NuGet 套件來源 ~/.config/NuGet/NuGet.Config 安裝必要工具 ( Linux ) • DNX for Mono dnvm upgrade -r mono
  • 9. • 重要觀念 • ASP.NET 5 基於 .NET Execution Environment (DNX) 打造 • DNX 是一個微軟官方支援的跨平台支援 .NET 執行環境 (Win, Mac, Linux) • 可選版本 • .NET Framework (CLR) • 擁有完整的元件與大量的 API 與較慢的發行週期 • .NET 4.6 可在線上瀏覽完整原始碼 • 只能跑在 Windows 作業系統 • .NET Core (CoreCLR) • 為 .NET 4.6 的子集合,擁有較少的 API 支援,但支援跨平台執行,也可執行在資 源受限的執行環境中 ( 例如 Windows Server Nano ) • .NET Core 包含一組函式庫稱為 "CoreFX",並統一由 NuGet 發佈 • 目前 Windows 平台已有完整功能實作,而 Linux, OS X 還在持續開發中 • 現有的 .NET 專案若要跑在 CoreCLR 上,必須重新編譯 • Mono • 支援跨平台的完整 .NET Framework 實作,開源原始碼,但微軟官方不支援 選擇正確的 .NET 版本
  • 10. • 從這版開始不再「主動」新增功能 • 專注於讓 ASP.NET 5 進入穩定狀態、工具支援 • 除非有人提出重要的建議: https://github.com/aspnet/Home/issues • ASP.NET 5 Beta 8 預計在 2015/10/05 釋出! • 開發伺服器 • 會移除 Helios 專案 • Microsoft.AspNet.Server.IIS (Windows) • 會專注在以下兩項專案 • Microsoft.AspNet.Server.WebListener (Windows) • Microsoft.AspNet.Server.Kestrel (跨平台) 關於 ASP.NET 5 Beta 8
  • 11. Creating your first ASP.NET 5 project 建立 ASP.NET 5 專案
  • 12. • 安裝 Node.js • npm install -g yo • npm install -g generator-aspnet • yo aspnet • cd WebApplication • dnu restore • dnu build (非必要步驟) • dnx web 建立專案 ( 使用 yo 工具 )
  • 13. 建立專案 ( 使用 VS2015 工具 )
  • 14. • 修改任何檔案,不再需要事先建置 • 優點:更流暢的開發體驗 • 缺點:會有不知道何時編譯完成的不確定感 • 前端與後端的分工與整合 • ASP.NET 5 從純後端技術,轉向整合更多前端工程 • ASP.NET 5 整合許多常見的前端技術與前端工具 • 技術:Less, Sass, Font Awesome, TypeScript, RWD, … • 框架:Bootstrap, Knockout.js, AngularJS, ReactJS, … • 工具:Gulp, Grunt, npm, Bower, Yeoman, … 全新的 .NET 執行環境與開發環境
  • 15. • HomeController.About() • ViewBag.EnvName = Environment.MachineName; • ViewBag.Software = Environment.OSVersion.ToString(); • 編譯專案 ( F6 ) • 修正錯誤 • 移除 project.json 裡面的 frameworks 裡面的 dnxcore50 修改 Controller 與編譯專案
  • 16. The ASP.NET 5 project template 專案內容介紹
  • 17. • 一樣有 *.sln 方案檔 • WebApplication1.sln • 專案的 NuGet 定義檔 • NuGet.Config • 方案定義 • global.json • 定義專案目錄 • 會自動匯入 *.sln 方案檔 • 定義 SDK 版本 ASP.NET 5 方案設定 { "projects": [ "src", "test" ], "sdk": { "version": "1.0.0-beta7" } }
  • 18. • 改用 *.xproj 專案檔 • ASP.NET 5 取消 *.csproj 定義專案 (使用正向表列檔案) • ASP.NET 5 改用 *.xproj 定義專案 (改用負向表列檔案) • 所有專案項目都改採「自動掃描」的方式匯入專案 • 優點:不再需要手動加入專案,減少檔案忘記加入版控的問題 • 缺點:需要不斷掃描是否有新檔案加入專案 • 許多專案設定都移到 project.json 設定檔 • https://github.com/aspnet/Home/wiki/Project.json-file ASP.NET 5 專案設定
  • 19. • ASP.NET 5 專案設定檔 • 摘要說明 • ASP.NET 5 已改用 project.json 定義專案 (現在改用負向表列專案檔案) • 此檔案是 JSON 格式,其內容會與 Gulp 共用 (透過 Node.js 載入) • 重要屬性 • webroot • 定義網站根目錄位置 (所有靜態檔案) • userSecretsId • 定義網站的 "使用者秘密ID" • 同主機每個網站應用程式都不能重複 • version • 定義目前 ASP.NET 5 應用程式版本 • commands • 設定 dnx 的自訂命令 project.json • dependencies • 設定專案要載入哪些套件 • frameworks • 設定特定執行框架下 (Runtime Framework) 要載入哪些套件 • exclude • 哪些資料夾或檔案要排除編譯範圍 • publishExclude • 哪些資料夾在發布時要排除在外 • scripts • 設定 dnu 的事件動作
  • 20. • ASP.NET 5 參數設定檔 • 摘要說明 • 類似之前 web.config 中的 appSettings 設定 • 這裡定義著應用程式執行過程所需的參數,例如連接字串 • 由於檔案是 JSON 格式,因此可以自由添加任何所需參數 • 這裡的 JSON 參數設定完全沒有限制,不一定要按照預設的下去設定 config.json
  • 21. • ASP.NET 5 開發伺服器設定檔 • 摘要說明 • 這裡定義 ASP.NET 5 開發伺服器所需的參數定義 • 設定說明 • server=Microsoft.AspNet.Server.WebListener • 定義伺服器種類 • 可能的選項有: • Microsoft.AspNet.Server.Kestrel • "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta7" • Microsoft.AspNet.Server.WebListener • "Microsoft.AspNet.Server.WebListener": "1.0.0-beta7", • server.urls=http://localhost:5000 • 定義伺服器的啟動 URL 與 Port hosting.ini
  • 22. • ASP.NET 5 專案的進入點 • Startup() 建構式 • 注入物件 • IHostingEnvironment env • 宿主環境變數 • 提供環境名稱(EnvironmentName)、 網站根目錄位置(WebRootPath)等資訊 • IApplicationEnvironment appEnv • 應用程式環境變數 • 提供應用程式名稱、路徑、版本、執行框架等資訊 • 定義設定檔來源 • AddJsonFile("config.json") • AddCommandLine(args) • AddEnvironmentVariables() • AddIniFile("config.ini") • AddInMemoryCollection() • AddUserSecrets() Startup.cs 1/3 • 公開屬性:Configuration • 用於共享設定資訊於類別之中
  • 23. • ASP.NET 5 專案的進入點 • ConfigureServices() 方法 • 注入物件 • IServiceCollection services • 用來記錄那些服務要被加入到 ASP.NET 5 容器內的重要物件 • 因為一個 ASP.NET 5 應用程式會包含多個「服務」並在此被註冊進去 • 註冊服務 • Add*() 增加服務到集合裡 • Configure<T>() 設定特定服務選項 • AddTransient<T1, T2>() 註冊自訂的應用程式服務物件 • 重要觀念 • 「服務」是 ASP.NET 5 的模組化元件 Startup.cs 2/3
  • 24. • ASP.NET 5 專案的進入點 • Configure() 方法 • 注入物件 • IApplicationBuilder app • 用來建立應用程式 執行管線 (Execution Pipeline) 的重要物件 • IHostingEnvironment env • 宿主環境變數 • 提供環境名稱(EnvironmentName)、網站根目錄位置(WebRootPath)等資訊 • ILoggerFactory loggerFactory • ASP.NET 5 內建的 Logger 物件,用來設定 Logger 的紀錄方式 • 使用服務 • Use*() 使用服務 • UseMvc() 使用 ASP.NET MVC 6 服務,路由 (Routing) 也改從這裡宣告 • 注意事項 • 這個方法會決定 ASP.NET 5 執行時期的 執行管線 (Execution Pipeline) 的順序 • 這裡執行順序很重要,必須想清楚你要如何處理每一個 HTTP 要求 Startup.cs 3/3
  • 25. • package.json • npm 設定檔 • bower.json • Bower 設定檔 • gulpfile.js • Gulp 工作定義檔 前端工程相關檔案
  • 26. The Main Concepts about ASP.NET 5 重要觀念解析
  • 27. • ASP.NET 5 的模組化以「服務」為中心 • 要在 ASP.NET 5 中使用這些元件,必須靠 DI (相依性注入) • ASP.NET 5 內建 IoC (控制反轉) 容器,也可抽換成其他的 IoC • ASP.NET 5 預設可讓類別建構式注入服務元件 • 服務區分三種類型 • Singleton 每次 Web 應用程式啟動會只會建立一個實體 • services.AddSingleton<IMyApp, MyApp>(); • Scoped 每次 HTTP 要求都會建立一次實體 • services.AddScoped<IMember, Member>(); • Transient 每次執行注入都會建立全新實體 • services.AddTransient<IEmailSender, AuthMessageSender>(); 服務元件 ( service components )
  • 28. • ASP.NET 5 支援 Middleware 架構 • 可將元件依序套用到 HTTP 要求管線 (順序很重要) • 預設定義在 Startup 類別中的 Configure() 方法 中介元件 ( Middleware )
  • 29. • 看一下 Startup.cs 的 Configure() 方法 • 為何 loggerFactory.AddConsole(); 要擺在第一順位? • 為何 app.UseStaticFiles(); 要設定在app.UseIdentity(); 之前? • 如果順序調換會怎樣? • 如果加入 app.UseDirectoryBrowser(); 應該擺在哪裡? • 每個 Middleware 到底在做甚麼?做了什麼事?有沒有文件? 思考題:套用 Middleware 順序
  • 30. • Authentication • 提供身分驗證支援 • CORS • 設定 Cross-Origin Resource Sharing (CORS) • Diagnostics • 支援錯誤頁面顯示與執行時期資訊 • Routing • 定義路由與限制 • Session • 提供 Session 支援 • Static Files • 提供 wwwroot (網站根目錄) 下的靜態檔案 ASP.NET 5 內建的 Middleware
  • 31. • ASP.NET 5 可依據不同環境套用不同設定 • 指定 ASPNET_ENV 環境變數 • Development • Staging • Production • 專案設定 • launchSettings.json 多重執行環境
  • 32. • SET ASPNET_ENV=LogInline • dnx web http://localhost:5000 自訂環境與 Middleware 範例
  • 33. Learning Resources for ASP.NET 5 ASP.NET 5 學習資源
  • 34. • ASP.NET 5 Documentation • http://docs.asp.net/en/1.0.0-beta7/ (1.0.0-beta7) • http://docs.asp.net/en/latest/ (最新版) • JabbR – AspNetvNext • https://jabbr.net/#/rooms/AspNetvNext (線上聊天室) • ASP.NET 5 專案 (GitHub) • https://github.com/aspnet/Home/issues (討論議題) • https://github.com/aspnet/Home/wiki (Wiki文件) • https://github.com/aspnet/Home/releases (版本資訊) • https://github.com/aspnet/Home/wiki/Roadmap(開發時程) • https://github.com/aspnet/Announcements/issues (公佈欄) 相關學習資源
  • 35. • The Will Will Web 記載著 Will 在網路世界的學習心得與技術分享 • http://blog.miniasp.com/ • Will 保哥的技術交流中心 (臉書粉絲專頁) • http://www.facebook.com/will.fans • Will 保哥的噗浪 • http://www.plurk.com/willh/invite • Will 保哥的推特 • https://twitter.com/Will_Huang 聯絡資訊
  • 36. © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 只要完成「大會線上問卷」,可於活動期間於大會服務台兌換問卷禮哦! 請協助完成「本課程線上問卷」,我們重視您的寶貴意見 本課程影音及簡報檔未來將公布於 http://aka.ms/td2015 問卷網址 http://aka.ms/td2015-survey
  • 37.
  • 38. TechDays 2015 課程影片及簡報檔載點 ( 將於九月底陸續釋出 ) aka.ms/td2015 免費線上課程及簡報檔下載 Channel 9 aka.ms/c9-learning MSDN 台灣 aka.ms/msdntw-fb TechNet 台灣 aka.ms/tntw-fb MVA mva.ms 開發人員社群 IT 專業人員社群 - 您不可不知的微軟四大核心學習資源 -
  • 39. © 2014 Microsoft Corporation. All rights reserved

Editor's Notes

  1. %appdata%\NuGet\NuGet.config
  2. yo aspnet --grunt
  3. 在 C# 原始碼編輯器中的左上角可以切換 DNX 版本
  4. 為何 loggerFactory.AddConsole(); 要擺在第一順位? Ans: 因為註冊完這個 Middleware 之後會在之後所有的 Middleware 技術所有偵錯資訊。 為何 app.UseStaticFiles(); 要設定在app.UseIdentity(); 之前? Ans: 因為 StaticFiles 不需要進行認證或授權,因此預設大家都可以存取或下載 如果順序調換會怎樣? Ans: 如果順序對調,就會連靜態檔案也可以一併進行身分驗證。 如果加入 app.UseDirectoryBrowser(); 應該擺在哪裡? Ans: 擺在最後面,不然 ASP.NET MVC 就不會執行了。 每個 Middleware 到底在做甚麼?做了什麼事?有沒有文件? Ans: 這是一種對複雜事物進行封裝的概念,是一種抽象化的過程,隱藏細節是對的,但需要文件支援。 目前內建的 Middleware 都有原始碼與範例程式,但不一定有文件可看。
  5. Middleware http://docs.asp.net/en/1.0.0-beta7/fundamentals/middleware.html
  6. Properties\launchSettings.json Working with Multiple Environments — ASP.NET 0.0.1 documentation http://docs.asp.net/en/1.0.0-beta7/fundamentals/environments.html