見出し画像

開発者注目! Microsoft Build 2020 の最新トピック:プログラミング言語編

前回に引き続き、
この記事では Visual Studio 2019 や Visual Studio Code で利用できる機能を中心に、耳寄りなトピックを紹介します。
題して「プログラミング言語編」です。
デベロッパーならば「これは使えそう!」「要チェック」と共感していただけるものばかりです

・ イベントサイト(英語) https://mybuild.microsoft.com/
・ 動画サイト(英語) https://channel9.msdn.com/Events/Build/2020
※ この記事の図はすべて上記サイトから引用しています。

※ ここで紹介するソフトウェアや機能の一部はまだリリースされていません。Windows Insider Program への応募により使えるものも含まれます。

C#: Blazor WebAssembly [released]

画像5

・ これは何か? → C# ベースで構築可能な Web サービスフレームワーク
・ 紹介セッション: Modern Web UI with Blazor WebAssembly
・ 概要: https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor

Blazor では下記のような Web サービスの構成要素すべてを C# で記述することができます

・ Web サーバー
・ Web クライアント、UI 含む
・ Web API

またストロングポイントは多岐にわたります。

・ 各種認証のサポート
.NET と IDE による生産性の高さと(サーバー・クライアント間の)コードシェアリング
・ Web API や UI における型付け由来の自動的なバリデーション
ブラウザーの devtools を使ったデバッグ実行
・ i18n
PWA 対応

ライブデモでは VS2019 から Azure 上にサーバーアプリをデプロイし、Web サーバー・Web クライアントの両方に Breakpoint を張り、順番にヒットする様子が披露されました。
この開発スピードは、ほかのフレームワークではなかなか得られないレベルだと感じました
Blazor を利用するため、いまは C# を習得する気になっています。

Python: Azure Machine Learning Extension for VS Code

画像3

・ これは何か? → 機械学習プロジェクトにおけるリソースマネージャー(VS Code 拡張)
・ 紹介セッション: Supercharge your data science workflow with Python and Visual Studio Code
・ 概要: https://docs.microsoft.com/ja-jp/azure/machine-learning/tutorial-setup-vscode-extension

機械学習プロジェクトの立ち上げからデプロイまでに必要となる、いろいろなリソースを効率的に管理することができます。
「いろいろなリソース」とは以下のようなものです。

・ データストア
・ データセット
・ 実験に使った Jupyter Notebook
・ Azure 上のクラスターインスタンス
・ トレーニング済みモデル
・ トレーニング履歴
・ Azure 上のエンドポイント

セッション中のライブデモでは、HyperDrive を使ったハイパーパラメータチューニングの始め方についても紹介していました。

機械学習プロジェクトではたくさんのファイルが生成され それらに関連が存在するため、ファイルの管理方法について悩まされることも多いと思います。
Azure Machine Learning Extension はその対策にはうってつけでしょう。
早速使ってみようかと思っています。

C++: Updates

画像1

C++20 準拠
・ Microsoft STL のオープンソース化
・ ビルドの改善: リンカーオプション次第で速度 2x~3x
・ 分析の改善: パフォーマンスアナライザー、vcperf、SDK for Analysis
・ セキュリティの改善: Address Sanitizer、Spectre Mitigations、Code Analysis Checks
・ C++/CLI が .NET Core に対応
・ vcpkg の同梱
CMake とクロスプラットフォームサポート: WSL や SSL 越しの gdb にも対応
Doxygen コメント形式の標準サポート: ビルドせずに Tooltip がポップアップ
・ 紹介セッション: Modern C++ development with Visual Studio

最近人気に陰りがある C++ ですが、とても多くの更新がありました。
C++20 への対応により module 文や import 文に対応しました。
ようやく C++ も、プリプロセッサーに頼らずにモジュール間の依存を記述できるようになったんですね。

Microsoft STL がオープンソース化されたのも少々驚きでした。
それもあってか C++ プロジェクトにおけるパッケージ管理ツール vcpkg が、Visual Studio Installer からインストール可能になったようです。

ビルド・分析・セキュリティのそれぞれについても、たくさんの改善がありました。
コードベースが大きいときにリンカーが遅い問題も改善しているようです。
そしてターゲットパフォーマンス分析用の SDK というものがリリースされるようです。
セキュリティ面では自動化されたコード検証が追加され、C++ Core Guidelines(サポートライブラリ 3.0.0)に沿ったレビューをいつでも利用できます

画像3

C++/CLI の .NET Core 対応は、Mono に依存しているマルチプラットフォームプロジェクトの開発方針を揺さぶるインパクトがあるかもしれません。

Node.js: Azure Static Web Apps (Preview)

画像4

・ これは何か? → 最速で静的 Web サイトを立ち上げるためのワークフロー(VS Code 拡張)
・ 紹介セッション: How to be super productive with Node.js and Visual Studio Code
・ 概要: https://azure.microsoft.com/ja-jp/services/app-service/static/

Azure Static Web Apps は馴染みのあるさまざまなサービスを掛け合わせることで実現されています。

・ Azure App Service
・ Azure Functions
・ Cosmos DB
・ GitHub
・ GitHub Actions

そして一番のメリットは、すべてが無料で構成可能である点です
ホントですか?

暗黙的要件を把握した上で「このフレームワークを使うべきかどうか」を正しく判断できれば、ものの数時間で Web サイトを立ち上げることができるのでしょう。
ぜひ身に着けたいスキルです。

この記事が気に入ったらサポートをしてみませんか?