Как мне не создавать экземпляр Cassini для каждой области в моем приложении?
Я реализовывал области, но обнаружил, что он запускает сервер разработки для каждой области, когда запускает Cassini.
Это действительно необходимо? MSDN заставляет меня настраивать эти области как отдельные веб-приложения. Почему я не могу поместить их в библиотеки классов?
3 ответа
После долгих исследований ответ кажется "еще нет". Мы все еще в предварительном выпуске ASP.NET MVC v2, поэтому я решил, что должен отступить, пока они не почувствуют себя по-настоящему хорошо.
Я думал, что поделюсь своим опытом для тех из вас, кто интересуется модульностью ваших проектов ASP.NET MVC.
В настоящее время, когда вы делаете сборку, она в основном копирует все ваши дочерние проекты (созданные для областей) в родительский. Это работает после сборки ОДНАКО, как только вы вносите изменения в свои представления в области, это изменение не отображается, пока вы не перестроите. Это вредит ловкости, и я знаю, что команда сейчас на это смотрит.
Из-за этой "отключенной" структуры проекта вы получаете некоторые помеченные проблемы (потерянный смысл) в представлении, которое мы обычно игнорируем (например, ссылки на скрипты и т. Д.). Просто помните, что это одно приложение в долгосрочной перспективе.
Также проблема с этим размещена выше. При отладке у вас будут отдельные экземпляры dev, но они будут развернуты как одно приложение.
В целом, есть варианты "домашнего роста" вашего собственного модульного решения (так же, как это делал CWAB), но я призываю вас подождать следующего "поддерживаемого" предварительного просмотра. Я чувствую себя очень хорошо об этой команде и ее способностях. Совершенствование областей действительно сделает нас довольными.
Да, вы можете передать их в библиотеки классов. Вы можете посмотреть, что делают ребята из MVCContrib. Они называют это переносимыми областями, что дает вам библиотеки, которые вы запрашивали. Они используют свой собственный механизм представления Embedded, чтобы вернуть представления из библиотеки DLL. Вот ссылка, которая проведет вас через процесс.
В случае, если кто-то наткнется на это, потому что он все еще строит Области, используя несколько проектов, вы определенно можете сделать это в рамках одного проекта в MVC 2. С помощью метода с одним проектом вы получаете только один работающий экземпляр, когда запускаете его локально. Существует руководство по MSDN, которое поможет вам пройти через однопроектные области, но не упустите ошибку регистрации их областей, когда вы начнете их модульное тестирование.