ぷろじぇくと、みすじら。

ASP.NET MVC Core 1.1のRazorテンプレートでC#7を使う

Created at:

ASP.NET MVC Core 1.1でプロジェクトを作るとRazorテンプレート(cshtml)では利用できるC#のバージョンは6です。2017年7月時点の最新版であるところのC#7の機能を使うためにはちょっと準備が必要です。

NuGetパッケージをインストール

まず以下の二つのNuGetパッケージをインストールします。

System.ValueTupleは入れなくてもいいといえばいいですがもちろんその場合にはValueTupleを使えません。

Razorの設定

パッケージのインストールができたら次はASP.NET MVC Coreの設定をするためにStartup.csを開きます。

ConfigureServicesメソッドに以下の行のが見つかるかと思います。

services.AddMvc();

その行を以下のように書き換えます。

services.AddMvc()
    .AddRazorOptions(options =>
    {
        options.ParseOptions = new CSharpParseOptions(LanguageVersion.Latest);
    });

AddRazorOptionsでRazorの設定をする形です。LanguageVersion列挙体にはCSharp7をはじめとしてバージョンがいろいろあるのですが大抵は最新を指すLatestでもいいような気がします。

これで完了です。あとはC# 7の構文がエラーにならなければできあがりです。

OneDrive File On-Demandについて

Created at:

OneDrive File On-Demandについて先日行われたWindows Insider Meetup in Tokyo #2に飛び込みで少しお話してきました。

OneDrive On-Demandがすごい

Windows 8.1の時にもプレースホルダという機能は存在していて、その後無くなって、Windows 10 Fall Creators Updateと呼ばれる次期アップデートで復活するということになったのですがわざわざ時間をかけて復活してきたということは結構違うのでは?と思って少し調べたのがきっかけです。

記憶が定かではなく、かつ検証もしてないのですが確かWindows 8.1のプレースホルダはプログラムから直接扱おうとすると0バイトの謎ファイルになっていたような記憶があります。あくまでシェルが良しなにしてくれるショートカットに近い扱いというか。

ところが今回復活するプレースホルダはファイルシステムレベルで考慮されている感があって、互換性やシームレスさが高まることが期待されます。

余談

Windowsの開発用にGVFS(Git Virtual File System)というGitのためのファイルシステムを作ったと少し前に発表していましたが、GVFSはCreators Update以降で動作するというあたり、もしかして何かファイルシステム周りにAPIが増えたのかもという気がしています。

今までもDokanなどいわゆるFUSEのようなものがありましたが、もう少し作りやすい仕組みを整備しているのかもですね。UIもクラウドプロバイダからダウンロード中みたいな表示だったりするのでOneDrive以外のDropboxなどでも対応できるようにしてくるのかもしれません。