SlideShare a Scribd company logo
そろそろレガシーな
.NET開発をやめなイカ?
2017/08/19 博多Tech塾
@tsubakimoto_s
2
自己紹介
•松村 優大 (MLBお兄さん)
•株式会社オルターブース
• Chief Technical Architect
•C# / PHP / Azure / AWS
•Microsoft MVP for VSDT
所属 コミュニティ
3
レガシーな開発からの脱却
~開発環境~
4https://unsplash.com/photos/sCdm5DiJb8w
開発環境は常に新しく!
5
6
7
Visual Studio 2005
.NET Framework 2.0
64bit Application
Visual Studio 2008
.NET Framework 3.0
.NET Framework 3.5
Visual Studio 2010
.NET Framework 4.0
F#, HTML5, CSS3
Visual Studio 2012
.NET Framework 4.5
Windows8 Application
Visual Studio 2013
.NET Framework 4.5.1
Git, TypeScript, Cummunity Edition
Visual Studio 2015
.NET Framework 4.6
.NET Core, Xamarin, Apache Cordova
C# 7 対応
Xamarin統合
Live Unit Testing
8
Visual Studio 2017
9
個人開発者
学習、学術調査目的の開発者
オープン ソース開発者
中小規模の企業や団体
https://www.microsoft.com/ja-jp/dev/products-visual-studio
ワークロード
•Windows
• UWP
• .NETデスクトップ 他
•モバイル&ゲーム
• Xamarin
• Unity
• Apache Cordova 他
• Web&クラウド
• ASP.NET
• Azure
• Python
• Node.js 他
• ツールセット
• VS拡張機能 他
10
Visual Studio Family
11
https://blogs.msdn.microsoft.com/visualstudio_jpn/2017/03/14/iterations-on-infinity/
Visual Studio 2017
Visual Studio Team Services
Visual Studio Blend
Visual Studio Mobile Center
VSのクラウド連携
•Azure
• Azure SDK
• 例)WebサイトをVSからデプロイ
•AWS
• AWS Toolkit for Visual Studio
• 例)LambdaをVSからデプロイ
12
Docker統合
•VS2015から標準搭載
•Docker Composeファイル生成
•コンテナデバッグ
注:Hyper-Vが必要
13
レガシーな開発からの脱却
~アプリケーション~
14https://unsplash.com/photos/sCdm5DiJb8w
15
デスクトップアプリ
Webアプリ
モバイルアプリ
サーバーレスアプリ
デスクトップアプリ
16
•要件を満たせるならWinFormsでも
よい
•UWPやWPFの特徴
• 高DPI対応、リッチなUI
• XAML、MVVM
WinForms <<< UWP <= WPF
• データ(≒テーブル)の管理
• ビジネスロジック
M
• ユーザインターフェースV
• ModelからViewへ出力データを渡す
• ViewからModelへ入力データ渡す
VM
17
18
http://cases.azoft.com/mvvm-android-data-binding/
Webアプリ
•ASP.NET Web Form
•ASP.NET MVC
•ASP.NET Web API
•ASP.NET SignalR
19
• データ(≒テーブル)の管理
• ビジネスロジックM
• ユーザインターフェースV
• ModelからViewへ出力データを渡す
• ViewからModelへ入力データ渡すC
20
モバイルアプリ
C#でモバイルアプリを作るフレームワーク
→Android, iOS, Windows Phone
気になる方はJXUGをチェック
21
サーバーレスアプリ
Azure Functions
関数単位でホスト
入力:トリガー
出力:データ
多言語対応
22
サーバーレスアプリ
AWS Lambda
.NET Core 1.0
AWSのリソース
と連携
多言語対応
Java, Node.js, Python
23
レガシーな開発からの脱却
~フレームワーク~
24https://unsplash.com/photos/sCdm5DiJb8w
25
26
コンソールアプリ
クラスライブラリ
Webアプリ
.NET Core
•.NET Frameworkのオープンソース
版
•完全移植ではない
•version
• 1.0 (2016/06)
• 1.1 (2016/11)
• 2.0 (preview 2017/08/15)
27
28
Flexible deployment
Cross-platform
Command-line tools
Compatible
Open source
Supported by Microsoft
https://docs.microsoft.com/ja-jp/dotnet/articles/core/index
Cross-platform
29
https://github.com/dotnet/core/blob/master/roadmap.md#net-core-10---supported-os-versions
Windows Subsystems for Linux
提供予定
Windows Subsystems for Linux
提供予定
Cross-platform
30
https://github.com/dotnet/core/blob/master/roadmap.md#net-core-20---supported-os-versions
Command-line tools
31
コマンド名 機能
dotnet **.dll .NET Coreアプリの実行
dotnet new プロジェクトの新規作成
dotnet restore NuGetパッケージの復元
dotnet build プロジェクトのビルド
dotnet publish 公開用ファイルの生成
dotnet run プロジェクトの実行
dotnet test テストの実行
dotnet pack NuGetパッケージ化
https://docs.microsoft.com/ja-jp/dotnet/articles/core/tools/
Open source
3232
dotnet/standard
dotnet/corefx dotnet/coreclr
dotnet/roslyn
dotnet/cli dotnet/docs
との親和性(microsoft/dotnet)
バージョン ツール付き 実稼働
Linux (Debian)
1.0 1.0-sdk 1.0-runtime
1.1 1.1-sdk 1.1-runtime
2.0 2.0-sdk 2.0-runtime
Windows (NanoServer)
1.0 1.0-sdk 1.0-runtime
1.1 1.1-sdk 1.1-runtime
2.0 2.0-sdk 2.0-runtime
33
https://hub.docker.com/r/microsoft/dotnet/
Webアプリ
•ASP.NET Core MVC
•ASP.NET Core Web API
•ASP.NET Core SignalR (preview)
34
バージョン 実稼働(Linux) 実稼働(Windows)
1.0 1.0.5-jessie 1.0.5-nanoserver
1.1 1.1.2-jessie 1.1.2-nanoserver
2.0 2.0.0-stretch 2.0.0-nanoserver
https://hub.docker.com/r/microsoft/aspnetcore/
microsoft/aspnetcore
.NET Standard
コード共通化の仕組み
35
これまでのコード共通化
36
.NET
FRAMEWORK
.NET CORE XAMARIN
アプリ
モデル
ベース
ライブラリ
https://www.slideshare.net/decode2017/tl04-net-15-net
.NET Standardによる共通化
37
https://www.slideshare.net/decode2017/tl04-net-15-net
.NET FRAMEWORK .NET CORE XAMARIN
.NET Standardによる共通化
38
https://www.slideshare.net/decode2017/tl04-net-15-net
.NET
FRAMEWORK
.NET CORE XAMARIN
.NET Standardのバージョン
39
https://docs.microsoft.com/ja-jp/dotnet/standard/net-standard
UWPに使わないUWPにも使う
レガシーな開発からの脱却
~コーディング~
40https://unsplash.com/photos/sCdm5DiJb8w
41
C# 6
•自動実装プロパティ
•ラムダ式でのメソッド定義
•ラムダ式でのプロパティ定義
•Null条件演算子
•文字列補完
•nameof演算子
•インデックス初期化子
•例外フィルター
42
C# 7
•switch文のcase節
•ローカル関数
•タプル (Tuple)
43
LINQ
•統合言語クエリ
• Language Integrated Query
• System.Linq名前空間
•クエリ式
• SQLライクな構文
•メソッド式
44
https://github.com/tsubakimoto/linq-samples
サンプル
45
告知
46
47
4848
Visual Studio Code
ありがとうございました
49

More Related Content

PPTX
世界一わかりやすいClean Architecture
PPTX
本当は恐ろしい分散システムの話
PDF
Twitterのsnowflakeについて
PDF
ドメイン駆動設計 ( DDD ) をやってみよう
PDF
ドメイン駆動設計サンプルコードの徹底解説
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PDF
ドメイン駆動設計入門
PDF
DockerとPodmanの比較
世界一わかりやすいClean Architecture
本当は恐ろしい分散システムの話
Twitterのsnowflakeについて
ドメイン駆動設計 ( DDD ) をやってみよう
ドメイン駆動設計サンプルコードの徹底解説
コンテナの作り方「Dockerは裏方で何をしているのか?」
ドメイン駆動設計入門
DockerとPodmanの比較

What's hot (20)

PDF
ドメインオブジェクトの見つけ方・作り方・育て方
PDF
ドメイン駆動設計の正しい歩き方
PDF
世界でいちばんわかりやすいドメイン駆動設計
PDF
ソーシャルゲームのためのデータベース設計
PPTX
マイクロサービスにおける 結果整合性との戦い
PDF
できる!並列・並行プログラミング
PDF
Pull Request & TDD 入門
PDF
Unityでオニオンアーキテクチャ
PDF
ドメイン駆動設計をゲーム開発に活かす
PDF
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
PDF
Tackling Complexity
PDF
WebSocket / WebRTCの技術紹介
PDF
ドメイン駆動設計 失敗したことと成功したこと
PDF
ブラック企業から学ぶMVCモデル
PDF
Railsで作るBFFの功罪
PDF
「ドメイン駆動設計」の複雑さに立ち向かう
PDF
remote Docker over SSHが熱い
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
PDF
40歳過ぎてもエンジニアでいるためにやっていること
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
ドメインオブジェクトの見つけ方・作り方・育て方
ドメイン駆動設計の正しい歩き方
世界でいちばんわかりやすいドメイン駆動設計
ソーシャルゲームのためのデータベース設計
マイクロサービスにおける 結果整合性との戦い
できる!並列・並行プログラミング
Pull Request & TDD 入門
Unityでオニオンアーキテクチャ
ドメイン駆動設計をゲーム開発に活かす
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
Tackling Complexity
WebSocket / WebRTCの技術紹介
ドメイン駆動設計 失敗したことと成功したこと
ブラック企業から学ぶMVCモデル
Railsで作るBFFの功罪
「ドメイン駆動設計」の複雑さに立ち向かう
remote Docker over SSHが熱い
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
40歳過ぎてもエンジニアでいるためにやっていること
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
Ad

Similar to そろそろレガシーな.Net開発をやめなイカ? (20)

PDF
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
PPTX
Visual Studio を使わず .NET する
PPTX
WPF & Windows Forms on .NET Core 3.0
PPTX
新しい Visual Studio & .NET と新時代のアーキテクチャ
PDF
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
PDF
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
PPTX
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
PPTX
.NET Core 3.0 に備えよう
PDF
.NET の過去、現在、そして未来
PPTX
Xamarinでも有能な .NET Core
PDF
.NET Coreとツール類の今
PDF
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
PDF
The Twelve-Factor (A|M)pp with C#
PDF
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
PPTX
Visual Studio Code で C# でのアプリ開発
PDF
[Japan Tech summit 2017] APP 001
PPTX
Desktop app dev strategy for .net core 3.0
PDF
.NET Micro Framework で IoT
PPTX
Web matrix2とvisual studio
PPTX
2015 1025 OSC-Fall Tokyo NETMF
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
Visual Studio を使わず .NET する
WPF & Windows Forms on .NET Core 3.0
新しい Visual Studio & .NET と新時代のアーキテクチャ
ASP.NET 新時代に向けて ~ ASP.NET 5 / Visual Studio 2015 基礎解説
.NET Core と Container, そして Azure Web Apps on Linux による Web アプリ開発最前線
使い倒そう Visual Studio Code!!! ~ここからはじめる基本のキ~
.NET Core 3.0 に備えよう
.NET の過去、現在、そして未来
Xamarinでも有能な .NET Core
.NET Coreとツール類の今
デモで楽しむ Visual Studio 2022 & .NET 6 最新アップデート
The Twelve-Factor (A|M)pp with C#
サーバーレスやマイクロサービスへの"チャレンジ"を後押ししてくれるセッションを紹介
Visual Studio Code で C# でのアプリ開発
[Japan Tech summit 2017] APP 001
Desktop app dev strategy for .net core 3.0
.NET Micro Framework で IoT
Web matrix2とvisual studio
2015 1025 OSC-Fall Tokyo NETMF
Ad

More from Yuta Matsumura (20)

PDF
「自分のとこでは動くけど…」を無くす devcontainer
PDF
チーム開発で徐々にコード品質をあげていく取り組み
PDF
.NETのサポートポリシーのおさらい #csharptokyo
PDF
App Modernization for .NET
PDF
分かったうえではじめるCI/CD
PDF
VSCodeで始めるAzure Static Web Apps開発
PDF
いつでもどこでも .NET
PDF
.NET アプリを改善して実践する継続的インテグレーション
PDF
マイクロサービス開発が捗る Project Tye
PDF
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
PDF
Azure の ID 管理サービスに LINE ログインを組み込もう
PDF
Blazor Server テンプレート解説
PDF
改めて C# でできることを振り返る
PDF
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
PDF
忙しい人のための .NET Conf 2019 まとめ
PDF
.NET Conf の歩き方
PDF
PHPカンファレンス福岡2019 閉会式
PDF
PHPカンファレンス福岡2019 開会式
PDF
これから始める Bot Builder 開発のコツと舞台裏
PDF
ASP.NET Core 2.x Identityについて
「自分のとこでは動くけど…」を無くす devcontainer
チーム開発で徐々にコード品質をあげていく取り組み
.NETのサポートポリシーのおさらい #csharptokyo
App Modernization for .NET
分かったうえではじめるCI/CD
VSCodeで始めるAzure Static Web Apps開発
いつでもどこでも .NET
.NET アプリを改善して実践する継続的インテグレーション
マイクロサービス開発が捗る Project Tye
オンライン中心だから地方のコミュニティも見てみませんか? - Fukuoka.NETの紹介
Azure の ID 管理サービスに LINE ログインを組み込もう
Blazor Server テンプレート解説
改めて C# でできることを振り返る
スタートアップ企業が実践するクラウドネイティブアプリケーションの開発手法
忙しい人のための .NET Conf 2019 まとめ
.NET Conf の歩き方
PHPカンファレンス福岡2019 閉会式
PHPカンファレンス福岡2019 開会式
これから始める Bot Builder 開発のコツと舞台裏
ASP.NET Core 2.x Identityについて

そろそろレガシーな.Net開発をやめなイカ?