Visual Studio 日本チーム

日本マイクロソフト株式会社 Visual Studio 製品マーケティングの Blog です。 日本のお客様向けに Visual Studio に関する様々な情報をお届けします。

Visual Studio 2017 をリリース: 生産性、パフォーマンス、パートナー エコシステムの強化

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。
【元記事】 Visual Studio 2017: Productivity, Performance, and Partners 2017/3/7

 
このたびマイクロソフトは、Visual Studio 2017 をリリースしました。こちらからダウンロードを開始 (英語) のうえ、この記事で今回提供される主要機能の情報をご確認ください。今回のリリースによる変更点の完全な一覧については、Visual Studio 2017 のリリース ノートをご覧ください。この記事では、以下の点についてご紹介します。

基本機能: 生産性とパフォーマンス
優れたモバイル アプリケーション開発エクスペリエンス
クラウドでの開発
DevOps
Visual Studio のエコシステム

基本機能: 生産性とパフォーマンス
起動時間とプロジェクト読み込み時間の短縮: 複数の基本機能を強化した結果、Visual Studio 2017 では起動時間が Visual Studio 2015 の 3 分の 1 に短縮されました。また、ソリューションの読み込み時間が 2 分の 1 から 4 分の 1 に短縮されたほか、VC++ ブログ (Ankit Asthana 執筆、英語) で触れたとおり、特に C++ プロジェクトでビルド パフォーマンスが高速化されました。これらの強化点の詳細については、Dan Taylor の記事「Visual Studio の全体的な応答性向上」をご覧ください。
ナビゲーションの強化: Visual Studio 2017 では、[Go to All]、[Find All References]、インデント ガイドなど、コード内のナビゲーション機能が大幅に強化されました。たとえば、これまで [Find All References] の検索結果は [Results] ウィンドウにフラット リストとして表示されていましたが、Visual Studio 2017 では検索結果が色分けされるほか、カスタムのグループ化、並べ替え、フィルタリング、検索機能を使って目的の参照をすばやく見つけることができるようになりました。中でも強力なのは、完全に刷新された [Go to All] (Ctrl + T または Ctrl + ,) 機能です。[Go to All] では、ソリューション内のファイル、型、メンバー、シンボルのすべての宣言をすばやく検索できます。検索バーの下部にあるアイコンを使用すると、検索結果をグループでフィルタリングしたり、検索範囲を調整したりすることができます。また、右下にある歯車アイコンをクリックすると、検索バーの配置、強調表示された結果を含むファイルのリアルタイムのプレビュー、各結果のファイルの詳細情報などの設定をカスタマイズできます。

Go To 関連のキーボード ショートカット

Go to All
(すべてに移動)
Go To Line
(行に移動)
Go To File
(ファイルに移動)
Go To Type
(型に移動)
Go To Member
(メンバーに移動)
Go To Symbol
(シンボルに移動)

ショートカット
Ctrl + T
または Ctrl + ,

Visual Studio 2017 の一般提供開始、その他リリース情報を発表

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。
【元記事】 Announcing Visual Studio 2017 General Availability… and more 2017/3/7

 
今、画期的な開発ツールが新たにリリースされようとしています。Visual Studio の月間アクティブ ユーザー数 25% 増、Visual Studio Code の月間アクティブ ユーザー数 130 万人、Mac IDE のアクティブ ユーザー数 2 倍という数字を見て思うのは、ユーザーの皆様も私と同じく今回のリリースにたいへん期待を寄せられているのではないかということです。
Visual Studio 2017 Release Candidate はリリース以降、約 700,000 ダウンロードを記録しており、開発チームはお客様からのフィードバックを参考にしながらユーザー エクスペリエンスを強化し、これまでで最も強力で生産性の高い Visual Studio をお届けしようと取り組んできました。また、Visual Studio ファミリのツールにも改良を加えています。11 月には、Visual Studio for Mac と Visual Studio Mobile Center のプレビューもリリースし、Visual Studio Team Foundation Server 2017 の一般提供も開始しました。
そしてついに、これまでの取り組みの成果を披露する日がやってきました。Visual Studio 2017 の一般提供が本日より開始されることを発表します。本日からどなたでも Visual Studio 2017 をダウンロードしていただけます!

Productivity Power Tools for Visual Studio 2017 のリリースを発表

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。
【元記事】 Productivity Power Tools for Visual Studio 2017 2017/3/6

 
明日に迫った Visual Studio 2017 のリリース (英語) に先立ち、Productivity Power Tools for Visual Studio 2017 がリリースされました。このため Visual Studio 2017 のリリース初日から皆様のお気に入りの生産性機能をすべてご利用いただくことができます。
Productivity Power Tools は、Visual Studio IDE の開発者エクスペリエンス向上を目的とした複数の拡張機能をまとめたもので、公式にはサポートされていないもののマイクロソフトがテストしている最中の新機能をお試しいただける便利なツールです。Productivity Power Tools が作成された経緯については、こちらのページ (英語) をご覧ください。
新たに追加された機能
今回のリリースの主な目的は、Productivity Power Tools の各機能を個別の拡張機能に分割することでした。これにより、使用するコンポーネントのみを手動で選んでインストールできるようになるため、ツールの入手方法と管理方法をより柔軟に選択して、個々の拡張機能を好きなペースで更新、配信できるようになります。また、これには、マイクロソフトが各拡張機能の人気度を監視できるというメリットもあります。特に人気が高い機能については、Visual Studio の今後のバージョンに含めることが検討されます。
以下は、Visual Studio 2017 用の拡張機能として個別にリリースされた機能の一覧です。

Align Assignments (英語): 代入ステートメントの表示を揃えるコマンドを追加します。既定のショートカットは Ctrl + Alt + ] です。
Copy as HTML (英語): 選択したエディターのテキストをクリップボードに HTML 形式でコピーする機能を追加します。
Ctrl+Click Go To Definition (英語): Ctrl キーを押しながらクリックすると、カーソルが置かれている識別子の「定義へ移動」します。
Custom Document Well (英語): Visual Studio のドキュメント タブの動作を設定できるようにします。
Double-Click Maximize (英語): ウィンドウのヘッダーをダブルクリックすると、ウィンドウを最大化またはドッキングできます。
Editor Guidelines (英語): エディターに垂直グリッド ガイドを追加します。
Fix Mixed Tabs (英語): タブとスペースが混在する場合に検出し、自動的に修正するように提案します。
Match Margin (英語): キャレットが置かれている単語に一致するテキストについて、スクロール バーにマーカーを表示し、エディター内のテキストを強調表示します。
Middle Click Scroll (英語): エディター ウィンドウでマウスの中央クリック ボタンによるスクロールを有効にします。
Peek Help (英語): F1 ヘルプをエディターにインラインで表示するコマンドを追加します。既定のショートカットは Alt + F1 です。
Power Commands for Visual Studio (英語): Visual Studio IDE 用の便利な拡張機能セットです。Remove and Sort Usings (Using の削除と並べ替え)、Copy Path (パスのコピー)、Open Command Prompt (コマンド プロンプトの表示) などが含まれます。
Quick Launch Tasks (英語): クイック起動ツールのアクセス性を向上させ、タスクを設定する機能を追加します。
Shrink Empty Lines (英語): エディターにより多くの行を表示できるように、テキストや数字を含まない行を縮小します。
Solution Error Visualizer (英語): ソリューション エクスプローラーでエラーと警告を強調表示します。また、エラーの種類によってソリューション エクスプローラーの表示をフィルタリングすることもできます。
Time Stamp Margin (英語): デバッグ出力ウィンドウにタイム スタンプを表示する余白を追加します。

上記の拡張機能は、Visual Studio Marketplace (英語) または IDE の [拡張機能と更新プログラム] ダイアログからダウンロードしてインストールできます。
すべての拡張機能を一括でインストールする場合は、Productivity Power Tools 2017 インストーラー (英語) をご利用ください。このバンドル インストーラーは、Mad Kristensen による Web Extension (英語) へのアプローチをヒントにしたもので、Productivity Power Tools for Visual Studio 2017 スイートに含まれるすべての拡張機能をインストールします。

動作方法: この拡張機能は、Visual Studio の起動時に毎回バックグラウンドで実行され、インストールされていない Productivity Power Tools の拡張機能がないかどうかを確認します。インストールされていない拡張機能がある場合は、自動的にダウンロードとインストールが開始され、その進捗状況を示すダイアログ ボックスが表示されます。
一括インストールされた拡張機能のうち、使用しないものについては、[ツール]、[拡張機能と更新プログラム] の順に選択して、個別に無効化またはアンインストールできます。

削除された機能
Productivity Power Tools 2017 には、Structure Visualizer は含まれていません。Structure Visualizer の一部の機能は非常に人気が高かったため、製品に実装されました。Visual Studio 2017 には、Structure Guidelines という新機能が追加され、複数の言語について既定で有効になっています。この機能では、コード ブロックの構造に合わせてエディターに縦線が表示されます。これらの縦線にカーソルを合わせると、そのブロックのすべての先祖ブロックを示すヒントがポップアップ表示されます。

この機能は、[ツール]、[オプション] の順に選択して、有効/無効を切り替えることができます。[オプション] ページで [テキスト エディター] を選択し、[表示] から [構成ガイドラインを表示する] のチェック ボックスをクリックします。

変更された機能
Custom Document Well の更新により、ドキュメント タブの位置を指定することで、開いているドキュメントに直接移動するコマンドがすべて表示されるようになりました。既定では、Window.GoToPinnedTab[X] のコマンドには Ctrl + [テンキーの X]、Window.GoToUnpinnedTab[X] のコマンドには Ctrl + Alt + [テンキーの X] のショートカットが割り当てられています。これらのコマンドが表示されたことで、それらのコマンドに任意のショートカットを割り当て直すことができます ([ツール]、[オプション]、[キーボード] の順に選択)。
ヒント: テンキーを搭載していないノート PCを使用している場合は、Window.GoToUnpinnedTab[X] コマンドに Ctrl + 1 ~ 0 を割り当てることができます (これらは、大半の Web ブラウザーで、タブの位置を指定して直接移動するために使用されるショートカットです)。
ただし、次の点に注意してください。Ctrl + 1 を割り当てた場合、Visual Studio 2017 の既定のショートカットである「ファイル/型/メンバー/シンボルへ移動」が削除され、Ctrl + 0 を割り当てた場合、Team Explorer のショートカットの多くが削除されるため、それらのコマンドにも併せてショートカットを割り当て直すことをお勧めします。

サポートとご協力のお願い
Visual Studio 2017 の Productivity Power Tools をぜひご活用ください。コードの大部分はオープン ソースです。皆様のご協力 (英語) をお待ちしてします。例として、先日 Francesco Buldo 氏から寄せられた Ctrl+Click Go To Definition のバグ修正 (英語) のフィードバックは、その日のうちに承認され、リリースされました。
ご提案がある場合やサポートが必要な場合には、GitHub の Productivity Power Tools リポジトリでイシューを作成 (英語) してお知らせください。

Justin Clareburt (Visual Studio 担当シニア プログラム マネージャー)
Justin Clareburt は現在、Visual Studio チームのプログラム マネージャーとして Visual Studio 拡張機能の開発に取り組んでいます。これまで 20 年以上にわたってソフトウェア エンジニアリングの分野に携わり、Amazon、News Corp、Symantec、オーストラリア政府などの大組織で経験を重ねてきました。チーム内では IDE に関する専門知識を活かし、究極の開発体験を生み出すことに情熱を注いでいます。

 

業界の先進企業が実施するモバイル アプリ変革

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。
【元記事】 How do industry leaders set their mobile apps apart? 2017/2/16

 
技術革新とユーザー レベルの向上により、アプリ品質に要求される水準はこの数年間で大幅に上昇しています。各業界の先進企業では、ユーザーのハイレベルな要望に対応し企業間競争で優位に立つために、(1) ありふれたアプリから優れたモバイル エクスペリエンスへの転換、(2) 単純なデータ対応型機能から学習や改良ができるインテリジェントなデータ駆動型アプリへの進化、(3) 一体型アプリから機能に特化したアプリのモバイル ポートフォリオへの移行という 3 つの大きな変革に投資しています。ぜひ今回ご紹介するアイデアを、お客様のモバイル エクスペリエンス刷新やビジネスの成長にお役立てください。
今回ご紹介する戦略の詳細にご興味がある方は、電子ブック『モバイルで競争を優位に: モバイル DevOps とクラウドでアプリを差別化する方法 (英語)』をお読みください。
変革 1: ありふれたアプリからすばらしいエクスペリエンスへ
ユーザーがまた利用したくなるアプリ
標準的な機能型アプリはもはや時代遅れです。一般、企業を問わず今日のモバイル ユーザーは、使いやすいユーザー インターフェイス、地理情報、その他の「普通の」アプリ機能では満足できません。ユーザーは、高速で関連性が高くパーソナライズされた機能を持ち、どんなデバイスでも使用できる、完全にネイティブなモバイル アプリを求めています。
Bloomin’Brands,

Visual Studio 2017 リリース & 20 周年記念イベントのご案内

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。
【元記事】 Join Us: Visual Studio 2017 Launch Event and 20th Anniversary 2017/2/9

 
私がマイクロソフトに入社したのは 25 年前にもなります。Access チームの開発者としてキャリアをスタートし、その後、Visual InterDev という新製品の開発に携わりました。数あるマイクロソフト製品の中でも「Visual」の部分が強調されていたのが印象的で、これが現在の Visual Studio にまで長きにわたって続いています。
そして本日、Visual Studio がついに 20 周年を迎えました。20 歳を祝うときです! この大きな節目に発表させていただくのが、最新バージョンの Visual Studio 2017 で、リリースは 3 月 7 日を予定しています。
私は Visual Studio の初版の開発に携わっていましたが、その当時大きな目標として掲げていたのは、クライアント、サーバー、Web 用のアプリケーションの構築に開発者が必要としていたすべての機能をまとめて提供することでした。そして 20 年前の 1997 年 1 月 28 日、Visual Studio 97 をリリースすることが発表されました。あらゆる開発者を想定して開発された、最高レベルの生産性ツールをまとめた単一の製品です。これは簡単な仕事ではありませんでした。Visual Basic、Visual C++、Visual J++,

2017 年に .NET 開発者が知っておくべきこと

本記事は、マイクロソフト本社の Scott Hanselman Blog の記事を抄訳したものです。
【元記事】 What .NET Developers ought to know to start in 2017 2017/1/11

 
ずいぶん前にも、「.NET 開発者が知っておくべきこと」というタイトルでブログ記事 (英語) を書いたことがあります。このときは質問集のように掲載したのが悪かったのか、リクルーターなどにリトマス試験紙のように使われてしまいました。
.NET については情報量が膨大なので、便利なリストを作成して学習ガイドや用語集として使ってもらおうと思い立ち、Jon Galloway と協力して用語とリソースをリストにまとめました。
始めてみて最初に思うのは、「やることが多すぎるじゃないか。だから .NET は嫌なんだ」ということかもしれませんが、参入時にはどのプラットフォームでも同じような壁 (用語集の作成) にぶつかるものです。3 文字略語のない言語やコンピューター エコシステムはありません。あまり深く考えずに、知っておくべきことを知ることからゆっくり始めていきましょう。どこまでやるかはご自身で判断すればよいのです。すべてを知らなくても大丈夫です。その代わり、どのレイヤーでもラベルでも、今どんなプログラムに向き合っているにせよ、その奥にはまだ知らない事実が隠れている可能性があるということだけは知っていてください。
あなたにとって知っておかなければならない項目には線を引いておいてください。その部分を理解したら、他も見てみるようにしてください。詳しい内容を知りたい人もいれば、そうでない人もいます。根本から学ぶべきか、ユーザー視点で学ぶべきかを考え (英語)、自分のスタイルで楽んでください。
まず、.NET と C# ですが、オンライン (https://dot.net、英語) で学ぶことができます。また、F# は http://www.tryfsharp.org (英語) で学習できます。どちらのサイトでもダウンロードなしでコードを作成し、ブラウザー上で作業できます。
https://dot.net (英語) で .NET Core と Visual Studio Code を入手したら、さっそく読み始めてみましょう!

Connect(); // 2016 の BikeSharing360 デモのコードを GitHub で公開

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。
【元記事】 Connect(“demos”); // 2016: BikeSharing360 on GitHub 2016/12/14

 
マイクロソフトにとって開発者の皆様は非常に大切な存在です。今後もクラウド ファースト、モバイル ファーストのソリューション開発に力を入れて取り組み、開発者の皆様、あらゆるアプリケーション、あらゆるプラットフォームのために役立ててまいります。
今年の Connect(); イベントでは、Scott Guthrie と Scott Hanselman の基調講演で 15 のデモが披露されました。基調講演をまだご覧いただいていない方は、Channel 9 のビデオ (英語) をぜひご覧ください。
このイベントで発表された (英語) 新しい製品、サービス、ツールは、アプリのイノベーションに活用いただけるものが揃っています。マイクロソフトでは、これらのテクノロジの可能性を皆様に体感していただけることを想像しながら、基調講演のデモの作成や実際に使用されるアプリケーションの開発を行っています。このたび、Connect(); //2016 で披露された完全にインテリジェント化された自転車シェア サービスのデモ プロジェクトについて、すべてのソース コードが公開されることになりました。

BikeSharing360 (英語) は架空のスマート バイク シェア システム (英語) で、ニューヨークとシアトルの 650 か所のステーションに 10,000 台の自転車が配置されている設定です。このプロジェクトは、ユーザーへの最新のパーソナライズされたエクスペリエンスの提供と、インテリジェンスを活用したビジネス運用を目標としています。
このデモでは、企業とユーザー (自転車の利用者) 向けにアプリが作成されました。

BikeSharing360 (企業向け)
ニューヨーク、シアトル、続々と進出予定

ビジネス管理にインテリジェンスを活用
自社のスマート バイクを IoT デバイスで追跡
モバイルで自転車のメンテナンス レポートを取得
顔認識と音声認識を備えたインテリジェントなキオスクで
ユーザーへの貸出手続きを容易に
インテリジェントなカスタマー サービス: ボットによる
AI 支援型のカスタマー サービス

Bike Riders (ユーザー向け)

モバイルでエコなサービスを利用して、時間とコストを節約しながら楽しめる
1 つのアプリで自転車の検索、手続き、管理まで
利用ログ: 経路の検索と追跡
パーソナライズされたお勧めイベントを取得
トラブル時は、カスタマー サービス パーソナル アシスタントの BikeSharing360 ボットとのチャットで解決

BikeSharing360 アプリケーション スイート
マイクロソフトでは、開発者の皆様が生産性を格段に向上させ、ビジネス改革を促進し、エンド ユーザー様のためのアプリを構築するお手伝いをしたいと考えています。そのために、ツール、製品、アプリケーション プラットフォーム機能に関するヒントや活用方法などの情報発信に力を入れています。
マイクロソフトはこのデモ プロジェクトのために、企業とユーザー向けの BikeSharing360 アプリケーション スイートを作成しました。次の図はアプリの概要です。

デモの視聴とコードのダウンロード
今回、複数のデモ プロジェクトを 7 つのリポジトリに分割して GitHub で公開しました。

Web サイト
BikeSharing360: Web サイトの GitHub リポジトリ (英語)

自転車のレンタルとユーザーの統合に特化した Web アプリ
BikeSharing360 のパブリック Web サイト (MVC)
BikeSharing360 のパブリック Web サイト (ASP.NET Core)
BikeSharing360 のパブリック Web サイト (ASP.NET Core 1.1)

モバイル アプリ
BikeSharing360: Mobile アプリの GitHub リポジトリ (英語)

BikeRider アプリ: Xamarin を使用した iOS 用、Android 用、および UWP 用のネイティブ モバイル アプリ
Maintenance アプリ: Cordova を使用したクロス プラットフォーム モバイル アプリ

実際のデモを見る

James Montemagno による Xamarin アプリのデモ (英語)
Stacey Doerr による UWP と Appium のデモ (英語)
Scott Hanselman によるプレビュー版 Visual Studio Tools for Tizen のデモ (英語)

バックエンド サービス
BikeSharing360: バックエンド サービスの GitHub リポジトリ (英語)

バックエンドのマイクロサービス: Connect();

Project Springfield: クラウド サービスのすべてを F# で構築

本記事は、マイクロソフト本社の .NET Blog の記事を抄訳したものです。
【元記事】 Project Springfield: a Cloud Service Built Entirely in F# 2016/12/13

 
今回の記事の執筆者は William Blum (Microsoft Research の Springfield チーム、プリンシパル ソフトウェア エンジニアリング マネージャー) です。
マイクロソフトは今年の始めに、ソフトウェアの潜在的なセキュリティ脆弱性を根絶する最も洗練されたツール Project Springfield のプレビューを発表しました。Project Springfield (英語) はコードのセキュリティ クリティカルなバグを発見するファズ テスト サービスです。
Springfield の素晴らしい点の 1 つは、マイクロソフトの開発プラットフォームである F#、.NET、Azure を基盤としている点です。今回の記事では、Project Springfield、F#、.NET、Azure に関する疑問点や使用方法について取り上げます。
Project Springfield とは
Project Springfield はソフトウェアのセキュリティ クリティカルなバグを発見するために開発したマイクロソフトならではのファズ テスト サービスであり、マイクロソフトのプラクティスやテクノロジをすばやく導入するのに役立ちます。Azure クラウドの能力を活かしながら、マイクロソフトのセキュリティ テスト ツール スイートを通じてセキュリティ テストをスケーリングします。このツールは現在プレビュー段階で提供されています。お試しになる場合は Project Springfield (英語) からぜひサインアップしてください。

Springfield のアーキテクチャについて議論する William Blum (右) と Cheick Omar Keita (左)
なぜ F# を採用したのか
私たちはこのプロジェクトでなぜ F# を選択したのか。一言で言うと、リリースまでのスピードの速さです。
2015 年、Project Springfield は Microsoft Research NExT (英語) によってスタートされました。当時のエンジニアリング チームはわずか 3 名でしたが、3 か月以内にゼロからサービスを構築し、外部のお客様に提供する、という大きな使命が与えられていました。
開発サイクルがスピードアップし、リリースまでの時間が短縮されたのは、F# の簡潔性、正確性、.NET エコシステム全体との相互運用性のおかげだったと考えています。私たちが感じた F# の大きなメリットは、スクリプト機能と動作するコードのプロトタイプをすばやく作成できるインタラクティブな REPL、代数的データ型、既定で変更不可、パターン マッチ、高階関数、強力な非同期プログラミング モデル、型プロバイダーなどです。
どのように構築したか
F# スクリプトを使用したことで、外部 .NET API をすばやく発見して操作できました。たとえば次のように、F# Interactive を使用して Azure SDK の使い方を学習しました。
上記の F# Interactive のスクリプトでは、指定の Azure サブスクリプションの Azure Virtual Machines がすべて列挙されます。
後の開発プロセスで、修正なしにコンパイルされた最終的なコードに、まったく同じスクリプト コードを簡単に組み込むことができます。
関数型プログラミング
F# は関数型プログラミング言語であるため、コードを関数のスタイルで記述しました。こうすることで多くのテンプレート コードを省くことができました。
たとえば、リストや配列などのコレクションを使用する場合は、Seq モジュールの F# シーケンス (英語) を使用してデータを処理します。F# は関数の引数の部分適用 (英語) に対応しており、関数を第一級引数 (英語) として使用できるため、シンプルで信頼が高くコンポーザブルなコードでデータのシーケンスを処理できます。
C のようなループを使用する場合など、イテレーションや何らかの状態を一時的な変数に保存する必要がないのでシンプルになります。イテレーションが不要なため、配列の範囲外のインデックスにアクセスした場合の例外などイテレーションでよくある問題を回避でき、信頼性が向上します。また、F# のパイプライン演算子 (|>) によって処理を簡潔に作成できます。
F# のパイピング演算子と Sequence モジュールを使用したヒストグラムのソート
上記のスニペットでは、ラムダ関数、関数合成、純粋関数など、F# に既定で実装されている多数の関数型プログラミング機能を使用しています。これらの言語構造は強力であるため、C# などの非関数型言語にも一部組み込まれています。
特に純粋関数はコードベースにおいて最も大きなメリットの 1 つとなっています。純粋関数 (英語) では、関数の出力は入力値によって決まるという決定論の 1 つの形態です。つまり、入力に対して純粋関数は常に同じ出力を返します。さらに、純粋関数は環境に影響しません (グローバル変数やデスク上のファイルなど)。
関数の純粋性という特性をコードベースで維持することで、コードが論理的に明確になりテストがしやすくなりました。純粋関数は互いに影響しないため、並列化も簡単にできます。
F# では、let 束縛の値をすべて既定で変更不可にすることで純粋な関数のコードを簡単に書くことができます。別の言い方をすれば、純粋ではない関数を書くには、あえてそう選択しなければなりません。それが本当に必要な場合 (環境を何らかの形で変更しなければならない場合など)、let mutable キーワードで変更可能なことを明示的に指示するだけで簡単にできます。Springfield では、変更可能な変数は F# のコードベース全体で 5 つしかありません。
簡潔性
上の例は、「プログラムが簡潔になる」という関数型言語のもう 1 つの側面を示しています。上記のプログラムの 4 行のコードは、命令型で記述した場合さらに量が増えます。不自然な例に見えるかもしれませんが、Springfield の規模では、維持がしやすいコードベースが生成されます。
実際、一部のコンポーネントを別の言語から F# に移植すると、この現象を定量化できました。たとえば従来の依存関係を解消するために、Perl スクリプトを 37% 小さい F# プログラムに移植しました。またこれとは別に、1,338 行の PowerShell スクリプトを 489 行の F# (2.7 倍縮小) に移植しました。両方ともコードの量が減ったにもかかわらず、完成した F# プログラムでは、ログ、読みやすさ、信頼性が向上しました (静的な型チェックにもよる)。
正確性
F# が迅速なリリースにつながったもう 1 つの理由は、F# が採用する関数パラダイムがコードの正確性向上に貢献したからです。言語構造が正確性を向上させることを裏付ける例の 1 つが、代数的データ型とパターン マッチの使用です。
その本質を示す例は、データが見つからない場合に F# でそのデータをどのように表現し、処理するかです。主流の言語のほとんどでは、一般的にデータが見つからない場合、特別な null 値で表されます。これには大きな欠点があります。null はほとんどの型で暗黙であり、データを利用するときに null である可能性をチェックするのを忘れやすいからです。このため実行時の NullReferenceException エラーなど、信頼性に関する問題やバグが出やすくなります。C# など多くの言語は、オブジェクト値が既定で null 許容型なので、コードベース全体で null をチェックする必要があります。
F# では定義したデータ型は既定で非 null 許容型です。データが見つからないことが想定される場合は、既存の型 ‘T を代数的データ型 ‘T option (または Option) にラップします。F# Options (英語) は 2 種類の値があります。none 値はデータがないことを示し、Some v の v は有効な型 ‘T です。
Option 型自体でデータがない場合を把握することにより、コードで Optional を利用する場合は、コンパイラは Some v と None の両方のケースに対応できます。一般的にはパターン マッチと match …

ローカル用 Azure DocumentDB エミュレーターを使った NoSQL .NET Core の開発作業

本記事は、マイクロソフト本社の SCOTT HANSELMAN の記事を抄訳したものです。
【元記事】 NoSQL .NET Core development using an local Azure DocumentDB Emulator 2016/12/4

 
数週間前、Miguel de Icaza とニューヨークの街を歩いていると、彼が今とても気に入っている NoSQL データベース Azure DocumentDB について話をしてくれました。私も昨年あたりからなかなかよさそうな製品だとは感じていたのですが、次の理由から使うまでには至っていませんでした。

ローカルで開発作業ができない – 私は低帯域幅の環境や飛行機の中でよく作業をするので向いていない。
MongoDB がサポートされていない – Mongo を使用する Node で書かれたアプリを扱うことがあるので向いていない。
.NET Core がサポートされていない – 私が行う作業のほとんどはクロス プラットフォームの .NET Core アプリなので向いていない。

しかし Miguel からは、この製品のことをもっとよく知るべきだとアドバイスされました。以前とは状況が変わり、今の DocumentDB は次のようになったそうです。

ローカル用 DocumentDB エミュレーターが無料に (英語) –

Visual Studio 2017 Release Candidate の更新版を発表

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。
【元記事】 Updating Visual Studio 2017 Release Candidate 2016/12/12

 
マイクロソフトは先日の Connect(); 2016 において、Visual Studio 2017 Release Candidate を発表しました。既にこちらをご利用いただいているユーザーの皆様に感謝を申し上げます。皆様からは問題点やご要望をはじめとするさまざまなご意見をいただいており、マイクロソフトではこれらのフィードバックやテレメトリ データを基に製品をさらに改良させていきたいと考えております。
最新版の Visual Studio 2017 RC はこちらからダウンロードしていただけます。RC 版を既にインストールしている場合は、Visual Studio ウィンドウの右上に通知が表示されます。Visual Studio の更新を要求する通知が表示される場合は、そこから最新版 RC をインストールできます。
私たち開発チームはバグの修正に誠意取り組んでおり、その成果が今回の RC 版の更新となります。バグの多くは皆様からご報告いただいたものです (英語)。今回修正された問題と更新内容の完全な一覧は、Visual Studio 2017 のリリース ノートと既知の問題に記載されています。
ここでは、特に重要な変更内容をご紹介します。

まず、今回は多数の修正を行いました。チーム エクスプローラーの Git の同期で Current Branch を読み込めない問題、大規模なプロジェクトの読み込み時にクラッシュやフリーズが発生する問題、[Go To All] で発生する不具合などを修正しました。
オフライン ヘルプを使用できるようにしました。Visual Studio インストーラーでヘルプ ビューアー コンポーネントがインストールされます。
複数のユーザー インターフェイスの言語を追加/削除できるようにしました。[Language Pack] タブで Visual Studio インストーラーを使用し、[Tools]、[Options]、[International Settings] の順に選択すると、インストール済みの言語の中から使用したいユーザー インターフェイス言語を選択できます。
.NET Core と Docker のワークロードを改良しました。csproj ファイルを読みやすくし、.NET Core のコマンド ライン ツール (CLI) に新しいコマンドを追加し、多数の不具合を修正しました。なお、これらは現在プレビュー期間中です。詳細については .NET ブログ (英語) を参照してください。
Developer Analytics Tools を改良し、ローカルで Application Insights SDK を使用してプロジェクトのデバッグ セッションを実行している際に、CodeLens で例外の有無、およびその例外によってユーザーにどのような影響があるかが表示されるようにしました。

今後も RC 版を継続的にリリースしていく予定です。更新内容は随時ブログにてお伝えしますので、ぜひご利用いただきフィードバックをお寄せください。問題点がありましたら、VS のタイトル バーの右上角にある [Report a Problem (英語)] オプションからご報告をお願いいたします。また、開発者コミュニティ ポータル (英語) もご利用ください。ご提案は UserVoice (英語) までお寄せください。

John Montgomery (Visual Studio 担当プログラム マネジメント ディレクター)
@JohnMont は Visual Studio、C++、C#、VB、.NET、JavaScript の製品設計とユーザー サポートを担当しています。マイクロソフトには 18 年前に入社し、それ以来開発者向けテクノロジの開発に従事しています。

Uncategorized

今後の当ブログにつきまして

今後の新しいポストは 【 Cloud and Server Product Japan Blog 】ブログにて行いますので、こちらを定期的に確認いただければ幸いです。
https://blogs.technet.microsoft.com/mssvrpmj/
 
これまで 【 Visual Studio 日本チーム Blog 】 にポストした内容に関しては、引き続きこちらで参照いただけます。
https://blogs.msdn.microsoft.com/visualstudio_jpn/
 
よろしくお願いいたします。
 

Visual Studio Team Services の最新情報: 2018 年 4 月のまとめ

このポストは、2018 年 4 月 25 日に投稿された What’s brewing in Visual Studio Team Services: April 2018 Digest の翻訳です。

Visual Studio Team Services の最新情報: 2018 年 3 月のまとめ

このポストは、2018 年 3 月 5 日に投稿された What's brewing in Visual Studio Team Services: March 2018 Digest の翻訳です。

Visual Studio Team Services の最新情報: 2017 年 12 月のまとめ

執筆者: Buck Hodges (Director of Engineering, VS Team Services)
このポストは、12 月 7 日に投稿された What’s brewing in Visual Studio Team Services: December 2017 Digest の翻訳です。
 
今月はお伝えしたいことがたくさんあります。前回の投稿以来、3 回のスプリントで機能がリリースされてきました。また 11 月には Connect(); カンファレンス (英語) が盛大に開催されました。それでは、各機能をご説明しましょう。
Connect();
Connect(); カンファレンスでは、Visual Studio Team Services (VSTS) やその他の Visual Studio 製品ファミリなどの開発者ツールに重点を置き、ソフトウェア開発や DevOps に関するさまざまなニュースを発表すると共に、トレーニングの機会を提供しています。DevOps および Visual Studio Team Services (VSTS) に関するセッションはすべてオンデマンドで視聴できますので、ライブ ストリーミングを見逃した方はこちら (英語) からご覧ください。
Brian Harry (投稿記事、英語) の一般セッションでは、Azure DevOps の現況をお伝えしました。大きな発表としては、セットアップが容易な新しい Azure DevOps Project (英語)、TFS 2018 のリリース、Linux および Windows に続いてリリースされたホスト型 Mac 用ビルド エージェント (英語)、VSTS 以外のプラットフォームへの GVFS (英語) の拡大をねらった GitHub との提携 (英語) などが挙げられます。発表の概要については、彼自身が執筆した Connect();

Visual Studio Team Services の最新情報: 2017 年 9 月のまとめ

Visual Studio Team Services は、効率的な継続的インテグレーションと Azure へのリリース パイプラインを作成するのに最適な DevOps ツールです。今月は、Git フォークやマルチフェーズ ビルドのサポートをはじめ、作業項目ハブの改良、新しいレポート ウィジェット、NDepend 拡張機能の更新などをご紹介します。まずは、VSTS でのフォークのサポートから見てみましょう。

Visual Studio Team Services の最新情報: 2017 年 8 月のまとめ

このブログ シリーズでは、Visual Studio Team Services (VSTS) に関する最新情報をお届けします。皆様はここで 3 週間分のリリース情報をご確認いただけます。Visual Studio Team Services は効率的な継続的インテグレーションと Azure へのリリース パイプラインを作成するのに最適な DevOps ツールです。

Visual Studio Team Services の最新情報: 2017 年 7 月のまとめ

執筆者: Buck Hodges (Director of Engineering, VS Team Services)
このポストは、7 月 12 日に投稿された What’s brewing in Visual Studio Team Services: July 2017 Digest の翻訳です。
 
このブログ シリーズでは、Visual Studio Team Services (VSTS) に関する最新情報をお届けします。皆様はここで 3 週間分のリリース情報をご確認いただけます。Visual Studio Team Services は効率的な継続的インテグレーションと Azure へのリリース パイプラインを作成するのに最適な DevOps ツールです。
今月はまず、業界で初めて行った Git の大幅なスケーリングについてご紹介します。他にも Git の機能強化をいくつか説明し、その次に、新しい組み込みの Wiki のパブリック プレビューについてお伝えします。さらに、ビルド、リリース、パッケージ管理、作業項目の追跡に関する機能強化などたくさんのニュースがありますので、さっそく始めましょう。
世界最大の Git リポジトリを VSTS でホスト: ファイル数 3.5M、ファイル サイズ 300 GB!

Continuous Delivery Tools にコンテナーのサポートを追加

先日の Microsoft Build 2017 にて、Continuous Delivery Tools for Visual Studio (英語) の更新が発表されました。マイクロソフトでは、お客様からのフィードバックを拡張機能の拡充に積極的に取り入れています。

Build での発表: Visual Studio Mobile Center のプラットフォーム、選択肢、機能を拡充

昨年秋に、マイクロソフトは Visual Studio Mobile Center (プレビュー) をリリースしました。これは、モバイル アプリのライフサイクル管理と高品質なアプリのリリース サイクルの短期化を支援するために開発された開発者向けクラウド サービスです。今回はこの Mobile Center の機能強化を行い、さらに幅広いユーザーの皆様やプラットフォームでご利用いただけるようにしました。

Visual Studio for Mac での Unity ゲーム開発

2014 年に Visual Studio Tools for Unity (VSTU) の最初のバージョン (英語) をリリースして以来、Windows 向けには Tools for Unity の複数のバージョンをリリースしてきましたが、Mac OS を実行している Unity 開発者にこのツールを提供する機会はありませんでした。