SlideShare a Scribd company logo
TypeScriptとALM
かめがわ かずし(@kkamegawa / id:kkamegawa)
自己紹介
亀川 和史(かめがわ かずし) / 会社員 /TFSUGスタッフ
5月から関西で生活してます。ここではお初です
Twitter:@kkamegawa https://twitter.com/kkamegawa/
Facebook: https://www.facebook.com/kkamegawa/
blog: http://kkamegawa.hatenablog.jp
Microsoft MVP for Visual Studio ALM(2012/7~)
今どきのソースコード管理
http://www.atmarkit.co.jp/ait/articles/1303/01/news082.html
はじめてのTeam Foundation Server 現在発売中(Kindle版で)
http://www.shuwasystem.co.jp/products/7980html/4046.html
実際TypeScriptってどのくらい役立つ?
TFS 2012のWeb UIを作ったとき、JavaScriptのバグに結構悩まされた
TypeScriptを試してみたらものすごく役立った
→13個のバグが見つかった
http://blogs.msdn.com/b/bharry/archive/2012/10/24/typescript-a-real-
world-story-of-adoption-in-tfs.aspx
Eric Gammaのチームで手動書き換え
→300line/hのペースで書き換えたが、80000行書き換えるのは大変だった
ので、ツール作った
Agenda
ALMってなに?
ALMって?
Application Lifecycle Managementの略
アプリケーションの計画~開発~運用までと、チームコラボレー
ション
http://www.visualstudio.com/explore/app-lifecycle-management-vs
DevOpsと何が違う?
→プロジェクトの計画と終了までを含むかどうか(DevOpsは開発と運
用のサイクル)
Agenda
ALMってなに?
TypeScriptとビルド
TypeScriptとデバッグ
TypeScriptとデプロイ
運用
Visual Studio Online / TFSを
使ったことのある方?
Visual Studio Online
現在メンテナンス中
(6/10 10:00~16 23:00/UTC)
デモ中に使えなかったら
ごめんなさい(__)
ALMを実現するためのインフラ
ビルド機能
ソースコード管理
テスト計画と管理
バグトラッキング
など…
あ
開発
発行 運用
調査
ビルドしてますか?
TypeScriptのコマンドラインコンパイル
Tsc.exeでtsファイルをコンパイル。
(Visual Studio 2013に同梱)
型定義ファイル(d.ts)も同時に生成可能
WebアプリケーションならLESSとか
ASP.NETファイルもコンパイルするから
VSから直接お世話になることはあまり
ないかも
npmで入れるTypeScript(tsc.js)もあるよ
TypeScriptのビルド
TypeScriptを含むソリューションは
「開発者コマンドプロンプト(※)」
からmsbuildコマンド実行でOK
(パッケージは入れておいてね)
MSBuildは一般配布されているので、
JenkinsでもMSBuild入れればOK
http://www.microsoft.com/ja-
jp/download/details.aspx?id=40760
※:%comspec% /k ""C:¥Program Files (x86)¥Microsoft Visual Studio 12.0¥Common7¥Tools¥VsDevCmd.bat""
TFS / VS Online のビルド
オンプレミスでもクラウドでもやり方はほぼ同じ
(VS Onlineの場合UIが英語)
ビルドマシンはクラウドでもオンプレミスでも使える
MSDN Subscriptionではクラウドの場合60分まで
上限超えると$0.05 / 分
(サンプル程度でも1分使うので結構早く無くなる)
http://www.visualstudio.com/ja-jp/products/visual-studio-online-overview-
vs#AdditionalPageSections_2
ビルド定義比較
VS Online Team Foundation Server
ビルドサービスの仕組み
Visual StudioがサポートされているOSに
インストール可能
Windows 7,Windows 8.1などのクライア
ントOSもOK
Visual Studio Onlineのビルドエージェン
トとしても構成可能(最初はローカルで
始めたほうがいいかも)
Visual Studio
Online
Team Project
Collection
Internet
Local Network
ビルド
サーバ
コントローラ
エージェント
ビルド時の注意点
もちろんビルドサーバにTypeScriptコンパイラがあるか確認!
ビルドサーバーにVisual Studioが入っていない場合、MSBuildの定義のコピーが
必要
 C:¥Program Files (x86)¥MSBuild¥Microsoft¥VisualStudio¥v12.0¥web
 C:¥Program Files (x86)¥MSBuild¥Microsoft¥VisualStudio¥v12.0¥ WebApplications
サーバービルドするときエラーが出たらこの辺のフォルダをコピー
第3回「TFS自動ビルドを実践する」でも書いています
http://www.atmarkit.co.jp/ait/articles/1307/02/news054.html
デバッグしてますか?
TypeScriptとASP.NETデバッグ
ASP.NETプロジェクトの場合はVisual Studioにおまかせ
ごく普通にASP.NETの一部としてデバッグ可能
Web Essentials入れていればTypeScriptとJavaScriptが関連付けられて表示
Node.jsのデバッグしたい場合
なにはともあれNode.js Tools for
Visual Studio入れよう
https://nodejstools.codeplex.com/
プロジェクトテンプレートが追加
され、ちょっと便利に
Node.jsのプロファイラもついてく
る
はまりポイント
6/14時点でnode.js Tools for Visual Studioベータだからか安定してない?
(プロジェクトテンプレートそのままでも死ぬ)
TypeScriptコンパイラが出力するJavaScriptファイルがBOMつきUTF-8のた
め、そのままだとデバッグできない
1. 生成されたjsファイルをBOMなしUTF-8で保存しなおす
2. Node.jsの起動引数に --debug app.js のように明示的に指定
(BOM有UTF-8あれなのはわかるけど、node.jsで何とかしてほしい…)
JavaScriptにUTF-8 BOM入れるのはストアアプリのためみたい
→BOMがないとWACK(検証ツール)が不合格になる
デプロイしてますか?
IISへのデプロイ
管理サービスの有効化 / サーバー証明書の準備(発行にhttpsを使うため)
MsdeployのインストールとWeb Deployment Serviceの実行確認
 Web Platform Installer(IISマネージャ起動時に聞いてくるあれ)
 http://www.iis.net/downloads/microsoft/web-deploy から入手
インストール時独自証明書入れたくない場合
 自前CA認証局(イントラネット向き)
 外部からサーバ証明書購入(一般向き)
TypeScriptとデプロイ
ターゲットがIISで、Visual Studioを使っている場合、Web発行が楽
 TFSのビルド時に継続的インテグレーションでデプロイ
 VS OnlineでWeb Sitesに自動デプロイ
 発行対象台数が多くなると、ちょっと考える
Node.jsだとビルドの終了時そのままコピー
 ビルドサーバーの実行アカウントに気を付けて(TFSでもJenkinsでも同じ)
 LOCALSYSTEMやSYSTEMアカウントではネットワークアクセス不可なので、ビ
ルドサーバーの実行アカウントに気を付けて
モニタリングしてますか?
性能分析
Visual Studio OnlineではApplication Insights(現在プレビュー)
NewRelicみたいなものと…
http://msdn.microsoft.com/ja-jp/library/dn481095.aspx
専用の拡張機能を入れればアプリケーション生成時にApplication Insights
用コードが埋め込まれる
TypeScriptのHTMLアプリケーションテンプレートは現在(6/14)未サポート
 ただし、ASP.NET Webプロジェクトを作って、TypeScriptを追加すればOK
TypeScriptとテストツール
 6/14現在NuGetからTypeScriptで検索するとこのく
らい。
 Jasmine tests
 TSTestAdapter
 Jasmineは現時点(6/14)では1.0に対応していないみ
たい。
 1.0で作成されたものがコンパイルエラーになる
 bool→booleanなどの0.9での非互換レベルに引っか
かったので、この辺見ればよい
https://typescript.codeplex.com/wikipage?title=Known
%20breaking%20changes%20between%200.8%20and
%200.9
本日の環境
ドメイン
コントローラー
TFS2013
SQL Server
ThinkPad T440p/16GB Memory/Intel SSDの
Windows 8.1 Hyper-V仮想マシン上
Windows 8.1
Visual Studio
Windows
Server 2012 R2
まとめ
TypeScriptプロジェクトの開発から運用までさらっと流してみました
TypeScriptプロジェクトでも基本的にVisual StudioとTFS/Visual Studio
Onlineでプロジェクトの最初から終わりまでOK
node.jsとnode.js Tools for Visual Studio合わせて使うときはちょっと気を
付けて

More Related Content

PDF
設定のカスタマイズで
まだまだ使える
Dreamweaver
PDF
最近のSpringFramework2013 #jjug #jsug #SpringFramework
PDF
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
PDF
WordPressをCMSとして利用するために便利なWP SiteManagerについて
PDF
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
PPTX
かけ算で使いこなす Xamarin
PDF
AngularJS入門の巻2
設定のカスタマイズで
まだまだ使える
Dreamweaver
最近のSpringFramework2013 #jjug #jsug #SpringFramework
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
WordPressをCMSとして利用するために便利なWP SiteManagerについて
業務アプリケーションにおけるモダンWeb開発の現状ーHTML5開発って簡単なの?
かけ算で使いこなす Xamarin
AngularJS入門の巻2

What's hot (20)

PDF
フロントエンド初学者がSPAに手を出してみた
PDF
Yeomanではじめる爆速webアプリ開発
KEY
続・Twitter bootstrap入門 #html5j
PDF
AngularJS入門の巻
PDF
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
PDF
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
ODP
HTML5 アプリ開発
PDF
SPAに必要なJavaScriptFrameWork
PDF
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
PDF
iPhoneアプリを Javaで書くよ?
PDF
業務系WebアプリケーションがStrutsから旅立つ日
PDF
MyBatis を利用した web application 開発についてのご紹介
PPTX
A/BテストをAzure×Googleアナリティクスで試してみました。
PDF
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
PDF
簡単なプラグインの管理方法とプラグインのご紹介
PPTX
スキトラ Spring + mybatis
PPTX
Microsoft Azure WebAppsで ECサイトを構築してみた話 ~EC-CUBE3で試してみました~
PDF
three.jsによる一歩進めたグラフィカルな表現
PDF
中の下のエンジニアを脱出するための仕事術
PDF
我が家のフロントエンド開発事情
フロントエンド初学者がSPAに手を出してみた
Yeomanではじめる爆速webアプリ開発
続・Twitter bootstrap入門 #html5j
AngularJS入門の巻
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
AngularJS勉強会「そもそもwebって」@ツクロア勉強会(2015.09.10)
HTML5 アプリ開発
SPAに必要なJavaScriptFrameWork
Java開発で活かしてほしいGit,CI,そして継続的デリバリー #jjug_ccc #ccc_r13
iPhoneアプリを Javaで書くよ?
業務系WebアプリケーションがStrutsから旅立つ日
MyBatis を利用した web application 開発についてのご紹介
A/BテストをAzure×Googleアナリティクスで試してみました。
まだタスクランナー使っていないって本当(マジ)? 仕事に対する効率化意識向上のための gulp ハンズオン : Wordcamp tokyo 2015
簡単なプラグインの管理方法とプラグインのご紹介
スキトラ Spring + mybatis
Microsoft Azure WebAppsで ECサイトを構築してみた話 ~EC-CUBE3で試してみました~
three.jsによる一歩進めたグラフィカルな表現
中の下のエンジニアを脱出するための仕事術
我が家のフロントエンド開発事情
Ad

Viewers also liked (20)

PPTX
Typescriptの中のこと(浅め)
PDF
TypeScript 1.0 オーバービュー
PDF
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
PDF
jQuery 対応ライブラリと TypeScript
PDF
Introduction of "MarkdownPresenter"
PDF
CLR/H#74 LT IT勉強会発表用イチオシツール
PPT
20130921レジュメ2
PPTX
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
PPTX
「それでも人生にイエスと言う」を読んで
PPTX
「それでも人生にイエスと言う」を読んで
PPTX
秒速一億円
PDF
Gulp ことはじめ
PPTX
Reactive Programming
PDF
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
PDF
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
PPTX
はじめにことばありき
PDF
最近、リアルタイムWebが面白い
PPTX
HTML5がもたらすアプリ開発へのインパクト
PDF
20140823 LL diver Angular.js で構築した note に関して
PDF
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
Typescriptの中のこと(浅め)
TypeScript 1.0 オーバービュー
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
jQuery 対応ライブラリと TypeScript
Introduction of "MarkdownPresenter"
CLR/H#74 LT IT勉強会発表用イチオシツール
20130921レジュメ2
イラスト日用服飾辞典/三面記事の歴史/健康男 を読んで
「それでも人生にイエスと言う」を読んで
「それでも人生にイエスと言う」を読んで
秒速一億円
Gulp ことはじめ
Reactive Programming
[予告篇] みんなで同時プレイするクイズWebアプリでCodeQuizに挑戦!
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
はじめにことばありき
最近、リアルタイムWebが面白い
HTML5がもたらすアプリ開発へのインパクト
20140823 LL diver Angular.js で構築した note に関して
More Azure Websites! - JAZUGさっぽろ "きたあず" 第5回勉強会ライトニングトーク
Ad

Similar to TypeScript And ALM (20)

PDF
Windows10時代のクロスプラットフォーム開発
PDF
Planning Effective Test Plan
PDF
トラブル発生、その時あなたがすることは?
PDF
はじめてのTeam foundation server執筆裏話
PDF
Performance tuning the first
PDF
はじめてのTeam Foundation ServerとVisual Studio Online
PDF
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
PDF
Azure DevOps Management in Organization
PDF
Ignite 2021 振り返り(DevOps)
PDF
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
PDF
使ってはいけないテンプレートタグ(Word bench 2015/08)
PDF
Espruinoの紹介
PDF
クライアント推し。
PDF
RxSwiftとMVVMパターンと仲良くなる次のステップ
PDF
Htmlのコトバ
PPTX
Black jumbodogをcoreclrで動かしてみた
PPTX
ソフトウェア更新プログラム (パッチ) 管理手法勉強会 1 回目
PDF
Team Foundation Serivceを使ってみる
PDF
SharePoint Online を JavaScript でイジる。
PDF
Tfsの中のお宝を探そう
Windows10時代のクロスプラットフォーム開発
Planning Effective Test Plan
トラブル発生、その時あなたがすることは?
はじめてのTeam foundation server執筆裏話
Performance tuning the first
はじめてのTeam Foundation ServerとVisual Studio Online
つかってみよう!Yeoman 〜riaビルドツール超入門+α〜
Azure DevOps Management in Organization
Ignite 2021 振り返り(DevOps)
pairsでのAngularJS x TypeScript x e2e @めぐすた#1
使ってはいけないテンプレートタグ(Word bench 2015/08)
Espruinoの紹介
クライアント推し。
RxSwiftとMVVMパターンと仲良くなる次のステップ
Htmlのコトバ
Black jumbodogをcoreclrで動かしてみた
ソフトウェア更新プログラム (パッチ) 管理手法勉強会 1 回目
Team Foundation Serivceを使ってみる
SharePoint Online を JavaScript でイジる。
Tfsの中のお宝を探そう

More from Kazushi Kamegawa (20)

PDF
「何もしないのにCIが失敗した」を防ぐ
PDF
Ignite 2021秋 recap - 開発者向け新機能紹介
PDF
Azure boards for beginners
PDF
Deploy Strategy with Azure Pipelines
PDF
DevOps and compliance and security
PDF
DevOps and Compliance and Security
PDF
How to create your own Azure Pipeline's image
PDF
NET5 and Diagnostics
PDF
Azure DevOps入門~TechLab編
PDF
Introduce TFSUG and Azure DevOps Server 2020
PDF
Azure DevOps Online Vol.3 - Inside Azure Pipelines
PDF
Getting Start for Azure Pipelines
PDF
Azure Boards and Azure Test Plans inside out.
PDF
Azure DevOps's security
PPTX
What's new Azure DevOps in //Build 2019
PPTX
Deploy to Azure by ??? Azure Repos or GitHub
PDF
Azure DevOpsとセキュリティ
PPTX
What's Azure DevOps
PDF
はじめてのコンテナーDocker & Windows & Linux
PPTX
その後のBash on windows
「何もしないのにCIが失敗した」を防ぐ
Ignite 2021秋 recap - 開発者向け新機能紹介
Azure boards for beginners
Deploy Strategy with Azure Pipelines
DevOps and compliance and security
DevOps and Compliance and Security
How to create your own Azure Pipeline's image
NET5 and Diagnostics
Azure DevOps入門~TechLab編
Introduce TFSUG and Azure DevOps Server 2020
Azure DevOps Online Vol.3 - Inside Azure Pipelines
Getting Start for Azure Pipelines
Azure Boards and Azure Test Plans inside out.
Azure DevOps's security
What's new Azure DevOps in //Build 2019
Deploy to Azure by ??? Azure Repos or GitHub
Azure DevOpsとセキュリティ
What's Azure DevOps
はじめてのコンテナーDocker & Windows & Linux
その後のBash on windows

TypeScript And ALM