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