ホームページ  >  記事  >  バックエンド開発  >  .NET プラットフォームに基づいて一般的に使用されるフレームワークの詳細な紹介

.NET プラットフォームに基づいて一般的に使用されるフレームワークの詳細な紹介

黄舟
黄舟オリジナル
2017-03-09 15:37:371441ブラウズ

.NET を学習して以来、洗練されたプログラミング スタイル、非常にシンプルなスケーラビリティ、十分に強力な開発ツール、最小限の学習期間により、このプラットフォームに非常に興味を持ち、仕事や勉強でコンポーネントに関するオープン ソースの知識も蓄積してきました。今度はそれらをここで整理します。また思いついた場合は、時間をかけてこのログに追加し続け、独自のコンポーネント エクスペリエンス ライブラリを作成します。

分散キャッシュ フレームワーク:

Microsoft Velocity: Microsoft 独自の分散キャッシュ サービス フレームワーク。

Memcahed: Web サイトのアクセス速度を向上させるために現在多くの Web サイトで使用されている分散キャッシュ システム。

Redis: 高性能の KV データベースです。 Memcached の登場により、いくつかの面で Memcached の欠点が大幅に補われます。

EnyimMemcached: 優れた分散バランシング アルゴリズムを統合した、Memcached の最高の .NET クライアントにアクセスします。

オープンソース .NET システムの推奨事項:

OXITE: Microsoft ASP.NET MVC ケースのデモ フレームワーク。

PetShop: Microsoft ASP.NET ペット ストア。

Orchard: 海外の MVC オープンソース ブログ システム。

SSCLI: NET Framework 2.0 時代の Microsoft のオープンソース コード。

DasBlog: ASP.NET に基づいた海外のブログ システム。

BlogEngine.NET: 外国の無料のオープンソース ブログ システム。

Dotnetnuke.NET: ASP.NET に基づく非常に優れたオープンソース ポータル プログラム。

Discuz.NET: 国内オープンソースフォーラムコミュニティシステム。

nopCommerce および Aspxcommerce: 高品質の海外オープンソース B2C Web サイト システム。

JumboTCMS と DTCMS: 2 つの国産オープンソース Web サイト管理システム:

ロギング例外処理:

Log4Net.dll: 軽量で無料のオープンソースの .NET ロギング フレームワーク。

エンタープライズ ライブラリ ログ アプリケーション ブラック: Microsoft エンタープライズ ライブラリのログ記録。

Elmah: 最も人気のある ASP.NET アプリケーション例外ログ フレームワークを実装します。

NLog: Log4Net よりもパフォーマンスが高く、使用と保守が簡単な、シンプルで柔軟なロギング ライブラリです。

NoSQL データベースについて:

Mongodb: 分散ファイルストレージデータベース。

Membase: ファミリーの新しい重鎮メンバー。

自動タスクスケジュールフレームワーク

Quartz.NET: オープンソースのジョブ スケジューリングと自動タスク フレームワーク。

Topshelf: Windows サービスを作成するためのもう 1 つのオープンソース フレームワーク

依存関係注入 IOC コンテナー フレームワーク:

Unity: AOP の横断的な問題をサポートする、Microsoft のパターン&実践チームによって開発された IOC 依存関係注入フレームワーク。

MEF (Managed Extensibility Framework): .NET アプリケーションを拡張するために使用されるフレームワークであり、プラグイン システムを開発できます。

Spring.NET: 依存関係の注入、アスペクト指向プログラミング (AOP)、データ アクセスの抽象化、および ASP.NET 統合。

Autofac: 最も人気のある依存関係注入および IOC フレームワーク。軽量かつ高性能で、プロジェクト コードへの侵入はほとんどありません。

PostSharp: 静的 AOP の横断的な懸念を実装し、使いやすく強力で、ターゲットのインターセプト方法を変更する必要がありません。

Ninject: .NET 軽量オープンソースに基づく依存性注入 IOC フレームワーク

一般的に使用されるいくつかの ORM フレームワーク:

EF(ADO.NET Entity Framework): ADO.NET に基づいて Microsoft によって開発された ORM フレームワーク。

Nhibernate: .NET 環境用の軽量 ORM フレームワーク。

SqlMapper.cs: 小規模プロジェクト向けの一般的な C# データベース アクセス クラス。

AutoMapper: 多くのハードコーディングを削減でき、コンパクトで柔軟性があり、許容可能なパフォーマンスを備えた人気のあるオブジェクト マッピング フレームワーク。

SubSonic: 優れたオープンソース ORM マッピング フレームワークであり、独自のニーズを満たすコード ジェネレーターも提供します。

FluentData: Fluent API に基づくオープンソース チェーン クエリ ORM 軽量フレームワーク。

Dapper: EMIT に基づいて生成された軽量で高性能な ORM フレームワーク。

EmitMapper: 実行時にリフレクション メカニズムを使用する代わりに EMIT を通じて IL コードを動的に生成する高性能 ORM フレームワーク。

フォーマットとデータ型の変換

Newtonsoft.Json: 現在、.NET 開発で最も人気のある JSON シリアル化ライブラリであり、WebApi ライブラリの新しいバージョンの基礎を提供します。

System.JSON.dll: Microsoft によって開発された JSON シリアル化コンポーネント (別途ダウンロードする必要があります)

DataContractJsonSerializer および DataContractXmlSerializer: Microsoft が WCF で使用するシリアライザー。

JavaScriptSerializer: WEB 開発者向けの Microsoft のデフォルトの JSON フォーマッタ。

iTextSharp、PDFsharp、PDF.NET: .NET を通じて PDF ドキュメントを処理および生成するためのコンポーネント。

SharpZipLib.dll: 無料でオープンソースの ZIP および GZIP ファイル解凍コンポーネント。

Math.NET: 強力な数学演算、微積分、方程式解法、科学演算。

DocX: Word ソフトウェアをインストールする必要はなく、C# を通じて Word ファイルを操作します。

SharpSerializer: オープンソースの XML、バイナリ、JSON、圧縮および最適化フレームワーク。

リフレクション言語と動的言語

Clay ダイナミック: オープンソースのダイナミック言語のダイナミック フレームワークを使用すると、JavaScript のような方法でオブジェクトを作成できます。

ExusedObject: 動的言語を通じてクラス外のプライベート メンバーにアクセスします。

PrivateObject: クラスのプライベート メンバーへの外部呼び出しを容易にする Microsoft 単体テスト フレームワークのクラス。

クロスプラットフォームおよびランタイム ソリューション

MONO.NET: クロスプラットフォームの .NET オペレーティング環境。.NET をクロスプラットフォームで実行できます。

DotGnu Portable.NET: MONO.NET に似たクロスプラットフォーム ランタイム。

Phalanger: PHP を .NET にコンパイルして、PHP と .NET の間の相互運用性を実現します。

VMDotNet: China Mobile Fetion によって使用される .NET ランタイム。

Unity3D: Microsoft によって強力にサポートされている C# および JavaScript 用のクロスプラットフォーム ゲーム開発フレームワーク。

Cassini、IIS Express、Cassinidev: オープンソースの ASP.NET 実行環境。

Katana: OWIN 仕様に基づいた Microsoft の非 IIS ホスティング ASP.NET および MVC。

IKVM.NET: .NET に基づく JAVA 仮想マシン。JAVA を .NET 上で実行できるようにします。

WEB開発・デザイン

Jumony Core: .NET に基づいて開発された HTML エンジン。

Microsoft.mshtml.dll、Winista.HtmlParser.dll、および HtmlAgilityPack.dll: HTML ドキュメントを解析および処理するためのフレームワーク。

JavaScript.NET および ClearScript (Microsoft 製): .NET に基づいて開発された JavaScript エンジン。

NCrawler: HTML 処理エンジン htmlagilitypack を備えたオープンソースの Web クローラー ソフトウェア。

AntiXSS: クロスサイト XSS スクリプト侵入攻撃を防ぐための Microsoft の公式オープンソース ライブラリ。ホワイトリスト メカニズムを通じてコン​​テンツをエンコードします。

YUICompressor.NET、Microsoft Ajax Minifier、Google Closure Compiler: JavaScript および CSS コンプレッサー。

NancyFx: これは優れた軽量オープンソース .NET WEB フレームワークです。簡単なWEBアプリを手早く作りたい場合。

AspNetPager: 複数のページング メソッドをサポートするよく知られた国内 ASP.NET ページング コントロール。

NOPI.dll: Excel レポートをエクスポートするためのプラグイン (Microsoft OpenXml に基づいて実装) (nopi.css.dl は CSS を通じてスタイルを設定します)

エンタープライズ ライブラリ: エンタープライズ アプリケーション開発のための Microsoft のベスト プラクティス コンポーネント。

PowerCollections: 海外の才能ある人によって書かれた高度なオープンソース コレクション。

モバイルインターネットとクラウドコンピューティング

PushSharp: .NET を通じてさまざまなモバイル プラットフォームにメッセージをプッシュします。

mono for android: .NET 言語を使用して Android アプリケーションを開発:

MonoTouch: .NET 言語を使用して IOS アプリケーションを開発します。

PhoneGap と AppCan: クロスプラットフォームの HTML5 ベースのモバイル開発プラットフォーム。

Cordova: PhoneGap によって Apache に提供されたオープンソース プロジェクトは、PhoneGap を駆動するコア エンジンです。

ネットワーク通信とネットワークプロトコル

SuperSocket: .NET に基づく軽量で拡張可能なソケット開発フレームワーク。

SuperWebSocket: .NET を介して TML5 WebSocket フレームワークを実装します。

XProxy: 組み込みの NAT、暗号化と復号化、リバース、直接、間接プロキシを備えたプラグインをサポートする基本的なプロキシ アセンブリ。

グラフィックスおよび画像処理フレームワーク

Paint.NET: .NET に基づく、小規模で柔軟かつ強力なグラフィックス処理オープン ソース プロジェクト。

Imagemagick.NET: C# を使用して、オープンソースの画像処理コンポーネント Imagemagick をカプセル化します。

Skimpt: .NET オープンソースに基づく画面キャプチャ ソフトウェア。

ImageGlue.NET: サポートされる形式の長いリストを備えた商用画像処理コンポーネント。

スプライトと画像の最適化フレームワーク: Microsoft CSS スプライト。複数の画像を 1 つの大きな画像と CSS スタイルに結合します。

デスクトップ アプリケーション フレームワーク

DevExpress: デスクトップ アプリケーション用の世界的に有名な UI コントロール ライブラリ。

Prism: WPF および Silverlight 用に Microsoft によって開発された MVVM フレームワークは、機能モジュール化のアイデアを使用して、複雑なビジネス機能と UI の結合を分離します。

WPFToolkit と Fluent リボン コントロール スイート: Office スタイルのリボン メニューを開発します。

テストとパフォーマンス評価

Faker.Net: 大量のテスト データの生成を容易にするフレームワーク。

Nunit: 軽量の単体テスト フレームワーク。

Moq: 非常に人気のある Mock フレームワークで、LINQ をサポートし、柔軟で高性能です。

xUnit: NUnit よりも優れた単体テスト フレームワークであり、Nunit フレームワークのアップグレードおよび改良版です。

MiniProfiler と Glimpse: MVC に基づく 2 つのパフォーマンス イベント監視フレームワーク。

トランザクションと分散トランザクションのサポート

KtmIntegration: NTFS ファイル システムをサポートするトランザクション オープン ソース クラス。

NET Transactional File Manager: ファイル システム操作 (コピー、移動、削除) のトランザクション サポートを追加します。

単語の分割、全文検索、検索エンジン

Lucene.net: あらゆる種類の情報に強力な検索機能を提供するために使用できる、人気のある高性能の全文インデックス作成ライブラリ。

Lucene.Net.Analysis.PanGu: Lucene.Net の Pangu 中国語単語セグメンテーション拡張ライブラリの最新バージョンをサポートします。

データ検証コンポーネントの構成

FluentValidation for .NET: LINQ 式メソッド チェーンに基づく Fluent インターフェイス検証コンポーネント。

Microsoft.Practices.EnterpriseLibrary.Validation.dll: Microsoft エンタープライズ ライブラリ検証ブロック。

CuttingEdge.Conditions: Fluent インターフェイス メソッドに基づくコントラクト プログラミング コンポーネント。

DotNetOpenAuth: OpenID、OAuth、InfoCard、その他の認証をサポートする機能を Web サイトに提供します。

オープンソースのチャート統計コントロール:

Visifire: 3D 描画、曲線、ポリライン、セクター、リング、台形をサポートする非常に効果的な WPF チャート コントロールのセット。

SparrowToolkit: 動的な曲線の描画をサポートし、オシロスコープ、CPU 使用率、および波形を描画できる WPF チャート コントロールのセット。

DynamicDataDisplay: Microsoft のオープンソース WPF 動的曲線グラフ、折れ線グラフ、バブル チャート、およびヒート マップ。

Message Queue カテゴリは、次のように拡張できます。 Kafka は、分散型のパブリッシュ/サブスクライブ ベースのメッセージング システムです。主な設計目標は次のとおりです:

これは、時間計算量 O(1) のメッセージ永続化機能を提供し、TB レベルを超えるデータに対しても一定の時間計算量アクセス パフォーマンスを保証します。

高スループット。非常に安価な商用マシンであっても、1 台のマシンで 1 秒あたり 100K を超えるメッセージの送信をサポートできます。

各パーティション内でのメッセージの連続送信を保証しながら、Kafka サーバー間のメッセージのパーティショニングと分散消費をサポートします。

オフライン データ処理とリアルタイム データ処理の両方をサポートします。

スケールアウト: オンラインの水平拡張をサポートします。

うさぎMQ

RabbitMQ は Erlang で書かれたオープン ソースのメッセージ キューで、AMQP、XMPP、SMTP、STOMP などの多くのプロトコルをサポートしているため、非常に軽量であり、エンタープライズ レベルの開発に適しています。同時に、ブローカー アーキテクチャが実装されます。これは、メッセージがクライアントに送信される前に中央キューに入れられることを意味します。ルーティング、負荷分散、またはデータの永続化が適切にサポートされています。

レディス

Redis は、キーと値のペアに基づく NoSQL データベースであり、積極的に開発および保守されています。 Key-Value型のデータベースストレージシステムですが、MQ機能自体をサポートしているため、軽量なキューサービスとして利用できます。 RabbitMQ および Redis のエンキューおよびデキュー操作は、それぞれ 100 万回実行され、100,000 回ごとに実行時間が記録されます。テストデータは、128 バイト、512 バイト、1K、10K の 4 つの異なるサイズに分割されます。実験によると、データが比較的小さい場合、キューに入るときは Redis のパフォーマンスが RabbitMQ よりも高くなりますが、データ サイズが 10K を超えると、キューから出るときは耐えられないほど遅くなりますが、Redis はデータに関係なく非常に優れたパフォーマンスを示します。データのサイズが大きく、RabbitMQ のデキュー パフォーマンスは Redis よりもはるかに低くなります。

ゼロMQ

ZeroMQ は、特に高スループット需要のシナリオにおいて、最速のメッセージ キュー システムとして知られています。 ZeroMQ は、RabbitMQ が苦手とする高度な複雑なキューを実装できますが、開発者は複数の技術フレームワークを自分で組み合わせる必要があります。技術的な複雑さは、MQ の適用を成功させるための課題です。 ZeroMQ には独自の非ミドルウェア モデルがあり、アプリケーションがこのサーバーの役割を果たすため、メッセージ サーバーやミドルウェアをインストールして実行する必要はありません。 NuGet を使用してインストールできる ZeroMQ ライブラリを参照するだけで、アプリケーション間でメッセージを簡単に送信できるようになります。ただし、ZeroMQ は非永続キューのみを提供するため、ダウンするとデータが失われます。このうち、Twitter の Storm バージョン 0.9.0 より前のバージョンでは、デフォルトでデータ ストリーム送信として ZeroMQ が使用されていました (Storm は、バージョン 0.9 から送信モジュールとして ZeroMQ と Netty の両方をサポートしています)。

アクティブMQ

ActiveMQ は Apache のサブプロジェクトです。 ZeroMQ と同様に、ブローカーおよびピアツーピア テクノロジーを使用してキューを実装できます。同時に、RabbitMQ と同様に、少量のコードで高度なアプリケーション シナリオを効率的に実装できます。

カフカ/ジャフカ

Kafka は、Apache のサブプロジェクトであり、高パフォーマンスの言語間分散パブリッシュ/サブスクライブ メッセージ キュー システムであり、Kafka のアップグレード バージョンです。これには、O(1) システム オーバーヘッドでメッセージ永続性を実行できる高速永続性、通常のサーバー、ブローカー、プロデューサー、およびシステムで 10W/秒のスループット レートに達する高スループットという特徴があります。 Consumer all がネイティブかつ自動的に分散をサポートし、負荷分散を自動的に実装します。これは、リアルタイム処理の制限が必要な Hadoop などのログ データやオフライン分析システムに適したソリューションです。 Kafka は、Hadoop の並列読み込みメカニズムを通じて、オンラインとオフラインのメッセージ処理を統合します。 Apache Kafka は、ActiveMQ と比較して非常に軽量なメッセージング システムであり、非常に優れたパフォーマンスに加えて、適切に機能する分散システムでもあります。

以上が.NET プラットフォームに基づいて一般的に使用されるフレームワークの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。