8. .NET Framework の基本構成
OS (Windows)
共通言語ランタイム
(CLR : Common Language Runtime)
各種ライブラリ
共通言語基盤
(CLI : Common Language Infrastructure)
VB C# F# • .NET 対応の開発言語を利用可能
• 型などの共通仕様
• 言語間のコンポーネント呼び出しが可能
• IO, ネットワーク, 暗号化 …
• ASP.NET, ADO.NET …
• 実行制御
(メモリ管理, スレッド制御, 例外処理, セキュリティ …)
・・・
9. "More and more of ASP.NET is open source. We want to
make ASP.NET more pluggable, more open, more fun."
"We've got big things planned - some that will surprise you."
February 25, 2012
by Scott Hanselman
10. One ASP.NET ~ Katana Project
Katana Project
Helios
OWIN
11. .NET オープンソースの道のり
.NET
2001
ECMA 335
(CLI)
2002
.NET 1.0 for
Windows released.
Mono project
begins
2008
ASP.NET MVC
(web platform)
open source
April 2014
.NET Compiler
Platform (“Roslyn”)
open source
.NET Foundation
founded
Nov. 2014
.NET Core
(cross-platform)
project begins
2016
Mono project joins
.NET Foundation
Aug. 2017
.NET Core 2.0
released
Dec. 2018
.NET Core 2.2
released
.NET Core 3.0
preview
WinForms
and WPF go
open source
Fall 2019
.NET Core 3.0
17. XAMARIN / MONO.NET FRAMEWORK .NET
2014 20202016
Many
.NETs
.NET
standard
.NET
.NET CORE
.NET STANDARD
18. .NET 5
GA on November 10th
Single file applications
Smaller container images
Web and cloud investments
Windows ARM64 support
Continued performance improvements
New C# 9.0, F# 5.0 language features
dot.net/get-dotnet5
19. ◼ .NET Core / Xamarin / .NET Framework アプリケーション モデルをサポート
◼ 統一プラットフォームへ向けた .NET Core の進化
◼ シングル SDK, 一つの BCL, 統一されたツール チェーン
◼ クロスプラットフォーム ネイティブ UI
◼ クロスプラットフォーム Web UI
◼ Cloud Native への投資
◼ パフォーマンス、サイズ、診断、Azure サービスの継続的な改善
◼ .NET 5 に含まれないアプリケーション モデル
◼ ASP.NET Web Forms
◼ WCF (Windows Communication Foundation)
◼ WF (Windows Workflow Foundation)
– .NET 5 to 6 "wave"
.NET Framework
Mono / Xamarin
.NET Core.NET
One .NET vision
.NET has the best of breed solutions for all modern workloads
20. .NET リリース スケジュール
• .NET 5.0 リリース : 2020 年 11 月
• 毎年 11 月にメジャー リリース
• LTS は奇数年リリース
• 予定リリース以外に必要であればマイナーリリースあり
Dec 2019
.NET Core 3.1
LTS
Nov 2020
.NET 5.0
Nov 2021
.NET 6.0
LTS
Nov 2022
.NET 7.0
Nov 2023
.NET 8.0
LTS
30. コンテナーとは?
コンテナー
• ハードウェア仮想化
• スケール単位は
仮想マシン (VM)
• OS の仮想化
• スケール単位は アプリ (コンテナー)
仮想マシンApp
Container
App
On-premises
Cloud
どこでも
Monolith
Microservice
どんな構成でも
.NET
Java
Python
Node
どんな言語でも
Linux
Windows
Linux でも
Windows でも
31. Docker Containers ~ 共通デプロイ単位
Optionsofcompute
Azure Web App for Containers
Ma en
Azure Kubernetes
Service (AKS)
Leverage the Azure platform
designed for your container needs
Keep using the platform of your choice,
running great on Azure
Azure Container Registry
Docker Hub,
private registry
Visual Studio tools InteliJ Jenkins
Redhat Openshift
Container Platform
Pivotal Cloud
Foundry
Kubernetes
Azure Red Hat
OpenShift (ARO)
32. Web App for Containers
Docker コンテナーの実行基盤として最適化された
PaaS プラットフォーム
33. Azure App Service & Windows Containers (GA)
Windows Containers によるモノリシック / N-Tier
アプリの Azure App Service 移行が可能
34. Windows と .NET アプリのコンテナー基本イメージ
Dockerfile
FROM mcr.microsoft.com/windows/servercore:ltsc2019
36. Azure Kubernetes Service (AKS)
API server
Controller
ManagerScheduler
etcd
Store
Cloud
Controller
Self-managed master node(s)
Worker Nodes (Azure VMs)
App/
workload
definition
Developer
Operator
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Schedule pods over
private tunnel
Kubernetes
API endpoint
Azure managed control plane
Focus on your containers and code, not the plumbing of them
Responsibilities
DIY with
Kubernetes
Azure
Kubernetes
Service
Containerization
Application iteration,
debugging
CI/CD
Provisioning, upgrades,
patches
Reliability availability
Scaling
Monitoring and logging
Customer Microsoft
YAML
37. A fully managed service for Spring Boot microservices
Built-in app lifecycle management, monitoring, and network isolation
Fully managed infrastructure and configure with only one line of code
38. Azure Spring Cloud (GA)
Simplify your cloud development for Spring applications
Responsibilities
DIY with Spring
Boot
Azure Spring
Cloud Service
Application
iteration,
debugging
CI/CD
Build and
manage Clusters
Host Spring
Cloud
Middleware
Monitoring and
logging
Scaling
Patching
Support
Customer VMware Microsoft
Azure Database
for MySQL
Azure Cosmos
DB
Azure Cache
for Redis
User Git Repository
Azure Spring Cloud
agents
Azure Spring Cloud
VMware Tanzu
Build Service
Azure Kubernetes Service
Service
Binding
Config
Source
Service RuntimeUser Environment
App 1 App 2 App N Config
Server
Service
Registry
Lifecycle
Mgmt
Log Stream Data Encryption
App Resiliency
Azure DevOps
CI/CD
GitHub
Jenkins
Custom
Domain
Self-
Diagnostics
Metrics Tracing Managed IdentitiesLogs Service Principals
Azure Monitor Azure Active Directory
39. Azure Spring Cloud (GA)
Simplify your cloud development for Spring applications
Responsibilities
DIY with Spring
Boot
Azure Spring
Cloud Service
Application
iteration,
debugging
CI/CD
Build and
manage Clusters
Host Spring
Cloud
Middleware
Monitoring and
logging
Scaling
Patching
Support
Customer VMware Microsoft
Azure Database
for MySQL
Azure Cosmos
DB
Azure Cache
for Redis
User Git Repository
Azure Spring Cloud
agents
Azure Spring Cloud
VMware Tanzu
Build Service
Azure Kubernetes Service
Service
Binding
Config
Source
Service RuntimeUser Environment
App 1 App 2 App N Config
Server
Service
Registry
Lifecycle
Mgmt
Log Stream Data Encryption
App Resiliency
Azure DevOps
CI/CD
GitHub
Jenkins
Custom
Domain
Self-
Diagnostics
Metrics Tracing Managed IdentitiesLogs Service Principals
Azure Monitor Azure Active Directory
40. .NET in Azure Spring Cloud with Steeltoe
Run .NET and Java microservices in the same Spring Cloud environment
Built-in app lifecycle management, monitoring, and network isolation
Leverage a fully managed infrastructure
Configure with only one line of code
Powered by Steeltoe, a .NET Foundation OSS project
aka.ms/steeltoe
41. .NET 5 の Cloud Native への投資
REST API’s
Open API, API REPL, client generation, publish to APIM
gRPC contract-based API’s
Generate client & server from proto file, world class performance
Faster cross-platform development with WSL and Linux
Smaller microservices, single file apps, top-level C# programs
High-performance reverse proxy (YARP)
Opinionated .NET microservices & orchestration tools (Tye)