Расширения
Ключевую роль в библиотеке играет класс Extensions, содержащий методы-расширений для HtmlHelper):
- HtmlEditorFor — отображает редактор HTML на основе CKEditor 4
- DatePickerFor — отображает bootstrap-style календарь
- FileUploadFor — отображает элемент для загрузки файла
- ThumbnailFor — отображает bootstrap-style prview для изображения
- TextEditorFor — отображает bootstrap-style редактор
- MultilineTextEditorFor — отображает многострочный bootstrap-style редактор
- EmailEditorFor — отображает bootstrap-style редактор, который имеет HTML5 тип email
- VideoPlayerEditorFor — отображает плеер если в поле записан url для видео опубликованного в YouTube, или Vimeo
Для того, чтобы обеспечить корректную работу всех расширений в пакет были добавлены некоторые файлы добавляющие файлы в структуру веб-приложения и некоторые зависимости. Рассмотрим их подробнее.
Структура пакета
После установки NuGet-пакета X.Scaffolding в Ваше веб-приложение добавятся такие элементы как:
- Contentglobal.css — содержит основные стили для веб-приложения (за основу брался Modern UI)
- Contentscaffolding.css — содержит стили для отдельных элементов управления генерируемых системой скаффолдинга ASP.NET MVC
- Scriptsscaffolding.js — содержит общие для всего веб-приложения скрипты для инициализации подключаемых плагинов
- ViewsSystemLogin.cshtml — шаблон страницы авторизации
- Views_ViewStart.cshtml — страница для автоматического задания шаблона для всех представлений в проекте
- favicon.ico — фирменная иконка
Модуль авторизации выполнен на основе шаблона с сайта bootsnipp.com
Кроме файлов добавляемым непосредственно пакетом X.Scaffolding в проект также добавляются некоторые другие пакеты и связанные с ними файлы. Рассмотрим их более детально.
Подключаемые пакеты NuGet
- X.CKEditor — WYSIWYG-редактор, для редактирования HTML (поскольку команда CKEditor еще не выпустила официальный NuGet пакет для 4 версии, то я сам решил это сделать)
- chosen.jquery — плагин для оформления красивых и удобных выпадающих списков с поиском. Более подробно рассматривается в статье, которую написал alizar
- Bootstrap Datepicker — плагин, который позволяет добавлять элементы выбора даты в стиле Bootstrap
- Microsoft ASP.NET MVC 5 — поскольку библиотека в первую очередь рассчитана на расширение актуальной версии MVC, то была добавлена ссылка именно на эту версию
- EntityFramework 6 — то же касается и Entity Framework
- Windows Azure Storage — набор библиотек позволяющих удобнее работать с веб-приложениями размещенными в облаке
- Bootstrap 3 — думаю не стоит представлять этот фреймворк, тем более что начиная с Visual Studio 2013 базовый проект создается с уже подключенным пакетом bootstrap
- PagedList.Mvc — библиотека, которая позволяет с легкостью разбивать списки на «страницы». Кроме того, включает стили и код для реализации пейджинга в разметке шаблонов
- Microsoft jQuery Unobtrusive Validation — пакет для «ненавязчивой» валидации. Более подробно про него можно почитать в статье которую написала Juty
Присоединяйтесь!
Все желающие могут как ознакомится с исходным кодом библиотеки, так и расширить ее возможности.
Исходные коды проекта доступны на GitHub.
NuGet
Установить пакет можно из репозитория NuGet: Install-Package xscaffolding
Хочу сразу предупредить, что так как библиотека создавалась прежде всего для применения в собственных проектах, в ней может быть несколько моментов которые стоит учитывать при ее использовании:
- сейчас библиотека рассчитана на то, что в проекте используется ASP.NET MVC 5 версии и Entiy Framework 6 версии
- в веб-приложение при установке пакета добавляется фирменная favicon (обусловлено тем, что в большинстве своем установки пакета сейчас производятся для наших собственных проектов)
- в веб-приложение при установке добавляется ссылка на пакет WindowsAzure.Storage, что может оказаться лишним для тех, кто не работает с Windows Azure
Впрочем, исходные коды библиотеки сейчас находятся открытом доступе. И кроме того, если будет достаточный интерес к библиотеке — я планирую создать пакет X.Scaffolding.Core, в котором не будет привязки к вышеупомянутым пакетам и будет отсутствовать favicon.
Поскольку изначально пакет в NuGet содержал как библиотеку, так и стили оформления, то я решил разделить его на две части.
- В X.Scaffolding.Core я перенес базовую функицональность (собственно библиотеку и зависимости для ASP.NET MVC 5, js-библиотек CKEditor, Bootstrap и прочее).
- В X.Scaffolding добавлена зависимость от X.Scaffolding.Core, Entity Framework 6, Windows Azure Storage и оставлены стили оформления Modern UI.
Поэтому, если Вам не нужны лишние css стили в проекте, то вы можете использовать пакет X.Scaffolding.Core.