.net Расширяемый слой данных ... идеи, пожалуйста - PullRequest
1 голос
/ 30 сентября 2010

Это может быть невозможный вопрос, но если у кого-то есть идеи, даже если это заказное решение

Мы пытаемся придумать простую программу для рассылки людям, поддерживаемую базой данных. На упрощенном уровне будет объект «Пользователь», который просто имеет имя и адрес электронной почты. Программа просто позволяет кому-то редактировать имя и адрес электронной почты, и все хорошо

Затем мы хотим, чтобы другие разработчики могли добавлять свои собственные поля и писать «плагин» для его редактирования. Итак, у меня есть копия программы, я смог написать свой плагин, который добавляет «форму имени» в форму - и он может стоять отдельно от слоя данных, но проблема с этим методом в том, что в конечном итоге запустить две команды базы данных

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

В идеале было бы очень здорово, если бы плагин добавил что-то в слой данных, чтобы указать имя компании для пользователя, тогда у вас есть только одна команда

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

Отлично ... но как

Идеи на открытке - или, по крайней мере, в качестве ответа здесь

Ответы [ 2 ]

1 голос
/ 30 сентября 2010

Как насчет добавления поля XML в качестве дополнительных данных в таблицу пользователей, чтобы программист-плагин мог добавлять в него любые данные.

MS SQLServer (я думаю, из версии 2005) позволяет выполнять запросыXML из основного запроса, так что вы также можете предоставить точку входа для добавления некоторых условий к предложению where при необходимости.

Так что, если вы всегда получаете информацию в поле XML, тогда разработчик плагина будетнужно только прочитать и записать нужные ему значения в xml и заполнить созданные им элементы управления.

0 голосов
/ 22 октября 2010

Я думаю, что нашел как можно ближе - Fluent NHibernate, кажется, предлагает большой потенциал в этой области

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...