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

3,728 views

Published on

プログラミング生放送勉強会 第37回@福岡 での発表資料です。
https://atnd.org/events/72151

Published in: Technology

開発を効率化してみよう.NET

  1. 1. 開発を効率化してみよう.NET 2015/11/21 プログラミング生放送@福岡 松村 優大
  2. 2. 自己紹介 • 松村 優大(Yuta Matsumura) • @tsubakimoto_s • 島根県出身の28歳、新米パパ • I ♥ New York Yankees • ソフトボールやってます 2
  3. 3. 3
  4. 4. 4
  5. 5. 島根県の観光地 5 • 出雲大社(縁結びの神様) • 松江城(国宝) • 石見銀山(世界遺産) • 隠岐の島 • 玉造温泉、湯の川温泉
  6. 6. 福岡県から島根県へのアクセス • 飛行機(出雲空港便、1日2便) • 新幹線&高速バス(広島駅で乗り換え) • 新幹線&JR特急列車(岡山駅で乗り換え) • 夜行バス(博多・天神 ⇄ 松江・出雲) 6
  7. 7. 今日のお話 • .NETアプリケーション開発者向け • Visual Studioの機能で品質向上を実現 • Jenkinsを利用した継続的インテグレーション 7
  8. 8. .NETとは? • .NET Framework • Microsoftが提供するアプリケーション実行環境 • 最新バージョンは 4.6 • .NET Frameworkが利用できるプログラミング言語に C♯とVisual Basic.NETがある 8
  9. 9. .NET 2015 RyuJIT, SIMD Runtime Compilers .NET Compiler Platform (“Roslyn”) C#/F#/VB Languages .NET Core 5 Libraries .NET Framework 4.6 Libraries Libraries .NET Framework 4.6 .NET Core 5 Fully-featured and integrated .NET libraries and runtime for Windows Modular and optimized .NET libraries and runtimes
  10. 10. .NET オープンソース  オープンソース     クロス プラットフォーム対応     GitHub と Mono Project   RyuJIT, SIMD Runtime Compilers .NET Compiler Platform (“Roslyn”) Languages .NET Core 5 Libraries .NET Framework 4.6 Libraries Libraries .NET Framework 4.6 .NET Core 5 https://github.com/aspnet https://github.com/microsoft/dotnet
  11. 11. 11
  12. 12. 12
  13. 13. 13
  14. 14. アプリケーション開発のステップ コーディング デバッグ テスト 14
  15. 15. Visual Studioの機能 IntelliSense コード分析 IntelliTrace 診断ツール IntelliTest 単体テスト 15 コーディング デバッグ テスト
  16. 16. コード分析 • ソースコードが規則に沿っているかを分析する機能 • 規則に沿うことでソースコードの保守性を高める • 潜在的な問題をもつソースコードを発見できる • チームで開発を行う際に効果を発揮する 16
  17. 17. Microsoftが提供する規則セット 17 すべての規則 グローバリゼーション規則 基本正確性規則 基本デザインガイドライン規則 拡張正確性規則 拡張デザインガイドライン規則 マネージ最小規則 マネージ推奨規則 混合(C++/CLR)最小規則 混合(C++/CLR)推奨規則 セキュリティ規則 https://msdn.microsoft.com/ja-jp/library/dd264925.aspx
  18. 18. IntelliTrace • デバッグ中の実行履歴を記録する機能 • 記録した時点から再実行が可能 • .NET Framework 2.0以降のアプリケーションで利用可能 • ※Visual Studio Enterpriseのみの機能 18
  19. 19. 診断ツール • アプリケーション実行時のシステム情報を表示 • アプリケーション内のイベント • メモリ使用量 • CPU使用率 • Entity Frameworkが発行するSQL文も出力 • ブレークポイントからデバッグを再開 19
  20. 20. 単体テスト • コード化した単体テスト • MSTest • Visual Studio標準搭載のテストツール • Visual Studio Communityでも利用可能 • NUnit • http://www.nunit.org/ • サードパーティ製のテストツール • 拡張機能「NUnit Test Adapter」をインストールすれば Visual Studioでも利用可能 20
  21. 21. NUnitの導入手順 1. クラスライブラリプロジェクトを作成 2. テスト対象のプロジェクトを参照設定 3. NuGetにて NUnit、NUnitTestAdapterをインストール • NUnitはバージョン2.xをインストールすること • バージョン3.0.0では単体テストがVS上に表示されない 21
  22. 22. IntelliTest • 単体テストを自動生成する機能 • ソースコードを解析し、テストケースを網羅 • https://msdn.microsoft.com/library/dn823749.aspx • ※Visual Studio Enterpriseのみの機能 22
  23. 23. 自動化すれば効率も上がる! 23
  24. 24. 自動化のサイクル コーディング コミット ビルドテスト デプロイ 24
  25. 25. 自動化のサイクル コーディング コミット ビルドテスト デプロイ 25
  26. 26. 26
  27. 27. Jenkins • 継続的インテグレーションツール • CI (Continuous Integration) • ビルドやテストを頻繁に繰り返し行なうことにより問題を早期に発見 し、開発の効率化・省力化や納期の短縮を図る手法(引用元) • CI以外にも定期タスク等も行うことが出来る • http://jenkins-ci.org/ 27
  28. 28. 28 https://wiki.jenkins-ci.org/display/JENKINS/Logo
  29. 29. ビルドやテストの環境作り • 今回はMicrosoft Azureが提供する、Visual Studioインストール 済の仮想マシンを利用 • 自分で環境を作るなら・・・ • ビルド環境には MSBuild Toolsが必要 • http://www.microsoft.com/ja-JP/download/details.aspx?id=48159 • テスト環境 • MSTestならVisual Studioが必要 • NUnitなら nunit.framework.dll が必要 29
  30. 30. ビルドやテストの環境作り • Microsoft Azureの仮想マシンがオススメです • Visual Studioがインストール済のイメージが有ります 30
  31. 31. Jenkinsで自動ビルド 1. Jenkinsに MSBuildプラグインをインストール • ビルドの実行、結果やエラー情報を保存 • https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin 2. Jenkinsでのビルド構成を設定 • MSBuild.exeのパスを指定 • MSBuild.exe実行時のオプションを指定 31
  32. 32. 32
  33. 33. 33 デモ
  34. 34. Jenkinsで自動テスト 1. JenkinsにMSTest Runnerプラグインをインストール • テストの実行、結果やエラー情報を保持 • https://wiki.jenkins-ci.org/display/JENKINS/MSTestRunner+Plugin 2. Jenkinsでのテスト構成を設定 • MSTest.exeのパスを設定 • MSTest.exe実行時のオプションを指定 34
  35. 35. 35
  36. 36. 36 デモ
  37. 37. 自動化のサイクル コーディング コミット ビルドテスト デプロイ 37
  38. 38. ありがとうございました。

×