私たちは、新しい内部アプリの新しいフレームワークとビジネスの方法を設定中です。現在の設計では、すべてのセキュリティ ロジックをデータベースで処理する必要があり、すべての情報 (つまりすべて) はストアド プロシージャを介してデータベースに出入りします。
理論的には、データ アクセス レイヤーはストアド プロシージャから情報を要求し、認証をデータベースに渡します。データベースは、ユーザーの役割/権限を決定し、タスクを実行するかどうか (データの取得か更新か) を決定します。
これは、データベース トランザクションが少なくなることを意味すると思います。データベースへの 1 回の呼び出し。セキュリティがデータ アクセス レイヤーにある場合、ユーザーが適切なアクセス許可を持っているかどうかを判断するために 1 回のデータベース呼び出しが必要であり、その後、アクションを実行するために 1 回の別のデータベース呼び出しが必要になります。
私は、SQL Management Studio が IDE として完全に欠けていることに気づきました。私の主な懸念は、パフォーマンスの向上を最小限に抑えるために、ストアド プロシージャに大量のビジネス ロジックを維持しなければならなくなることです。
現在、ORM に LINQ を使用しています。軽くて速いように見えますが、何よりも、急速に開発するのが本当に簡単です.
メンテナンス コストは、パフォーマンスの向上に見合っていますか? 顕著なパフォーマンスの向上さえあると思い込んでいるでしょうか? それとも、私たちは自分自身のために悪夢を作っているだけですか?
私たちの環境:
- 社内のミッション クリティカルではないビジネス アプリ
- C#/ASP.NET 3.5
- Windows 2003
- Microsoft SQL Server 2005
- 約 500 人のユーザーを持つ 35 の中規模 Web アプリ