SlideShare a Scribd company logo
安裝與設定跨平台的開發工具 (Windows, macOS, Linux)
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
多奇數位創意有限公司
技術總監 黃保翕(Will 保哥)
https://blog.miniasp.com
認識 .NET 開發平台與 C# 程式語言
• .NET 是個免費、跨平台、開源的開發平台並可建立各種類型的應用程式
- 認識 .NET 的入口網站 ▶ https://dot.net/
- 學習 .NET 的入口網站 ▶ https://dot.net/learn
• 掌握 .NET 之前必須學習 C# 程式語言
- 學習如何開發 C# 程式語言 ▶ https://dot.net/learntocode
- 透過影片學習 C# 程式語言 ▶ https://dot.net/videos
• C# 101
• C# 201
• .NET Core 101
2
打造跨平台的 .NET 開發環境
今天分享的所有工具全都支援 Windows、macOS 與 Linux
基本開發環境
• 安裝 .NET SDK
- https://dot.net/download
• 安裝 VS Code 編輯器
- https://code.visualstudio.com
• 安裝 VS Code 擴充套件
- .NET Core Extension Pack
- .NET Interactive Notebooks
- Git Extension Pack
- SQL Server (mssql)
4
資料庫開發環境
• 安裝 Docker Desktop 容器工具
• 安裝 Microsoft SQL Server 資料庫伺服器 (Docker)
• 安裝 sqlcmd 與 sqlpackage 工具程式 (命令列工具)
• 安裝 Azure Data Studio 資料庫管理工具
- 安裝 Admin Pack for SQL Server 擴充套件
5
docker pull mcr.microsoft.com/mssql/server:2019-latest
docker run --name sql1 -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Ver7CompleXPW"
-p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
$env:SQLCMDPASSWORD='Ver7CompleXPW'
sqlcmd -S localhost -U sa -Q "SELECT @@VERSION"
Admin Pack for SQL Server 擴充套件
• SQL Server Agent
- List SQL Server Agent Jobs configured on a SQL Server
- View Job History with job execution results
- Basic Job Control to start and stop jobs
• SQL Server Profiler
- Browse through extended events and view associated T-SQL
- View and manage sessions
- Filter search of events
• SQL Server Import
- Use the Import Flat File Wizard to import .csv and .txt files to a SQL table using AI-based
framework to simplify experience
• SQL Server dacpac
- Use the Data-Tier Application Wizard to deploy and extract .dacpac files and import and
export .bacpac files
6
Visual Studio Code 使用者設定
{
"workbench.sideBar.location": "right",
"editor.minimap.enabled": true,
"editor.minimap.renderCharacters": false,
"csharp.referencesCodeLens.enabled": false,
"csharp.testsCodeLens.enabled": false,
"omnisharp.enableRoslynAnalyzers": true,
"files.associations": {
"*.csproj": "msbuild"
}
} 7
基本開發示範
開發 Console 應用程式
• 專案範本
- dotnet new -l
• 建立新專案
- dotnet new console -n c1
• 使用 VS Code 開啟專案
- code c1
• 啟動應用程式 (F5)
- dotnet run
• 建立 Git 版控
- dotnet new gitignore
- git init && git add . && git commit -m "Initial commit"
9
開發 ASP.NET Core Web 應用程式
• 建立新專案 (預設採用 Minimal APIs 架構)
- dotnet new web -n web1
• 使用 VS Code 開啟專案
- code -r web1
• 設定中斷點 (F9) 與單步執行 (F10)
• 認識 Minimal APIs
• 新增一個新的 API
• 加入 Swagger UI
- builder.Services.AddEndpointsApiExplorer();
- builder.Services.AddSwaggerGen();
10
開發 ASP.NET Core MVC 應用程式
• 建立新專案
- dotnet new mvc --help
- dotnet new mvc -n mvc1
• 使用 VS Code 開啟專案
- code -r mvc1
11
• 建立 Controller
- New C# > Controller
• 建立 Action
- mvc-action (Code Snippet)
• 建立 View
- Alt-P
- Alt-O
常用 NuGet 套件名稱
• Microsoft.AspNetCore.*
- Microsoft.AspNetCore.Hosting.*
- Microsoft.AspNetCore.Server.*
- Microsoft.AspNetCore.Http.*
- Microsoft.AspNetCore.Http.Polly
- Microsoft.AspNetCore.Http.Extensions
- Microsoft.AspNetCore.Mvc.*
- Microsoft.AspNetCore.Mvc.NewtonsoftJson
- Microsoft.AspNetCore.Mvc.Localization
- Microsoft.AspNetCore.Razor.*
- Microsoft.AspNetCore.Identity.*
- Microsoft.AspNetCore.SignalR.*
- Microsoft.AspNetCore.Authentication.*
- Microsoft.AspNetCore.DataProtection.*
- Microsoft.AspNetCore.Diagnostics
- Microsoft.AspNetCore.Diagnostics.HealthChecks
12
• Microsoft.Extensions.*
- Microsoft.Extensions.Options
- Microsoft.Extensions.Logging
- Microsoft.Extensions.Configuration.*
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Caching.*
- Microsoft.Extensions.Identity.*
- Microsoft.Extensions.Localization.*
- Microsoft.Extensions.Diagnostics.*
- Microsoft.Extensions.Http
• Microsoft.EntityFrameworkCore.*
- Microsoft.EntityFrameworkCore.Tools
- Microsoft.EntityFrameworkCore.SqlServer
- Microsoft.EntityFrameworkCore.DynamicLinq
- Microsoft.EntityFrameworkCore.Proxies
- Microsoft.EntityFrameworkCore.*
The Will Will Web
網路世界的學習心得與技術分享
http://blog.miniasp.com/
Facebook
Will 保哥的技術交流中心
http://www.facebook.com/will.fans
Twitter
https://twitter.com/Will_Huang
13
聯絡資訊
THANK YOU!
Q&A
Ad

More Related Content

What's hot (20)

軟體架構設計的技術養成之路
軟體架構設計的技術養成之路軟體架構設計的技術養成之路
軟體架構設計的技術養成之路
Gelis Wu
 
Inside wsl
Inside wslInside wsl
Inside wsl
Satoshi Mimura
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
 
gRPC入門
gRPC入門gRPC入門
gRPC入門
Kenjiro Kubota
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
 
系統程式 -- 第 7 章
系統程式 -- 第 7 章系統程式 -- 第 7 章
系統程式 -- 第 7 章
鍾誠 陳鍾誠
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
VirtualTech Japan Inc.
 
超簡単!Apache httpサーバをWindows Serverにインストール
超簡単!Apache httpサーバをWindows Serverにインストール超簡単!Apache httpサーバをWindows Serverにインストール
超簡単!Apache httpサーバをWindows Serverにインストール
Shin Tanigawa
 
系統程式 -- 第 8 章
系統程式 -- 第 8 章系統程式 -- 第 8 章
系統程式 -- 第 8 章
鍾誠 陳鍾誠
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
 
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
Recruit Lifestyle Co., Ltd.
 
Reactive Systems と Back Pressure
Reactive Systems と Back PressureReactive Systems と Back Pressure
Reactive Systems と Back Pressure
Akihiro Ikezoe
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術
Kiyokuni Kawachiya
 
MVC MVVM MVVMC
MVC MVVM MVVMCMVC MVVM MVVMC
MVC MVVM MVVMC
Ng Hui Qin
 
Ansible specでテストをする話
Ansible specでテストをする話Ansible specでテストをする話
Ansible specでテストをする話
KeijiUehata1
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
 
XunitとMoq 公開用
XunitとMoq 公開用XunitとMoq 公開用
XunitとMoq 公開用
ESM SEC
 
軟體架構設計的技術養成之路
軟體架構設計的技術養成之路軟體架構設計的技術養成之路
軟體架構設計的技術養成之路
Gelis Wu
 
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツールC/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
 
超簡単!Apache httpサーバをWindows Serverにインストール
超簡単!Apache httpサーバをWindows Serverにインストール超簡単!Apache httpサーバをWindows Serverにインストール
超簡単!Apache httpサーバをWindows Serverにインストール
Shin Tanigawa
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
AdvancedTechNight
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
 
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
 
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
Recruit Lifestyle Co., Ltd.
 
Reactive Systems と Back Pressure
Reactive Systems と Back PressureReactive Systems と Back Pressure
Reactive Systems と Back Pressure
Akihiro Ikezoe
 
Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術
Kiyokuni Kawachiya
 
MVC MVVM MVVMC
MVC MVVM MVVMCMVC MVVM MVVMC
MVC MVVM MVVMC
Ng Hui Qin
 
Ansible specでテストをする話
Ansible specでテストをする話Ansible specでテストをする話
Ansible specでテストをする話
KeijiUehata1
 
XunitとMoq 公開用
XunitとMoq 公開用XunitとMoq 公開用
XunitとMoq 公開用
ESM SEC
 

Similar to 從頭打造 C#、.NET 與 ASP.NET Core 開發環境 (20)

小学期winform.pptx
小学期winform.pptx小学期winform.pptx
小学期winform.pptx
JianHuang78
 
这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit
LainZQ
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2
致远 郑
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
 
玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手
Poy Chang
 
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探
Gelis Wu
 
zhuwenlongChinese
zhuwenlongChinesezhuwenlongChinese
zhuwenlongChinese
Wenlong Zhu
 
[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
 
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
Edward Kuo
 
Class 20170126
Class 20170126Class 20170126
Class 20170126
Ivan Wei
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011
Ching Yi Chan
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
 
VS2022入門................................
VS2022入門................................VS2022入門................................
VS2022入門................................
Rico Chen
 
ASP.NET Core 3.0 新功能
ASP.NET Core 3.0 新功能ASP.NET Core 3.0 新功能
ASP.NET Core 3.0 新功能
Edward Kuo
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
jay li
 
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
 
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Gelis Wu
 
專題-2017Linux Driver 實現
專題-2017Linux Driver 實現專題-2017Linux Driver 實現
專題-2017Linux Driver 實現
IttrainingIttraining
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發
Fred Chien
 
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
 
小学期winform.pptx
小学期winform.pptx小学期winform.pptx
小学期winform.pptx
JianHuang78
 
这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit这年头,你只需要懂Node webkit
这年头,你只需要懂Node webkit
LainZQ
 
rebar erlang 2
rebar erlang 2rebar erlang 2
rebar erlang 2
致远 郑
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
 
玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手玩轉 .NET Interactive Notebooks 一次就上手
玩轉 .NET Interactive Notebooks 一次就上手
Poy Chang
 
Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探Asp.net mvc 6 新功能初探
Asp.net mvc 6 新功能初探
Gelis Wu
 
zhuwenlongChinese
zhuwenlongChinesezhuwenlongChinese
zhuwenlongChinese
Wenlong Zhu
 
[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
 
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
Edward Kuo
 
Class 20170126
Class 20170126Class 20170126
Class 20170126
Ivan Wei
 
Java Build Tool course in 2011
Java Build Tool course in 2011Java Build Tool course in 2011
Java Build Tool course in 2011
Ching Yi Chan
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
Will Huang
 
VS2022入門................................
VS2022入門................................VS2022入門................................
VS2022入門................................
Rico Chen
 
ASP.NET Core 3.0 新功能
ASP.NET Core 3.0 新功能ASP.NET Core 3.0 新功能
ASP.NET Core 3.0 新功能
Edward Kuo
 
Responsive Web UI Design
Responsive Web UI DesignResponsive Web UI Design
Responsive Web UI Design
jay li
 
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
 
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Visual studio 2012 與 asp.net 4.5 (新功能與開發介紹) 第一天
Gelis Wu
 
Node.js 進攻桌面開發
Node.js 進攻桌面開發Node.js 進攻桌面開發
Node.js 進攻桌面開發
Fred Chien
 
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
 
Ad

More from Will Huang (20)

ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
Will Huang
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
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
 
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
 
從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點
Will Huang
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
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
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)
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
 
使用 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
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談
Will Huang
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
Will Huang
 
ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索ASP.NET Core 6.0 全新功能探索
ASP.NET Core 6.0 全新功能探索
Will Huang
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
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
 
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
 
從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點從實戰經驗看到的 K8S 導入痛點
從實戰經驗看到的 K8S 導入痛點
Will Huang
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
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
 
Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)Angular 7 全新功能探索 (Angular Taiwan 2018)
Angular 7 全新功能探索 (Angular Taiwan 2018)
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
 
使用 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
 
以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談以敏捷架構打造美國軟體外包專案的經驗談
以敏捷架構打造美國軟體外包專案的經驗談
Will Huang
 
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
開發人員必須知道的 Kubernetes 核心技術 - Kubernetes Summit 2018
Will Huang
 
Ad

從頭打造 C#、.NET 與 ASP.NET Core 開發環境

  • 1. 安裝與設定跨平台的開發工具 (Windows, macOS, Linux) 從頭打造 C#、.NET 與 ASP.NET Core 開發環境 多奇數位創意有限公司 技術總監 黃保翕(Will 保哥) https://blog.miniasp.com
  • 2. 認識 .NET 開發平台與 C# 程式語言 • .NET 是個免費、跨平台、開源的開發平台並可建立各種類型的應用程式 - 認識 .NET 的入口網站 ▶ https://dot.net/ - 學習 .NET 的入口網站 ▶ https://dot.net/learn • 掌握 .NET 之前必須學習 C# 程式語言 - 學習如何開發 C# 程式語言 ▶ https://dot.net/learntocode - 透過影片學習 C# 程式語言 ▶ https://dot.net/videos • C# 101 • C# 201 • .NET Core 101 2
  • 4. 基本開發環境 • 安裝 .NET SDK - https://dot.net/download • 安裝 VS Code 編輯器 - https://code.visualstudio.com • 安裝 VS Code 擴充套件 - .NET Core Extension Pack - .NET Interactive Notebooks - Git Extension Pack - SQL Server (mssql) 4
  • 5. 資料庫開發環境 • 安裝 Docker Desktop 容器工具 • 安裝 Microsoft SQL Server 資料庫伺服器 (Docker) • 安裝 sqlcmd 與 sqlpackage 工具程式 (命令列工具) • 安裝 Azure Data Studio 資料庫管理工具 - 安裝 Admin Pack for SQL Server 擴充套件 5 docker pull mcr.microsoft.com/mssql/server:2019-latest docker run --name sql1 -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Ver7CompleXPW" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest $env:SQLCMDPASSWORD='Ver7CompleXPW' sqlcmd -S localhost -U sa -Q "SELECT @@VERSION"
  • 6. Admin Pack for SQL Server 擴充套件 • SQL Server Agent - List SQL Server Agent Jobs configured on a SQL Server - View Job History with job execution results - Basic Job Control to start and stop jobs • SQL Server Profiler - Browse through extended events and view associated T-SQL - View and manage sessions - Filter search of events • SQL Server Import - Use the Import Flat File Wizard to import .csv and .txt files to a SQL table using AI-based framework to simplify experience • SQL Server dacpac - Use the Data-Tier Application Wizard to deploy and extract .dacpac files and import and export .bacpac files 6
  • 7. Visual Studio Code 使用者設定 { "workbench.sideBar.location": "right", "editor.minimap.enabled": true, "editor.minimap.renderCharacters": false, "csharp.referencesCodeLens.enabled": false, "csharp.testsCodeLens.enabled": false, "omnisharp.enableRoslynAnalyzers": true, "files.associations": { "*.csproj": "msbuild" } } 7
  • 9. 開發 Console 應用程式 • 專案範本 - dotnet new -l • 建立新專案 - dotnet new console -n c1 • 使用 VS Code 開啟專案 - code c1 • 啟動應用程式 (F5) - dotnet run • 建立 Git 版控 - dotnet new gitignore - git init && git add . && git commit -m "Initial commit" 9
  • 10. 開發 ASP.NET Core Web 應用程式 • 建立新專案 (預設採用 Minimal APIs 架構) - dotnet new web -n web1 • 使用 VS Code 開啟專案 - code -r web1 • 設定中斷點 (F9) 與單步執行 (F10) • 認識 Minimal APIs • 新增一個新的 API • 加入 Swagger UI - builder.Services.AddEndpointsApiExplorer(); - builder.Services.AddSwaggerGen(); 10
  • 11. 開發 ASP.NET Core MVC 應用程式 • 建立新專案 - dotnet new mvc --help - dotnet new mvc -n mvc1 • 使用 VS Code 開啟專案 - code -r mvc1 11 • 建立 Controller - New C# > Controller • 建立 Action - mvc-action (Code Snippet) • 建立 View - Alt-P - Alt-O
  • 12. 常用 NuGet 套件名稱 • Microsoft.AspNetCore.* - Microsoft.AspNetCore.Hosting.* - Microsoft.AspNetCore.Server.* - Microsoft.AspNetCore.Http.* - Microsoft.AspNetCore.Http.Polly - Microsoft.AspNetCore.Http.Extensions - Microsoft.AspNetCore.Mvc.* - Microsoft.AspNetCore.Mvc.NewtonsoftJson - Microsoft.AspNetCore.Mvc.Localization - Microsoft.AspNetCore.Razor.* - Microsoft.AspNetCore.Identity.* - Microsoft.AspNetCore.SignalR.* - Microsoft.AspNetCore.Authentication.* - Microsoft.AspNetCore.DataProtection.* - Microsoft.AspNetCore.Diagnostics - Microsoft.AspNetCore.Diagnostics.HealthChecks 12 • Microsoft.Extensions.* - Microsoft.Extensions.Options - Microsoft.Extensions.Logging - Microsoft.Extensions.Configuration.* - Microsoft.Extensions.DependencyInjection - Microsoft.Extensions.Caching.* - Microsoft.Extensions.Identity.* - Microsoft.Extensions.Localization.* - Microsoft.Extensions.Diagnostics.* - Microsoft.Extensions.Http • Microsoft.EntityFrameworkCore.* - Microsoft.EntityFrameworkCore.Tools - Microsoft.EntityFrameworkCore.SqlServer - Microsoft.EntityFrameworkCore.DynamicLinq - Microsoft.EntityFrameworkCore.Proxies - Microsoft.EntityFrameworkCore.*
  • 13. The Will Will Web 網路世界的學習心得與技術分享 http://blog.miniasp.com/ Facebook Will 保哥的技術交流中心 http://www.facebook.com/will.fans Twitter https://twitter.com/Will_Huang 13 聯絡資訊

Editor's Notes

  • #3: docker pull mcr.microsoft.com/mssql/server:2019-latest docker run --name sql1 -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Ver7CompleXPW" -d mcr.microsoft.com/mssql/server:2019-latest -p 1433:1433
  • #6: choco install docker-desktop sqlserver-cmdlineutils sqlpackage choco install azure-data-studio-sql-server-admin-pack -y docker pull mcr.microsoft.com/mssql/server:2019-latest docker run --name sql1 -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Ver7CompleXPW" -d mcr.microsoft.com/mssql/server:2019-latest -p 1433:1433
  • #7: choco install sqlserver-cmdlineutils choco install azure-data-studio choco install azure-data-studio-sql-server-admin-pack
  • #13: 在 ASP.NET Core 專案中改用 JSON.NET 做資料繫結 https://blog.poychang.net/using-newtonsoft-json-in-asp-net-core-projects/ https://docs.microsoft.com/zh-tw/dotnet/api/microsoft.aspnetcore.mvc.newtonsoftjson ASP.NET Core 全球化和當地語系化 https://docs.microsoft.com/zh-tw/aspnet/core/fundamentals/localization