LoginSignup
23
29

More than 5 years have passed since last update.

.NETテクノロジーまとめ

Last updated at Posted at 2016-07-18

良く言えば多様化

.NETほにゃららが溢れていて、どういうフレームワークがあるのか、いつ何を使うのか、実は知らないだけでそんなのあるんかい!ということが日常茶飯事です。一時期 Java開発していたのもあって、何がなんだかです。(Javaも大概多いですけどね)

概要レベルの全体像はこんな感じ。
.NET Framework

全てを書き上げる自身はありませんが、がんばってみます。

いやいや、もっとちゃんと知りたい!という方はこちらへ。
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といった用語が分からない方は、まずはそれらのお勉強を!

23
29
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
29