5

Visual Studio で SQL Server を使用しています。私はウェブアプリケーションを作っています。

テーブルとリレーションシップを含むデータベースを作成しました。

選択、更新、削除、クエリなどを実行できる関数を C# で作成する必要があります。物事をクリーンで安全に保つためにこれを行う適切な方法についての洞察を持っている人はいますか?

つまり、どのように接続を行うべきか、どのようにデータを返すか、障害に対処するべきかなどです。

私が見つけたほとんどのチュートリアルは、ベスト プラクティスを使用していないようです。

4

5 に答える 5

6

ORMを使用していない正当な理由はありますか? Entity FrameworkLinq to SQLNHibernateなど、ほんの数例を挙げるだけです。かなり複雑な SQL ステートメントを実行している場合を除き、ORM は常に論理的な選択です。接続を処理し、ある程度のセキュリティを提供し (つまり、SQL インジェクションを回避するための措置を講じる)、コードを読みやすく保守しやすくします。

于 2013-01-14T21:23:46.910 に答える
1

比較的小規模でシンプルなアプリケーションであれば、NHibernate や Entity Framework のような本格的な ORM は必要ないかもしれません。

代わりに Micro ORM を使用できます。これらは単純なライブラリであり、EF と NH が実行できるすべての機能を提供するわけではありませんが、クエリをオブジェクトのリストにマッピングする機能はすべて備えています。
アプリがそれほど複雑でない場合は、それで十分かもしれません。

最もよく知られている .NET 用の Micro ORM は次のとおりです。

于 2013-01-14T21:32:19.223 に答える
1

Microsoft のベスト プラクティス "日常" は Entity Framework です。それ以外の場合は、NHibernate などの ORM も適切な選択です。

于 2013-01-14T21:23:56.457 に答える
1

いくつかのオプション:

  1. Entity Framework は、多くの場所でベスト プラクティスと見なされています。
  2. Linq to SQL もかなり良い習慣です。
  3. 他のORM、一般的なものは通常良い習慣です
  4. ストアド プロシージャを介して独自のバックエンド インターフェイスを記述します。これはベスト プラクティスではなく、間違いなく時間の節約にもなりませんが、ORM とその小さなアプリケーションに慣れていない場合は、この方が早いかもしれません。

編集: インライン SQL クエリを使用しないことをお勧めします。SQL インジェクションの穴を開けると誤って述べましたが、正しく行えば安全に実行できます。私が言うべきだったのは、ベストプラクティスをしようとしているのであれば、それらを使用しないことです. 主な理由は、他のプログラマーがあなたのコードに取り組んでいて、あなたがインライン SQL を実行したことを確認している可能性があるためです。彼らが SQL インジェクションについて知らない場合、彼らは穴を許容する変更を行う可能性があります。インライン SQL を完全に回避することで、セキュリティ上のミスを回避できるだけでなく、インライン SQL を使用していなかった場合、将来のプログラマーがインライン SQL を使用する可能性が低くなるという意味で、防御的なプログラミング手法にもなります。最初の場所。混乱しないことを願っています:)

于 2013-01-14T21:29:32.460 に答える
0

私の意見では、テーブルとリレーションを使用する最もクリーンな方法は、ObjectDataSourceを使用してから、Databindを使用してすべてのクエリを制御し、SPに配置することです。

2つ目は、EntityFrameworkとLinq-to-SQLを使用することです。

接続文字列をweb.configファイルに入れ、Singletonクラスを使用してConnectionオブジェクトを取得します。

于 2013-01-14T21:27:11.323 に答える