あまりにも情報不足なのと、Microsoftからの情報提供が悪過ぎるのにムカついたので書きまくる!
本サイト内関連ページ
概要 †
ASP.NETの歴史 †
- 1996年 : Active Server Pages
- 2002年 : ASP.NET
- 2009年 : ASP.NET MVC
- 2016年 : ASP.NET Core
ASP.NET Core の特徴 †
- オープンソースで開発されている
- 動作環境がWindowsに加えMacとLinuxに正式に対応した
- これまで個別の機能であった「ASP.NET MVC」「WebAPI」「WebPages?」は、ASP.NET Coreで再設計され、1つに統合された
- Linux/Mac/Windows共通で使用できるコマンドラインインターフェース「.NET CLI」が用意された。このコマンドを使用することで、リポジトリから取得してきたソースコードを、環境を意識することなく依存解決を行い、ビルドし、実行できるようになった。
- IIS 非依存。libuvベースのKestrelという新しいWebサーバーが提供され、IISやNginxとの連携することもできる。
- MVC/Entity Framework Core の知識を必須とするため、ASP.NET Web Forms や型付きデータセットで開発されてきた方々には、非常にハードルが高い開発プラットフォームにもなっている
- 高水準 UI 部品が大量に存在していた ASP.NET Web Forms から、いきなりスクラッチ開発に近い ASP.NET MVC/EF 開発ベースに移れと言われても正直キツイ(らしい)
環境構築 †
環境設定 †
日本語処理 †
文字エンコーダーの設定変更 †
View に
汉语/漢語
のような文字が表示される場合はこの設定変更を検討する。
- ASP.Net Core + Razorで日本語がエスケープされないようにする
- Startup.cs に以下の記述を加える
using System.Text.Encodings.Web;
using System.Text.Unicode;
public void ConfigureServices(IServiceCollection services) {
services.AddSingleton(HtmlEncoder.Create(UnicodeRanges.BasicLatin,
UnicodeRanges.CjkSymbolsandPunctuation,
UnicodeRanges.Hiragana,
UnicodeRanges.Katakana,
UnicodeRanges.CjkUnifiedIdeographs));
// その他 .AddMvc() など...
}
- デフォルトではHtmlEncoder?.Defaultが使われ、これがU+0000..U+007F以外は全てエスケープする設定になっている
- なので、そこでDIにて日本語も許容するように設定
環境変数 †
ログ出力 †