良く言えば多様化
.NETほにゃららが溢れていて、どういうフレームワークがあるのか、いつ何を使うのか、実は知らないだけでそんなのあるんかい!ということが日常茶飯事です。一時期 Java開発していたのもあって、何がなんだかです。(Javaも大概多いですけどね)
全てを書き上げる自身はありませんが、がんばってみます。
いやいや、もっとちゃんと知りたい!という方はこちらへ。
https://blogs.msdn.microsoft.com/chack/2013/09/11/net/
デスクトップ アプリケーション
-
.NET Windows Presentation Foundation (WPF)
RIAなデスクトップ・アプリケーション。UIにはXAMLを利用する。XAMLはストアアプリケーションでも利用するので、覚えると両方の開発スキルとなる。 -
.NET Windows フォーム
クラシカルなWindowsフォーム。慣れている人が多いだろうけど、今後のスキルのためにもWPFの方が良いかと。。 -
LightSwitch プロジェクトのデスクトップ クライアント
モデル駆動型開発によって2層アプリケーション(Out of Browser SilverLight+DB、3層アプリケーション(Out of Browser SilverLight+IIS+DB) の開発が行える。
Windowsストアアプリ
お好きなので。
- .NET/XAML
- WinJS/HTML5
- C++/XAML
UWP (Universal Windows Platform)
お好きなので。
- .NET/XAML
- WinJS/HTML5
- C++/XAML
- Apache Cordova: JavaScript、Android/iOS
- Xamarin: C#、Android/iOS
- Unity: C#、Android/iOS/Mac/Linux/Xbox/PlayStation
- Visual C++ for Cross-Platform Mobile Development: C++、Android/iOS
Webアプリケーション
-
LightSwitch プロジェクトのWeb クライアント
デスクトップと同じくモデル駆動型開発のよって3層ブラウザ(In Browser SilverLight+IIS+DB) の開発が行える。 -
ASP.NET Web フォーム
Windowsアプリケーションと同じ感覚でイベントドリブンなWebサイトを構築できます。従来のWindows開発者であれば馴染みありますが、昨今のHTML/JavaScript開発とはかけ離れています。 -
ASP.NET MVC
Railsを意識した大規模開発向けのフレームワーク。MVCといってもルーティング、モデルバインド、ヘルパーメソッドといったViewやControle部分が主でModel部分はADO.NET、LINQ、.Net EntityFrameworkを利用する。 -
ASP.NET Web ページ
Webフォームは今時じゃない、MVCは大げさすぎる、といことで登場。Razor記法によってHTML内にC#やVB.NETのコードを埋め込んでいく。ページとコードを分離しない単一管理が嫌いな人には使えない。 -
APS.NET Single Page Application (SPA)
これは単体のフレームワークではなく、APS.NET MVCを利用した設計パターン。Knockout(JavaScript内で MVVMパターンをサポート)や Breeze(高度なデータ管理が可能)などのJavaScriptライブラリを多用。双方向通信するには SignalR を使用する。 -
ASP.NET Scaffolding
データモデルとなる型を元に、CRUDを行う画面とそのコードのスケルトンを自動で生成する機能。
Web サービス
-
ASP.NET Web API
RESTによるWeb APIを提供する。データ形式は OData、JSON。ちなみにGoogleさんが提唱しているのはGData。 -
Windows Communication Foundation (WCF)
サービス指向アーキテクチャのためのSOAPを用いたプロセス間通信を提供している。トランスポート・プロトコルとしてHTTP/HTTPS/TCP/名前付きパイプ/MSMQが利用できる。 -
WCF Data Services
ODataのみをサポートしたREST -
Windows Workflow Foundation (WF)
ワークフローモデルを記述することで動作可能なアプリケーションを構築する。外向きにはWCFだが、内部ではワークフローに従ったビジネスロジックが動作する。 -
ASP.NET SignalR
WebSocketなどを用いたリアルタイムな双方向通信を行うフレームワーク。数多くのクライアントに対してプッシュ通信できる。
データーアクセス
-
ADO.NET (ActiveX Data Object .Net)
データベースへの接続・操作、トランザクション管理といったデータプロバイダと、DataSetコレクションと呼ばれるデータをメモリ上に保持する仕組みの提供している。 -
ADO.NET Entity Framework
O/Rマッパー。開発スタイルデータベースファースト、モデルファースト、コードファーストが選択できる。接続のリトライと非同期処理もサポート。 -
LINQ to SQL
クエリー式によるSQL操作。
その他のテクノロジー
-
Unity Application Block
DIコンテナ -
MEF (Managed Extensibility Framework)
プラグインを作るためのフレームワーク -
WIF (Windows Identity Foundation)
認証フレームワーク -
TPL (Task Parallel Library)
タスク並列ライブラリ -
PLINQ (Parallel Linq)
クエリー並列 -
Microsoft Bot Framework
Skype、Slack、SMS、メールなどに向けたBotを作るためのフレームワーク
所感
なんか、書ききれていない気がします。
というか、説明があっさりすぎて、分かる人にしか分からないというパターン。
MVVMとかRESTとかSOAPとかLINQとかDIとかO/Rといった用語が分からない方は、まずはそれらのお勉強を!