ASP.NET MVC Компилировать представления в отдельных сборках - PullRequest
4 голосов
/ 21 июля 2009

Я создаю решение, в котором у меня есть несколько проектов, каждый из которых отвечает за работу с сущностями, представлениями MVC и контроллерами определенного вида. То есть один относится к бухгалтерскому учету, другой - к управлению компанией и т. Д. Это позволяет нам повторно использовать их в нескольких решениях.

Я могу использовать представления в разных сборках из основного проекта решения (стандартный проект MVC), зарегистрировав VirtualPathProvider и способ сделать представления в виде встроенных ресурсов, чтобы их можно было загружать из вне их DLL.

Основной (и огромный) недостаток этого подхода заключается в том, что, устанавливая представления в качестве встроенных ресурсов, отнимает возможность компиляции, используя IntelliSense и отлаживая их, что делает разработку действительно сложной, и обслуживание тем более.

Есть ли способ заставить компилировать эти представления внутри DLL? Я что-то там упускаю или есть другой лучший подход к этому?

Примечание. Я могу компилировать представления в своем проекте MVC, но не в представлении DLL.

1 Ответ

1 голос
/ 21 июля 2009

Не знаю, поможет ли это вам, но ...

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

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

Эти файлы должны содержать только код рендеринга в любом случае, поэтому должен действительно разрабатываться дизайнером HTML / Graphics, а не разработчиком.

Все контроллеры и модели представления, которые я все еще реализую в отдельных модулях (.dll).

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