SlideShare a Scribd company logo
1 of 52
Download to read offline
ASP.NET CORE
實務開發經驗分享
Presented by
Duran Hsieh
http://dog0416.blogspot.tw/
CONTENTS
• What's difference between .Net
core and .Net Framework
• Introduction to ASP.Net Core
• Request pipeline
• Middleware
• Dependency Injection
• Multiple Environments
• QA
WHAT'S DIFFERENCE
BETWEEN
.NET CORE
AND
.NET FRAMEWORK
4Presented By: Duran Hsieh
.NET CORE & .NET FRAMEWORK
新一代
.NET FRAMEWORK
跨平台 套件化管理 .NET CLI 指令列
.NET CORE
更好的效能
適合
MICROSERVICES
CONSOLE APPLICATION
CLASS LIBRARY
5Presented By: Duran Hsieh
.NET CORE & .NET FRAMEWORK
PRROJECT.JSON -> .CSPROJ
穩定版本
WINDOWS FORMS
AND WPF
.NET CORE
6Presented By: Duran Hsieh
.NET CORE & .NET FRAMEWORK
•.NET CLI
指令 說明
dotnet new 產生新的 .Net 專案內容
dotnet restore 還原專案所使用的Nuget套件
dotnet build 建構專案
dotnet publish 產生可發行專案
dotnet run 編譯與執行.Net專案
dotnet repl 啟動互動式模式
dotnet pack 產出封裝成 Nuget套件
7Presented By: Duran Hsieh
.NET CORE & .NET FRAMEWORK
• Install for Windows
• Visual Studio
• Visual Studio 2015 Update 3
• .NET Core 1.0.1 - VS 2015 Tooling Preview 2
• CI and Visual Studio Code
• .NET Core SDK 1.1 for Windows
8Presented By: Duran Hsieh
.NET CORE & .NET FRAMEWORK
• Install for Windows
• Visual Studio
• Visual Studio 2017 RC
• CI and Visual Studio Code
• .NET Core SDK 1.0 RC4
9Presented By: Duran Hsieh
.NET CORE & .NET FRAMEWORK
• Command line demo
• Visual studio code demo
INTRODUCTION TO
ASP.NET CORE
11Presented By: Duran Hsieh
INTRODUCTION TO ASP.NET CORE
ASP.NET CORE
• 新的 ASP.NET (WEB 端的開發類別庫)
• 具跨平台特性
• 不使用 SYSTEM.WEB 套件
• 截然不同的HTTP REQUEST處理流程
• OWIN 概念
• 內建 DEPENDENCY INJECTION
• .NET CLI 指令列工具 (過去使用 DNX)
12Presented By: Duran Hsieh
INTRODUCTION TO ASP.NET CORE
13Presented By: Duran Hsieh
INTRODUCTION TO ASP.NET CORE
靜態檔案位
置
參數設定
打包JS與CSS
程式起始位置
註冊服務與設定
REQUEST的位置
14Presented By: Duran Hsieh
PROGRAM.CS
• 程式起始位置 – program.cs
15Presented By: Duran Hsieh
STARTUP.CS
• 啟動檔 – startup.cs
• 建構子
• 路徑設定
• 環境變數設定
• appsetting.json 匯入設定
• ConfigureServices
• 註冊服務
• Configuration
• Request pipe-line 設定
16Presented By: Duran Hsieh
WWWROOT
• 靜態資料夾 - wwwroot
• 前端與 ASP.NET 專案整合
• 前端人員的開發習慣
• 前端專案與MVC專案整合
• 需要調整持續整合流程
• 注意事項
• 處理 Http Request 的順序相當重要
• 存取的問題
17Presented By: Duran Hsieh
WWWROOT
• program.cs
18Presented By: Duran Hsieh
WWWROOT
• startup.cs
19Presented By: Duran Hsieh
APPSETTING.JSON
• appsetting.json
• 相當於 webconfig.xml (app.config.xml) 的 appsetting
appsetting.json
web.config
20Presented By: Duran Hsieh
APPSETTING.JSON
• 使用方法 (startup.cs)
• 方法1:
• Configuration.GetSection(“Logging”);
• getValue<T>()
• key()
• value()
• path()
• 方法2:
• 建立 DTO 物件
• 註冊 services.Configure<T> (Configuration.GetSection("logging"));
• 於建構子注入使用
21Presented By: Duran Hsieh
APPSETTING.JSON
• bundleconfig.json
• 相當於過去的 bundleconfig.cs
• 打包、壓縮 javascript 與 css 檔案
Request pipeline
23Presented By: Duran Hsieh
REQUEST PIPELINE
Request
Response
Middleware1 Middleware2 Middleware3
logic logic logic
logiclogiclogic
24Presented By: Duran Hsieh
REQUEST PIPELINE
.USE
.RUN
25Presented By: Duran Hsieh
REQUEST PIPELINE
.MAP
26Presented By: Duran Hsieh
REQUEST PIPELINE
• 專案經驗
• 對於SPA作為
• 發生404錯誤導回前端
• 同站台,開放image
• 順序很重要
Middleware
28Presented By: Duran Hsieh
MIDDLEWARE
Inset your short subtitle here to explain a little above title
• 建立middleware
• 透過 C# extension method
• UseRequestLoggerMiddleware()
• ApplicationBuilder 讀取 middleware
29Presented By: Duran Hsieh
MIDDLEWARE
Inset your short subtitle here to explain a little above title
• 建立 middleware
• 必須在 configure 方法內呼叫
• 建構子必須包含 RequestDelegate
• 必須包含一個 invoke 方法
30Presented By: Duran Hsieh
MIDDLEWARE
Inset your short subtitle here to explain a little above title
31Presented By: Duran Hsieh
MIDDLEWARE
Inset your short subtitle here to explain a little above title
• middleware 應用
• JSON Web Token, JWT
32Presented By: Duran Hsieh
MIDDLEWARE
Inset your short subtitle here to explain a little above title
Dependency Injection
34Presented By: Duran Hsieh
DEPENDENCY INJECTION
• Configuration Objects
• Framework-provided services
• Application Services (Own Services)
35Presented By: Duran Hsieh
DEPENDENCY INJECTION
• Configuration Objects
建構子內注入建立DTO ConfigureServices
方法內註冊
36Presented By: Duran Hsieh
DEPENDENCY INJECTION
• Framework-provided services
依情況使用ConfigureServices
方法內註冊
37Presented By: Duran Hsieh
DEPENDENCY INJECTION
• Application Services (Own Services)
建構子內注入ConfigureServices
方法內註冊
38Presented By: Duran Hsieh
DEPENDENCY INJECTION
• Service lifetimes
• Transient
• 每次請求的時候皆會重新建立服務
• Ex: services.AddTransient<IOperationTransient, Operation>();
• Scoped
• 每一次 Request 的時候建立服務,Request 完成後結束
• Ex: services.AddScoped<IOperationScoped, Operation>();
• Singleton
• 第一次請求的時候建立,永久存在
• Ex: services.AddSingleton<IOperationSingleton, Operation>();
Multiple Environments
40Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
• 多種開發環境設定
• 因應各種環境有不同的設定
• Development
• QA
• Staging
• Production
• …
41Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
• 多種開發環境設定
• .Net Framework
• web.config 設定參數
• 發佈專案時設定取用檔案
• .Net Core
• Appsetting.json 設定參數
• 環境變數:
• 開發期間:visual studio 內部設定
• 作業系統內設定
• IIS 內參數設定
42Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
操作步驟: 加入各環境 appsetting.json
43Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
.Net Core rc4之前的版本 與 Visual Studio 2015
需加入
否則發佈會遺失檔案
44Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
.Net Core rc4的版本 與 Visual Studio 2017 RC
ANS: 只需要加入專案即可
45Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
• 環境參數設定
• Name: ASPNETCORE_ENVIRONMENT
value : Development
• Name: ASPNETCORE_ENVIRONMENT
value : Staging
• Name: ASPNETCORE_ENVIRONMENT
value : Production
46Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
開發期間:Visual Studio 內部設定
47Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
發佈期間:Windows 內環境變數設定
48Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
發佈期間:IIS 內部設定(1)
49Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
發佈期間:IIS 內部設定(2)
50Presented By: Duran Hsieh
ENVIRONMENT VARIABLE
• (經驗)若沒有設定環境變數,appsetting.{xxx}.json
會自動選擇最後一個使用。
• (經驗) dotnet publish 參數無法指定環境變數。
QUESTION & ANSWERS
THANK YOU FOR
WATCHING

More Related Content

What's hot

twMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略Will Huang
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲ChinaNetCloud
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽Will Huang
 
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Gelis Wu
 
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架Will Huang
 
Asp.net 5 新功能與變革
Asp.net 5 新功能與變革Asp.net 5 新功能與變革
Asp.net 5 新功能與變革Gelis Wu
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Jeff Chu
 
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用twMVC
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例Will Huang
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node jsXuefeng Zhang
 
twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open CampAndrew Wu
 
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
 
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
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOpsAndrew Wu
 
全新 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
 
我們與Azure DevOps的距離
我們與Azure DevOps的距離我們與Azure DevOps的距離
我們與Azure DevOps的距離Edward Kuo
 
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)Will Huang
 

What's hot (20)

twMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 Log
 
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
 
開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽開發人員不可不知的 Windows Container 容器技術預覽
開發人員不可不知的 Windows Container 容器技術預覽
 
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探
 
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
 
Asp.net 5 新功能與變革
Asp.net 5 新功能與變革Asp.net 5 新功能與變革
Asp.net 5 新功能與變革
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
 
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node js
 
twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart Factory
 
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
 
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)
 
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)
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
 
我們與Azure DevOps的距離
我們與Azure DevOps的距離我們與Azure DevOps的距離
我們與Azure DevOps的距離
 
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
實現 Angular, Docker 與 Kubernetes 持續部署 (NG+2020)
 

Viewers also liked

客服系統的軟體架設計分享
客服系統的軟體架設計分享客服系統的軟體架設計分享
客服系統的軟體架設計分享Johnson Gau
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練12015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1Duran Hsieh
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練62016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6Duran Hsieh
 
7 SaaS Revenue Streams
7 SaaS Revenue Streams7 SaaS Revenue Streams
7 SaaS Revenue StreamsLincoln Murphy
 
Multi thread 多執行緒程式設計(use c#)
Multi thread 多執行緒程式設計(use c#)Multi thread 多執行緒程式設計(use c#)
Multi thread 多執行緒程式設計(use c#)Gelis Wu
 
20140111
2014011120140111
20140111home
 
20160702 ocac
20160702 ocac20160702 ocac
20160702 ocachome
 
20140831 僑校 行動教學 + 雲端教室 的設置與分享
20140831 僑校 行動教學 + 雲端教室 的設置與分享20140831 僑校 行動教學 + 雲端教室 的設置與分享
20140831 僑校 行動教學 + 雲端教室 的設置與分享home
 
20150711
2015071120150711
20150711home
 
20150203 第三次iPad分享課程
20150203 第三次iPad分享課程20150203 第三次iPad分享課程
20150203 第三次iPad分享課程home
 
20150210 第四次iPad分享課程
20150210 第四次iPad分享課程20150210 第四次iPad分享課程
20150210 第四次iPad分享課程home
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練52015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5Duran Hsieh
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3Duran Hsieh
 
20150120 第一次iPad分享課程
20150120 第一次iPad分享課程20150120 第一次iPad分享課程
20150120 第一次iPad分享課程home
 
20150127 第二次iPad分享課程
20150127 第二次iPad分享課程20150127 第二次iPad分享課程
20150127 第二次iPad分享課程home
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練52016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5Duran Hsieh
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4Duran Hsieh
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練22015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2Duran Hsieh
 
軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)Gelis Wu
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4Duran Hsieh
 

Viewers also liked (20)

客服系統的軟體架設計分享
客服系統的軟體架設計分享客服系統的軟體架設計分享
客服系統的軟體架設計分享
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練12015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練62016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
 
7 SaaS Revenue Streams
7 SaaS Revenue Streams7 SaaS Revenue Streams
7 SaaS Revenue Streams
 
Multi thread 多執行緒程式設計(use c#)
Multi thread 多執行緒程式設計(use c#)Multi thread 多執行緒程式設計(use c#)
Multi thread 多執行緒程式設計(use c#)
 
20140111
2014011120140111
20140111
 
20160702 ocac
20160702 ocac20160702 ocac
20160702 ocac
 
20140831 僑校 行動教學 + 雲端教室 的設置與分享
20140831 僑校 行動教學 + 雲端教室 的設置與分享20140831 僑校 行動教學 + 雲端教室 的設置與分享
20140831 僑校 行動教學 + 雲端教室 的設置與分享
 
20150711
2015071120150711
20150711
 
20150203 第三次iPad分享課程
20150203 第三次iPad分享課程20150203 第三次iPad分享課程
20150203 第三次iPad分享課程
 
20150210 第四次iPad分享課程
20150210 第四次iPad分享課程20150210 第四次iPad分享課程
20150210 第四次iPad分享課程
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練52015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
 
20150120 第一次iPad分享課程
20150120 第一次iPad分享課程20150120 第一次iPad分享課程
20150120 第一次iPad分享課程
 
20150127 第二次iPad分享課程
20150127 第二次iPad分享課程20150127 第二次iPad分享課程
20150127 第二次iPad分享課程
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練52016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練22015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
 
軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)軟體開發之路甘苦談(Gelis)
軟體開發之路甘苦談(Gelis)
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
 

Similar to [Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享

从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
Rest与面向资源的web开发
Rest与面向资源的web开发Rest与面向资源的web开发
Rest与面向资源的web开发topgeek
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?Kirk Chen
 
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】inwin stack
 
Net 相依性注入 學習筆記 1.0
Net 相依性注入 學習筆記 1.0Net 相依性注入 學習筆記 1.0
Net 相依性注入 學習筆記 1.0智興 陳
 
GDG Taichung: What is new in Firebase
GDG Taichung: What is new in Firebase GDG Taichung: What is new in Firebase
GDG Taichung: What is new in Firebase Duran Hsieh
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用謝 宗穎
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAEq3boy
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍Tianwei Liu
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0國昭 張
 
Yog Framework
Yog FrameworkYog Framework
Yog Frameworkfansekey
 
twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決twMVC
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUGYingSiang Geng
 
ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展江華 奚
 
聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevicesDuran Hsieh
 
GitHub Action Introduction
GitHub Action IntroductionGitHub Action Introduction
GitHub Action IntroductionDuran Hsieh
 
前端转行 DevOps 经验分享
前端转行 DevOps 经验分享前端转行 DevOps 经验分享
前端转行 DevOps 经验分享Yan Wang
 
Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Gelis Wu
 

Similar to [Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享 (20)

从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
Rest与面向资源的web开发
Rest与面向资源的web开发Rest与面向资源的web开发
Rest与面向资源的web开发
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?
 
Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】Train.IO 【第六期-OpenStack 二三事】
Train.IO 【第六期-OpenStack 二三事】
 
Net 相依性注入 學習筆記 1.0
Net 相依性注入 學習筆記 1.0Net 相依性注入 學習筆記 1.0
Net 相依性注入 學習筆記 1.0
 
GDG Taichung: What is new in Firebase
GDG Taichung: What is new in Firebase GDG Taichung: What is new in Firebase
GDG Taichung: What is new in Firebase
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用
 
Nodejs & NAE
Nodejs & NAENodejs & NAE
Nodejs & NAE
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍
 
Asp.net core v1.0
Asp.net core v1.0Asp.net core v1.0
Asp.net core v1.0
 
Yog Framework
Yog FrameworkYog Framework
Yog Framework
 
twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決twMVC#19 | opserver監控服務的解決
twMVC#19 | opserver監控服務的解決
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
 
ASP.NET Core 2.1設計新思維與新發展
ASP.NET  Core 2.1設計新思維與新發展ASP.NET  Core 2.1設計新思維與新發展
ASP.NET Core 2.1設計新思維與新發展
 
聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices
 
GitHub Action Introduction
GitHub Action IntroductionGitHub Action Introduction
GitHub Action Introduction
 
前端转行 DevOps 经验分享
前端转行 DevOps 经验分享前端转行 DevOps 经验分享
前端转行 DevOps 经验分享
 
Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________Blazor in NET 8 的重大改變___________________
Blazor in NET 8 的重大改變___________________
 

More from Duran Hsieh

聽微軟專家說為何.NET開發非學不可?
聽微軟專家說為何.NET開發非學不可?聽微軟專家說為何.NET開發非學不可?
聽微軟專家說為何.NET開發非學不可?Duran Hsieh
 
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程Duran Hsieh
 
Visual Studio Dev Tunnel.pdf
Visual Studio Dev Tunnel.pdfVisual Studio Dev Tunnel.pdf
Visual Studio Dev Tunnel.pdfDuran Hsieh
 
GDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfGDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfDuran Hsieh
 
Cloud Study Jam - ML API 4
Cloud Study Jam -  ML API 4Cloud Study Jam -  ML API 4
Cloud Study Jam - ML API 4Duran Hsieh
 
Cloud Study Jam ML API 3
Cloud Study Jam ML API 3Cloud Study Jam ML API 3
Cloud Study Jam ML API 3Duran Hsieh
 
GDG Taichung: Cloud Study Jam ML API
GDG Taichung: Cloud Study Jam ML APIGDG Taichung: Cloud Study Jam ML API
GDG Taichung: Cloud Study Jam ML APIDuran Hsieh
 
GDG Taichung - Firebase Introduction 01
GDG Taichung - Firebase Introduction 01GDG Taichung - Firebase Introduction 01
GDG Taichung - Firebase Introduction 01Duran Hsieh
 
Study4TW .NET Conf Local Event Taichung 2018 slideshow
Study4TW .NET Conf Local Event Taichung 2018 slideshowStudy4TW .NET Conf Local Event Taichung 2018 slideshow
Study4TW .NET Conf Local Event Taichung 2018 slideshowDuran Hsieh
 
What is .NET Chinese ver
What is .NET Chinese verWhat is .NET Chinese ver
What is .NET Chinese verDuran Hsieh
 
Microsoft recommendation solution on azure
Microsoft recommendation solution on azureMicrosoft recommendation solution on azure
Microsoft recommendation solution on azureDuran Hsieh
 
Microsoft professional program introduction
Microsoft professional program introductionMicrosoft professional program introduction
Microsoft professional program introductionDuran Hsieh
 
聰明的投資者
聰明的投資者聰明的投資者
聰明的投資者Duran Hsieh
 
Android 基礎課程補充資料
Android 基礎課程補充資料Android 基礎課程補充資料
Android 基礎課程補充資料Duran Hsieh
 
Android基礎課程3 - APP上架、廣告與 Facebook 登入
Android基礎課程3 - APP上架、廣告與 Facebook 登入Android基礎課程3 - APP上架、廣告與 Facebook 登入
Android基礎課程3 - APP上架、廣告與 Facebook 登入Duran Hsieh
 
Android基礎課程2 - google map android API
Android基礎課程2 - google map android APIAndroid基礎課程2 - google map android API
Android基礎課程2 - google map android APIDuran Hsieh
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3Duran Hsieh
 

More from Duran Hsieh (17)

聽微軟專家說為何.NET開發非學不可?
聽微軟專家說為何.NET開發非學不可?聽微軟專家說為何.NET開發非學不可?
聽微軟專家說為何.NET開發非學不可?
 
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
 
Visual Studio Dev Tunnel.pdf
Visual Studio Dev Tunnel.pdfVisual Studio Dev Tunnel.pdf
Visual Studio Dev Tunnel.pdf
 
GDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfGDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdf
 
Cloud Study Jam - ML API 4
Cloud Study Jam -  ML API 4Cloud Study Jam -  ML API 4
Cloud Study Jam - ML API 4
 
Cloud Study Jam ML API 3
Cloud Study Jam ML API 3Cloud Study Jam ML API 3
Cloud Study Jam ML API 3
 
GDG Taichung: Cloud Study Jam ML API
GDG Taichung: Cloud Study Jam ML APIGDG Taichung: Cloud Study Jam ML API
GDG Taichung: Cloud Study Jam ML API
 
GDG Taichung - Firebase Introduction 01
GDG Taichung - Firebase Introduction 01GDG Taichung - Firebase Introduction 01
GDG Taichung - Firebase Introduction 01
 
Study4TW .NET Conf Local Event Taichung 2018 slideshow
Study4TW .NET Conf Local Event Taichung 2018 slideshowStudy4TW .NET Conf Local Event Taichung 2018 slideshow
Study4TW .NET Conf Local Event Taichung 2018 slideshow
 
What is .NET Chinese ver
What is .NET Chinese verWhat is .NET Chinese ver
What is .NET Chinese ver
 
Microsoft recommendation solution on azure
Microsoft recommendation solution on azureMicrosoft recommendation solution on azure
Microsoft recommendation solution on azure
 
Microsoft professional program introduction
Microsoft professional program introductionMicrosoft professional program introduction
Microsoft professional program introduction
 
聰明的投資者
聰明的投資者聰明的投資者
聰明的投資者
 
Android 基礎課程補充資料
Android 基礎課程補充資料Android 基礎課程補充資料
Android 基礎課程補充資料
 
Android基礎課程3 - APP上架、廣告與 Facebook 登入
Android基礎課程3 - APP上架、廣告與 Facebook 登入Android基礎課程3 - APP上架、廣告與 Facebook 登入
Android基礎課程3 - APP上架、廣告與 Facebook 登入
 
Android基礎課程2 - google map android API
Android基礎課程2 - google map android APIAndroid基礎課程2 - google map android API
Android基礎課程2 - google map android API
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
 

[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享

  • 2. CONTENTS • What's difference between .Net core and .Net Framework • Introduction to ASP.Net Core • Request pipeline • Middleware • Dependency Injection • Multiple Environments • QA
  • 4. 4Presented By: Duran Hsieh .NET CORE & .NET FRAMEWORK 新一代 .NET FRAMEWORK 跨平台 套件化管理 .NET CLI 指令列 .NET CORE 更好的效能 適合 MICROSERVICES CONSOLE APPLICATION CLASS LIBRARY
  • 5. 5Presented By: Duran Hsieh .NET CORE & .NET FRAMEWORK PRROJECT.JSON -> .CSPROJ 穩定版本 WINDOWS FORMS AND WPF .NET CORE
  • 6. 6Presented By: Duran Hsieh .NET CORE & .NET FRAMEWORK •.NET CLI 指令 說明 dotnet new 產生新的 .Net 專案內容 dotnet restore 還原專案所使用的Nuget套件 dotnet build 建構專案 dotnet publish 產生可發行專案 dotnet run 編譯與執行.Net專案 dotnet repl 啟動互動式模式 dotnet pack 產出封裝成 Nuget套件
  • 7. 7Presented By: Duran Hsieh .NET CORE & .NET FRAMEWORK • Install for Windows • Visual Studio • Visual Studio 2015 Update 3 • .NET Core 1.0.1 - VS 2015 Tooling Preview 2 • CI and Visual Studio Code • .NET Core SDK 1.1 for Windows
  • 8. 8Presented By: Duran Hsieh .NET CORE & .NET FRAMEWORK • Install for Windows • Visual Studio • Visual Studio 2017 RC • CI and Visual Studio Code • .NET Core SDK 1.0 RC4
  • 9. 9Presented By: Duran Hsieh .NET CORE & .NET FRAMEWORK • Command line demo • Visual studio code demo
  • 11. 11Presented By: Duran Hsieh INTRODUCTION TO ASP.NET CORE ASP.NET CORE • 新的 ASP.NET (WEB 端的開發類別庫) • 具跨平台特性 • 不使用 SYSTEM.WEB 套件 • 截然不同的HTTP REQUEST處理流程 • OWIN 概念 • 內建 DEPENDENCY INJECTION • .NET CLI 指令列工具 (過去使用 DNX)
  • 12. 12Presented By: Duran Hsieh INTRODUCTION TO ASP.NET CORE
  • 13. 13Presented By: Duran Hsieh INTRODUCTION TO ASP.NET CORE 靜態檔案位 置 參數設定 打包JS與CSS 程式起始位置 註冊服務與設定 REQUEST的位置
  • 14. 14Presented By: Duran Hsieh PROGRAM.CS • 程式起始位置 – program.cs
  • 15. 15Presented By: Duran Hsieh STARTUP.CS • 啟動檔 – startup.cs • 建構子 • 路徑設定 • 環境變數設定 • appsetting.json 匯入設定 • ConfigureServices • 註冊服務 • Configuration • Request pipe-line 設定
  • 16. 16Presented By: Duran Hsieh WWWROOT • 靜態資料夾 - wwwroot • 前端與 ASP.NET 專案整合 • 前端人員的開發習慣 • 前端專案與MVC專案整合 • 需要調整持續整合流程 • 注意事項 • 處理 Http Request 的順序相當重要 • 存取的問題
  • 17. 17Presented By: Duran Hsieh WWWROOT • program.cs
  • 18. 18Presented By: Duran Hsieh WWWROOT • startup.cs
  • 19. 19Presented By: Duran Hsieh APPSETTING.JSON • appsetting.json • 相當於 webconfig.xml (app.config.xml) 的 appsetting appsetting.json web.config
  • 20. 20Presented By: Duran Hsieh APPSETTING.JSON • 使用方法 (startup.cs) • 方法1: • Configuration.GetSection(“Logging”); • getValue<T>() • key() • value() • path() • 方法2: • 建立 DTO 物件 • 註冊 services.Configure<T> (Configuration.GetSection("logging")); • 於建構子注入使用
  • 21. 21Presented By: Duran Hsieh APPSETTING.JSON • bundleconfig.json • 相當於過去的 bundleconfig.cs • 打包、壓縮 javascript 與 css 檔案
  • 23. 23Presented By: Duran Hsieh REQUEST PIPELINE Request Response Middleware1 Middleware2 Middleware3 logic logic logic logiclogiclogic
  • 24. 24Presented By: Duran Hsieh REQUEST PIPELINE .USE .RUN
  • 25. 25Presented By: Duran Hsieh REQUEST PIPELINE .MAP
  • 26. 26Presented By: Duran Hsieh REQUEST PIPELINE • 專案經驗 • 對於SPA作為 • 發生404錯誤導回前端 • 同站台,開放image • 順序很重要
  • 28. 28Presented By: Duran Hsieh MIDDLEWARE Inset your short subtitle here to explain a little above title • 建立middleware • 透過 C# extension method • UseRequestLoggerMiddleware() • ApplicationBuilder 讀取 middleware
  • 29. 29Presented By: Duran Hsieh MIDDLEWARE Inset your short subtitle here to explain a little above title • 建立 middleware • 必須在 configure 方法內呼叫 • 建構子必須包含 RequestDelegate • 必須包含一個 invoke 方法
  • 30. 30Presented By: Duran Hsieh MIDDLEWARE Inset your short subtitle here to explain a little above title
  • 31. 31Presented By: Duran Hsieh MIDDLEWARE Inset your short subtitle here to explain a little above title • middleware 應用 • JSON Web Token, JWT
  • 32. 32Presented By: Duran Hsieh MIDDLEWARE Inset your short subtitle here to explain a little above title
  • 34. 34Presented By: Duran Hsieh DEPENDENCY INJECTION • Configuration Objects • Framework-provided services • Application Services (Own Services)
  • 35. 35Presented By: Duran Hsieh DEPENDENCY INJECTION • Configuration Objects 建構子內注入建立DTO ConfigureServices 方法內註冊
  • 36. 36Presented By: Duran Hsieh DEPENDENCY INJECTION • Framework-provided services 依情況使用ConfigureServices 方法內註冊
  • 37. 37Presented By: Duran Hsieh DEPENDENCY INJECTION • Application Services (Own Services) 建構子內注入ConfigureServices 方法內註冊
  • 38. 38Presented By: Duran Hsieh DEPENDENCY INJECTION • Service lifetimes • Transient • 每次請求的時候皆會重新建立服務 • Ex: services.AddTransient<IOperationTransient, Operation>(); • Scoped • 每一次 Request 的時候建立服務,Request 完成後結束 • Ex: services.AddScoped<IOperationScoped, Operation>(); • Singleton • 第一次請求的時候建立,永久存在 • Ex: services.AddSingleton<IOperationSingleton, Operation>();
  • 40. 40Presented By: Duran Hsieh ENVIRONMENT VARIABLE • 多種開發環境設定 • 因應各種環境有不同的設定 • Development • QA • Staging • Production • …
  • 41. 41Presented By: Duran Hsieh ENVIRONMENT VARIABLE • 多種開發環境設定 • .Net Framework • web.config 設定參數 • 發佈專案時設定取用檔案 • .Net Core • Appsetting.json 設定參數 • 環境變數: • 開發期間:visual studio 內部設定 • 作業系統內設定 • IIS 內參數設定
  • 42. 42Presented By: Duran Hsieh ENVIRONMENT VARIABLE 操作步驟: 加入各環境 appsetting.json
  • 43. 43Presented By: Duran Hsieh ENVIRONMENT VARIABLE .Net Core rc4之前的版本 與 Visual Studio 2015 需加入 否則發佈會遺失檔案
  • 44. 44Presented By: Duran Hsieh ENVIRONMENT VARIABLE .Net Core rc4的版本 與 Visual Studio 2017 RC ANS: 只需要加入專案即可
  • 45. 45Presented By: Duran Hsieh ENVIRONMENT VARIABLE • 環境參數設定 • Name: ASPNETCORE_ENVIRONMENT value : Development • Name: ASPNETCORE_ENVIRONMENT value : Staging • Name: ASPNETCORE_ENVIRONMENT value : Production
  • 46. 46Presented By: Duran Hsieh ENVIRONMENT VARIABLE 開發期間:Visual Studio 內部設定
  • 47. 47Presented By: Duran Hsieh ENVIRONMENT VARIABLE 發佈期間:Windows 內環境變數設定
  • 48. 48Presented By: Duran Hsieh ENVIRONMENT VARIABLE 發佈期間:IIS 內部設定(1)
  • 49. 49Presented By: Duran Hsieh ENVIRONMENT VARIABLE 發佈期間:IIS 內部設定(2)
  • 50. 50Presented By: Duran Hsieh ENVIRONMENT VARIABLE • (經驗)若沒有設定環境變數,appsetting.{xxx}.json 會自動選擇最後一個使用。 • (經驗) dotnet publish 參數無法指定環境變數。

Editor's Notes

  1. 簡易說明.Net Core 與 .Net Framework 的關係 (各自發展、互相使用)與 Demo 簡介ASP.NET Core 與 專案內容 Request pipleline 原理與三種使用方法 簡介 Middleware ASP.NET Core內建注入功能,實現萬物皆注入概念 多環境佈署問題注意事項
  2. 新一代 Net framework 跨平台 具套件化管理特行(不像過去.Net Framework要整包下載) project.json -> .xcsproj-> .csproj 更好的效能
  3. 因為在發展中,所以變動幅度較大 雖然個人覺得Project.json相當方便,但新版的 .csproj 在 vs code 與vs中相當的實用 兩者關係為各自發展`、互相使用
  4. 1. Net core rc4 版本,dotnet new 指令有重大變更。
  5. Youtube:
  6. ASP.NET Core 最早稱為 ASP.NET vNext,之後稱為ASP.NET 5,不同於原先 ASP.NET 框架,為微軟製作新版的 ASP.NET。 具有輕量與可組裝的特性。 開源專案。 廣為人知的特色為能在Windows, OSX, Linux 等相關平台上運行,為微軟跨平台開發框架。  放棄 System.Web 組套件 (開發階段相當不適應)
  7. https://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx
  8. 微服務套件: 1. nancyfx 2. topshelf
  9. 啟動檔說明
  10. 於前後端分開的專案較少使用
  11. Note: Insert your picture by clicking on the Picture Place Holder Icon, then send it back!
  12. 說明
  13. HttpHandlers 與 HttpModules 概念
  14. HttpHandlers 與 HttpModules 概念
  15. 提供範例
  16. Note: Insert your picture by clicking on the Picture Place Holder Icon, then send it back!
  17. 說明
  18. 範例
  19. 範例
  20. 範例
  21. 實務範例 JWT的介紹
  22. Note: Insert your picture by clicking on the Picture Place Holder Icon, then send it back!
  23. Github example: https://github.com/matsurigoto/aspnetcotediexample.git
  24. Appsetting 注入範例 服務注入範例
  25. 生命週期
  26. Note: Insert your picture by clicking on the Picture Place Holder Icon, then send it back!
  27. 說明
  28. 說明
  29. 電腦設定
  30. IIS設定
  31. 同一台伺服器,也可以佈署多個環境(需要IIS) IIS設定參考 http://dog0416.blogspot.tw/2016/08/aspnet-coreiis-multiple-environments.html
  32. IIS設定
  33. 說明