2013-05-15 10 views
3

В настоящее время я работаю над веб-сайтом MVC вместе с WebApi, и я занимаюсь разработкой функций электронной почты.Возможно ли запустить mvc-почерк из отдельного проекта

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

Это меня отключает, используя MVCMailer, потому что все примеры выполняются из веб-проекта. Если было написано приложение для телефона, которое использовало WebAPI, оно не могло бы использовать функции электронной почты.

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

MyProject.Web MyProject.WebApi 
     \  /
      \  /
     MyProject.Services 
       | 
       | 
     MyProject.Email 

Могу ли я абстрагировать либо MVCMailer или ActionMailer технически как .Web и .WebApi оба MVC4 проекты?

Если нет, то я просто использую Standalone version of Actionmailer.net или эквивалент в Postal, хотя функциональность немного сокращена.


EDIT: Подробнее

Думая об этом немного больше похоже, что это будет сложно сделать, потому что я должен был бы сделать некоторые фантазии логики копирования взглядов по электронной почте, так что они будут развернуты с веб-сайта mvc и webapi автоматически.

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

MyProject.Web MyProject.WebApi 
     \  /
      \  /
     MyProject.Services --http--> MyProject.Email 

Я думаю, что способ, которым я мог бы просто иметь электронную почту развернутую на одном сервере, вместо того, чтобы настроить SMTP на всех из них. Комментарии приветствуются


Вопросы, относящиеся

ответ

2

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

MyProject.Web MyProject.WebApi 
     \  /
      \  /
     MyProject.Services --http--> MyProject.Email 

Теперь я отправляю электронные письма через службу REST для электронной почты webapi.


Примечание:

Я считаю, что это может быть возможно сделать внутренне в слое обслуживания с помощью Razor Generator. Вы должны создать проект MVC с именем электронной почты, но никогда не запускать его напрямую и включать его в веб-проект в качестве ссылки.

Это даст вам все преимущества intellisense, но вы бы скомпилировали представления электронной почты в код с помощью бритвенного генератора.

Недостатком этого подхода является то, что если у вас есть несколько веб-серверов, у вас будет установлен сервис smtp для всех из них.