Динамический N-слой с ASP.NET - PullRequest
       39

Динамический N-слой с ASP.NET

0 голосов
/ 28 февраля 2011

Я пытаюсь создать веб-приложение, которое позволяет администратору общаться с базой данных через C # и добавлять новые таблицы и столбцы в соответствии с его требованиями (своего рода очень простая студия баз данных), но я не пытаюсь просто создатькакое-то приложение для спагетти.

Так что я пытаюсь выяснить, как разрешить эти вещи динамически (автоматически), когда он создает таблицу и использует таблицу для их построения:

1- Бизнесобъекты или объекты (классы, объекты и свойства).2- Уровень доступа к данным (некоторые простые методы, которые подключаются к базе данных и добавляют, обновляют, удаляют извлекаемые элементы (объекты)).

Возможно ли это?какие-нибудь указатели о том, как этого добиться?

РЕДАКТИРОВАТЬ

только что открыл вашу ссылку !!... речь идет об элементах управления данными и прочем!.. мой вопрос намного сложнее!когда вы создаете N-Layered приложение, вы начинаете со схемы и реализации базы данных, и это легко сделать программно, затем вы начинаете создавать классы DAL, которые (добавление, редактирование и т. д., другими словами, операции CRUD) в и формируют эту базу данных

я хочу разрешить веб-администратору выбрать добавление новой таблицы через мое приложение, а затем - динамически - приложение примет имена и столбцы таблиц в качестве параметров, создаст новые классы и определит в них CRUD.методы, которые будут реализовывать операции SQL CRUD

, а затем динамически создавать классы и определять в них переменные, свойства и методы для вызова и использования методов DAL ... все это на основе таблицы, имен столбцов

ПРИМЕЧАНИЕ. Все это происходит во время выполнения!

Ответы [ 4 ]

1 голос
/ 28 февраля 2011

Возможно, вы захотите просмотреть ASP.Net Dynamic Data .Это инструмент RAD, который очень легко дает вам функциональность CRUD для ваших сущностей и многое другое.Проверьте это.

0 голосов
/ 01 марта 2011

Некоторое время назад я также задавал аналогичный вопрос на SO.Я получил только один ответ.

Сегодня я копал некоторую информацию о MSDN и, как я уже догадался, модель сущностей MS CRM работает на основе метаданных.Таким образом, все, с чем работает разработчик CRM, - это просто метаданные, а не реальные объекты как таковые.Ниже приводится ссылка на MSDN.

Расширение метаданных MS CRM и вот MS CRM 4.0 SDK .

Надеюсь, это должно помочь вам начать.

Обновление: недавно появилось Visual Studio LightSwitch .Я думаю, что это то, что мы хотели построить.Пользовательский интерфейс, который будет получать информацию о таблице из БД, а затем создавать все экраны CRUD.VS LightSwitch находится в своей бета-версии и имеет довольно большой потенциал.Должно быть хорошей отправной точкой.

0 голосов
/ 28 февраля 2011

То, что вы спрашиваете, бессмысленно.Зачем?Потому что идея BLL и n-уровня заключается в том, что вы хорошо знаете свою модель данных и можете создать статическую модель классов для представления вашей модели данных.

Если ваша модель данных является динамической и изменяющейся, то вы не можете создать статический BLL (то есть, что такое BLL).Что вам нужно будет делать, динамически создавать ваши запросы во время выполнения.Это не то, что любой из традиционных методов предназначен для обработки, поэтому вы должны делать все самостоятельно.

Хотя можно динамически генерировать классы во время выполнения, это, вероятно, не тот подход, который вы хотите использоватьпотому что даже если вам удастся адаптировать свой BLL к вашей динамической базе данных ... код, который вызывает BLL, ничего о нем не узнает, поэтому он никогда не будет вызван.

Это не проблема, которую вы будетерешить в одночасье или скопировав любое существующее решение.Вам придется разрабатывать его с нуля, используя низкоуровневые вызовы ADO, а не полагаясь на ORM или какую-либо автоматизацию.

0 голосов
/ 28 февраля 2011

Во-первых, любой человек, пытающийся создать MS Access, обречен на воссоздание MS Access.Плохо.

Вам лучше использовать динамические данные ASP.NET (как предлагается) или Скаффолдинг ASP.NET MVC .Но сгенерированные во время выполнения игровые формы, которые на самом деле делают достойные приложения, - это несбыточная мечта.Вам понадобится время разработчика, чтобы сделать что-нибудь сложное.Или хорошо.

...