net everywhere .net が創る mobile & cloud native プラット … · 2018-06-01 ·...
TRANSCRIPT
~ .NET Everywhere ~
.NET が創るMobile & Cloud Native プラットフォームの未来
AD14
#decode18 #AD14
Hotel Guest
iOS
Hotel Guest
iOS
Hotel Staff
iOS
Hotel Staff
Android
Hotel Staff
iOS
Hotel Guest
Web
Hotel Guest
Android
Hotel Guest
iOS
More devices Emerging platforms Data & intelligence
.NET Framework の基本構成
OS (Windows)
共通言語ランタイム(CLR : Common Language Runtime)
各種ライブラリ
共通言語基盤(CLI : Common Language Infrastructure)
VB C# C++ • .NET 対応の開発言語を利用可能
• 型などの共通仕様• 言語間のコンポーネント呼び出しが可能
• IO, ネットワーク, 暗号化 …
• ASP.NET, ADO.NET …
• 実行制御(メモリ管理, スレッド制御, 例外処理, セキュリティ …)
・・・
"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, 2012by Scott Hanselman
One ASP.NET ~ Katana Project
Katana Project
Helios
OWIN
.NET Application Models
.NET Framework .NET Core Xamarin
アプリ
モデル
ベース
ライブラリ
.NET 開発者 (Visual Studio) の増加
Apr-17 May-17 Jun-17 Jul-17 Aug-17 Sep-17 Oct-17 Nov-17 Dec-17 Jan-18 Feb-18 Mar-18
Monthly Active .NET Developers in Visual Studio
(2015 & 2017)
“Samsung is embracing .NET because it is a completely open source project.” — Samsung
".NET is open source; that allows us to contribute back to it if we have any performance issues which Microsoft review and together we make a better product.“ — Illyriad Games
19,000+ Community Contributions from 3700+ Companies outside Microsoft
0
200
400
600
800
1000
1200
1400
1600
1800
2000
COMMUNITY ACCEPTED PULL REQUESTS
参考) The State of the Octoverse 2017: https://octoverse.github.com/
.NET 言語
Powerful, flexible, for any kind of app
Innovate aggressively and responsibly bringing latest
language trends to enable modern applications
Easy to get started, approachable
Focus on simplicity and productivity for the most common
scenarios and developers new to programming
Productive functional programming and analytics
Be the most productive functional language in the market
with full integration and interoperability with .NET
Xamarin
Xamarin – .NET for Mobile
iOS .NET UI Android .NET UI
Shared .NET Code
Windows .NET UI
Xamarin のコンパイルとパフォーマンス
Xamarin.iOS Xamarin.Android
◼
◼
◼ https://github.com/Microsoft/ConferenceVision
◼
◼
◼ https://aka.ms/xamarinessentials
◼
◼
◼
Build 2018 – Xamarin アップデート
Xamarin.Forms on the Web
https://github.com/praeclarum/Ooui
http://ooui.mecha.parts/
.NET Standard
.NET Platform の API 統一化に向けて
.NET Framework
APIs
.NET Core
APIs
Xamarin
APIs
チャレンジ:コード、ライブラリ、開発スキルの共有
.NET Platform の API 統一化に向けて
.NET Framework
APIs
.NET Core
APIs
Xamarin
APIs
.NET Standard
.NET Platform の API 統一化に向けて
.NET Framework
APIs
.NET Core
APIs
Xamarin
APIs
.NET Standard
.NET API の統一仕様
◼ 統一された BCL API セットの定義
◼ 各 .NET 環境の共有ライブラリを生成可能
◼ 共有ソースコードの条件付きコンパイルを削減
例えば・・・
.NET Standard ⇔ HTML 5
.NET Core
.NET FrameworkXamarin
https://docs.microsoft.com/ja-jp/dotnet/articles/standard/library
https://github.com/dotnet/standard
https://docs.microsoft.com/ja-jp/dotnet/framework/app-domains/type-forwarding-in-the-common-language-runtime
.NET Standard 2.0
Ver. #APIs %
1.0 7,949
1.1 10,239 +29%
1.2 10,285 +0%
1.3 13,122 +28%
1.4 13,140 +0%
1.5 13,355 +2%
1.6 13,501 +1%
2.0 32,638 +142%
standard/docs/versions
.NET Core
Announcing
.NET Core 2.1 RC
https://aka.ms/DotNetCore21
“Go-live”
.NET Core 2.1 SDK パフォーマンス
0
20
40
60
80
100
120
2.0 2.1-preview 2.1 RC
Incremental Build Time for .NET Core SDK
.NET Core 2.1 Runtime パフォーマンス
2.6MM
599K
97K
2.9MM
662K
216K
-
500,000
1,000,000
1,500,000
2,000,000
2,500,000
3,000,000
Plaintext JSON Fortunes (data access)
RUNTIME PERFORMANCE
.NET Core 2.0 .NET Core 2.1
Data sourced from tests in our labs on same hardware as TechEmpower
.NET Core 2.1 の主な新機能
IoT Devices Azure IoT Hub SAMSUNG
• Visual Studio Tools for Tizen
Blazor
.NET
◼
◼
◼
◼
◼
◼
◼
◼
Blazor – .NET in the Browser
Browser + Razor = Blazor !
.NET
https://blazor.net
.cs
.cshtml
BROWSER
WebAssembly
(mono.wasm)
.NET
(mscorlib.dll,
System.Core.dll,…)
App.dllCompile to .NET
assemblies
Blazorの動作
Announcing
3.0
Highly-compatible,
targeted improvements,
like last few releases
• XAML Islands - WinForms & WPF apps
can host UWP controls
• HDPI and accessibility improvements
• .NET Framework support unchanged
(supported for life of Windows)
• XAML Islands - WinForms & WPF apps can host UWP controls
• Full access to Windows 10 APIs
• Side-by-side support & self contained exes
• Desktop pack to enable porting existing apps to .NET Core
UWP
Windows-only
DATAWEB
ASP.NET
CoreEF Core
AI/ML
ML.NET
WPF
.NET Core 3Desktop Packs.NET Framework 4.8
.NET Standard
Existing
App
Highly
compatible
updates
.NET Core
3.0 with
Desktop
Packs
Install .NET
Core updates
per your
needs
Modernize Desktop Apps with .NET Core 3
Windows-only
.NET Standard
Cross-platform
Windows
Forms
Update .NET Framework Apps
EF6 (cross-plat)
なぜWindows Desktop に .NET Core が必要なのか?
UWP
Windows-only
WPF
Windows
Forms
EF6 (cross-plat)
.NET Standard
.NET Core
.NET Core 3.0 Preview
Later This Year
.NET and Machine Learning
Prepare Your Data Build & Train Run
Proven & Extensible
https://dot.net/ml
https://github.com/dotnet/machinelearning
Supported on Windows, Linux, and macOS
Developer FocusedBuild your own Open Source
.NET App Modernization
.NET applications modernization
Migrate / Rehost
Architected for the cloud, needs new code
Existing apps
.NET web apps (on-premises)
Relational
Database
On-premises
Cloud
Infrastructure-Ready
VMs
Azure
IaaS (Infrastructure as a Service)
Modernize
Cloud-Native
PaaS for microservices and serverless
PaaS for containerized microservices
+ Serverless computing
+ Managed services
Azure
Cloud-Optimized
PaaS
Managed services
Azure
+
Windows Containers
Minimal code changes
Base Cloud Environment and cross-cutting concerns: Network, Hybrid-cloud, Identity/Auth, Cost control and Operations model
Docker and .NET
.NET Framework
container image:
Windows Server Core
.NET Framework アプリケーションのモダナイズ
.NET Core
container images:
xPlat. (Linux & Windows Nano Server)
.NET Core ベースの Cloud Native & Microservices シナリオ
https://hub.docker.com/r/microsoft/dotnet/
Docker Containers ~共通デプロイ単位O
pti
on
s o
f co
mp
ute
Azure Web App for Containers
Service Fabric
Ma en
Azure Container Service (AKS)
Leverage the Azure platform
designed for your container needs
Keep using the platform of your choice,
running great on Azure
Azure Container RegistryDocker Hub, private registry
Visual Studio tools InteliJ Jenkins
Redhat OpenshiftContainer Platform
Pivotal Cloud Foundry
Kubernetes
.NET Everywhereすべてのアプリのための統一プラットフォーム
.NET Framework / .NET Core / Xamarin
INFRASTRUCTURE
.NET Standard
DESKTOP WEB CLOUD MOBILE GAMING IoT AI
Microsoft Developers
Ask the Speakerのご案内
ブレイクアウトセッション終了後の休憩時間に、
登壇したスピーカーに直接ご質問いただける
コーナーを 「Ask The Speakers」 Room に
用意しております。セッション内容のより深い
理解のため、ぜひお役立てください。
「Ask The Speakers」
セッションアンケートにご協力ください。
Twitterのご案内
.NET Everywhere
ML.NET
https://dot.net/ml→
.NET Official Page
https://dot.net/→
.NET Documentations
https://docs.microsoft.com/en-us/dotnet/→
Blazor
https://blazor.net→
.NET Core 2.1
https://aka.ms/DotNetCore21→
Visual Studio
https://www.visualstudio.com/ja/→
井上 章 (いのうえ あきら)
http://aka.ms/chack
2008 年マイクロソフト入社。
主に .NET や Visual Studio, Microsoft Azure などの開発技術を専門とするエバンジェリストとして、技術書籍やオンライン記事などの執筆、さまざまな技術イベントでの講演などを行う。
2018 年より Global Black Belt (GBB) という技術専門組織に異動し、モバイルを中心としたアプリ開発技術の訴求活動に従事。
© 2018 Microsoft Corporation. All rights reserved.
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。