ホームページ  >  記事  >  バックエンド開発  >  .NET プラットフォームで一般的に使用されるフレームワークをいくつかまとめます。

.NET プラットフォームで一般的に使用されるフレームワークをいくつかまとめます。

零下一度
零下一度オリジナル
2017-06-24 09:22:264251ブラウズ

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

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: Microsoft Patterns&Practicest チームによって開発された IOC 依存関係注入フレームワークで、AOP 横断的な問題をサポートします。

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: WCF で Microsoft によって使用されるシリアライザー。

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

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

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

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

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

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

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

Clay Dynamic: オープンソースの動的言語動的フレームワークを使用すると、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 仮想マシン。.NET 上で JAVA を実行できます。

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 コントロール ライブラリ。

プリズム: 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 などの ID 認証をサポートする機能を Web サイトに提供します。

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

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

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

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

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

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

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

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

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

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

RabbitMQ

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

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

ActiveMQ

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

Kafka/Jafka

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

Redis

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

ゼロMQ


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

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