しばやん雑記

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

ASP.NET Core

Visual Studio 2017 Update 3 (15.3) と ASP.NET Core 2.0 などがやっとリリース

いつまで時間がかかるのかと思うぐらい Visual Studio 2017 Update 3 のリリースに時間がかかっていましたが、ようやく正式版がリリースされたようです。更新内容はこれまでで一番多い気がします。そしてアップデートは必須ですね。注意点としてはアップデー…

ASP.NET Core MVC の Tag Helpers でフォームを作成する時の個人的なまとめ

何だかんだで一番苦労するのがフォームを作成する時なので、後から見て思い出せるように Tag Helpers を使って書く時の基本的なメモをまとめておきます。ASP.NET Core MVC 2.0 以降は Razor がアップデートされて変わりそうですが、とりあえず 1.1 対象で。 …

ASP.NET Core MVC の Razor で使える Tag Helpers のメモ書き

ちょっと真面目に ASP.NET Core MVC の Razor を書いている時に、そういえば Tag Helpers の書き方をあまり勉強していなかったと気が付いたので、これを気に個人的によく使いそうな部分だけメモります。例によってドキュメントがちゃんと用意されているので…

ASP.NET Core MVC の Areas と URL ルーティングの話

そろそろ ASP.NET Core MVC を本格的に使っていこうかと思っているので、これまで ASP.NET MVC 5 でよく使っていた Area を実際に Core MVC で使ってみることにします。とは言っても、公式のドキュメントに書いてあることで十分ですが、URL ルーティングとの…

クラスタ不要で柔軟な Docker ホスティングが行える Hyper.sh を試してみた

Hyper.sh - Clusterless Docker Hosting Hyper.sh の特徴とメリット 個人的にはクラスタ不要で Docker が使えるというだけでかなりのメリットになるのですが、それ以外にもいろいろと特徴とメリットがあったので少しだけ書いておきます。 Docker と同じコマ…

ASP.NET Core アプリケーションに最適なクラウドサービス

この間、お手伝いをしている一休さんでイベントが開催されたので、そこで ASP.NET Core に最適なクラウドサービスについて LT をしてきました。ASP.NET Core は Linux というか Docker が使えるので、実行環境の選択肢は格段に広がりましたね。LT の 5 分は…

Google Container Engine (GKE) に Visual Studio を使って ASP.NET Core アプリケーションをデプロイする

この間は App Engine Flexible Environment を使って ASP.NET Core アプリケーションを実行してみましたが、今度は Container Engine を使ってアプリケーションを動かしてみることにします。ちなみに Flexible Environment を使って動かす方法は以下になりま…

App Engine Flexible Environment で ASP.NET Core アプリケーションを動かしてみる

少し前に Google Cloud Platform の App Engine Flexible Environment でも ASP.NET Core アプリケーションの実行に対応したと聞いたので、一通り作成からデプロイまで試しておきました。App Engine Flexible Environment については良くわかってなかったで…

ASP.NET Core Identity に Windows Hello を使ったログイン機能を追加する

Windows Hello というか Web Authentication API を使って、簡単にサービスにログイン出来るようになって欲しいので、GitHub に ASP.NET Core Identity を使ったデモアプリケーションを公開しました。動かしながら仕組みを理解した方が良いと思いました。デ…

Docker Compose と Kudu を使って ConoHa 上に ASP.NET Core のデプロイ環境を作ってみた

App Service on Linux 向けとしてですが、Kudu の Mono 対応が進んでいたので Azure 以外の Linux 環境でも動くのではないかと思ったので、手軽な ConoHa を使って試してみました。そしてついでなので、ASP.NET Core アプリケーションをデプロイするところま…

Elastic Beanstalk を使って ASP.NET Core アプリケーションを実行する 2 つの方法を試した

最近は自分の中で ASP.NET Core への興味が高まってきてるので、実行環境をいつもの Azure ではなく今回は AWS の Elastic Beanstalk を使ってみることにします。タイトルに 2 つの方法と書いた通り、Windows Server 2012 R2 と Amazon Linux 上の Docker の…

ASP.NET Core MVC アプリケーションでスキャフォールディングが使えない時は

サンプルではなく、実際に ASP.NET Core MVC アプリケーションを開発する人が選ぶと思われる認証なしテンプレートでは、Visual Studio でのスキャフォールディングに必要なパッケージが追加されません。私は基本的に認証なしを選んで作っていくタイプなので…

ASP.NET Core MVC で大きく変わったフィルタについて調べた

仙台に行ったとき、ぼんぷろおじさんに ActionFilter で実行時にオプションを扱う場合にどうすればいいのか聞かれて、フィルタ周りまとめないといけないことを思い出したので書きます。思いのほか長くなってしまったので、久し振りに目次記法を使うことにし…

開発環境でも ASP.NET Core MVC の RequireHttps 属性を使えるようにする

ASP.NET MVC の RequireHttps 属性を使うと、HTTP で来た場合には HTTPS にリダイレクトしてくれるのですが、開発環境で 443 以外のポートを使っている場合、正しく動作しないという欠点がありました。 [RequireHttps] public ActionResult Index() { return…

ASP.NET Core MVC の Content Negotiation を活用する

ASP.NET Web API 2 でも Content Negotiation は実装されていましたが、Core MVC では進化してさらに便利な機能が追加されていたので、簡単にですが調べてみました。Formatting Response Data — ASP.NET documentationドキュメントも割と揃ってきているので…

ASP.NET MVC アプリケーションを ASP.NET Core MVC にマイグレーションしようとして挫折した話

これは既に本番環境で動作している ASP.NET MVC アプリケーションを、軽い気持ちで ASP.NET Core MVC にマイグレーションしようとした考えが甘い男の、真実の物語である。ネタ記事っぽいですが、割と真面目にマイグレーションしようとして、余りにも辛くなっ…

既存の ASP.NET Web API アプリケーションを ASP.NET Core MVC 1.0 へマイグレーションしてみた

.NET Core 1.0 と ASP.NET Core 1.0 が RTM したので、とりあえず簡単なものからマイグレーションしてみました。ターゲットは無職になる前に作ったこれです。時間を持て余した感あるので、俺得 API 作ってた https://t.co/9ag1MfPiGU— しばやん (@shibayan) …

.NET Core / ASP.NET Core 1.0 が RTM になりました

Red Hat DevNation 2016 で .NET Core 1.0 の RTM が発表されるはずですが、一足お先に SDK などが RTM になっていたのでインストールしました。詳しいことは @kosmosebi や @ufcpp が書いてくれます。.NET のページから Preview の文字が消えて、各プラット…

Road to RTM - ASP.NET Core に至るまでの迷走の歴史

6/29 に .NET Core / ASP.NET Core 1.0 の RTM が決まって嬉しいので、これまで ASP.NET Core がどのような道を辿ってきたのかを、つらつらと書いてみたいと思ったので書きます。要するにネタ記事です。ネタ記事なので「ああ、こういうこともあったなぁ(白…

.NET Core / ASP.NET Core 1.0 が 6/27 に RTM となるらしい

戦車道で人生の大切なことを学んでいる間に dotnetConf 2016 のキーノートが始まっていました。単純に忘れていたので、ストリーミングを見返しながらぶちぞうメソッドでブログを書いてみます。キーノートのスピーカーは Scott Hunter です。最初は .NET 周り…

ASP.NET Core 1.0 に組み込まれたロギングフレームワーク

ASP.NET Core 1.0 はフレームワークの足回りのアップデートが大量に行われています。その中でもロギングフレームワークが標準で提供されているのは、割と重要な点だと思います。Logging — ASP.NET documentation公式ドキュメントのファンダメンタルズ以下に…

ASP.NET Core 1.0 でオプションを柔軟に扱えるようになった話

ASP.NET というか .NET Framework は System.Configuration を使って、アプリケーションの設定読み込みを実装するか、完全に自前で XML などを読み込む処理を作っていたかと思いますが、ASP.NET Core ではフレームワークとして用意されました。Configuration…

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 では大きく変化しています。大きく変化しているのですが、それぞれのメソッドで役割が綺…