У меня есть приложение ASP.NET MVC 3, над которым я сейчас работаю. Я реализую уровень сервиса, который содержит бизнес-логику и который используется контроллерами. Сами сервисы используют репозитории для доступа к данным, а репозитории используют инфраструктуру сущности для связи с базой данных.Должны ли службы на моем уровне обслуживания жить в отдельных проектах/библиотеках DLL/сборках?
Таким образом, сверху вниз: Контроллер> Слой обслуживания> Репозиторий (каждый уровень обслуживания зависит от одного инъекционного репозитория)> Entity Framework> Single Database.
Я нахожу себе делать такие элементы, как UserService, Организация мероприятий, PaymentService и т.д.
В слое службы, я буду иметь такие функции, как:
ChargePaymentCard(int cardId, decimal amount)
(часть PaymentService)ActivateEvent(int eventId)
(часть Организация мероприятий)SendValidationEmail(int userId)
(часть UserService)
Кроме того, в качестве примера второго места я использую это, у меня есть еще одно простое консольное приложение, которое выполняется как запланированное задание, которое использует один из этих сервисов. Существует также предстоящее второе веб-приложение, которое должно будет использовать несколько этих услуг.
Кроме того, я хотел бы, чтобы мы открыли для расщепления (например, нашу единую базу данных) и перехода к сервис-ориентированной архитектуре в будущем, и некоторые из них были разбиты на веб-службы (возможно, даже для когда-нибудь будет использоваться приложениями .NET). Я не открывал глаз для шагов, которые могли бы сделать скачок к SOA менее болезненным в будущем.
Я начал путь создания отдельной сборки (DLL) для каждой службы, но я задаюсь вопросом, начал ли я неправильный путь. Я стараюсь быть гибким и держать вещи слабо связанными, но этот путь помогает мне в любом (к SOA или вообще) или просто добавляет сложности? Должен ли я вместо этого создать единую сборку/dll, содержащую весь мой сервисный уровень, и использовать эту единую сборку везде, где необходимо использовать какие-либо службы?
Я не уверен в последствиях путей, с которых я начинаю, поэтому любая помощь в этом будет оценена!
Вау, теперь это БОЛЬШОЙ вопрос :) - пара необходимых предметов: насколько велика заявка? Сколько нагрузки вы ожидаете увидеть? Что это за приложение? Поскольку ответы будут зависеть от общей информации всего проекта ... – Sunny