前回に引き続き、「独習 ASP.NET Webフォーム(第6版)」を
読んで学んだことを少しずつ記事にまとめていきたいと思います。
読んで学んでインプットするだけではなく、
ブログ記事にまとめてアウトプットして理解を深めていきたいと思います。
ASP.NETの構造
今回はASP.NETの構造について解説していきたいと思います。
書籍で紹介されている時点の.NET Framework 4.8環境でのASP.NETを基準に解説していきます。
ASP.NETでは、大きく分けて2種類の開発技術を提供しています。
Webアプリケーションと呼ばれるブラウザーからアクセスするタイプのアプリケーション開発技術、
Webサービスと呼ばれるアプリケーション連携のためのサービス開発技術に大別できます。
両者でどのような技術があるのか、それぞれ具体的に解説していきます。
ASP.NET Webアプリケーション
まずは、本書籍で扱っているASP.NET 1.0から提供されている「Webフォーム」と呼ばれる技術があります。
Webフォームの技術についての詳細は別記事にて紹介しているため、今回は割愛します。
次に、「ASP.NET MVC」と呼ばれるWebフォームよりも汎用的なWebアプリケーションを作成するためのフレームワークがあります。
これはASP.NET 4.0から正式に提供されるようになり、MVC(Model-View-Controller)モデルの開発手法をASP.NETで可能としたフレームワークとなっています。
ASP.NET MVCでは、Webフォームと比較して、JavaScriptやCSSとの親和性が高く、
フロントエンドに重点を置いたモダンな開発が可能となっています。
正直、最近ではASP.NETで一番使用されているフレームワークであり、今後もMVCを使用した開発がどんどん増えていくと予想できます。
最後に、ASP.NET Web Pagesと呼ばれる技術があり、これはPHPによく似た技術となっており、
HTMLに対して「こんにちは、@nameさん!」のような「@〜」の形式でコードを埋め込んで開発していくスタイルとなっています。
特徴としては、軽量のWebアプリケーション開発用に提供されており、初学者でも手軽に開発を始められます。
残念ながらWeb Pagesはあまり利用されていない現状で、今後も広く利用されることは期待できない技術となっています。
ASP.NET Webサービス
ASP.NETのWebサービスでは、「ASP.NET Web API」と呼ばれるブラウザやデスクトップアプリ、
タブレットやスマートフォンのモバイル端末など、さまざまなクライアントへHTTPサービスを提供するためのフレームワークとなっています。
ASP.NET Web APIは、ASP.NET4.6から提供されており、外部のアプリケーションに対して、
JSONやXMLといったさまざまな形式のデータを提供するための仕組みを開発することができます。
次にSignalR(シグナルアール)と呼ばれるリアルタイムでの双方向通信を簡単に実行することが可能となるライブラリがあり、
チャットやリアルタイムのオンライン対戦ゲームなどに使用することができます。
SignalRでは、双方向通信のためのWeb Socketが使用できない場合でも、
Server Sent EventsやForever Frame、Ajax long pollingなどのトランスポートをサポートしてくれる特徴があります。(あまり詳しくないので詳細は調べときます)