しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

ASP.NET Core

ASP.NET Core MVC 1.0 で新しくなった URL ルーティング

地味ですが ASP.NET Core MVC 1.0 では URL ルーティングの仕組みが大きく変わりました。今までは ASP.NET のルーティングモジュールを使っていましたが、ASP.NET Core 1.0 では新規にミドルウェアとして実装されました。少し挙動が変わっていて、新しい機能…

ASP.NET Core MVC 1.0 で追加された View Components を使ってみる

ASP.NET Core MVC 1.0 に追加された機能の中で 1,2 を争うぐらい個人的には気に入ってるのが View Components です。ざっくりと説明すると Razor の中だけで使える Controller/Action です。MVC 5 までは Html.Action/RenderAction を使って呼び出せる、子ア…

ASP.NET Core MVC 1.0 でキャッシュを行う 3 つの方法

ASP.NET MVC 5 でもキャッシュのための手段はいくつか用意されていましたが、ASP.NET Core MVC 1.0 では少し方向性が変わっています。大きく変わっているのが OutputCache 属性が無くなっていることです。現実的にキャッシュを行う手段は ASP.NET Core MVC 1…

Azure Web Apps に ASP.NET Core 1.0 アプリケーションをデプロイする

昨日あたりに Azure Web Apps にも .NET Core 1.0 RC 2 がインストールされたみたいなので、ASP.NET Core 1.0 アプリケーションをデプロイして動かすことが出来るようになりました。今のところは 32bit ランタイムだけがインストールされているみたいです。…

ASP.NET Core 1.0 で追加された User Secrets を使ってみる

これまでは開発環境用の接続情報など GitHub などのリポジトリに含めたくない情報は、Web.config の configSource を使って別ファイルにして管理していたかもしれません。ASP.NET Core 1.0 には User Secrets が追加されたので、ユーザー専用の情報を簡単に…

ASP.NET Core 1.0 の Dependency Injection を使って Azure Storage を使いやすくする

Azure を使った開発では欠かせないのが Storage ですが、最新の Azure Storage Client 7.0.1-preivew からは .NET Core に対応しているので、ASP.NET Core アプリに簡単に組み込めます。これまでと変わらずに NuGet を使ってインストールするだけで準備は完…

ASP.NET Core MVC 1.0 で Cookie を使ったユーザー認証を独自に実装する

ASP.NET MVC 5 までは FormsAuthentication を使って実装していた部分を、ASP.NET Core MVC 1.0 でも同じように独自で実装したいときにどうすればいいのか調べました。公式のサンプルは Identity を使っていますが、ドキュメントに Identity を使わない方法…

ASP.NET Core 1.0 の Startup クラス定義の基本と Dependency Injection の話

ASP.NET Core では Startup クラスを用意して、その中でアプリケーションの設定を行うようになっています。OWIN でも存在していた Startup クラスですが、ASP.NET Core では大きく変化しています。大きく変化しているのですが、それぞれのメソッドで役割が綺…

ASP.NET Core 1.0 のプロジェクト構造とエントリポイントの話

ASP.NET Core 1.0 でアプリケーションを書く前に、どのような構造になっているのか知っておいた方がいいと思ったので、さらっと調べました。RC 2 でいろいろ変わっているので調べなおしという感じです。Visual Studio を使って最低限の ASP.NET Core MVC 1.0…

.NET Core 1.0 / ASP.NET Core 1.0 の RC 2 と Visual Studio 2015 Tooling Preview 1 がリリースされました

時間がかかったようですが、ついに .NET Core 1.0 と ASP.NET Core 1.0 の RC 2 がリリースされました。Announcing ASP.NET Core RC2 | .NET Web Development and Tools BlogRC 2 公開に伴い .NET のページが新しく用意されたみたいですね。ちゃんと .NET Co…

ASP.NET Core が HttpPlatformHandler から専用の IIS モジュールに移行する理由

ASP.NET Core は元々 Helios で動かす予定だったのが、サーバーが Kestrel への 1 本化に伴い IIS 向けには HttpPlatformHandler が採用されてきましたが、少し前に HttpPlatformHandler から fork した ASP.NET Core Module が使われることになりました。公…

Build 2016 で発表された ASP.NET Core セッションについて

RC 2 が出なかったことで、いまいち盛り上がらなかった Build 2016 の ASP.NET Core 周りですが、セッションは普通に面白いので簡単にまとめておきます。ちなみに RC 2 のリリース時期は未だに TBD のままです。 Introducing ASP.NET Core 1.0 いつもの Scot…

ASP.NET 5 から ASP.NET Core 1.0 に変更になります

朝起きたら、ASP.NET 5 の名称変更を Scott Hanselman が衝撃的なタイトルのブログで発表していました。新しい名前は ASP.NET Core 1.0 になるようです。BLOG: @AspNet 5 is dead: Introducing @AspNet Core 1.0 and @dotnet Core 1.0 https://t.co/X7LiOr6E…

Connect(); // 2015 でリリースされた DNX と .NET Core / CLI について調べた

Connect(); // 2015 では ASP.NET 5 (DNX) や .NET Core の RC 1 が出たので、自分なりに整理するために色々と調べて OS X 上で実際に試してみました。RC 1 ではちゃんとインストーラーやドキュメントが用意されているので簡単です。 DNX / ASP.NET 5 http:/…

ASP.NET 5 のサーバーから IIS (Helios) が削除された理由

ASP.NET 5 beta8 のリリース前に、割と大きな変更が入りました。IIS (Helios) の削除です。ちゃんと削除する理由が挙げられているので、適当に意訳して紹介します。 Helios 自体が DNX の役割を担ってしまっている WebListener や Kestrel などと異なり、Hos…

Raspberry Pi 2 にインストールした Windows 10 IoT Core 上で DNX と ASP.NET 5 アプリケーションを動かしてみた

ちょっと前に Raspberry Pi 2 の Windows 10 IoT Core で DNX を動かしたという話を Twitter で見たので、実際に自分でも動かすことが可能なのか試してみました。てっきり Mono を使ったのかと思いましたが、1.0.0-beta6 からは DNX の Windows CoreCLR 向け…

DNX と ASP.NET 5 が 1.0.0-beta6 に到達

そろそろ beta6 か rc1 になるのではと思ってましたが、最新のビルドで beta6 になりました。まだ GitHub 上で Tag は打たれていないようです。alpha は 4 までだったので、ちょっと beta が長い感じがします。 インストールなど 各 OS 向けにビルドが公開さ…

Linux / OS X 向け DNX で CoreCLR が使えるようになった話

今月頭に Linux / OS X への対応が Twitter で発表されていた DNX ですが、最新の Nightly Build をインストールすることで、実際に使えるようになりました。Thanks to @ellism, we have dnx running on OSX and linux on top of CoreCLR! #dnx #aspnet5 pic…

.NET Core Runtime (CoreCLR) / .NET Compiler Platform (Roslyn) / .NET Execution Environment (DNX) の役割について理解したい

自分でも最近の .NET Core 5 周りで混乱してきたので、整理するために簡単にまとめました。略称も色々なので、そのあたりと役割も一緒に分かってる範囲で書きます。 .NET Core Runtime (CoreCLR) GitHub でオープンソースになると話題になった部分で、RyuJIT…

KRuntime (KRE / XRE) が .NET Execution Environment (DNX) に名前が変わった話

これまでは KRuntime とか XRE と呼ばれていた部分が、数日前に .NET Execution Environment (DNX) と名称変更されました。理由は良く分かっていません。ちなみに名称変更が行われたコミットログは以下の通り。 DNX ALL THE THINGS · aspnet/dnx@ea2880a · G…

Raspberry Pi 2 を買ったので Mono 3.12.0 を自前でビルドして ASP.NET 5 を動かしてみた

今後は Windows 10 for IoT が無償提供されるという話もあり、ハードウェア周りをちょっと触ってみたかったので Raspberry Pi 2 を Pimoroni で買ってみました。Raspberry Pi 2 with Pibow Case - PimoroniRaspberry Pi 2 本体とケースで £42 ですが、これに…

ASP.NET 5 の Nightly バージョンをインストールする方法

ASP.NET 5 は現在 1.0.0-beta2 が公開されていますが、現在 dev branch では既に 1.0.0-beta3 になっているのでインストールしてみました。NuGet では公開されていないので Nightly 専用の MyGet からダウンロードする必要があります。なので KRE_FEED 環境…

ASP.NET 5 アプリケーションのプリコンパイルと kpm pack のオプションについて調べた

ASP.NET 5 アプリケーションが Kudu によってどのようにデプロイされるのか調べた - しばやん雑記 を書いた時、Visual Studio の発行ダイアログにプリコンパイルオプションがあるのを見つけました。プリコンパイル出来るのであれば、Roslyn のコンパイル速度…

ASP.NET 5 アプリケーションが Kudu によってどのようにデプロイされるのか調べた

Azure 界の抱かれたい男 No.1 こと @kosmosebi に「ASP.NET 5 を Websites で動かす方法を調べやがれ」と言われたので、Azure 界で生きていくために頑張って調べました。@shibayan いまいちどういう仕組みで動いてるのか謎いしばやんが調べるべき— こすもす.…

ASP.NET 5 と Visual Studio 2015 では Bower と Grunt が標準になるみたいなので勉強してみた

ASP.NET 5 と Visual Studio 2015 Preview では Bower と Grunt、そして npm へ標準で対応するようになりました。今後は ASP.NET 5 開発で必要となってくる知識になるので、簡単に調べてみました。既に ASP.NET 公式サイトでは Visual Studio 2015 で Bower …

ASP.NET MVC 6 の概要だけをサクッとまとめておきたい

あまりにも MVC 6 は変更が多いので、概要をとりあえずサクッとまとめておきたい(ASP.NET 5 が RTM になるまでは、あまり確定情報みたいに書かないようにしているので、これもソースコード読みつつ調べた自分用メモだと思ってください。*1Release 6.0.0-bet…

Connect(); での発表と ASP.NET の今後について

やっと Connect(); で発表された中身について触れる余裕が出来てきたので、個人的な考えも入れつつまとめておこうと思います。ちょいちょい追記するかも。まずはキーノートでてんこ盛りのデモをしていた Scott Hanselman が既にブログでいろいろまとめてくれ…

ASP.NET vNext で用意されている 3 種類のサーバー

ASP.NET vNext はこれまで使われてきた System.Web.dll を捨てた結果、ランタイムとして IIS や ISAPI に依存しなくなりました。その代わり HTTP の処理を実際に行うレイヤーが必要となります。既に http.sys を利用したものや、Node.js でも使われている li…

ASP.NET vNext で追加された新しい HTTP 抽象化クラス

ASP.NET vNext ではこれまで System.Web.dll で提供されていた、古く巨大になった HttpContext などを捨てて、新しい軽量かつモジュラーな HTTP 抽象化クラスを提供しています。aspnet/HttpAbstractions: HTTP abstractions such as HttpRequest, HttpRespon…

ASP.NET vNext で使われている Assembly Neutral Interfaces について

ASP.NET vNext では新しく Assembly Neutral Interfaces という、Roslyn を利用したアセンブリから中立なインターフェースが多く使われるようになりました。アセンブリ中立なインターフェースって何だ?という感じですが、これが結構面白い仕組みで実現され…