2015年に到来する大変革「次期.NET/ASP.NET/Visual Studio、Windows 10」に備えよう ―第7回 業開中心会議:連載:業開中心会議議事録(1/2 ページ)
クラウドの隆盛、多様なデバイスの登場でITの世界は大きく変わりつつある。これに合わせるかのように、.NETやVisual Studioなど、マイクロソフトが提供する開発フレームワーク/ツールも次期バージョンでは大きく変化する。今回の会議ではこれら次世代の.NETがテーマとなった。
powered by Insider.NET
2014年11月29日(土曜日)、@IT/業務アプリInsiderコーナー主催のオフラインセミナー『第7回 2015年に到来する大変革「次期.NET/ASP.NET/Visual Studio、Windows 10」に備えよう』(スポンサー:グレープシティ、会場提供:日本マイクロソフト)が開催された。
今回の会議は、先日開催されたオンラインイベント「Connect;」の開催を受けて、大きく変化する次世代の.NETに備えるべく、開発者の皆さんに最新の情報を提供するものとなった。そのため、通常の業開中心会議とは異なり、最後のパネルディスカッションを省略して、次期.NET/Visual Studio 2015とASP.NET/次期.NET&Windows 10への移行をテーマとした三つの技術セッション+質問タイムで構成された。
- 技術セッション1:次世代 Core .NET / C# 6.0 概説
- 技術セッション2:ASP.NET 新時代に向けて 〜 ASP.NET 5 / Visual Studio 2015 基礎解説
- 技術セッション3:今から始める、Windows 10&新.NETへの移行戦略
各技術セッションの様子はYouTube上にまとめられたインデックスページから視聴できる*1。
*1 本議事録では質問タイムの内容は取り上げていない。また、全ての技術セッションの内容がとても濃いものだったため、本稿では取り上げ切れていない部分も多々ある。興味を持たれた方にはぜひストリーミング中継のアーカイブをご覧いただきたい。
技術セッション1:次世代 Core .NET / C# 6.0 概説
セミナーは、グラニの田中孝佳氏による技術セッションで始まった。このセッションでは、次世代の.NETにおけるコンパイラーとランタイムについて解説が行われた。
田中氏はまず.NET 2015の概要について説明し、その後、話題は.NET Framework 4.6と.NET Core 5を支えるコンパイラーとランタイムへと移った。
最初に田中氏は.NET Language Platform “Roslyn”を取り上げた。Roslynはオープンソースで開発が進められていることが一番の特徴だ。また、強力な解析APIを備えており、IDEがソースコードの静的解析を行うのに、実際のビルドに使われるコンパイルエンジンが使われる。この結果、ソースコードの静的解析の結果と実際にビルドをした結果が食い違うことがないのも大きな特徴だ。
Visual Studio 2015 Previewでは、この解析APIがCode Refactoring、Diagnostic with Code Fixの二つの機能で使われている。解析APIを利用して、これらに関連する機能を独自に開発し、Visual Studio拡張の形で配布することも可能だ(後者については、NuGetとしての配布も可能)。
その次のC# 6.0での新機能については、セッションのかなりの時間を割いて、説明が行われた。Roslynの安定性を優先して、C# 6.0では当初の予定よりも機能強化の範囲は縮小されたとのこと。また、これらの機能強化点は主に日々のコーディングをよりシンプルなものにするためのものとなるそうだ。
詳細はセッションのストリーミング中継のアーカイブをご覧いただくとして、以下ではどんな点がどのように強化されているかを箇条書きの形でまとめておこう(用語の日本語訳が決まっていないということで、本セッションではC#の言語機能の強化点の表記は英語のままとなっている)。
- Initializers for auto-properties: 自動プロパティの初期化をコンストラクターで行わずに、インスタンスフィールドの初期化と同じタイミングで行えるようになった
- Getter-only auto-properties: 読み取り専用の自動プロパティの実装がシンプルに
- Expression bodied function members: メソッドの実装を1行の式で記述可能
- Expression bodies on property-like function members: プロパティでも上と同様
- Using Static: using文にクラスを指定することで、クラスを指定しなくてもstaticメソッドを記述可能に(Visual Studio 2015 Preview以降で記述方法が変更される予定)
- Null-conditional operators: 変数名/メソッド名などに後置する「?」演算子。その値がnullだと、nullが返される。「nullチェック→メソッド呼び出し」のようなコードが、単純なメソッド呼び出しの形式で記述できるようになる(例:persons?.Count())
- String interpolation: 文字列へのオブジェクト(の値)の埋め込みをよりシンプルな形式で書けるようになる
- nameof expressions: 変数名、メソッド名、型名などを取得する
- Index initializers: キー/値を持つオブジェクト(辞書など)の初期化がシンプルに行えるようになる
- Exception filters: catch節での例外の捕捉に条件を付加できる
- Await in catch and finally blocks: catch節/finally節でawaitできるように
- Parameterless constructors in structs: 構造体でパラメーターを持たないコンストラクターを定義できるようになった
- Extension Add methods in collection initializers: Addを拡張メソッドとして定義した場合でもコレクション初期化子を利用できるようになった
最後に、ランタイムにおける機能拡張としてRyuJIT、SIMDが紹介された。RyuJITは高速なコードを高速に生成する64bitのJITコンパイラーだ。また、SIMD(Single Instruction, Multiple Data)は並列演算の手法の一つだ。
技術セッション1の詳細については、以下の資料と動画を参照されたい。
技術セッション1のプレゼンテーション資料
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
技術セッション1のストリーミング中継のアーカイブ
Copyright© Digital Advantage Corp. All Rights Reserved.