четверг, 13 июня 2013 г.

Razor в Composite C1 CMS 4.0 (3): Создание Razor-функций в Visual Studio

Вы уже знаете о поддержке Razor-функций в Composite C1 4.0, а также мы уже обсудили, как создавать Razor-функции в админке системы (подсказка: легко и просто :)).

Если вам нужен IntelliSense, и вы вообще не можете жить без редактора кода Visual Studio, вам ничто не мешает создавать эти самые функции прямо в Студии.

Тем более, что существует специальное расширение для Visual Studio, которое добавляет два шаблона для создания файлов - Composite C1 Razor Function и Composite C1 Razor Template.


Расширение Composite C1 Razor Extensions


Я вам рекомендую установить расширение "Composite C1 Razor Extensions", если вы собираетесь создавать свои Razor-функции в Visual Studio.

Скачать его можно отсюда: CompositeC1RazorExtensions.vsix


После установки, у вас при добавлении нового нового объекта (Add | Add New Item...), в окне выбора шаблона должны появится упомянутые выше Composite C1 Razor Function и Composite C1 Razor Template.


Первый как раз и создает Razor-функцию.


Где хранятся файлы Razor-функций?


Это важный вопрос. Дело в том, что файлы cshtml которые по сути и есть этими функциями должны находится в ~/App_Data/Razor. Это по умолчанию. (Чтобы хранить их в другой папке или разных папках, нужно изменить некоторые конфигурационные настройки. Об этом в другой раз.)

Это еще не все. В Composite C1 функции всегда принадлежат к какому-то пространству имен. Например, в Demo.Razor.CoolFunction, Demo.Razor - это и есть пространство имен.

В случае с Razor-функциями роль пространства имен играют вложенные друг в друга подпапки в ~/App_Data/Razor, а имя самого файла будет служить именем функции. Таким образом, чтобы получить функцию Demo.Razor.CoolFunction, нужно создать файл по такому пути: ~/App_Data/Razor/Demo/Razor/CoolFunction.cshtml.



Создание Razor-функций в Visual Studio

  1. Установите расширение Composite C1 Razor Extensions, если вы этого еще не сделали.
  2. Откройте веб-сайт в Visual Studio.
  3. Добавьте необходимые подпапки в ~/App_Data/Razor, которые будут служить пространством имен функции.
  4. Вызовите контекстное меню на подпапке из шага 3 и выберите Add | Add New Item...

  5. В появившемся окне выберите Composite C1 Razor Function. (Можно воспользоваться поиском в окне: "С1" или что-то подобное).
  6. Укажите имя файла и...
  7. ...нажмите ОК.

Будет создан файл cshtml. Причем в него расширением будет добавлен шаблонный код, который вы можете изменить, как угодно. Но минимум вы должны сохранить наследование:

@inhertis RazorFunction

И желательно добавить описание функции:

@functions {
    public override string FunctionDescription
    {
        get  { return "Демо-функция, выводящая сообщение: Превед, медвед!"; }
    }
}

В шаблонном коде уже добавлен и используется один параметр. То есть у вас уже есть представление о параметрах в Razor-функциях. И в следующем сообщении мы остановимся на параметрах более подробно.

Комментариев нет:

Отправить комментарий