2011-02-27 20 views
0

私は、管理者がC#でデータベースに会話し、自分の要件(非常に単純なデータベーススタジオのようなもの)に合わせて新しいテーブルとカラムを追加できるWebアプリケーションを構築しようとしています。私はスパゲッティのアプリケーションを作成しようとしていません。ASP.NETを使用した動的Nレイヤー

彼はテーブルを作成し、それらを構築するために、テーブルを使用する場合だから私は(自動的に)動的にそれらのものをできるようにする方法を把握しようとしている:

1 - ビジネス・オブジェクトまたはエンティティ(クラス、それはですオブジェクトとプロパティ)。 2データアクセスレイヤー(データベースに接続し、アイテム(オブジェクト)を取得、更新、削除する単純なメソッド)。

これは可能ですか?どのようにそれを達成するための任意のポインター?

EDIT

はちょうどあなたのリンクをオープンしました!! ..それはデータバインドされたコントロールとものについて話している! ..私の質問はそれより先進的な方法です! N-Layeredアプリケーションをビルドするときは、データベーススキーマと実装から始まり、プログラム的に行うのが簡単です.DALクラスの構築(つまり、CRUD操作の追加、編集など)を開始し、このデータベースを作成します。

私は、Web管理者が自分のアプリケーションで新しいテーブルを追加することを許可してから、動的にアプリケーションがテーブルの名前と列をパラメータとして取り、新しいクラスを作成し、その中にCRUDメソッドを定義するそれはまた、SQL CRUD操作を実装する

それはまた、クラスを動的に作成し、DALメソッドを呼び出すための変数、プロパティ、メソッドを定義します。表、列名

注:これはすべて実行時に発生します。

+0

あなたが構築しようとしている機能は非常に有効です。 MS CRMはそれを箱から出します。ポイントは、あなたが構築しようとするものは、毎日のものではなく、あなた自身でそれを行う必要があるということです。これはイノベーションバケツに落ちています。私もこのラインで何かを作りたかったのですが、それは時間がかかるでしょう...それでそれを駐車しました。 – Pradeep

+0

@Pradeep、実際に私はそれが公園の散策ではないことを知っていますが、私は自分の時間を投資して、将来私のクライアントのために多くのプロジェクトを短時間で作ることができるようにしています。将来の公園での散歩..しかし、私はしばらくそれを駐車するつもりだと同意する!私はあなたが本当に有益だった=)あなたに感謝Pradeep! – lKashef

+0

リンクを投稿しました。それがあなたを助けることを願ってください。私は仕事を再開し、進歩があればお知らせします。 – Pradeep

答えて

0

いつか私はまたsimilar questionに頼んでいました。私は1つだけの返事を得た。

今日私はMSDNに関するいくつかの情報を掘り下げていましたが、私が推測したように、MS CRMエンティティモデルはメタデータに基づいて動作します。だから、基本的にCRM開発者が取り組んでいるものはメタデータだけであり、実際のオブジェクトではありません。以下はMSDNリンクです。

Extend MS CRM MetadataここではMS CRM 4.0 SDKです。

私はこれがあなたを始めるはずです。

更新:最近ヒットしたのはVisual Studio LightSwitchです。これが私たちが作りたかったものだと私は思います。 DBからテーブル情報を取得し、すべてのCRUD画面を作成するUI。 VS LightSwitchはBeta1に入っており、非常に多くの可能性を秘めています。いい出発点にする必要があります。

+0

Wow(Y)Pradeepに感謝します。このプロジェクトを再開すると、あなたからのお話をお待ちしています。私は電子メールを共有する上でstackoverflowのポリシーは何ではないのか分からないが、もしあなたがこのプロジェクトについてあなたからお聞きしたいと思います! – lKashef

1

ASP.Net Dynamic Dataを調べるとよいでしょう。これはRADのツールであり、あなたのエンティティなどのためのCRUD機能を非常に簡単に提供します。見てみな。

+0

私のDALのためのgr8です。それを見てみましょう..しかし、どのようにBLL(クラス、それは変数とプロパティ)を動的に作成するためのアイデアですか? .. + 1 – lKashef

+0

私の編集を確認してください! – lKashef

0

まず、MS Accessを作成しようとする人は、MS Accessを再作成することになります。ひどく。

ASP.NET動的データ(推奨)またはASP.NET MVC Scaffoldingを使用する方がよい場合があります。しかし、実際にはまともなアプリケーションを作るランタイム生成のプレイフォームは、実際にはパイプの夢です。あなたは何か複雑なことをする開発者の時間が必要です。または、よく。

+0

ワイアット申し訳ありませんが、私は動的なデータを表示したくありません。私は動的なアーキテクチャを構築したい..それは全くプレゼンテーション層についてではありません! ..あなたの努力に感謝:) – lKashef

-1

あなたが求めるのは意味がありません。どうして?なぜなら、BLLとn層の背後にあるアイデアは、データモデルをよく知っていて、データモデルを表す静的クラスモデルを作成できるからです。

データモデルが動的で変更されている場合、静的なBLL(これはBLLと同じです)を作成することはできません。実行時にクエリを動的に構築する必要があります。これは、伝統的な方法のいずれかが処理するように設計されているものではないため、すべて自分で行う必要があります。

実行時にクラスを動的に生成することは可能ですが、これはおそらく、BLLを動的データベースに適応させたとしても、BLLを呼び出すコードそれについて何も知らないので、決して呼び出されません。

これは一晩で解決する問題ではなく、既存のソリューションをコピーすることで問題にはなりません。ORMやオートメーションに頼るのではなく、低レベルのADO呼び出しを使用してゼロから設計する必要があります。

+0

ありがとうMystere Man。それは事実ですが、私はそれを知っていますが、私のコードに私の変更を理解する知性があるようにしようとしていました(管理者)。これは、将来、動的なウェブサイトを作成するための柔軟なシステムを構築するために、時間と労力を節約します。だから私は何かが既にそれをしたかどうか尋ねていたので、私はそれを使うことができたか、どのように始めるべきかを指すことができました.. btw私はすでに私の考えを適用すると思うプロジェクトを見つけました。 助けてくれてありがとう=) – lKashef

+0

-1、質問を非意味的に呼びます。 – Pradeep

+0

@Pradeep私は男を知りませんが、すみません! ..そしてMystere Manあなたが確信していない何かについてアドバイスをしないでください!あなたの知識はこの世界の限界ではありません! ..あなたはほとんど私を捨てる! – lKashef

関連する問題