4

私は、既製の優れた代替品がない場合に、独自のビジネス データ アプリケーションを作成する会社にいます。ほとんどの場合、それは - ログイン画面 - ほとんどが SQL Server テーブルの視覚化であるいくつかの画面 - いくつかのレポートです。

以前は、MS Access を使用していました。これらは正確には最も優れたコーダーではありませんが、ほとんどの場合、データベースを構築する方法と UI に必要なものを理解しています。

アプリに突っ込んで使い始めることができる、一般的なログイン画面、メニュー画面などが必要です。これにより、開発速度と保守性が向上します。

もちろん、これを行う方法は複数あり、問題の核心はデータ アクセスにあるようです。オプションは次のとおりです。

1)ASP.NETのビデオのようなGUIデータセット/テーブルアダプターは、その方法を示しています。私たちの何人かはこれをたくさんやっています。開発速度に適しています。気付かないうちにデータ接続が変更されることがあります。巨大なメソッド シグネチャ (挿入または更新のフィールドごとに 1 つのパラメーター) は、エラーが発生しやすくなります。パラメータが正しく検出されないことがあります。動的パラメーター (オプションのフィルターを使用したレポートなど) は非常に困難です。

2) 非常に構造化された n 層スタイル。たとえば、グリッドのデータソースはオブジェクトのコレクションです。プレゼンテーション レイヤーは、オブジェクト A の静的メソッドを呼び出します。このメソッドは、データベースから返される行ごとに A をインスタンス化するデータ アクセス レイヤー メソッドを呼び出します。A には、テーブル内のすべてのフィールドの get/set メソッド、内部変数、およびコンストラクター変数が必要です。各フィールドは何度も入力されます。何にも縛られているものは何もありません。これほど単純なアプリにはやり過ぎの可能性があります。

3) 汎用テーブルは、フィールドのリストをループして UPDATE ステートメントと INSERT ステートメントを動的に作成する汎用関数ですべてを駆動します。選択は主に SELECT * タイプのものです。急速な開発ですが、強力なタイピングの欠如は私を怖がらせます. SQL インジェクションの地雷はどこにでもあるように見えますが、それを避けるために必要なのは引用符を 2 倍にすることだけだと確信しています。

他にもオプションがあるはずですが、それらが何であるかはわかりません。私/私たちに何か提案はありますか?

4

6 に答える 6

5

Dynamic Dataを調べましたか? (DB が適切に構成されている場合) ほとんど時間をかけずに、きれいでクリーンな DB CRUD ソリューションを作成できるのは素晴らしいことです。

ログイン画面を追加するか、一貫性を保つために Windows 統合認証を使用します。

また、学習曲線はほとんど何もありません。紹介ビデオを見るのにかかった 20 分で最初のサイトを作成しました。最も基本的な初心者レベルのプログラマーでも簡単に作成できます。

于 2010-03-04T03:59:33.473 に答える
3

ASP.NET 動的データを見たことがありますか?

于 2010-03-04T04:00:57.527 に答える
2

ある種の足場ツールを探しているようですね。それらはたくさんあります。SubSonicには確かに1つあります。

ここにMSDNからのリンクがあります

于 2010-03-04T03:58:14.490 に答える
1

1 & 2) ASP.NET MVCを調べる

3) LINQ to SQLを調べる

于 2010-03-04T03:58:08.493 に答える
0

テーブル アダプタは古いものです。それらがまだ役に立たないというわけではありませんが、正当な理由がない限り個人的には使用しません。 Linq to SQLは、まさにこの種の急速な開発のために作られました。データセットよりもセットアップがはるかに速く、クエリと更新もはるかに簡単です。

Entity Framework と NHibernate もありますが、これらはより大規模なドメイン中心のアプリケーションを対象としており、迅速で汚れたデータ アクセス/更新ではありません。

于 2010-03-04T03:56:49.010 に答える
0

この場合、データ アクセスに関する問題は完全に解決されているようで、.NET 空間のかなり時代遅れの方法について言及しています。

LINQ-to-SQLまたはLINQ-to-Entities をご覧になりましたか? これらのテクノロジはどちらも、すべてではないにしてもほとんどの問題に対処します。SQL サーバー ベースのバックエンドを使用していない場合、後者が 2 つの唯一のソリューションです。

于 2010-03-04T03:57:08.823 に答える