Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Takayoshi Tanaka
2,901 views
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
Visual Studio 2019 Launch イベントでの登壇資料。
Technology
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 55
2
/ 55
3
/ 55
4
/ 55
5
/ 55
6
/ 55
7
/ 55
8
/ 55
9
/ 55
10
/ 55
11
/ 55
12
/ 55
13
/ 55
14
/ 55
15
/ 55
16
/ 55
17
/ 55
18
/ 55
19
/ 55
20
/ 55
21
/ 55
22
/ 55
23
/ 55
24
/ 55
25
/ 55
26
/ 55
27
/ 55
28
/ 55
29
/ 55
30
/ 55
31
/ 55
32
/ 55
33
/ 55
34
/ 55
35
/ 55
36
/ 55
37
/ 55
38
/ 55
39
/ 55
40
/ 55
41
/ 55
42
/ 55
43
/ 55
44
/ 55
45
/ 55
46
/ 55
47
/ 55
48
/ 55
49
/ 55
50
/ 55
51
/ 55
52
/ 55
53
/ 55
54
/ 55
55
/ 55
More Related Content
PDF
Try! Visual Studio 209 git feature
by
Takayoshi Tanaka
PPTX
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
by
Atsushi Nakamura
PDF
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
by
Akira Inoue
PDF
GitHub Actions で CI/CD
by
Issei Hiraoka
PDF
2021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi2021
by
Hiroyuki Mori
PDF
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
by
Akira Inoue
PDF
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
by
Akira Inoue
PDF
.NET 最新ロードマップと今押さえておきたい技術要素
by
Akira Inoue
Try! Visual Studio 209 git feature
by
Takayoshi Tanaka
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
by
Atsushi Nakamura
.NET の過去、現在、そして未来 ~ .NET 最新アップデート
by
Akira Inoue
GitHub Actions で CI/CD
by
Issei Hiraoka
2021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi2021
by
Hiroyuki Mori
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
by
Akira Inoue
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
by
Akira Inoue
.NET 最新ロードマップと今押さえておきたい技術要素
by
Akira Inoue
What's hot
PDF
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
by
Akira Inoue
PDF
.NET の過去、現在、そして未来
by
Akira Inoue
PDF
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
by
Akira Inoue
PDF
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
by
Akira Inoue
PDF
.NET の今と今後に思うこと
by
Akira Inoue
PDF
.NET アプリを改善して実践する継続的インテグレーション
by
Yuta Matsumura
PDF
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
by
Akira Inoue
PDF
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
by
Akira Inoue
PDF
30min Serverless xTuber
by
Takaaki Suzuki
PDF
The Twelve-Factor (A|M)pp with C#
by
Yuta Matsumura
PDF
.NET の今と今後に思うこと (Tokyo Ver.)
by
Akira Inoue
PDF
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
by
Yuta Matsumura
PDF
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
by
日本マイクロソフト株式会社
PDF
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
by
Akira Inoue
PDF
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
by
Akira Inoue
PDF
VS Code Live Share ~ 東京と大阪を繋いでみよう!
by
Akira Inoue
PDF
そろそろレガシーな.Net開発をやめなイカ?
by
Yuta Matsumura
PDF
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
by
de:code 2017
PDF
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
by
日本マイクロソフト株式会社
PDF
VS Code & Flaskで作るCloud NativeアプリとDevOps
by
Akira Inoue
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
by
Akira Inoue
.NET の過去、現在、そして未来
by
Akira Inoue
~ Build と言えば やっぱり Developer! ~ Microsoft 開発ツール最新アップデート
by
Akira Inoue
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
by
Akira Inoue
.NET の今と今後に思うこと
by
Akira Inoue
.NET アプリを改善して実践する継続的インテグレーション
by
Yuta Matsumura
.NET Core と Docker コンテナー、そして Azure を使用したマイクロサービスのアーキテクチャ
by
Akira Inoue
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
by
Akira Inoue
30min Serverless xTuber
by
Takaaki Suzuki
The Twelve-Factor (A|M)pp with C#
by
Yuta Matsumura
.NET の今と今後に思うこと (Tokyo Ver.)
by
Akira Inoue
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
by
Yuta Matsumura
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
by
日本マイクロソフト株式会社
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
by
Akira Inoue
.NET 6 と Blazor で作るクロスプラットフォームアプリ概要
by
Akira Inoue
VS Code Live Share ~ 東京と大阪を繋いでみよう!
by
Akira Inoue
そろそろレガシーな.Net開発をやめなイカ?
by
Yuta Matsumura
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
by
de:code 2017
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
by
日本マイクロソフト株式会社
VS Code & Flaskで作るCloud NativeアプリとDevOps
by
Akira Inoue
Similar to .NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
PDF
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
by
Takayoshi Tanaka
PDF
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
by
日本マイクロソフト株式会社
PDF
Dotnetcore30forwindesktop
by
ru pic
PDF
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
by
Akira Inoue
PPTX
.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版
by
m ishizaki
PDF
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
by
Takashi Okawa
PDF
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
by
Akira Inoue
PPTX
20170311 Developing & Deploying .NET Core on Linux
by
Takayoshi Tanaka
PPTX
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
by
Shinya Nakajima
PDF
Getting Started .NET Core
by
Yuta Matsumura
PPTX
ASP.NET Core のお気に入りの機能たち (docker向け)
by
Takayoshi Tanaka
PDF
Build2019発表情報一気見せ
by
Tsukasa Kato
PDF
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
by
de:code 2017
PDF
【BS2】.NET 6 最新アップデート
by
日本マイクロソフト株式会社
PDF
.NET Core 1.0
by
Akira Inoue
PDF
.NET Coreとツール類の今
by
Yuki Igarashi
PDF
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
by
Hiroyuki Mori
PPTX
Dot netcore multiplatform 2
by
shozon
PDF
Visual Studio 2019 Features & Tips @kosmosebi
by
Keiji Kamebuchi
PDF
[Japan Tech summit 2017] APP 001
by
Microsoft Tech Summit 2017
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
by
Takayoshi Tanaka
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
by
日本マイクロソフト株式会社
Dotnetcore30forwindesktop
by
ru pic
Visual Studio 2019 GA ! ~ 最新情報 & これからの開発スタイル
by
Akira Inoue
.NET Core でデスクトップアプリ Visual Studio 2019 Preview 版
by
m ishizaki
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
by
Takashi Okawa
.NET の今とミライ (.NET Conf 2018 Japan Keynote)
by
Akira Inoue
20170311 Developing & Deploying .NET Core on Linux
by
Takayoshi Tanaka
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう
by
Shinya Nakajima
Getting Started .NET Core
by
Yuta Matsumura
ASP.NET Core のお気に入りの機能たち (docker向け)
by
Takayoshi Tanaka
Build2019発表情報一気見せ
by
Tsukasa Kato
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
by
de:code 2017
【BS2】.NET 6 最新アップデート
by
日本マイクロソフト株式会社
.NET Core 1.0
by
Akira Inoue
.NET Coreとツール類の今
by
Yuki Igarashi
.NET Core 3.0 で見る Client Apps #BuriKaigi #BuriKaigi2019
by
Hiroyuki Mori
Dot netcore multiplatform 2
by
shozon
Visual Studio 2019 Features & Tips @kosmosebi
by
Keiji Kamebuchi
[Japan Tech summit 2017] APP 001
by
Microsoft Tech Summit 2017
More from Takayoshi Tanaka
PDF
deep dive distributed tracing
by
Takayoshi Tanaka
PPTX
202202 open telemetry .net handson
by
Takayoshi Tanaka
PPTX
202109-New_Relic-for-csharp-engineers
by
Takayoshi Tanaka
PDF
20210129 azure webapplogging
by
Takayoshi Tanaka
PDF
20201127 .NET 5
by
Takayoshi Tanaka
PPTX
Unity(再)入門
by
Takayoshi Tanaka
PPTX
最近のQ#について
by
Takayoshi Tanaka
PDF
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
by
Takayoshi Tanaka
PDF
20191024 Get Start gRPC with ASP.NET
by
Takayoshi Tanaka
PDF
New Relicで始める、.NET Applications on AWSのObservability
by
Takayoshi Tanaka
PPTX
C#エンジニアのためのdocker kubernetesハンズオン (再)
by
Takayoshi Tanaka
PPTX
20190806 Q# Measurements
by
Takayoshi Tanaka
PPTX
C#エンジニアのためのdocker kubernetesハンズオン
by
Takayoshi Tanaka
PDF
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
by
Takayoshi Tanaka
PDF
Q#基礎 ver1.1
by
Takayoshi Tanaka
PDF
(過去バージョン) Q#基礎 ver1.0
by
Takayoshi Tanaka
PDF
ゼロから始めるQ#
by
Takayoshi Tanaka
PDF
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
by
Takayoshi Tanaka
PDF
New features of Azure Cloud Provider at OCP 3.10
by
Takayoshi Tanaka
PDF
Open shift on azure stack
by
Takayoshi Tanaka
deep dive distributed tracing
by
Takayoshi Tanaka
202202 open telemetry .net handson
by
Takayoshi Tanaka
202109-New_Relic-for-csharp-engineers
by
Takayoshi Tanaka
20210129 azure webapplogging
by
Takayoshi Tanaka
20201127 .NET 5
by
Takayoshi Tanaka
Unity(再)入門
by
Takayoshi Tanaka
最近のQ#について
by
Takayoshi Tanaka
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
by
Takayoshi Tanaka
20191024 Get Start gRPC with ASP.NET
by
Takayoshi Tanaka
New Relicで始める、.NET Applications on AWSのObservability
by
Takayoshi Tanaka
C#エンジニアのためのdocker kubernetesハンズオン (再)
by
Takayoshi Tanaka
20190806 Q# Measurements
by
Takayoshi Tanaka
C#エンジニアのためのdocker kubernetesハンズオン
by
Takayoshi Tanaka
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
by
Takayoshi Tanaka
Q#基礎 ver1.1
by
Takayoshi Tanaka
(過去バージョン) Q#基礎 ver1.0
by
Takayoshi Tanaka
ゼロから始めるQ#
by
Takayoshi Tanaka
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
by
Takayoshi Tanaka
New features of Azure Cloud Provider at OCP 3.10
by
Takayoshi Tanaka
Open shift on azure stack
by
Takayoshi Tanaka
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
1.
.NET Core向けコンテナ およびデバッグ関連の Visual Studio
2019の機能 2019/04/21 Visual Studio 2019 Launch Event in Tokyo. @tanaka_733 Microsoft MVP for Azure
2.
自己紹介 @tanaka_733 https://www.tanaka733.net/ ◦Microsoft MVP
for Azure ◦New Relic ◦C#, Q#, .NET Core, Visual StudioおよびVS拡張 kubernetes/OpenShift on Azure など
3.
質問受け付けます! slido.com #vs2019c
4.
今日のテーマ Visual Studio 2019のDockerサポート ◦
(おまけ)ASP.NET Core Webプロジェクトの新機能 ◦ Visual Studio 2017からの変更点 ◦ コンテナオーケストレーターサポートの追加 Visual Studio 2019のデバッグ新機能 ◦ スナップショットデバッガーなどの紹介 ◦ AKSでのデバッグなど
5.
(補足).NET Core 3.0 /
ASP.NET Core 3.0 .NET Core 3.0は今年後半リリース ◦ 詳細な日程はBuild 2019にて発表予定 ◦ https://devblogs.microsoft.com/dotnet/announcing-net-core-3-preview-3/ Visual Studio 2019では.NET Core 3.0 Previewを利用できる ASP.NET Core 3.0も.NET Core 3.0と同時の予定 ◦ 3.0から.NET Coreのみサポート(.NET Frameworkは非サポート) ◦ https://docs.microsoft.com/ja-jp/aspnet/core/?view=aspnetcore-2.2 ◦ ASP.NET Core 3.0 に関連するVSの新機能はまだなさそう
6.
ASP.NET Core関連新機能 デバッグの新機能まわりがうまく動かなかったのでお詫びに…
7.
ASP.NET Core関連の新機能 プロジェクトテンプレート選択UXの刷新 ユーザーシークレット機能のサポート cshtmlからの参照検索 LibManによるクライアント側ライブラリの管理
8.
プロジェクトテンプレート まず、ASP.NET Core か ASP.NET
Web (.NET Framework)かを選択。 同じ「ASP.NET Core」でも言語 でテンプレートが異なるので注意
9.
プロジェクトテンプレート
10.
ユーザーシークレット ◦ 開発時用の機能 ➔
運用環境で使うのはNG ◦ 機密情報をソースコードリポジトリの外に ➔ 実体は %APPDATA% ◦ ソースコード自体は開発環境と運用環境で変更なし ◦ 運用環境では、機密情報を保持できる適切なストレージ(Azure Key Vaultなど)を利用
11.
ユーザーシークレット csprojへの追加および、%APPDATA%内にファイル作成をしてくれる ASP.NET Coreプロセスはこのファイルを参照して読み込んでくれる
12.
ユーザーシークレット 作成されたsecrets.jsonにキー・値のペアを保存 あくまで平文であることに注意。 ◦ 開発時の機密情報なので、開発マシンのユーザーでログインできる人はアクセスできてよいという前提
13.
ユーザーシークレット ASP.NET Core 2.0以降ではデフォルトの設定で、環境がDevelopmentの場合 IConfigurationからユーザーシークレットを取得可能 より詳細な設定は https://docs.microsoft.com/ja-jp/aspnet/core/security/app- secrets?view=aspnetcore-2.2&tabs=windows
14.
cshtml (Razor)からの参照検索 Razor内で「定義をここに表示」 ➔
モデルクラスの定義を表示
15.
cshtml (Razor)からの参照検索 モデルクラス側ですべての参照を検索 ➔
Razor内での参照がヒット
16.
LibMan VS2017でのBowerマネージャーといった大掛かりな クライアント側ライブラリの管理機能は廃止されました( シンプルにプロバイダーからライブラリをインストールすることをサポートするLibrary Manager (LibMan)が開発され、Visual Studio
2019ではLibManのサポートで対応します ビルドとかバンドルなどをしたい場合は、webpackなどを導入して、セットアップもそちらの方法 に従いましょう https://github.com/aspnet/LibraryManager https://docs.microsoft.com/ja-jp/aspnet/core/client- side/libman/?view=aspnetcore-2.2 https://blog.shibayan.jp/entry/20180903/1535958086
17.
LibManの機能
18.
Dockerサポート
19.
WebアプリのDocker & コンテナオーケストレーターサポート コンテナサポート ◦ 単一のASP.NET
Core アプリをコンテナとして動かすことをサポート ◦ ASP.NET (.NET Framework)もサポート (Windowsコンテナ) コンテナオーケストレーターサポート ◦ Kubernetesなどのオーケストレーターへの配置をサポート どちらも拡張機能ではなく、標準のインストーラーのオプションとして選択可能
20.
インストールオプション
21.
コンテナサポート 単一プロジェクトのままDockerfileが追加できる ローカルでDockerを使ったデバッグができる ◦ 実際に動かすためにはDocker Desktopのインストールが必要 利用するコンテナイメージがMCR(Microsoft
Container Registry)経由になった
22.
Dockerサポートの追加 プロジェクトテンプレートで選択 既存のWebプロジェクトに追加も可能
23.
Dockerサポートの詳細 Dockerfileの追加 2019より余計なプロジェクトが追加されずファイルのみ追加 デバッグプロファイルの追加 ◦
NuGet経由でデバッグプロファイル用のライブラリが追加される ◦ Docker Desktopないと動かないし、余計という説もある
24.
Dockerfile Runtimeのみのイメージに ポートの設定などを追加 SDKのイメージで ビルドを実行 ビルドしたイメージで ローカルファイルへ発行(publish) Baseイメージに 発行したアプリを配置して完成
25.
デバッグの仕組みはVS2017のころと同じ Docker DesktopはAzure ADログインしているとshare
driveに問題 参考: https://tech.guitarrapc.com/entry/2017/12/27/042458 Dockerデバッグの詳細については編集できないように見える Windows Dockerデバッグ Hyper-V MobyLinuxVM コンテナ アプリをビルドしたものや デバッガーなどをDocker Desktop のshare driveで共有して利用 デバッガー (vsdbg) ビルド成果物 など
26.
おすすめは…? ローカルのDocker Desktop使ってデバッグしたいならあり わざわざローカルでまでDocker使う必要あるのかは??? ◦ Hyper-Vで仮想マシン動かすのでそれなりにリソース使う ◦
ASP.NET (Framework)なら環境分離できるメリットあるが ASP.NET Coreだとそもそもポータビリティあるからメリットがなさそう Dockerfileのみ手動追加でもいいのでは? ◦ Dockerサポートで追加した後に余計なもの削除したい場合は デバッグプロファイルとNuGetパッケージを削除 ◦ DockerイメージのビルドはCIサーバー的な場所で実行
27.
コンテナオーケストレーター サポート
28.
コンテナオーケストレーターサポート の追加 kubernetes/helm用のオーケストレーターサ ポートを利用するであれば プロジェクトテンプレートで選択 既存のWebプロジェクトに追加も可能
29.
Kubernetes/helmの場合 Dockerfile + helmの定義ファイル Azure
Dev Spacesを使ったデバッグプロファイル
30.
Service Fabricの場合 Windows Serverコンテナーを利用したDockerfile +
Service Fabric展開用のプロジェクト Azure Service Fabric SDKが必須 デバッグにはWindows Containerに切り替えて Docker Desktopが必須
31.
Docker Composeの場合 Dockerfileの追加 + docker-composeプロジェクトの追加
(デバッグプロファイルを含む) これもデバッグ実行には Docker Desktop必須
32.
おすすめは…? とりあえず使ってみる分にはサンプルプロジェクトで試してみよう ◦ Service FabricやDocker
Composeは専用プロジェクトが追加されるので、 場合によっては使いづらいかもしれない ◦ テンプレートでできたものを編集するのが早いのか 素のASP.NET プロジェクトに手編集するのが早いのかは 場合によりけり… プロジェクトにはDockerfileや最低限のファイルのみ持たせ、 ローカルのデバッグはDockerなしがいいのでは? ◦ 同じアプリの本番環境でもDockerあり、なし両方の可能性がありうる ◦ それができるのがASP.NET Coreのメリット ◦ Azure DevOpsやそれに類するサービスを使って、 CICD側にコンテナ作成やデプロイの設定を持たせる
33.
デプロイサポート VSから直接どこかにデプロイ(発行)できる ◦ お手軽だけど自動化しづらい(VSからの操作が必須なので) VSからAzureの継続的デリバリ(CD)の設定ができる
New!! VSから直接デプロイはお手軽だが、属マシンになってしまう CDの設定はAzure Pipelineのみサポートなので、 ほかのCDは自分で設定しよう
34.
発行先 App Service (Linux) ◦
選択したApp Serviceに展開 コンテナーレジストリ ◦ ACRもしくはDocker Hubもしくは任意 のレジストリにpush Azure VM ◦ Azure VM上のIISに Web Deployで配置 IIS, FTP, その他 ◦ WebDeploy (MSDeploy) ◦ 既存の機能 フォルダー ◦ dotnet publish
35.
デバッグまわり
36.
スナップショットデバッガー スナップショットデバッガー自体はAzure関係なく利用可能 Visual Studio 2019と組み合わせて、 Azure上のリソースで動かしている場合にブレークポイントの設定などが 可能になる ◦
App Service ◦ 仮想マシン(Windows Server) ◦ AKS https://docs.microsoft.com/ja- jp/visualstudio/debugger/debug-live-azure- applications?view=vs-2019
37.
スナップショットデバッガーの開始
38.
説明画面が表示される
39.
ブレークポイントを設定
40.
スナップショットの収集 ブレークポイントに来るとスナップショットが収集されるので 「スナップショットの表示」で詳細を見る
41.
スナップショットの表示
42.
Time Travel Debugger https://devblogs.microsoft.com/visualstudio/introducing-time-travel- debugging-for-visual-studio-enterprise-2019/ 前提となる仮想マシンでのスナップショットデバッガー https://docs.microsoft.com/ja-jp/visualstudio/debugger/debug-live- azure-virtual-machines?view=vs-2019 試したものの、なぜか動かない… 前提条件: ◦
Azure Windows仮想マシンのみ ◦ ASP.NET 4.8+ ◦ https://devblogs.microsoft.com/dotnet/announcing-the-net-framework-4-8/
43.
セットアップ例 Install-WindowsFeature -name Web-Server
-IncludeManagementTools Install-WindowsFeature Web-Asp-Net45 Invoke-WebRequest http://go.microsoft.com/fwlink/?LinkId=2085155 -OutFile ndp48-devpack-enu.exe .¥ndp48-devpack-enu.exe Install-WindowsFeature -Name Web-Mgmt-Service # Install Web Deploy 3.6 # Download file from Microsoft Downloads and save to local temp file (%LocalAppData%/Temp/2) $msiFile = [System.IO.Path]::GetTempFileName() | Rename-Item -NewName { $_ -replace 'tmp$', 'msi' } -PassThru Invoke-WebRequest -Uri http://download.microsoft.com/download/0/1/D/01DC28EA-638C-4A22-A57B-4CEF97755C6C/WebDeploy_amd64_en-US.msi -OutFile $msiFile # Prepare a log file $logFile = [System.IO.Path]::GetTempFileName() # Prepare the arguments to execute the MSI $arguments= '/i ' + $msiFile + ' ADDLOCAL=ALL /qn /norestart LicenseAccepted="0" /lv ' + $logFile # Execute the MSI and wait for it to complete $proc = (Start-Process -file msiexec -arg $arguments -Passthru) $proc | Wait-Process Get-Content $logFile
44.
タイムトラベルデバッガーの開始 条件を満たしていると、 スナップショットデバッガーの開始ダイアロ グにオプションが表示される
45.
タイムトラベルトレースの設定
46.
スナップショットの収集
47.
AKSを使ったデバッグ Azure Dev Spacesもしくはスナップショットデバッガーを使います ◦
オーケストレーターサポートでkubernetes/helmを有効化 Azure Dev Spaces ◦ 一部のリージョンでのみ利用可能なプレビュー ◦ AKS作成後、Dev Spacesを有効にする ここまでAzure PortalやCLIで準備しておく ◦ ローカルのデバッグと同じような操作感覚で使える ◦ Docker Desktop 不要 (AKS側でコンテナのビルドを行う) スナップショットデバッガーを利用したい場合 ◦ https://docs.microsoft.com/ja-jp/visualstudio/debugger/debug-live-azure- kubernetes?view=vs-2019
48.
Azure Dev Spaces デバッグプロパティで、AKSクラスターとkubernetesのnamespace(空間)を指定するだけ
49.
AKS上のアプリにアクセスすると ブレークポイントで止まる ログもストリーミングされている
50.
アプリ展開の仕組み(想像図) ソースコード DevSpaces経由でのイメージ作成、Pod・Serviceの展開、vsdbgの配置、 ルーティング、デバッガークライアントの起動などをVisual Studio内でまとめてやってくれている azds namespace Dockerfile Helm
Chart Helm tiller webhook image prepull docker image プロジェクトを転送? イメージ作成
51.
デバッグの仕組み(想像図) ソースコード デバッガー クライアント アプリのPod dotnet vsdbg SSH ClusterIP service ブラウザ DevSpaces経由でのイメージ作成、Pod・Serviceの展開、vsdbgの配置、 ルーティング、デバッガークライアントの起動などをVisual Studio内でまとめてやってくれている traefik LoadBalancer serviceDNS解決は
azds.io を使って 勝手にやってくれる 直接アプリではなく、 traefik経由でアクセスしている azds namespace 指定したnamespace
52.
azds namespace
53.
(指定した) app1 namespace
54.
AKSでスナップショットデバッガー コンテナ内にスナップショットデバッガーをインストールし、 ASP.NET Coreのdotnetプロセスにプロファイラーを設定する必要がある 設定例 https://github.com/Microsoft/vssnapshotdebugger- docker/blob/master/2.2/stretch-slim/amd64/Dockerfile 注意点: .NET Core
CLRのプロファイラーは1つしか指定できないので、モニタリング用に別のプロファイラー を指定している場合などはいったんこちらに切り替えないといけない https://github.com/dotnet/coreclr/blob/v3.0.0-preview4-27612- 72/Documentation/Profiling/Profiler%20Loading.md
55.
まとめ ASP.NET Core Webプロジェクトの新機能 ◦
ユーザーシークレット、cshtmlでの参照検索、LibMan Dockerサポート ◦ Docker Desktop必須 ◦ 単一プロジェクトに変更 コンテナオーケストレーターサポートの追加 ◦ Kubernetes/Helm, Service Fabric, docker composeから選択可能。 ◦ リソース定義ファイルデバッグ用のプロジェクトやNuGetパッケージが追加される Azure Dev Spaces ◦ Docker Desktop不要で、AKS上でコンテナとしてアプリを動かしてデバッグできる スナップショットデバッガー ◦ Visual Studioから実行できるのはAzureサービスで動かした場合 ◦ タイムトラベルデバッガーは現状Windows VM on Azure + ASP.NET 4.8必須
Download