Да, конечно, мы всё также можем использовать веб-части с XSLT и почти всегда это будет работать. Но есть нюансы:
- Изъят мощнейший инструмент для разработки XSLT - SharePoint Designer. Точнее, изъята та его часть, которая относилась к генерации XSLT. Кое-что можно по-прежнему выжать из местами оставшихся кнопок на Ribbon в Code View, но даже для простейших представлений код веб-частей генерируется нередко нерабочий. Иными словами, это уже неподдерживаемый функционал, которым пользоваться нереально.
- XSLT-преобразования очевидно уже стоят в низком приоритете для команды тестирования SharePoint. Как следствие - уже сейчас, в SP2013, начинают накапливаться баги, связанные с работой XSLT. Пример: в js, который используется для свертывания/развертывания групп при наличии группировки в DataFormWebPart - в SP2013 содержит ошибку. Т.е. группировку в этой веб-части невозможно использовать "OOTB", придется этот баг исправлять подменяя SharePoint'овскую js-функцию. Я наткнулся на этот баг, когда пытался мигрировать свой английский блог, который у меня сделан на SharePoint 2010 :(
- Представлен концептуально новый подход к отображению данных (Client Side Rendering ака CSR), и сейчас ни одна веб-часть в SharePoint по умолчанию более НЕ использует XSLT преобразования. Все списки показываются с помощью CSR, и результаты поиска - тоже.
- CSR действительно лучше, и нет ни единой причины не предпочесть его старому подходу. Это JavaScript templating engine, пусть корявый, но всё-таки JS как язык является гораздо более мощным, более развитым и более современным средством разработки, чем XSLT. Под JavaScript, словно грибы, растут фреймворки, создаются метаязыки (coffee script, TypeScript, Script#, etc.), пишутся библиотеки, расширяются его возможности (html5) и т.д. и т.п. А когда вы слышали последний раз про усовершенствования в XSLT? :)
И если в SP2010 еще можно поработать с XSLT (но без излишнего рвения, не забывайте что могут возникнуть проблемы с миграцией), то если вы начинаете новый проект на SP2013, забудьте об XSLT. Начинайте учить CSR.
CSR сыроват и не без своих тараканов. Но он уже лучше XSLT. Многие вещи на CSR делаются в 3 раза быстрее, чем на XSLT, а еще есть вещи на XSLT вообще нельзя было сделать, а на CSR они делаются на раз-два-три.
В проекте SPTypeScript мы сделали на момент написания этой статьи уже 6 примеров по использованию CSR:
- Разбиение формы на вкладки
- Lookup-поле с автокомплитом, работающим по данным поиска
- Кастомная валидация полей формы списка
- "Color coding" на CSR
- Custom Field на CSR (пример сделан на основе того что есть на MSDN, но внутри код гораздо более правильный и понятный)
- Custom List View (очень простой пример из серии "как начать")
Также, совсем недавно я читал доклад про CSR - очень полезно для старта и освещены некоторые моменты, которых вы врядли где-то еще найдете (да, CSR как это принято в SharePoint'е, документирован процентов на 15% отсилы - а в интернетах еще пока информации маловато).
Подводя итог: на мой взгляд, будущее рендеринга данных в SharePoint - это что-нибудь типа CSR + TypeScript + KnockoutJs. А XSLT, он мертв. И несмотря на человекомесяцы в обнимку с ним и целую пачку статей про него в этом блоге, наверное это и к лучшему :)
CSR ещё не смотрел, но то что XSLT помер это хорошо )
ОтветитьУдалить:D
УдалитьПриятно, что про CSR пишет именно тот, кто XSLT продвигал.
ОтветитьУдалитьЭто бетонная плита поверх могилы XSLT.
:D
УдалитьCSR тоже болото на самом деле. Ему до AngularJs как до Луны. Но иногда как-то надо изменять отображение данных, правильно ж ведь? На текущий момент CSR это по сути единственный способ это делать.
Да не. XSLT вполне себе жив. А вот SharePoint.... Впрочем, чтобы не быть голословным - достаточно просто сравнить количество постов на форумах, посвященных XSLT и SharePoint.
ОтветитьУдалить