К основному контенту

MVC. Sharing Controllers and Views.

Задача. Есть повторяющиеся блоки в связке Contoller+View, которые одинаковы для нескольких сайтов и хочется добавить их для этих сайтов как ссылку на библиотеку, так сказать 'расшарить'. А редактировать уже в одном проекте.

Решение.
Для решения этой задачи будем использовать библиотеку Razor Generator. Razor Generator позволяет делать прекомпиляцию наших View. Мы можем вынести файлы в отдельную библиотеку, скомпилировать их и они станут доступными в других проектах.

Посмотрим на примере. Создадим пустой проект. Назовем его Shared Views. В проекте повторим структуру MVC приложения: создадим папки Controllers, Models и Views и перенесем в папки файлы, которые мы хотим расшарить. Добавим необходимые ссылки на библиотеки MVC.  Через NuGet добавим библиотеку RazorGenerator.


В  свойствах каждого Представления(View) укажем:


Теперь можно проверить прекомпиляцию с помощью команды RunCustomTool. Для этого необходимо выбрать файл представления и вызвать контекстное меню.



После запуска команды должен появиться файл Представления с расширением *.cs

После того как мы сделаем Build проекта, файлы *.cs должны добавиться к каждому нашему Представлению. Теперь мы можем дать ссылку на наш проект в нескольких MVC сайтах.

Хочу также отметить следующую полезную вещь. Если для одного из сайтов вам нужно кастомизировать Представление(View), то достаточно разместить его по тому же пути, что и в проекте Shared Views, но уже в папках самого сайта. По приоритету сначала будет выполняться поиск представления в папках сайта, а уже потом в папках проекта  Shared Views. Если вдруг такой приоритет не отработал, то его можно задать вручную в файле App_Start/RazorGeneratorMvcStart.cs указав для PrecompiledMvcEngine  UsePhysicalViewsIfNewer = true.

Лирическое отступление. В прошлом сообщении про индексацию блога в Яндексе пообещал писать чаще, а в итог получается пишу еще реже... Так всегда бывает, поэтому впредь обещать ничего не буду. Буду писать как пишется.

Комментарии

Популярные сообщения из этого блога

Пример взаимодействия с Odnoklassniki Rest API на C#.

Итак, как и обещал, продолжаю тему взаимодействия с различными API. В прошлый раз писал про  API ВКонтакте , сегодня напишу про API Одноклассников. Первое, что нам нужно сделать - это зарегистрироваться как разработчик на Одноклассниках. Сделать это можно по следующей ссылке  Форма регистрации разработчика приложений Получив права разработчика, необходимо зарегистрировать сайт как приложение. Подробно как это сделать можно прочитать  здесь После того как сайт будет зарегистрирован придет письмо, содержащее: Application ID: xxxxxx. Публичный ключ приложения: xxxxxxxxxxxxxxxxxxxxxxxxx. Секретный ключ приложения:  xxxxxxxxxxxxxxxxxxxxxxxxx. Ссылка на приложение: http://www.odnoklassniki.ru/games/xxxxx Используя эти данные можно начать работу с API. Для выполнения запросов к API пользователь должен авторизоваться в Одноклассниках. Добавляем на нашем сайте ссылку для авторизации пользователя: http://www.odnoklassniki.ru/oauth/authorize?client_id={0}&scope={1}&

C# и API ВКонтакте. Обращение к адресу API-сервиса путем создания HTTP-запроса (POST)

В статье  C# POST. Отправляем запросы на адрес стороннего сервера  я рассказал про метод, с помощью которого можно работать с различным API, принимающими POST запрос и возвращающими ответ в виде json или xml. Сегодня я хочу написать, как я применял этот метод при работе с API  ВКонтакте. Для примера возьму задачу получения через API списка групп, в которых состоит пользователь. В первую очередь необходимо зарегистристрировать наш сайт как приложение ВКонтакте. Заходим по ссылке  http://vk.com/editapp?act=create&site=1  и подключаем наш сайт. Дальше задача  делится на две подзадачи, а именно: авторизация пользователя и обращение к API для получения списка групп. Для авторизации мы пользователю предлагаем перейти по следующей ссылке: http://api.vkontakte.ru/oauth/authorize? response_type=code&redirect_uri={0} &client_id={1} &scope={2} &display=page , redirect_uri - адрес страницы нашего сайта, куда будет возвращен пользователь после авторизации Вконтак

IIS (Internet Information Services) и applicationHost.config. Изменение доменных привязок.

Сегодня затронем тему настроек IIS (Internet Information Services). Речь пойдет о версии IIS 7.0 (7.5). Допустим у вас есть  большое количество поддоменов, которые нужно привязать к сайту или быстро исправить на уже существующих привязках IP адрес. Стандартный интерфейс IIS позволяет редактировать привязки по одной, что в нашем случае не очень-то удобно. См. картинку Чтобы ускорить процесс, нужно вспомнить, что все доменные привязки (и не только, а и другие настройки) хранятся в конфигурационном файле applicationHost.config. Данный файл находится по адресу C:\Windows\System32\inetsrv\config\ В файле отредактировать привязки можно очень быстро.