良く言えば多様化
.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のみをサポートしたRESTWindows 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といった用語が分からない方は、まずはそれらのお勉強を!