Возможные модели и передовые практики для приложения для управления продажами? - PullRequest
0 голосов
/ 02 апреля 2011

В моем приложении asp.net mvc 2 у меня есть следующие спецификации: Я должен создать POS-систему, которая будет широко использовать JQuery (поэтому меня не интересуют шаблоны в этой части) и генерировать отчеты о продажах и продажах, классифицированные по периодам времени, так и в моей модели. Также мне нужно сформировать заказы для поставщиков продуктов. У меня есть такие организации, как продажи, продукты, отчеты о продажах, заказы на покупку и поставщики продуктов.

Я буду использовать Entity Framework, linq2Sql, automapper и viewmodels для передачи информации на страницы aspx.

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

С другой стороны, является ли хорошей практикой писать предложения linq2sql в классах моделей? Например, правильно ли делать следующее, чтобы получить список продаж в Models / Sales.cs?

public List<Sales> GetSales(DateTime Date1, DateTime Date2){

     var sales = from item in data.Sales
                 where ((item.Date> Date1) && (item.Date< Date2)) &
                 select item;

  //Rest of code
  ....... 

}

Заранее спасибо!

1 Ответ

0 голосов
/ 02 апреля 2011

Моя проблема с шаблонами в том, что я разбираюсь в примерах через Интернет, но вряд ли могу представить себе применение к моей модели

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

  • вся модель вашего домена (не код)
  • необходимые бизнес-сценарии
  • ваша ИТ-топология для поддержки вашего приложения
  • какие части программного обеспечения вам нужно написать
  • как каждая часть программного обеспечения взаимодействует с другими частями

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

Шаблоны низкоуровневого проектирования действительно применимы к этой последней части - сотрудничество между отдельными классами или семействами классов.

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

Другими словами, Мне нужно взглянуть на ваш код , чтобы сказать, какие шаблоны проектирования низкого уровня следует использовать.

Детали вашего описания показывают, что вы уже используете шаблоны более высокого уровня :

  • Asp.net MVC 2
  • Entity Framework
  • Linq2SQL
  • automapper
  • ViewModels

Каждый из этих компонентов имеет множество шаблонов, естественно встроенных в них. Например, ORM, итераторы и MVC являются шаблонами проектирования.

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

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

Однако некоторые эксперты считают, что эта чрезвычайно распространенная практика использования объектов домена (модели) без кода является анти-шаблоном: см. http://en.wikipedia.org/wiki/Anemic_Domain_Model и http://www.martinfowler.com/bliki/AnemicDomainModel.html

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