Какие особые соображения я должен учитывать при создании объектной модели, которая будет использоваться настольным приложением и веб-сайтом? - PullRequest
2 голосов
/ 27 августа 2010

Я пишу инструмент на C # .Net, который будет использоваться для создания каталогов контента, который пользователи могут просматривать. Изначально я создаю интерфейс на основе WinForms, но в будущем я хотел бы также создать веб-интерфейс. Поэтому я старался обобщить интерфейс для каталога, чтобы он не зависел от конкретного пользовательского интерфейса.

Мой единственный опыт веб-разработки - создание собственного HTML-сайта еще в начале 90-х, и я сделал небольшой ASP (а не ASP.NET). Теперь с ASP.NET кажется , что я должен иметь возможность использовать мою существующую объектную модель C # .Net для создания базового веб-интерфейса. Но я действительно ничего не сделал с ASP.NET, кроме простого примера "Привет, мир".

Есть ли какие-то особые соображения, которые я должен учитывать при проектировании моей объектной модели, чтобы позже я мог создать для нее веб-интерфейс?

Ответы [ 3 ]

2 голосов
/ 27 августа 2010

Вот несколько вещей, которым нужно следовать:

  1. Вы должны упаковать свою объектную модель это отдельный проект (который вам нужен сделать в любом случае, чтобы поделиться этим среди разные проекты) и убедитесь, что вы не добавляете конкретные ссылки на него (например, не добавить System.Web, WinForms, WPF и т. д.) - это автоматически позволит избежать нежелательные зависимости.
  2. Постарайтесь, чтобы ваши классы были максимально скудными. Избегайте классов, которые отслеживают изменения состояния и т. Д. - в веб-сценарии отслеживание состояния по нескольким запросам обходится дорого. Поэтому лучше, чтобы ваши объекты носили только данные.
  3. Рассмотрите возможность того, что ваши объекты могут нуждаться в сериализации и / или передаче по проводу. Например, промежуточное программное обеспечение обслуживает как Windows, так и веб-клиента. Или веб-страница, хранящая объект в состоянии просмотра.
2 голосов
/ 27 августа 2010

Не должно быть такой большой разницы.

Будьте осторожны при размещении слишком большого «интеллекта» в ваших классах сущностей.Это образец, который я часто видел в приложениях Windows.Не делайте ссылки на элементы управления, относящиеся к разработке Windows Forms, в тех частях вашего проекта, которые вы хотите повторно использовать для веб-приложения.

Шаблоны репозитория хорошо работают как с Windows, так и с веб-приложениями, потому что вы часто хотите по-разному оптимизировать веб-приложения для производительности с несколькими пользователями.

0 голосов
/ 27 августа 2010

Ваше требование может быть обработано с помощью многоуровневой архитектуры:

http://en.wikipedia.org/wiki/Multitier_architecture

...