かざいむ日誌

IT関係で知ったことなどを記事としてあげていきます。内容に不備や質問などあればぜひコメントをよせてください。

ASP.NET Coreのメモ

ちょっと関わるプロジェクトで構成考えることになりそうなので、ASP.NETASP.NET Coreを調べようと思って、この動画を見た『ASP.NET MVC プログラミング入門の入門(増田智明)』

まず、.NETでオープンソースというとmonoを思い出すかもしれないが、.NET Coreとはmonoとは異なる。monoからXamarinが派生した?XamarinはMicrosoftに買収されたので、MicrosoftとしてはXamarin推し。XamarinはiOSAndroid用で、それ以外のOS、LinuxMac用として.NET Coreが誕生した。.NET Coreは.NET Frameworkの中心の部分をLinuxでも動くようにしたもの。

.NET FrameworkASP.NETASP.NET MVCの3つのレイヤーで選択肢がある。

https://codezine.jp/static/images/article/10482/10482_001_s.png

.NET Framework上に、ASP.NET Coreを載せるのも出来るが、Coreで統一するか、Windows動作環境(IIS上で動作)で統一するかのどちらかじゃないかとのこと。Windowsサーバ以外でも動かすには.NET Core、ASP.NET Coreの組み合わせを選ぶ。

 

この動画では.NET Core、ASP.NET Core、ASP.NET Core MVCを紹介している。プロジェクトの作成で、Coreがついているものを選択すると作成可能。ASP.NET CoreではVisual Studioでも起動できるが、コマンドラインからも起動が可能。プログラムを実行し、プロセスを立ち上げる形。1プロセスで動く、Node.jsと同じ。

f:id:name_untitled:20181007154337p:plain

 

認証、MVCなどの機能はモジュール化されていて、ベースのサービスに追加していく形をとる。(普通のASP.NETも4.5以降はそんな感じな気がする)

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
}

 

がっつり使うならIISを使う方が楽かも。
MVCパターンについては特に説明なしで、MVCパターンからVをなくしたのが、WebAPI。Controller、Modelから出来ていて、リクエスト、レスポンスの仲介として、InputFormatter、OutputFormatterがある。Formatterは自分で作ってもいい。ただ、別の記事によるとASP.NET MVCのプロジェクト内蔵のWebAPIを使ってもいいが、WebAPIプロジェクトを別に作った方がいいらしい。

codezine.jp