Upload
-
View
2.849
Download
0
Embed Size (px)
Citation preview
1
新しい Visual Studio & .NET と新時代のアーキテクチャ「 2015 世代の C# 」 Session #2
ソフトバンク・テクノロジー株式会社(シニアエンジニア)古賀 慎一
2015 年 6 月 25 日(木)
Copyright© 2015 Shin-ichi Koga All Rights Reserved.
2
このセッションのゴール
Microsoft が注目する 新時代のアーキテクチャ のイメージする
改めて Visual Studio での開発の全体像 を確認する
Visual Studio の新機能 を知る
新しい Visual Studio を使いこなそう!
※Visual Studio 2015 RC と de:code 2015 の情報を元にしているため、今後のアップデート・製品版では名称や仕様が異なる可能性があります
3
自己紹介古賀 慎一
Microsoft MVP for Visual Studio ALM
ソフトバンク・テクノロジー株式会社 Project Management Office (PMO) エキスパートエンジニア
クラウドサービス Online Service Gate® で TFS 導入事
例http://tech.surviveplus.net/archives/1114
前職では 某大手 情報サイトのデータ入稿システム のフレームワークを開発
「仕組み」作りで 如何に高品質・低コストで早い開発を実現できるか?
エンタープライズ向けの実践的な C# サンプルを公開
4
アジェンダ
新しい Visual Studio
マイクロサービスとデータレイク
Visual Studio 2015 の新機能
5
新しい Visual StudioVisual Studio 2015 と Visual Studio Code そして Visual Studio Online
6
新しく Visual Studio Code が登場
Visual Studio 2015 は Windows 用の 統合開発環境
Visual Studio Code は Windows, Mac, Linux 用の エディタ
Visual Studio Online は ALM ・ DevOps の基盤
Visual Studio 2015最も完全な IDE
Visual Studio Code軽量・高速で生産性高いエディタ
Visual Studio Online + Team Foundation ServerCODE / WORK / BUILD / TEST
IDE (Integrated Development Environment)
Application Lifecycle Management / Development & Operations
Editor
7
Visual Studio Code は軽量な高機能エディタ
ダウンロード 約 60MB ( ver.0.3.0 ) https://code.visualstudio.com/
インストール数分で完了して起動
扱えるモノ・出来ること
30 以上の開発言語 (.cs, .js, .ts, .md ...)
Git
タスク実行
runtime : node.js , ASP.net 5
エディタなのに?
8
Mac OS X と Linux で ASP.NET 5 の開発ができるインテリセンスは効くけど、エディタなのでビルドとかできません?
⇒ クロスプラットフォーム OSS ツールを使います
Visual Studio Code
Yeoman generators for ASP.NET 5
YO : scafolding tool
Grunt, Gulp : task-runner/build
tool
Bower, npm : package manager
かなりコマンドを使える必要有り(今のバージョンでは)
9
ASP.NET 5 は Windows / Linux / Mac OS X で動く.NET Core 5 で作ればどこでも動く!を目指している
.NET Core 5
軽量ランタイム(サブセット)
.NET Framework 4.6
完全な .NET Framework とライブラリ
ASP.NET 5FCL (Framework Class Library) for MVC, Web API and SignalR
BCL (Base Class Library) CoreFX (.NET Class Libraries)
CLRCore CLR
(.NET Core Common Language Runtim)
Mono
10
実は Visual Studio 2015 の ASP.NET 5 の開発も同じクロスプラットフォーム OSS ツールを使います( Visual Studio が)
プロジェクトファイルは軽量に。動作設定は .json ファイルに
Visual Studio 2015
Yeoman generators for ASP.NET 5
YO : scafolding tool
Grunt, Gulp : task-runner/build
tool
Bower, npm : package manager
MSBuild でビルドするのではない!
でも、コマンドは不要(自動)
11
VS2015 と Code の位置づけはおそらく ...
Visual Studio Code は未完成 ~ OSS とともに成長中 - Mac OS X, Linux, Windows 用
OSS を理解している人向けの高機能なテキストエディタ&コマンド実行支援
将来は Visual Studio そのものになる? アップデートは早そう
Visual Studio 2015 は統合開発環境の完成形 - 今は Windows 専用
OSS の機能も自動で扱ってくれる
アップデートは時間かかっても、 OSS の知識なしでも扱えるように機能がとりこまれる?
Visual Studio 2015最も完全な IDE
Visual Studio Code軽量・高速で生産性高いエディタ
12
ASP.net は コンテナ型のアプリ仮想化技術で動作
配置はアプリと .NET Core を一緒に xcopy
オンプレミス
Azure Web Apps / 仮想マシン
Docker / Windows コンテナー
Docker https://www.docker.com/
13
Docker はコンテナ型のアプリ仮想化技術Microsoft も Docker に力を入れている ⇒ マイクロサービス対応のた
め?
仮想マシン
コンテナ
PaaS
アプリ
ミドルウェア
OS
ハイパーバイザー
ハードウェア
Docker : コンテナ型
アプリ
Docker エンジン
OS
ハードウェア
IaaS
アプリ
ミドルウェア
OS
ハイパーバイザー
ハードウェア
ライブラリ
14
マイクロサービスとデータレイクマイクロソフトが考える 5 年後を見据えたアーキテクチャ
15
マイクロサービス (MSA : Microservices architecture)
動いているサービスを止めずにアップデートは大変( Amazon.co.jp とか)
全体で巨大1システムだと変更・リリースが難しい
依存関係が複雑
細かいサービスに分かれていれば、部分的にリリースして差し替え可能
アップデートより作り替えの方がリスクが低いはず
※15 年使ったエアコンが壊れたら直すか?買い換えるか?
細かいサービスは、仮想化 OS じゃなくて、コンテナで動くと良いよね
Docker による仮想化が進む ~ Azure / Windows Server も対応していく
16
データレイク (Data lake) と IoT &ビッグデータ
今まで
業務システムが目的のデータを収集、それを整形加工、分析へ・・
これから
IoT で大量に収集される生のデータ(ビッグデータ)
リアルタイムでストリーム処理する流れ
未整形データを一旦溜めて、整形加工して使用する流れ
Azure ML, Azure Data Factory, Azure Data Lake ...
17
Visual Studio と Azure の機能追加
Visual Studio で開発するアプリの配置先
PaaS, IaaS, Docker コンテナ ... マクロサービスへ?
Visual Studio で開発するアプリに接続する機能
Azure AD, Azure Mobile Service, Azure ML, Azure Data Factory, Azure Data Lake ...
Azure + Visual Studio = Microsoft が注目するアーキテクチャを実
現
18
Visual Studio 2015 の新機能強化された完全な統合開発
19
Visual Studio 2015 + VSO + Azure 新機能オープン化
クロスプラットフォーム
Xamarin -C# でネイティブアプリを作る仕組み
Cordova - HTML/JS をアプリにする仕組み
DevOps
コーディング、デバッグ ( CodeLens強化 , LightBulb, IntelliTest, IntelliTrace強化 )
リポジトリ、ビルド、テスト、デプロイ (Visual Studio Online)
運用管理・監視 (Azure Application Insights)
20
コードレンズ ( Visual Studio 2013 以降)
ソースコードをいつ?誰が?どう?変更したかをコードの近くに表示
ここから担当者に連絡出来る( IM, メール , 電話)
単体テスト結果確認、テスト実行もコードからできる
※一部の図は MSDN Blogs ( http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/code-lens-for-git-quot-team-activity-view-quot.aspx ) より引用
21
コードレンズ 強化 "Team Activity View“
Visual Studio 2015 ではグラフィカルに「見える化」
メソッド毎: C#, Visual Basic
ファイル毎: JavaScript, C++, SQL ※ Git のみ、 TFVC 対応も計画あり
開発者が情報収集 ⇒ ツールが情報収集 開発者が開発に集中出来る
※図は MSDN Blogs ( http://blogs.msdn.com/b/visualstudioalm/archive/2014/11/12/code-lens-for-git-quot-team-activity-view-quot.aspx ) より引用
22
Light Bulb ~リファクタリング&コード分析強化
コードをリアルタイムに分析、提案を表示
電球アイコンクリック( Ctril + . )で候補を表示⇒プレビュー⇒実行
※図は Visual Studio 2015 RC リリース ノート ( https://www.visualstudio.com/news/vs2015-vs ) より引用
23
リファクタリング & コード分析が Light Bulb に統合名前の変更、不要な using の削除、属性の追加 etc...
NuGet からコード分析ルールを取得出来る
Microsoft Code Analysis for Azure 0.4.0-betahttps://www.nuget.org/packages/Microsoft.VisualStudio.Azure.CodeAnalysis/
自分でもルールを作れる!
※図は Visual Studio 2015 RC リリース ノート ( https://www.visualstudio.com/news/vs2015-vs ) より引用
開発者がチェック・調査
⇒ツールがチェック・提案
開発者が開発に集中出来る
24
IntelliTest ~ 単体テストの自動作成
Create Unit Test - 復活!単体テストコードをメソッドから作成
Run IntelliTest - 新機能!コードカバレッジ 100% テストパターンを作成 (旧称: Smart Unit
Test)
※単体テストサンプルはこちらからダウンロードできます ( https://code.msdn.microsoft.com/TFSVSO-dc7b8c9d )
開発者が網羅 ⇒ ツールが網羅的に作成 開発者が開発に集中出来る
25
接続済みサービス & Azure AD 認証の構成
Visual Studio からギャラリーを検索
アプリで使用するサービスを選択、設定を入力して構成
Azure Active Directory
Connected Service
アプリを Azure Application Insights, Azure Mobile Services, Azure Storage, Office 365, Salesforce に接続
26
Azure Active Directory 認証の構成
Visual Studio 標準で Azure AD の構成機能
※一部の図は Visual Studio 2015 RC リリース ノート ( https://www.visualstudio.com/news/vs2015-vs ) より引用
開発者が SDK 入手・構成 ⇒ ツールが構成 開発者が開発に集中出来る
アプリを Azure Active Directory に接続
27
タイムラインツール・診断ツールと IntelliTrace
WPF と Windows ストア 8.1 アプリの検査・診断・パフォーマンス向上を
メモリー使用量
CPU 使用率
かかった時間 etc ...
デバッグ時「見える化」
※図は MSDN Blog ( http://blogs.msdn.com/b/wpf/archive/2015/01/16/new-ui-performance-analysis-tool-for-wpf-applications.aspx ) より引用
28
タイムライン+ IntelliTrace で強力に見える化
IntelliTrace ( 2010 以降)
問題が起こるまでを録画して再生するイメージ - 変数の変化やイベントを確認出来る
お客様の環境で IntelliTrace ログを収集、自社 PC の Visual Studio で(ほぼ) F5 デバッグが可能
タイムラインで「このとき」から「このとき」何が起きていたか?を確認
※図は MSDN Blog ( http://blogs.msdn.com/b/wpf/archive/2015/01/16/new-ui-performance-analysis-tool-for-wpf-applications.aspx ) より引用
開発者が記録・再現(多くは見えなかった)
⇒ツールが記録・再現・見える化
開発者が開発に集中出来る
29
Visual Studio Online の新しい BUILD
こままでのビルド定義は XML definitions に
新しい Build definitions では
TFVC, Git の他 GitHub など
他のサービスのコードがビルド出来る
Azure Cloud Services, Website にリリースできる
Xamarin.Android/iOS, Xcode のビルドもできる
全てを自動ビルド・自動テスト・自動リリース出来るようになる日も近い?
30
Application Insights ( プレビュー )
モバイル アプリ& Web アプリ の問題の検出、クラッシュの診断、
利用状況の追跡
Azure, IIS, J2EE サーバー ... ホストに関わらず使用可能
※一部の図は MSDN Blog (http://blogs.msdn.com/b/visualstudioalm/archive/2015/01/07/application-insights-and-azure-websites.aspx ) より引用
31
誰でも Visual Studio の完全な ALM/DevOps を活用
実装とデバッグのための強力な機能
継続的デリバリ、継続的モニタリング、継続的ラーニング
Visual Studio OnlineCODE / WORK / BUILD / TEST
Visual Studio 2015コーディング / デバッグ
Microsoft Azure
ホスト / 接続サービス / 運用管理・監視
Copyright© 2015 Shin-ichi Koga All Rights Reserved. 32