0

C# 3.5 で独自のシンプルで洗練された Web アプリケーション フレームワークを開発する予定です。私はいくつかのアイデアを持っていますが、それをどのように実装すべきかはまだベストプラクティスではありません. 多分あなたは助けることができますか?

私のアイデア:

  • C# ライブラリ (DLL) です。
  • XSLT をテンプレート言語として使用する必要があるため、XML をデータ/モデル層の出力にする必要があります。
  • MySQL、SQL Server、ODBC など、さまざまなデータベースに接続する必要があります。
  • コマンド デザイン パターンのように、コマンド ベースである必要があるため、そのコマンドにグループ化されたいくつかのパラメーターを含むコマンドを投稿して、「何か」を実行できます。
  • 1 つの投稿からのすべてのコマンドとデータベース アクションは 1 つのトランザクションに含まれている必要があるため、すべてをロールバックできます
  • セキュリティ/承認モデルが必要です (何が良いのですか?)
  • /a/b/c が /?id=33 に解決されるように、何らかの URL 解決が必要です。
  • プラグイン可能である必要があるため、特定のニーズを持つユーザー向けの Web アプリを作成する場合、ベース エンジン ライブラリを変更する必要はありません。
  • 内部にキャッシングおよび/または圧縮技術が必要です
  • 高速でスレッドセーフで、パフォーマンスが高い必要があります
  • デバッグログが必要です
  • XSLT への出力を動的にスクリプト化するために、IronPython のようなある種の動的スクリプトをデータ/モデル層に実装すると便利です。これにより、Visual Studio に入って DLL を調整しなくても、調整をすばやく行うことができます。

そのようなフレームワークのセットアップを開始するための最良の方法は何ですか? または、C# でこのようなフレームワークが既に存在しますか?

これは小さなアイデアの 1 つです。「Customer」テーブルと「Address」テーブルがあり、レコードをデータベースに追加して彼にメールするための html フォームをポストしたい場合、これらのフィールドを 1 つのポストアクションでポストする必要があります。

Customer.ACTION = add
Customer.Name = "John Smith"
Customer.Email = "john.smith@emailaddress.com"

Address.ACTION = add
Address.CustomerId = #Customer.ResultId#
Address.Street = "Mainstreet"
Address.Number = "1"

Mail.ACTION = send
Mail.AFTER = Customer
Mail.To = #Customer.Email#
Mail.From = "test@case.com"
Mail.Subject = "Welcome"
Mail.Body = "Welcome new customer!"

エンジンはポストを受信し、リフレクションによって、必要なコマンド (この場合は DatabaseCommand と MailCommand) のクラスを収集して実行します。ほら、並べ替えである種のキューイングを使用したいのです。この場合、顧客コマンドが最初である必要があり、その後にメール (Mail.AFTER を参照) および/またはアドレス (依存関係 #Customer.ResultId# を参照) が続きます。

このプロジェクトについてのあなたの考えは何ですか?

よろしく

4

3 に答える 3

4

ゼロから始めるのではなく、MVC モデルを拡張することを検討しましたか?

xslt で何をしようとしているのか正確にはわかりません - xml を送信して html に変換したかったですか? その場合は、ActionResult を継承してみて、標準の .NET ライブラリを使用して変換を実行できます。

このアプローチは、.NET ライブラリに従って mysql、sql サーバー、oracle などをサポートし、セキュリティ/認証を備え、カスタム ルートを使用して /a/b/c -> /?id=33 マッピングを実行でき、オブジェクト指向ベースであり、プラグイン可能で、ベースが ASP.NET であるためキャッシュを実行でき、IIS で GZIP/DEFLATE 圧縮を有効にできます。

xslt をデータ/モデル レイヤーに適用するのは適切な場所のようには思えません。これをビュー レイヤーの近くに配置します。

POST データに関しては、標準の MVC の方法を使用してこの動詞を処理することを選択できます。それ以外の場合は、RESTful ベースのアーキテクチャhttp://en.wikipedia.org/wiki/Representational_State_Transferが必要なようです。

もちろん、いつでも IHttpHandler を継承して、自分自身に多くの苦痛を与えることができます;)

于 2009-11-14T11:02:43.187 に答える
1

フレームワーク(Webベースかどうかに関係なく)の開発には大量の作業が伴います。Ruby用の2つの人気のあるWebフレームワーク「Rails」とPython用の「Django」について考えてみます。それらはチームによって構築され、非常に広範囲です。あなたはそれを作ることができます、しかしそれは間違いなく多くの時間を要します。

私が知っている.NET用のWebフレームワークはそれほど多くありませんが、次の点に注意してください(ただし、必ずしもすべてが「Webフレームワーク」であるとは限りません)。

  1. ASP.NET MVCは、「Rails」をモデルにしています。
  2. サブテキストプロジェクト
  3. SpringFramework.NET / NHibernate.NET
  4. NetTiers
  5. キャッスルプロジェクト
  6. CodePlex上のさまざまなWeb/フレームワーク
    • CommonLibrary.NET
    • カタルシス
    • MojoPortal
于 2009-12-28T07:42:33.247 に答える