kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

de:code 2017に参加してきました。

今年もde:codeに参加できました。毎回毎回テーマが変わっていて時代の流れも感じます。

キーノート

//Buildでの発表を軸に日本向けにした感じ?そしてCognitive/AI押しがすごい。もうやってなければ今どきのシステムにあらずという錯覚を植え付けさせてくれます。

news.microsoft.com

出ると思っていたけど、Emmaのビデオはずるい。泣けるんですよねー。まだの方は上記ページからでもどうぞ。

しかし、Visual Studioの話が一切ないのは少し驚きでした。

拝啓「変わらない開発現場」~(略)

赤間さんのこれも楽しみにしていました。なんというか、フォローアップブログ読めばこれでいいんじゃないかという気もするので、ちょっと省略。大変満足度高いです。

blogs.msdn.microsoft.com

でも、これを聞いてほしい人は絶対に聞かないんだよな。不思議なことに。去年は会社でサマライズしたビデオを見せたのですが、みんな無反応でした。上司も「難しいね」というだけでなんというかかんというか。

DevOps でリードタイムを 8 か月から最短 1 週間まで短縮!! マネージャや開発チーム変化の赤裸々話

customers.microsoft.com

この話です。いいことだらけではなく、初めてアジャイルやったプロマネの胃が痛くなる話とかもあって大変面白かったです。正直、ここまでうまく事例を話されるとは思っていませんでした。

セゾン情報システムズのCTO 小野氏による、伝統的SIerにおけるモダン開発への挑戦

ほぼブログに書かれている内容を整理し直して話されたという感じでした。一度直接お話を聞いてみたかったのですが、期待どおりでした。

50分でBot開発者になれる!(略)

実は最初、Rの話を聞こうと思ったのですが、最初からインストールとか概要の話だったので、私のききたいところにたどり着くまで時間もったいないと思って、Botのほうに行きました。このあと、AzureでBotつくられたNAVITIMEさんとパーティ会場でお会いして、疑問に思ったところをいくつか教えてもらえてよかったです。

Visual Studioからのデプロイ楽だけど、やるもんじゃないですよ(^^;。

マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

正直、ドメイン駆動設計の本をちゃんと読めばいいかなと思いました。実務レベルの話もありましたが、読んでない人には良かったかもしれません。

突撃! 隣の Visual Studio TeamServices / Team FoundationServer ~利用者からのベストプラクティス

お客様事例が二つ(VSTS/TFSそれぞれ一つずつ)と武田さんのデモによる補足など。まだまだ最初の一歩ってところで止まっている人多いんですね。ぜひ当ブログを(ry。

小さいところから始める、業務フローを極力変えさせない、というのは新しいものに抵抗がある方々向けに共通のやり方ですね。

ご注文は Linux + Docker ですか?Windows だけじゃない AppService を使い切る

App Service for Linuxまだ使ったことがなかったのですが、しばやんセッションは大変勉強になりました。時々焦っている様子も見てるこっちがドキドキしましたw。

日本の第一人者が C# の現状と今後を徹底解説!「この素晴らしいC#に祝福を!」

安定のにぃにセッション。こちらも内容はBuildinsiderのオピニオン連載とサイトの話がほぼカバーされていましたが、立ち見がおおく、びっくりしました。おかしいな、日本ではVB.NETのほうがはるかに優勢だと思ったんですが…こういうところ来る人はC#が多いんですかね。一度メインの言語アンケート見てみたい気もします。

エンタープライズ基準で"丁寧に".NET Framework のバージョンアップしていくコツ

これ、実は別のサーバー立てて、バージョンアップして順次検証していく…という話だと思っていました。ところが、実際は同じVisual Studioでソリューションファイルを分けて、ソースリンクでソース共有を行い、CLR2とCLR4のプロジェクトを共存させていくというやり方でびっくりしました。

同じような相談を受けても、こういうやり方は進めていない(調査結構大変になりそう)のですが、竹原さんはもちろん大丈夫な方なので、見事やりきられていました。

とりあえず最新のVisual Studioに乗っかっていこうという話。

Xamarinを支える技術

チョークトークとか言っていたのに、気が付けばまるっとほぼ50分セッション行われていたような(笑)。いろいろ紹介されていたことをもうちょっと深堀して言った感じでした。

これも最後のデバッグセッションと迷ったんですよね…絶対にデバッグのほうは見ようかなと。あとでAsk the Speackerでいろいろ聞けて満足でした。

総括

今回、聞きたいセッションがかぶりまくりで、そうでない時間帯は全くそうでない、という感じでかなり時間がもったいないかなぁとは思いました。あと、エキスポ会場のスタンプラリーがアプリでよかったんですが、メッセージが不適切で、位置情報を許可しないといけなかったのに、Bluetoothが無効ですというエラーメッセージで一日無駄にしました…。位置情報ってあまり使いたくないんで、つい無効にするんですよね。事前にわかっていれば(説明があれば)有効にしたんですが。

ツィート機能もあったとは、終わったころに気付きました…。初見で分かるUI作るのは難しいですね。トレーニングモードとかあればよかったなぁ。

Day3/4 ハッカソン/ハンズオン

初の試みのハッカソン/ハンズオンやってきました。手を動かして学べるというのは大変いいと思います。ただ、直後にやるのは日程が厳しい方もいらっしゃるかもしれないので、少し開けてもよかったかもしれないけど、私みたいに遠距離だと連続のほうがいい場合もあるので難しいですね。

個人的にはハッカソンではなく、田中さんみたいにハンズオン会場で一人ハッカソンやってました。BotとLUIS使って作ってみたいものがあったんですが、謎のエラーに悩まされ、だいぶ時間を浪費しました…。

バックエンドの検索で使うデータモデルとか考えてなかったので、その場で考えるのは結構しんどかった(^^;。ちょっと作りたいものではあるので、これからも作ります。

また来年も期待します。

VSTSのタスクをFlowでMicrosoft To-Doのタスクと連携する

Microsoft To-Doが発表される前から、VSTS/TFSに登録されたタスクをOutlookにも反映させたいと思っていました。実はそういうアドオンは海外には結構あります。MSDNの特典にもあるSmartOutlook4TFSなんかがそうですね。

www.modernrequirements.com

でも、せっかくオンラインのサービスでRESTのAPIがあるから何とかしたいと思っていました。Microsoft Flowを使えばコーディングレスで連携できることに気づいてやってみたら、できたのですがいくつか課題も分かりました。

とりあえずタスクが連携するのは便利です。使う方の参考にどうぞ。

flow.microsoft.com

Flowのサインアップはこちらから。MSアカウントでもOffice 365アカウントでもどちらでもいいです。連携するoutlookやVSTSのアカウント種別で判断すればいいでしょう。私はMSアカウントで作ってみました。

f:id:kkamegawa:20170518172020p:plain

タスクでVisual Studioを検索します。When a work item is assignedを選択します。

f:id:kkamegawa:20170518172015p:plain

アカウントはMSアカウントであれば自動的に認証されているVSTSのアカウントが出てきます。プロジェクト名を選択して、"assigned to"を選ぶと、「必要なパラメータがー」云々、と出てきます。

f:id:kkamegawa:20170518172009p:plain

これ、実は一つ下のTeam to lookup member fromを「先に」選ばないといけないんですね。必須項目ではないのに選ばないと必須項目が選べないのは注意してください。

f:id:kkamegawa:20170518172003p:plain

ここではプロジェクトの中にあるチームを選びます。チームを選ぶことでチーム内のアカウントを列挙するという動作です。

f:id:kkamegawa:20170518171956p:plain

詳細オプションを選択すると、もうちょっと広がります。Area PathやIterationは大規模な場合便利かもしれませんが、ここではTypeに「タスク」のみ指定します。プロダクトバックログやフィーチャーをもらってもToDoで管理できるものでもないですしね。

f:id:kkamegawa:20170518172129p:plain

Microsoft ToDoの実態はOutlookのタスクを見せているだけです。なので、アクションでOutlook Tasksを選びます。

f:id:kkamegawa:20170518172122p:plain

次はVSTSのタスクの内容をOutlook側に転記します。

f:id:kkamegawa:20170518172111p:plain

で、VSTS側にタスクを登録すると、こんな風にちゃんと連携しますね。

f:id:kkamegawa:20170518172105p:plain

しめしめ…と思って、ToDoを見ると…あれ?1601/1/1が期限?

f:id:kkamegawa:20170518174016p:plain

実はこれ、OutlookのタスクのDue Date(締め切り)やStart Date(開始日)に日付が入っていないからなんですね。そして、この日付にふさわしい日付はVSTSからは出てこないのです(残念)。とはいえ、1601/1/1ってのはちょっとないので、こんな風にcreated dateを代わりに入れてみました。

もちろんVSTS側としては管理できる項目ではあるのですが、標準のプロセステンプレートの入力項目としては出てきません。

VSTSのプロセステンプレートをカスタマイズするか、入力フォームで明示的に入力項目として出すことはできます。

kkamegawa.hatenablog.jp

以前のアドベントカレンダーで書いた時よりさらに簡単になっています。

これはタスクがアサインされたときに連携しています。できれば次はToDoでクローズしたら、VSTS側もクローズさせたいものです。

VSTSのタスクには固有のURIがあるので、それをタスクのdescriptionなどに書いておいて、切り出し→FlowでREST API呼び出しという手順になるかと思います(できたら紹介します)。

では楽しいToDo & VSTSライフを!

Visual Studio Team Services 2017/5/11の更新

遅くなりましたが、Sprint 117, 5/11のVSTSリリースノートの翻訳を行いました。オリジナルはこちらから読んでください。

www.visualstudio.com

5/15更新となっていますが、同じ文章が二回明らかに出てはいけないところに出ていたので、なおしてもらったためです。今回はちょうど//Buildに重なったこともあって、//Buildでも今回のスプリントの強化項目の一つ、CI/CD関係のセッションが多くあったようです。VSTSに限らず、JenkinsなどのOSSを使ったものもありました。

channel9.msdn.com

channel9.msdn.com

channel9.msdn.com

channel9.msdn.com

channel9.msdn.com

channel9.msdn.com

今回はいくつかの新機能がプレビューを卒業して、一般提供開始されたこと、XAMLビルドコントローラーがとうとう(本当に)提供中止になること、Visual Studio 2017を使用する場合のホストエージェントの選択基準の仕様変更といった重要なアナウンスもありますので、ぜひ見ておいてください。Visual Studio 2017をすでにバリバリ使っている人は手順が省略されるだけなので、たいして影響はないと思います。

ではまた三週間後。

translate to Japanese to VSTS release notes from h …

VSTSのビルドが成功しているのに失敗と表示される?

ある日のこと。仕掛けたLambdicSQL for SQL Serverのビルドがどうなっているかな?と思ってビルドステータスをみてみました。

f:id:kkamegawa:20170511061751p:plain

あれ?失敗なのに直近のビルド履歴は成功???実はこのStatusという欄は正確には「My Build Status」の略です。

つまり、「自分がリクエストした直近のビルド結果」を表しています。

f:id:kkamegawa:20170511061749p:plain

で、ビルドのSummaryを見てみると「Passing」ですね。つまり成果物(artifact)はできています。じゃあこれ誰がビルドしたの?ということですが、下の赤枠。

Microsoft.VisualStudio.Services.TFSつまり、なんらかのビルドトリガーでVSTSが自動的にビルドした結果なんですね。今回の場合はSchedule Buildです。

f:id:kkamegawa:20170511061750p:plain

StatusとはMy Build Statusのことと書いたので、試しに別のアカウントで見てみると、StatusはSucceededになっています(ちなみにこのアカウントではビルドしていないんだから無印が正解だと思うんですが)。

この挙動はちょっとわかりづらいので、フィードバックしています。