SlideShare une entreprise Scribd logo
1  sur  50
Developing & Deploying
.NET Core on Linux
#csugjp
Visual Studio 2017 リリース記念勉強会
レッドハット株式会社/Microsoft MVP for VSDT
田中孝佳 (@tanaka_733)
自己紹介
Red Hat K.K.
◦ .NET Core on RHEL, Red Hat on Azure, OpenShift
Microsoft MVP for VSDT (*)
◦ Build Insiderなどで執筆「C# 7.0新機能」など
◦ C#, .NET Core, Azure, Visual Studio SDKなどが最近の興味
◦ ブログ「銀の光と碧い空」「Silver Light and Blue Sky」
◦ 会社ブログ「Red Hat Developers」などでも書いてます
Contact
◦ @tanaka_733
本日の概要
Visual Studio 2017リリースでのLinux周りの新機能
新しい.NET CLIの使い方
LinuxやDocker環境を見据えた機能を知る
LinuxやDocker環境でのCI/CDで使える機能を知る
LinuxやDocker環境への配置方法を知る
コードはこちら
◦ https://github.com/tanaka-takayoshi/VS2017MemorialSession
.NET Core
4
.NET Core Inside
5
.NET Core App (C#/VB)
IL Assembly (exe, dll)
Roslyn
CoreFX
(.NET Core
Class Library)
ManagedUnmanaged
OS
Native ABI etc
(F#)
compiler
CoreCLR
(.NET Core Runtime)
.NET
Core
CLI
.NETCoreSDK
Linux関連新機能まとめ
.NET Core Tools 1.0 Release (ToolsはいままでPreviewだった)
◦ csprojサポート
◦ dotnet new の刷新
.NET Core 1.1.1, 1.0.4 Release
Visual Studio 2017の機能追加
◦ docker compose ファイルによるdockerイメージ作成とデバッグ
◦ App Service on Linuxへの配置
◦ ACS上のdockerへのリモートデバッグ
◦ Linuxホストへのリモートデバッグ
Linux関連新機能まとめ
.NET Core Tools 1.0 Release (ToolsはいままでPreviewだった)
◦ csprojサポート
◦ dotnet new の刷新
.NET Core 1.1.1, 1.0.4 Release
Visual Studio 2017の機能追加
◦ dockerイメージ作成とデバッグ
◦ App Service on Linuxへの配置
◦ ACS上のdockerへのリモートデバッグ
◦ Linuxホストへのリモートデバッグ
太字:今日のセッションで出てくるところ
.NET Core CLI 新機能
SDKとCLIの分離
MSBuildを利用した新しいプロジェクトシステムとビルド
NuGet関連コマンドの追加
新しいテンプレートシステム (donet new)
移行コマンド (dotnet migrate)
CLIの拡張
CLI First (RC2まで)
SDK First (RC3以降)
https://docs.microsoft.com/en-us/dotnet/articles/core/tools/cli-msbuild-architecture
csproj + MSBuild on Linux
project.json is dead
$ dotnet publish -o pub -C Release
は以下のコマンドと同じ
$ dotnet msbuild /t:Publish /p:OutputPath=pub /p:Configuration
dotnet NuGet
NuGetによるライブラリの追加は
◦ dotnet add package <package_name> [-v version]
◦ csprojを編集
dotnet CLIに用意されているのは主にNuGetパッケージ作成者向けコマンド
◦ dotnet pack プロジェクトからNuGetパッケージ作成
◦ dotnet nuget delete サーバーからNuGetパッケージ削除
◦ dotnet nuget publish サーバーにNuGetパッケージ発行
◦ dotnet nuget locals ローカルのNuGetキャッシュを一覧、削除
<PackageReference Include="Newtonsoft.Json">
<Version>9.0.1</Version>
</PackageReference>
Brand-new “dotnet new”
dotnet new コマンドが強化されて、さまざまなテンプレートに対応
将来的にはより自由にプロジェクトテンプレートを追加できるようにする計画も
参考:http://rehansaeed.com/custom-project-templates-using-dotnet-new/
dotnet migrate
project.json形式のプロジェクトをcsprojに移行
特に確認することなくいきなり変換する。以前のものはbackupフォルダに。
.NET Core CLIの拡張
dotnet XXX という自作のコマンドラインツールを開発できるようになった
◦ nuget とかmsbuildとかもそういう作り
配布はNuGet経由
MSBuildのタスクを拡張として作成することも可能
参考: https://docs.microsoft.com/en-us/dotnet/articles/core/tools/extensibility
Preview版での例ですが
◦ https://github.com/tanaka-takayoshi/MVPSummitHackathon2016/tree/hackathon-dotnet-add
LinuxやDocker環境を見据えた機能
環境ごとのEnvironmentの切り替え
Configurationを環境変数や外部ファイルから引き渡す
Sessionの扱い
環境ごとのConfigureの切り替え
本番と開発では利用する外部サービスの接続情報が違う
本番と開発のDB接続先を切り替えたい
本番はキャッシュ用のRedisありで、開発はなしで
ローカルではSQLite使って単独で動かしたい etc…
Environment による切り替え
DIしたIHostingEnvironment を見て切り替える
しかし、ConfigureService にはIHostingEnvironmentをDIできない
Configureメソッドごと切替
ConfigureXXXServices, ConfigureXXX という命名規則でEnvironmentごとに切り替えられる
Configureクラスごと切替
Environment間で差異が大きすぎる場合などはStartupXXXとクラス名ごと切り替えられる
この場合、WebHostBuilder.UseStartup でStartupXXXを含むアセンブリ名を指定
DEMO: Environment 切り替え
Visual Studio Codeでのデバッグ時の切り替え方
publishしたバイナリファイル実行時の切り替え方
◦ 起動スクリプトで環境変数指定
◦ コンテナ起動時に指定 (dockerコマンドのオプションに相当する各サービスの設定方法で)
設定の読み込みと外部ディスク
特定のクラスが利用する設定データを外部ファイルに管理したい
ソースコードリポジトリに格納したくない秘密データをConfigurationに渡したい
◦ 環境変数経由
◦ 外部ファイル経由
Kubernetes/OpenShiftには秘密データを管理して、
コンテナに環境変数もしくは外部ファイルとして渡すことができる
Configuration はASP.NET Coreだけでなく.NET Coreでも使えます
ControllerへのConfigurationのDI
ConfigurationそのものをDIすることはできず、必要なものをクラスに切り出す
環境変数からの読み込み
ASPNETCORE_で始まる環境変数
WebHostBuilderの設定に使われます
ASPNETCORE_ENVIRONMENT
◦ ENVIRONMENTの指定
ASPNETCORE_URLS
◦ リスニングポート(URL)の指定
◦ ASP.NET Core 2.0 から指定なしでの起動ができなくなる予定
◦ 環境変数経由かソースコード内での指定
外部ファイルからの読み込み
複数コンテナ環境でのセッション
複数Webサーバー構成で、セッションは共有したい
共有するセッションはRedisに格納したい
Webサーバーのライフサイクルとセッションのライフサイクルを独立させたい
= Webサーバーが1台死んだ後、次に別のWebサーバーにアクセスしても
セッションを維持したままにしたい
参考: http://tech.tanaka733.net/entry/session-sharing-in-aspnetcore
IDistributedCache と IDataProtection
IDistributedCache
◦ 名前の通り分散キャッシュを提供
◦ セッションの格納先に指定できる
◦ ASP.NET CoreチームからはRedisとSQLServer版を提供
◦ この設定だけではセッションは分散して格納されるが複数マシンから共有できない
IDataProtection
◦ 暗号化するときのキー管理を提供
◦ セッションを格納する際にこのキーを使って暗号化する
◦ デフォルト実装はマシンごとに一意なキーを発行してローカルファイルとして保存
◦ ASP.NET CoreチームからはNFSおよび、Redis、AzureStorage (Preview)を提供
machine A
machine B
machine C
ASP.NET Core
ASP.NET Core
ASP.NET Core
Session Data
A’
マシンごとに鍵が異なるので、
同じセッションデータを参照しても
復号できない=>セッションロスト
~/.aspnet
IDataProtectionのデフォルト実装
machine A
machine B
machine C
ASP.NET Core
ASP.NET Core
ASP.NET Core
Session Data
鍵自体をredisにおいて
複数マシンが同じ鍵を使うので
セッションデータを復号できる
DataProtection.Redisを使った場合
DEMO: セッション共有
https://goo.gl/fQhpWl
コンテナのビルドとデプロイ
dockerイメージ作成
private NuGetサーバーの活用
App Service on Linuxへの配置
Container プラットフォームへの配置例:OpenShift
dockerのビルド・デプロイイメージ
ビルドプロセス
DBの
イメージなども
直接登録
SCM
コンテナ
レジストリ
デプロイプロセス
コンテナ
稼働環境
※アイコンのサービスは一例
OpenShiftだと
builder pod
DBの
イメージなども
直接登録
SCM(git) internal registry
deplore pod
pod
deploymentConfigbuildConfig
DEMO: App Service on Linuxへの配置
ビルドはローカルで => スクリプトを書いてCIサービスで回せる
◦ dotnet publish したバイナリをDockerfileで渡してイメージ作成
コンテナレジストリーはAzure Container Registryを使用
◦ すぐに作れるプライベートリポジトリ
◦ publicでよければDockerhubへ。privateにする場合は有料
デプロイはポータルから
◦ Azure Container Registryを指定してdocker配置
◦ ソースコード指定して、App Serviceがビルドして配置することもできる
◦ どちらかというと、App Serviceはそれを目指している=ビルドプロセスを内包したい、のかもしれない
(例)Dockerfile
Runtimeのみのイメージ
作業フォルダ作成
ビルドバイナリのコピー
作業フォルダ指定
リスニングポートの指定と開放
起動コマンド指定
ASP.NET Core 2.0 からは明示的なポートの指定が必要
https://github.com/aspnet/Announcements/issues/224
DEMO: OpenShiftへの配置
GitHubのリポジトリを指定するだけでビルド・デプロイ設定してくれる(s2i-dotnet)
GitHubにコミットしたら開発環境のコンテナを自動で更新する(GitHub commit hook)
EF Coreのmigrationなどを起動時に実行したい (s2i script)
OpenShiftに配置したDB、Redisサーバーの情報を渡したい
private NuGetサーバーの活用
キャッシュとして利用したい
オフライン環境でビルドしたい or LAN内のみでビルドしたい
公開せずに認証つきのみでアクセスさせたい
Sonatype Nexus OSS: セルフホスト可能、キャッシュとしても利用可能
NuGet.Server: 最近更新がない…
ファイルを直に配置: 動くが管理が面倒
VSTS: クラウドサービスのみ
JFrog Artifactory: Nexusと同様だが商用のみ
Linuxとdotnetプロセス
SELinux
systemdによるサービス化
SELinuxとは
https://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-selinux.html
SELinuxと.NET Core
.NET Core on RHELでdotnetプロセスはSELinuxからどう扱われる?
docker上でdotnetプロセスを動かす場合SELinuxはどう設定する?
dotnetプロセスはunconfined
unconfined というのは実質制約をうけないラベル
https://access.redhat.com/documentation/en-
US/Red_Hat_Enterprise_Linux/7/html/SELinux_Users_and_Administrators_Guide/sect-
Security-Enhanced_Linux-Targeted_Policy-Unconfined_Processes.html
docker上でのSELinux
SELinuxを有効にしたホスト上のContainerで走るプロセスに
svirt_lxc_net_t ラベルが付与される
c655,c931というMCSが付与されている
◦ マルチテナント環境で自分のコンテナが他人のコンテナからアクセスされるのを防ぐ
OpenShiftではデフォルトでroot権限が必要なコンテナが起動できないなど、
セキュリティ面も考慮している
systemd によるサービス化
.NET CoreをLinuxでサービスとして動かしたい
参考: http://tech.tanaka733.net/entry/aspnet-core-with-systemd-script-simple
serviceファイル例(.NET Core)
serviceファイル例(ASP.NET Core)
デバッグ
なぜ、WindowsからLinuxへ、LinuxからWindowsにリモートデバッグできるのか
Visual Studio Codeを使ったローカルデバッグ
Visual Studio Codeからリモートのdockerで動くプロセスにリモートデバッグ
Visual Studio からリモートのdockerで動くプロセスにリモートデバッグ
Performance Tracing
49
windbg
sos
procmon
perfview
LLDB/GDB
libsosplugin.so
strace
perfcollect
Debugging Application
50
GDB/LLDB
MICore
MIDE/Engine.Impl
MIDE/AD7.Impl
VSCode Debugger
AD7 Interface
MIDE: MIDebugEngine
MIText
VS Debugger
VS Debugger
Engine clrdbg
from MIEngine
WINDBG
まとめ
Visual Studio 2017リリースでのLinux周りの新機能
新しい.NET CLIの使い方
LinuxやDocker環境を見据えた機能を知る
LinuxやDocker環境でのCI/CDで使える機能を知る
LinuxやDocker環境への配置方法を知る

Contenu connexe

Tendances

復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0Yuta Matsumura
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 日本マイクロソフト株式会社
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 日本マイクロソフト株式会社
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...NTT DATA Technology & Innovation
 
Dartでサーバレスサービス
DartでサーバレスサービスDartでサーバレスサービス
Dartでサーバレスサービスcch-robo
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2Takao Tetsuro
 
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説Samir Hammoudi
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Masahito Zembutsu
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみたKazuto Kusama
 
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CDKubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CDPreferred Networks
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Masaki Yamamoto
 
KubernetesとOpenShiftの話
KubernetesとOpenShiftの話KubernetesとOpenShiftの話
KubernetesとOpenShiftの話Kazuto Kusama
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発日本マイクロソフト株式会社
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムYu Nobuoka
 
.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~Fujio Kojima
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話gree_tech
 
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話Kazuto Kusama
 
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介ThinkIT_impress
 

Tendances (20)

復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0復習も兼ねて!C#6.0-7.0
復習も兼ねて!C#6.0-7.0
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
 
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
OSSプロジェクトへのコントリビューション はじめの一歩を踏み出そう!(Open Source Conference 2022 Online/Spring...
 
Dartでサーバレスサービス
DartでサーバレスサービスDartでサーバレスサービス
Dartでサーバレスサービス
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2
 
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
Google Container Engine (GKE) & Kubernetes のアーキテクチャ解説
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
 
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CDKubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
Kubernetes Meetup Tokyo #35_GitOps Toolkit による Kubernetes マニフェスト CD
 
Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話Jenkins x Kubernetesが簡単だと思ったら大変だった話
Jenkins x Kubernetesが簡単だと思ったら大変だった話
 
KubernetesとOpenShiftの話
KubernetesとOpenShiftの話KubernetesとOpenShiftの話
KubernetesとOpenShiftの話
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
 
.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~.NET 5 勉強会 ~.NET Framework から .NET へ~
.NET 5 勉強会 ~.NET Framework から .NET へ~
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話
 
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
 
Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介Docker国内外本番環境サービス事例のご紹介
Docker国内外本番環境サービス事例のご紹介
 
Docker入門
Docker入門Docker入門
Docker入門
 
Juju/MAASで作る Kubernetes + GPU
Juju/MAASで作る Kubernetes + GPUJuju/MAASで作る Kubernetes + GPU
Juju/MAASで作る Kubernetes + GPU
 

Similaire à 20170311 Developing & Deploying .NET Core on Linux

ASP.NET Core のお気に入りの機能たち (docker向け)
ASP.NET Core のお気に入りの機能たち (docker向け)ASP.NET Core のお気に入りの機能たち (docker向け)
ASP.NET Core のお気に入りの機能たち (docker向け)Takayoshi Tanaka
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on LinuxTakayoshi Tanaka
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるdavid9142
 
20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and more20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and moreTakayoshi Tanaka
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜Masaya Aoyama
 
red-hat-forum-2017-openshift-baremetal-deployment
red-hat-forum-2017-openshift-baremetal-deploymentred-hat-forum-2017-openshift-baremetal-deployment
red-hat-forum-2017-openshift-baremetal-deploymentTetsuya Sodo
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーションYuta Matsumura
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio CodeTakashi Okawa
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜日本マイクロソフト株式会社
 
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Takashi Kanai
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来decode2016
 
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~Akira Inoue
 
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azureA 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azureGoAzure
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門Tsukasa Kato
 
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築Daein Park
 

Similaire à 20170311 Developing & Deploying .NET Core on Linux (20)

ASP.NET Core のお気に入りの機能たち (docker向け)
ASP.NET Core のお気に入りの機能たち (docker向け)ASP.NET Core のお気に入りの機能たち (docker向け)
ASP.NET Core のお気に入りの機能たち (docker向け)
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
ゼロから始めるQ#
ゼロから始めるQ#ゼロから始めるQ#
ゼロから始めるQ#
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and more20171112 OSS on Azure another story and more
20171112 OSS on Azure another story and more
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
red-hat-forum-2017-openshift-baremetal-deployment
red-hat-forum-2017-openshift-baremetal-deploymentred-hat-forum-2017-openshift-baremetal-deployment
red-hat-forum-2017-openshift-baremetal-deployment
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Codeどっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
どっちの VS ショー / 伝統の Visual Studio 2019、人気の Visual Studio Code
 
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
【de:code 2020】 Build 2020 最新情報 〜 Azure & Visual Studio & .NET 〜
 
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!
 
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
DEV-002_.NET Core/ASP.NET Core が実現するクロスプラットフォーム .NET の今と未来
 
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
.NET Core 5 ~ Windows, Linux, OS X そして Docker まで ~
 
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azureA 2-1 gitwebmatrix 2 から使う node.js on windows azure
A 2-1 gitwebmatrix 2 から使う node.js on windows azure
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
 
Open Source x AI
Open Source x AIOpen Source x AI
Open Source x AI
 

Plus de Takayoshi Tanaka

deep dive distributed tracing
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracingTakayoshi Tanaka
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handsonTakayoshi Tanaka
 
202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineersTakayoshi Tanaka
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapploggingTakayoshi Tanaka
 
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法Takayoshi Tanaka
 
20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NET20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NETTakayoshi Tanaka
 
New Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservabilityNew Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservabilityTakayoshi Tanaka
 
C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)Takayoshi Tanaka
 
C#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオンC#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオンTakayoshi Tanaka
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...Takayoshi Tanaka
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能Takayoshi Tanaka
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能Takayoshi Tanaka
 
Try! Visual Studio 209 git feature
Try! Visual Studio 209 git featureTry! Visual Studio 209 git feature
Try! Visual Studio 209 git featureTakayoshi Tanaka
 
(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0Takayoshi Tanaka
 
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10Takayoshi Tanaka
 

Plus de Takayoshi Tanaka (20)

deep dive distributed tracing
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracing
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handson
 
202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
 
20201127 .NET 5
20201127 .NET 520201127 .NET 5
20201127 .NET 5
 
Unity(再)入門
Unity(再)入門Unity(再)入門
Unity(再)入門
 
最近のQ#について
最近のQ#について最近のQ#について
最近のQ#について
 
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
 
20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NET20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NET
 
New Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservabilityNew Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservability
 
C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)
 
20190806 Q# Measurements
20190806 Q# Measurements20190806 Q# Measurements
20190806 Q# Measurements
 
C#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオンC#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオン
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
 
Try! Visual Studio 209 git feature
Try! Visual Studio 209 git featureTry! Visual Studio 209 git feature
Try! Visual Studio 209 git feature
 
Q#基礎 ver1.1
Q#基礎 ver1.1Q#基礎 ver1.1
Q#基礎 ver1.1
 
(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0
 
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10New features of Azure Cloud Provider in OpenShift Container Platform 3.10
New features of Azure Cloud Provider in OpenShift Container Platform 3.10
 

Dernier

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Dernier (10)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

20170311 Developing & Deploying .NET Core on Linux

Notes de l'éditeur

  1. ABI: Application Binary Interface
  2. System.Runtime.Private.dllとかの話 A set of assemblies that represent the compile time surface area of the class library implemented by the runtime itself. ref https://github.com/dotnet/coreclr#relationship-with-the-corefx-repository
  3. <ProjectName>.csprojに移行。.NET Frameworkのものよりも単純化 ビルドツールもMSBuildに移行。MSBuildのxplat化 dotnet buildはMSBuildのフロントエンドに
  4. ref) https://github.com/dotnet/coreclr/blob/f6b0056c819b07ae053d3112299ade0990144d00/src/ToolBox/SOS/SOSAndICorDebug.md
  5. https://github.com/Microsoft/MIEngine