2010-03-11 4 views
1

Вот сценарий, я разрабатываю приложение, использующее csla 3.8/C# .net, приложение будет иметь разные модули. его, как ERP, он будет иметь учет, ежедневную запись времени, набор и т. д. в качестве модулей.Как создать платформу ontop CSLA? <- если это имеет смысл

Теперь необходимо проверить общие сущности на модуль и построить «платформу» (< - босс называет это именно так). например, DTR будет иметь «служащий» организации, у найма будет «Заявитель», поэтому один общий объект, который вы можете извлечь из обоих, которые могут быть установлены на платформе, - «Человек». «Лицо» будет содержать типичную информацию, такую ​​как имя, адрес, контактную информацию и т. Д.

Я знаю, что это похоже на ООП 101. Дело в том, что я не знаю, как я должен это делать. как мне хотелось бы, чтобы это было просто наследование, но требование - создать API какого-то типа, который будет использоваться модулями с использованием CSLA.

в csla вы создаете умные объекты вправо, наследуя от базовых классов csla, таких как businessListbase, readonlylistbase и т. Д. Правильно? что, если, например, я создал класс Applicationbase Applicant, у него будут такие свойства, как спрос на зарплату, дату доступности и т. д. Теперь для личной информации мне понадобится «Личность» с «платформы» и внедрить ее в класс заявителя.

так что в итоге у меня есть несколько вопросов:

  1. как создать такую ​​платформу?
  2. Если такая платформа возможна, как она будет реализована на сущности каждого модуля? (im уже наследуется от базовых классов csla)
  3. если возможны случаи 1 и 2, имеют ли они преимущества при разработке и поддержке приложения?

Причина, по которой я прошу №3, потому что, как я ее вижу, даже если я могу создать платформу для этого, мне нужно будет определить свойства объекта платформы на моих модульных сущностях поэтому иметь валидацию и все.

ответ

1

Вы верны о наследовании от базовых классов.

  1. Я бы начал с разработки вашего базового объекта без каких-либо отношений. Затем я создам ваши классы, которые наследуются от вашего вновь созданного объекта, и добавьте дочерние свойства, которые вытаскивают из базы данных (через отношения FK) из родительского объекта. Я бы также рекомендовал проверить наш CSLA 3.8.2 templates. Они приходят как в VB.NET, так и в стиле C#, и эта задача будет намного проще.
  2. Да, это возможно, просто выполните шаги, описанные в # 1.
  3. Я не уверен в преимуществах или недостатках, но в будущем это должно быть легко поддерживать. Ваши производные классы могут добавлять правила поверх/имеют полный контроль над правилами базовых классов.

Благодаря -Blake Niemyjski (Автор CodeSmith CSLA Templates)

0

главная цель «платформы» сущностей или то, что мы называем его сейчас Дженерики для БО повторного использования кода так, когда мы добавляем модули в Будущее, например, учет или покупка, у нас есть эти общие модули, которыми мы располагаем.

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

как для моего первого примера заявитель (для найма), сотрудник (ежедневная запись времени) и лицо («платформа»). произошло то, что Человек был помещен в общий проект BO. и как заявитель, так и работник просто используют лицо BO как дочернее имущество.

Спасибо за ответ Блейк. Кстати, мы действительно используем codemith для этого. спасибо за предложение еще. Ура!