Как разделить основной проект mvc asp.net на несколько сборок (.dll)?

Как разделить основной проект mvc asp.net на несколько сборок (.dll)?

У меня 3 проекта

  • MyApp Project
    • Контроллеры
      • HomeController.cs
    • модели
    • Просмотры
      • Главная
        • Index.cshtml
  • HR-проект

    • Контроллеры
      • EmployeeController.cs
    • модели
      • EMPLOYEE.cs
    • Просмотры
      • Работник
        • Index.cshtml
  • ACC Project

    • Контроллеры
      • ChartAccountController.cs
    • модели
      • Account.cs
    • Просмотры
      • ChartAccount
        • Index.cshtml

Я хочу скомпилировать в dll

  • HR-проект
    • HR.dll
    • HR.Views.dll
  • ACC Project
    • ACC.dll
    • ACC.Views.dll

Я хочу добавить ссылку этих DLL (HR.dll, HR.Views.dll, ACC.dll, ACC.Views.dll) в проект MyApp.

И затем запустить проект MyApp может получить доступ к модулю Account & Employee Account.

Всего 1 ответ


То, что вы хотите, не возможно, или, может быть, лучше сказать: это не очень хорошая идея, наверняка.

В общем, вам нужно использовать библиотеки классов Razor. Вся обычная функциональность затем включается в эти RCL. Все ваши проекты HR и ACC могут быть RCL, если только вам не нужно запускать их независимо, как полноценные веб-приложения. В этом случае вам понадобится структура, похожая на:

  • HR RCL
  • HR Web App (зависит от HR RCL)
  • ACC RCL
  • ACC Web App (зависит от ACC RCL)
  • Основное приложение (зависит от HR RCL и ACC RCL)

В любом случае вы бы поместили все контроллеры, представления и статические ресурсы, которые должны совместно использоваться в RCL, поэтому, если у вас есть настоящие веб-приложения HR / ACC, они будут довольно легкими: в основном они состоят только из Program и Startup и зависимость от их соответствующих RCL.

Для получения дополнительной информации см. Документацию по библиотекам классов Razor .


Есть идеи?

10000