Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

14,174 views

Published on

https://hakata-tech-juku.connpass.com/event/62050/

Published in: Technology
  • Be the first to comment

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

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

×