powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Альтернатива XML+XSLT=HTML
81 сообщений из 81, показаны все 4 страниц
Альтернатива XML+XSLT=HTML
    #37963087
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех.
В данный момент есть Web-проект (Web-клиент к базе) в котором очень часто выводятся различные табличные данные из базы данных.
Web-сервер IIS 7.5, сайт на ASP.NET+jQuery
База данных на MS SQL Server 2008 R2.
В данный момент данные из базы выводятся в Xml и в самом SQL сервере же транслируются в html-таблицу путем XSLT-шаблона.
При этом применяются различные свойства (классы) для тэгов td, tr в зависимости от значений данных в базе, т.е. активно используются инструкции if, case в XSLT-шаблонах. Также генерация различных handler'ов на события click в ячейки или в тэги th.

В данный момент ищу способ перенести преобразование xml-данных в таблицу на стороне клиента.
Возможно, средствами jQuery, но при этом было бы хорошо использовать xslt-шаблоны, без глюков на современных браузерах, буду использоватся если не самые последние браузеры, то хотя бы релизы последних 2х лет.
Цель, уменьшить нагрузку на сервере переключив трансофрмацию на клиентской стороне, и уменьшить трафик, так как передача xml-данных с небольшими атрибутами для кастомизации отображения в любом случае меньше html-данных.
Понимаю что выигрыш в килобайтах не большой может быть, но на счету дорог каждый байт.
Так как большая часть клиентов используют дорогой тариф мобильного интернета, и отдаленность клиентов тоже влияет на скорость передачи данных.

Может быть кто-то уже переходил с решения xml+xslt на более эффективный способ трансформации xml-данных в html?
Читал про yate yandex'а, но он привязан к json и в данный момент мало документирован.
Из-за этого хотел услышать мнения про эффективные (по скорости и по возможностям кастомизации) преобразования xml-данных в html-таблицу.

Спасибо за внимание и жду советов от "бывалых" ;-)
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37963462
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если отдавать голый xml с инструкцией xml-stylesheet, то могут всплывать разные сюрпризы в разных браузерах. Например, хром как раз двухгодичной давности внезапно потерял способность делать трансформацию, что вызвало волну кирпичей по всему миру, и эта способность к нему вернулась лишь несколько версий спустя. Все проблемы решаемы, но есть один баг в ie9 — вместо русского текста он может нарисовать белиберду (см. рис.). Поэтому основную страницу лучше отдавать в html, а через ajax можно и xml, трансформируя его скриптом. Но в этом случае возникает вопрос, где взять xsl? Если с сервера, то это будет лишний запрос, что никак не повысит быстродействие ни сервера ни интерфейса. Можно xsl вставить в сам xml, но это приведет к появлению моря мелких xsl, в котором несложно утонуть.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37963847
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. предлагаете оставить все как есть?
А передача xml с трансформацией через xslt на стороне клиента, это "море браузеров с кучей подводных камней"?
И в конечном счете больше проигрыша чем выигрыша?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37964731
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. предлагаете оставить все как есть?да.
И в конечном счете больше проигрыша чем выигрыша?На крупных трансформациях больше выигрыша в плане ресурсов сервера, на мелких — проигрыша. И в любом случае это проигрыш на клиентах в принципе не способных на трансформацию.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37966128
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За такую «архитектуру» нужно увольнять из компании и бить розгами.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968123
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

За XML+XSLT на стороне клиента? или на стороне сервера?
Или вообще за XML+XSLT?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968213
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekМСУ,

За XML+XSLT на стороне клиента? или на стороне сервера?
Или вообще за XML+XSLT?
Я про xml + xslt = html.

Наследие прошлого, когда хотели полностью отделить логику от представления. Сейчас есть asp.net mvc, его и используем.
А грабли типа xslt - большой жирный гроздь в производительность, в поддержку, в рефакторинг и в сопровождение. Скорость разработки шаблона в разы выше, чем разработка на родных движках webforms / mvc. Нужна правильная архитектура и быстрое качественное решение? Юзай полноценные фреймворки, а это гумно на лопате - удел кривомыслящих архитекторов с идиотской идеей универсализировать мир.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968913
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУorunbekМСУ,

За XML+XSLT на стороне клиента? или на стороне сервера?
Или вообще за XML+XSLT?
Я про xml + xslt = html.

Наследие прошлого, когда хотели полностью отделить логику от представления. Сейчас есть asp.net mvc, его и используем.
А грабли типа xslt - большой жирный гроздь в производительность, в поддержку, в рефакторинг и в сопровождение. Скорость разработки шаблона в разы выше, чем разработка на родных движках webforms / mvc. Нужна правильная архитектура и быстрое качественное решение? Юзай полноценные фреймворки, а это гумно на лопате - удел кривомыслящих архитекторов с идиотской идеей универсализировать мир.

В моем проекте xml+xlst предназначено не для построения всего сайта или шаблона для всего сайта, а для вывода готового html из базы данных. К примеру не надо циклично строить таблицу перебирая каждую строку из результатирующего рекордсета, а сразу внутри хранимой процедуры в SQL Server'е, получаю данные в виде XML, которые посредством трансофрмации шаблоном xlst преобразую в html-данные.
Вопрос именно в этом, т.е. в более быстром (чтобы меньше ресурсов сервера уходило, т.е. web-сервис возвращает сразу xml-данные) и экономичном (сами xml-данные "меньше" будут весить чем html-таблица к примеру) способе передачи полученных данных от сервера.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968926
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

дополню еще, у меня еще не было опыта в использовании MVC-фреймворков, в основном небольшие проекты обращающиеся к БД и возвращающие различные данные.
Есть ли способы в ASP.NET MVC 3ей версии или в 4ой версии, более быстрые варианты преобразования xml-данных в html-таблицу к примеру, ежели связка xml+xslt?

Например, следующий xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
<row>
   <data id="1" value="Test A" status="0" />
   <data id="2" value="Test B" status="0" />
   <data id="3" value="Test C" status="1" />
   <data id="4" value="Test D" status="0" />
   <data id="5" value="Test E" status="1" />
</row>



в таблицу вида:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
<table>
   <tr><th>ID</th><th>Value</th></tr>
   <tr><td>1</td><td>Test A</td></tr>
   <tr><td>2</td><td>Test B</td></tr>
   <tr class="status_1"><td>3</td><td>Test C</td></tr>
   <tr><td>4</td><td>Test D</td></tr>
   <tr class="status_1"><td>5</td><td>Test E</td></tr>
</table>



Спасибо
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968930
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
извиняюсь, забыл добавить еще
количество строк может превышать 500-1000 записей, т.е. действительно быстрый способ формирования данных должен быть
при этом возможны дополнительные наложения html-кодов onlclick и т.д. на опредленные тэги таблицы, в зависимости от исходных данных.
Даже если xslt это пережиток, в данный момент он с этой задачей справляется, просто хотел перекинуть преобразование в таблицы на клиенсткие браузеры уже и снизить трафик
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968967
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekвнутри хранимой процедуры в SQL Server'е, получаю данные в виде XML, которые посредством трансофрмации шаблоном xlst преобразую в html-данные.
Всё запрещено, причем сильно. Архитектора такого решения на свалку.
Не нужно в слой бд закладывать вопросы представления (хтмл) или модели (xml). База данных предназначена для хранения данных и только для этого. Обращение к базе и выдача результата должна быть как можно быстрой. Никаких преобразований в xml средствами базы, только данные, правильно поставленные индексы и всё. После того, как данные попадают на сервер приложений, их в сыром виде конвертируют в модель (представления), которую скармливают самому представлению (через контроллер, если это мвц). Никаких преобразований xml, xslt. Так работают всё нормальные движки, которые рендерят html (webforms, mvc - razor, aspx, ...). Ты же используешь свой наколенный движок рендеринга на основе xslt, да еще и в слой бд прибил xml. Жуть, разумеется весь этот навоз будет нереально тормозить. Особенно на большом кол-ве данных и при большой нагрузке (в т.ч. при пиках) на сайт. Два варианта - переписать этот бред на нормальном движке либо оставить всё как есть и насладиться тормозами. Я бы начал переписывать отдельные части проекта, при наличии ресурсов, конечно.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968977
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekДаже если xslt это пережиток, в данный момент он с этой задачей справляется, просто хотел перекинуть преобразование в таблицы на клиенсткие браузеры уже и снизить трафик
Для задач генерации html это действительно пережиток прошлого. Ладно бы еще отдельные веб-контролы, небольшие веб-части по такому принципу рендерить, но чтобы весь сайт так строить, это батенька пестец чистой воды. Про клиентский рендерринг коллеги ж уже высказались, что не понятно? Забудь.
xslt хорош для небольших вычислительных мощностей, где небольшая нагрузка с вызывающей стороны. Как только появляется более или менее серьезная нагрузка - всё, приплыли.
Нужна внешняя динамика - не вопрос, плагиностроение. Создаем сборки, подключаем, пользуемся. Например, классическая задача «подключаемые тарифы». CodeDom в руки и вперед.
Что-то я отвлекся и меня понесло :) Просто я негодую.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968984
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВсё запрещено, причем сильно.
Всё запущено...

Сорри, т9.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968991
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУorunbekвнутри хранимой процедуры в SQL Server'е, получаю данные в виде XML, которые посредством трансофрмации шаблоном xlst преобразую в html-данные.
Всё запрещено, причем сильно. Архитектора такого решения на свалку.
Не нужно в слой бд закладывать вопросы представления (хтмл) или модели (xml). База данных предназначена для хранения данных и только для этого. Обращение к базе и выдача результата должна быть как можно быстрой. Никаких преобразований в xml средствами базы, только данные, правильно поставленные индексы и всё. После того, как данные попадают на сервер приложений, их в сыром виде конвертируют в модель (представления), которую скармливают самому представлению (через контроллер, если это мвц). Никаких преобразований xml, xslt. Так работают всё нормальные движки, которые рендерят html (webforms, mvc - razor, aspx, ...). Ты же используешь свой наколенный движок рендеринга на основе xslt, да еще и в слой бд прибил xml. Жуть, разумеется весь этот навоз будет нереально тормозить. Особенно на большом кол-ве данных и при большой нагрузке (в т.ч. при пиках) на сайт. Два варианта - переписать этот бред на нормальном движке либо оставить всё как есть и насладиться тормозами. Я бы начал переписывать отдельные части проекта, при наличии ресурсов, конечно.

Понимаю недовольство, особенно в свете решений MVC. Данный проект перекочевал из ASP Classic в ASP.NET, и там и там скорость преобразования данных (recordset'а) в html, скажем так цикличным построением tr, td жутко тормозил, а после переноса решения в xml+xslt все летает, и при оочень больших объемах данных и при больших нагрузках тоже.
Я на этот вариант перешел именно из-за торможения, при цикличном преобразовании данных из базы в html-таблицу на стороне ASP.NET приложения.
Архитектурно, конечно может быть и неправильно, но все работает.
Сопровождать в принципе не сложно, xslt-шаблоны записаны в таблице шаблонов, и при вызове определенной хранимки, данные выдаются в xml (посредством инструкции t-sql FOR XML), и там же преобразуются в html-таблицу путем вызова .NET CLR хранимки трансформации xml через xslt.
Все работает, добавляется новый отчет? Добавляю новый шаблон в таблицу и добавляю формирование отчета в хранимку и указываю какой шаблон использовать и все.
Если есть быстрый и опробованный способ преобразования данных из базы, скажем datareader'а в html таблицу, скиньте линк пожалуйста, для ликбеза
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37968994
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот представляю себе извращенца, который в xslt готовит html-шаблон... Мрак.
Ни интеллисенса, ни человечески читаемого html, ни плюшек в виде серверных контролов, ни мвц-хелперов, ни отлова ошибок. Не так тег закрыл, всё, шаблон накрылся медным тазом и вся страница завалится. А еще ко всему этому добавить тормозов, всё. Харакири - верный друг.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969004
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekЕсли есть быстрый и опробованный способ преобразования данных из базы, скажем datareader'а в html таблицу, скиньте линк пожалуйста, для ликбеза
Вот, пошли правильные вопросы. Конечно есть! Если вебформ, то эта чудо-технология называется байдинг. Есть серверный контрол GridView, у него есть свойств DataSource. Заглянешь туда сырые данные из бд и асп.нет рендерит тебе на клиенте родной table. Всё, очень быстро и правильно.
Я так и думал, что ты с классики перелез. Это всё с асп пришло... Совет - возьми нормальную книжку и изучи богатые возможности платформы. Про xslt забудь.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969007
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

У меня web-forms в связке с jQuery работает, вызывается метод wcf-сервиса, который получает из БД готовый html, который и вставляется в внутренность определенного div'а
Подскажите плз метод трансформации данных sql в WCF-сервисе в таблицу со сложными правилами, т.е. подитожывание, проверка значений и добавление onclick и других event'ов в код таблицы и при этом без потери скорости
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969009
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для меня желательно не использовать server'ные контролы наподобие GridView, так как они достаточно тяжеловесны
очень много ajax'а и поэтому со стороны web-сервиса должны возвращаться готовые данные
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969013
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О, да тут и вцф сервис есть
Еще раз говорю - это задача сайта, а не бд или сервиса. Сервис должен возвращать DTO объект (или коллекцию их), а задача веб-формс всё это отрендерить через родной движок. А у тебя сборная солянка какая-то.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969014
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekЯ на этот вариант перешел именно из-за торможения, при цикличном преобразовании данных из базы в html-таблицу на стороне ASP.NET приложения.
Странно все это.
Вы что, всю базу в html выгружаете? А на странички там разбить? )
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969016
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekдля меня желательно не использовать server'ные контролы наподобие GridView, так как они достаточно тяжеловесны
очень много ajax'а и поэтому со стороны web-сервиса должны возвращаться готовые данные
Они не тяжеловесны в прямых руках. И уж тем более не тяжеловесней, чем твоя сборная солянка :)
Юзай родной рендерринг вебформс и будет щастье.
В некоторых случаях вообще хватит клиентских контролов. Но упаси боже никаких xml и xslt.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969017
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbek,

Возвращайте не ХML, а JSON.
Можно в вэб-приложении (на сишарпе, например) трансформировать XML2JSON, а в браузере - дело техники. Можно ExtJs заюзать, например, или ручками.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969022
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУО, да тут и вцф сервис есть
Еще раз говорю - это задача сайта, а не бд или сервиса. Сервис должен возвращать DTO объект (или коллекцию их), а задача веб-формс всё это отрендерить через родной движок. А у тебя сборная солянка какая-то.
Я это полностью понимаю в плане правильной архитектуры, но такой вариант я использовал только для эффективной и быстрой выборки данных. Конечно можно сделать так, чтобы хранимка в сервере БД возвращала просто xml-набор данных, а преобразованием в html-таблицу будет заниматься Web-сервер.
Но даже в этом случае, знаю только один способ быстрого преобразования в html-таблицу из xml.
Цикличная обработка сразу отпадает.
А все перенес в SQL из-за того, что t-sql может очень быстро возвращать набор записей в xml-виде и остается только преобразовать посредством xslt-трансформации и для того, чтобы не хранить xlst-шаблоны локально на сервере, а прям из базы вытаскивать и трансформировать

ПарамонorunbekЯ на этот вариант перешел именно из-за торможения, при цикличном преобразовании данных из базы в html-таблицу на стороне ASP.NET приложения.
Странно все это.
Вы что, всю базу в html выгружаете? А на странички там разбить? )
Нет конечно, просто специфика задачи есть, которая не позволяет использовать постраничное деление данных
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969023
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНи интеллисенсаДля xsl интеллисенс есть, для html он нафиг не нужен.
МСУ ни человечески читаемого htmlЧеловечески читаемого html нет как раз в мвц. Но это наверное дело вкуса.
МСУНе так тег закрылСтудия тут же выкатит ошибку. Чтобы страница завалилась, нужно вообще нихрена не обращать внимания на сообщения студии.

МСУасп.нет рендерит тебе на клиенте родной tableКаком еще клиенте? Клиент получает готовый html. И рендерит его лишь в графическом смысле слова.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969030
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУorunbekдля меня желательно не использовать server'ные контролы наподобие GridView, так как они достаточно тяжеловесны
очень много ajax'а и поэтому со стороны web-сервиса должны возвращаться готовые данные
Они не тяжеловесны в прямых руках. И уж тем более не тяжеловесней, чем твоя сборная солянка :)
Юзай родной рендерринг вебформс и будет щастье.
В некоторых случаях вообще хватит клиентских контролов. Но упаси боже никаких xml и xslt.
Может быть, но для меня проще использовать "чистый" html с возможностями jquery

ShSergeorunbek,

Возвращайте не ХML, а JSON.
Можно в вэб-приложении (на сишарпе, например) трансформировать XML2JSON, а в браузере - дело техники. Можно ExtJs заюзать, например, или ручками.
В простых наборах данных так и делаю, т.е. WCF-сервис обращается к базе, вызывает хранимку, получает результат и возвращает их в JSON-наборах данных.
Основная проблема в преобразовании табличных данных из базы в html-таблицу

Может быть действительно xml+xslt это старье, но возможности xslt-шаблонов (условное конструкции, циклы, проверка последних строк, группировка) меня устраивают и позволяют создавать простые шаблоны для формирования сложных табличных данных.

В принципе Yandex.Mail тоже сравнительно недавно перешел на другие способы формирования данных, но и то в их случае это шаблонизатор.
В моем же случае простой, быстрый и гибкий способ формирования html-таблицы из базы, с условиями формирования и проверки исходных данных в xslt-шаблоне.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969034
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ...
Еще раз говорю - это задача сайта, а не бд или сервиса. Сервис должен возвращать DTO объект (или коллекцию их), а задача веб-формс всё это отрендерить через родной движок
...

А если сервер БД будет возвращать набор xml, а web-сервер будет преобразовывать xml в html-табличку через xslt будет это "архитектурно" правильно? так сказать в стиле MVC?
И это решение от текущего будет отличаться только тем, что трансформацией занимается Web-сервер а не сервер БД, и все.
Но в любом случае задача преобразования xml-данных в html'таблицы на стороне клиента остается.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969040
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbek...Может быть действительно xml+xslt это старье...
Нет, всё нормально. Может быть, не очень удобно для программиста (мне, например XSLT писать лень), а так - всё отлично. Другое дело, что всё-таки хмл - данные, а хтмл - отображение этих данных. Здесь важно почувствовать некоторую разницу. То есть, я в хтмл могу вставить яваскрипты, я могу их и в селект из БД вставить, но - нехорошо мухи с котлетами мешать.
Короче, проблемы имеют только религиозный характер. :)
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969042
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При этом скорость обновления данных из БД в html думаю получше будет, в проекте где данные обновляются путем ajax-вызова WCF-сервиса
чем подобное решение
В связке "чистый html"+ajax+wcf (который возвращает готовый html-таблицу, трансформированный из xml-наборов данных посредством xslt)

Ну а вообще, вне сабжа, есть ли проекты, в которых кто-либо до сих пор используются xslt-шаблоны для формирования табличных или иных данных?

P.S. Это я не для оправдывания, а хочу узнать насколько xslt-трансформация потеряла свою актуальность, и если это так, то "менять курс" в следующих проектах ;-)
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969048
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeorunbek...Может быть действительно xml+xslt это старье...
Нет, всё нормально. Может быть, не очень удобно для программиста (мне, например XSLT писать лень), а так - всё отлично. Другое дело, что всё-таки хмл - данные, а хтмл - отображение этих данных. Здесь важно почувствовать некоторую разницу. То есть, я в хтмл могу вставить яваскрипты, я могу их и в селект из БД вставить, но - нехорошо мухи с котлетами мешать.
Короче, проблемы имеют только религиозный характер. :)

Понятно, данный вариант формирования данных я использую в первую очередь из-за скорости и гибкости при формировании html-таблиц или данных. Конечно javascript туда "не пихаю", а просто onclick на определенную функцию, в зависимости от определенных значений, ну или различные css-class'ы через тэг xsl:attribute в зависимости от значения исходных данных

Конечно, если есть более нативный, быстрый и гибкий для ASP.NET (3.5 или 4ой версии) способ формирования html из данных sql сервера или xml-данных, то я с удовольствием опробовал бы этот способ, отдавая "дань моде" :-)
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969082
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyДля xsl интеллисенс есть, для html он нафиг не нужен.
Это не интеллисенс, а гумно на лопате. Сравни с интеллисенсом мвц, когда тебе доступны всё атрибуты модели в предоставлении, когда тебе доступен весь .нет в модели. Это называется интеллисенс.

AntonariyЧеловечески читаемого html нет как раз в мвц. Но это наверное дело вкуса.

В мвц есть человечески читаемый язык, а не те огрызки тегов, которые в xslt. Во-вторых в мвц или вебформс никто не запрещает писать человеческий хтмл. В любом случае это читабельно и понятно для восприятия.

AntonariyСтудия тут же выкатит ошибку. Чтобы страница завалилась, нужно вообще нихрена не обращать внимания на сообщения студии.

Я тебе о ошибках на этапе компиляции. xslt может прийти из тфс битый и никто ошибки не заметит, пока не отработает шаблон. И чаще всего такие ошибки идут прямиком на продакшен.
В случае же мвц или винформс большинство ошибок не пропустит студия.

AntonariyКаком еще клиенте? Клиент получает готовый html. И рендерит его лишь в графическом смысле слова.
На обычном клиенте, браузер называется. Асп.нет рендерит, это и уходит на клиента.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969085
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekМожет быть действительно xml+xslt это старье, но возможности xslt-шаблонов (условное конструкции, циклы, проверка последних строк, группировка) меня устраивают и позволяют создавать простые шаблоны для формирования сложных табличных данных.


Всё это делается родными средствами вебформс без каких-либо костылей и подпорок. Причем это работает быстро и проблем не возникает.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969087
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekМСУ...
Еще раз говорю - это задача сайта, а не бд или сервиса. Сервис должен возвращать DTO объект (или коллекцию их), а задача веб-формс всё это отрендерить через родной движок
...

А если сервер БД будет возвращать набор xml, а web-сервер будет преобразовывать xml в html-табличку через xslt будет это "архитектурно" правильно? так сказать в стиле MVC?
И это решение от текущего будет отличаться только тем, что трансформацией занимается Web-сервер а не сервер БД, и все.
Но в любом случае задача преобразования xml-данных в html'таблицы на стороне клиента остается.
Забудь про xml. Не нужно его впихивать в каждую щель. Он оправдан только там, где действительно это надо. В твоем случае твоя архитектура - помойка.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969091
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekP.S. Это я не для оправдывания, а хочу узнать насколько xslt-трансформация потеряла свою актуальность, и если это так, то "менять курс" в следующих проектах ;-)
Потеряла еще давно, как только появился асп.нет. А когда вышел мвц, то и подавно.
Отголоски классического асп, которым место на помойке, а не в .нет решениях.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969095
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekданный вариант формирования данных я использую в первую очередь из-за скорости и гибкости при формировании html-таблиц или данных.
А почему тогда жалуешься, что всё тормозит?
orunbekКонечно, если есть более нативный, быстрый и гибкий для ASP.NET (3.5 или 4ой версии) способ формирования html из данных sql сервера или xml-данных, то я с удовольствием опробовал бы этот способ, отдавая "дань моде" :-)
Десятый раз говорю, забудь про xml. Ты на нем помешался
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969137
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДесятый раз говорю, забудь про xml. Ты на нем помешался
А вот Балмер сказал, что хмл - наше всё. :)
Пардон, ролик сейчас не найду.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969138
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУAntonariyКаком еще клиенте? Клиент получает готовый html. И рендерит его лишь в графическом смысле слова.
На обычном клиенте, браузер называется. Асп.нет рендерит, это и уходит на клиента."Рендерит, это и уходит на клиента" это не тоже самое, что "рендерит тебе на клиенте".
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969139
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

ёклмн, кто жалуется что тормозит?
Я ищу способы дополнительной оптимизации, а xml просматриваю только "в свете" трансформации в html через xslt и уменьшения трафика от Web-сервиса к клиенту.
А варианты рендеринга данных из базы без использования серверных контролов наподобие GridView?
На стороне web-сервиса WCF к примеру?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969140
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekМСУ,

ёклмн, кто жалуется что тормозит?
Я ищу способы дополнительной оптимизации, а xml просматриваю только "в свете" трансформации в html через xslt и уменьшения трафика от Web-сервиса к клиенту.
А варианты рендеринга данных из базы без использования серверных контролов наподобие GridView?
На стороне web-сервиса WCF к примеру?

Погуглил, выше уже приводил эту ссылку, нашел пока этот
http://www.aspsnippets.com/Articles/Bind-Dataset-to-ASPNet-GridView-using-jQuery-AJAX.aspx

есть решение которое более "элегентно" и "побыстрее" будет?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969142
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbek,

Да нету вариантов. Либо "построчно", как во времена asp и детства интернетов, либо xml/xsl отрочества, либо мвц юности. И если второе натянуть на первое можно со значительным выигрышем в большинстве аспектов, то третье это значительный шаг вперед, завязанный на такие вещи, как всякие линки и ормы, в старых архитектурах неприменимые. Вернее применимы, но свой потенциал вне мвс не раскроют, ну это все равно как сменить dao на adodb и продолжать гонять рекордсеты построчно.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969144
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мм.... надо попробовать реализовать тест, смогу без проблем такое сделать
для построчного вывода в ASP.NET и/или XML/XSLT вариант
но не смогу сделать оптимальный вариант рендеринга в html-таблицу в WCF-сервисе в ASP.NET MVC
на третий случай есть у кого желание и время написать простой тест на SELECT? С различными дополнениями в виде дополнения css-class'ов к tr в зависимости от исходных значений?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969147
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1, тоже хочу погонять такой пример
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969154
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На завтра подготовлю пример по работе с данными MS SQL
вариант вывода данных через XML+XSLT полностью на стороне SQL-сервера
вариант вывода данных через XML+XSLT, на стороне SQL-сервера получение xml-данных, на стороне Web-сервера траснформация через XSLT
Думаю, пример построчного вывода делать нету смысла, так как он во всех отношениях проигрывает
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969169
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyМСУпропущено...

На обычном клиенте, браузер называется. Асп.нет рендерит, это и уходит на клиента."Рендерит, это и уходит на клиента" это не тоже самое, что "рендерит тебе на клиенте".
Я обобщенно сказал, если требуется разжевывать, то ок.

orunbekМСУ,

ёклмн, кто жалуется что тормозит?
Я ищу способы дополнительной оптимизации, а xml просматриваю только "в свете" трансформации в html через xslt и уменьшения трафика от Web-сервиса к клиенту.
А варианты рендеринга данных из базы без использования серверных контролов наподобие GridView?
На стороне web-сервиса WCF к примеру?
Не понимаю, зачем оптимизировать то, что замечательно работает?
А если ты хочешь трансформацию делать на клиенте, это еще больше трафика будет.
На стороне веб сервиса рендерить html идиотизм. Почему ты так боишься заниматься этим на сайте, собственно, где рендерингу и место?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969172
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мля, люди. Ваши убитые жизнью архитектуры не видывали базы от сотен гигабайт и выше, а так же нагрузку в пиках при минимум 5 тыс. пользователей в момент времени. За ваши xml из хранимых процедур дба минимум яйца отрежет, за xml + xslt сайт набок сляжет. Безумцам классического асп нужно не подпорки переносить на новые платформы, а заново перерабатывать механизм в соответствие с новыми технологиями и правилами.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969175
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На пример, представим ту же трансформацию на стороне клиента средствами xml+xslt, xml весит меньше чем конечный html, по крайней в моем случае, а xsl шаблон будет закеширован. Кроме того уменьшается нагрузка на стороне сервера.
Ну как вариант, но как в начале ответили и google "подсказал" о проблемах браузеров, из-за чего ищу другие способы.
Раз тема пошла про MVC что для меня ново, хотел разузнать больше, если по скорости и функционслу больше почему бы на MVC не перейти?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969177
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМля, люди. Ваши убитые жизнью архитектуры не видывали базы от сотен гигабайт и выше, а так же нагрузку в пиках при минимум 5 тыс. пользователей в момент времени. За ваши xml из хранимых процедур дба минимум яйца отрежет, за xml + xslt сайт набок сляжет. Безумцам классического асп нужно не подпорки переносить на новые платформы, а заново перерабатывать механизм в соответствие с новыми технологиями и правилами.

В данный момент полугодичная база весит 245gb, число активных пользователей в среднем 2000-2500 пока что.
Есть схожие проекты с такой же технологией работает уже несколько лет и без проблем.

В последнем проекте желательно уменьшить траф между клиентом и сервером и постараться уменьшит нагрузку, так как собираюсь там запустить еще 2 проекта
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969178
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если тебе нужен полный контроль разметки (особенно важно для мобильных клиентов) и полное разделение логики и представления - мвц, строго. Если этим можно пренебречь, оставайся на вебформс.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969179
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekВ данный момент полугодичная база весит 245gb, число активных пользователей в среднем 2000-2500 пока что.
Неплохо. И что, нет вообще проблем с производительностью, всё летает? Хоть убей, не верю :)
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969187
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekНа завтра подготовлю пример по работе с данными MS SQL
вариант вывода данных через XML+XSLT полностью на стороне SQL-сервера
вариант вывода данных через XML+XSLT, на стороне SQL-сервера получение xml-данных, на стороне Web-сервера траснформация через XSLT
Думаю, пример построчного вывода делать нету смысла, так как он во всех отношениях проигрывает
Оба варианта плохие. Самый правильный - получение чистых данных из сиквел сервера, на стороне веб-сервера - преобразование чистых данных в xml и трансформация через xslt.
А вообще и этот вариант ужасен, ибо мвц :)
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969190
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dell PowerEdge T610
CPU 2 Xeon, 8 ядер
RAM 32Gb

летает и проблем с производительностью нет, над эти проектом я уже работаю где-то год более-менее нормально эксплуатироваться начал последние 6 месяцев, можете по моим постам проверить, в частности ms sql. Частота вызова трансформации достаточно интенсивная.
Только я не буду доказывать потому что это правда.
И от вас не требую доказательств, лучше давайте подойдем к решению вопроса более конструктивно.
Если есть время, помогите с примером на ASP.NET MVC в связке jquery+wcf с серверным контролом gridview, проверил бы и для себя выводы сделал бы, да и уроком кому нибудь послужил бы.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969199
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GridView - это для вебформс :)
Я не понимаю, ну если всё летает и проблем нету, сайт написан и всё работает, зачем что-то менять?
По поводу мвц - воспользуйся гуглом, море информации.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969272
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУAntonariyпропущено...
"Рендерит, это и уходит на клиента" это не тоже самое, что "рендерит тебе на клиенте".
Я обобщенно сказал, если требуется разжевывать, то ок.Обобщенно, ага.
Ты через раз ляпаешь ерунду, за которую в школе ставят двойки, а потом удивляешься, что за дурачка принимают и тупые вопросы задают.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969382
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyМСУпропущено...

Я обобщенно сказал, если требуется разжевывать, то ок.Обобщенно, ага.
Ты через раз ляпаешь ерунду, за которую в школе ставят двойки, а потом удивляешься, что за дурачка принимают и тупые вопросы задают.
Чтобы не быть фееричным пустобрехом, ссылочки на «ерунду», за которые ставят двойки, в студию.
По поводу интелисенса проглотил?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969410
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЧтобы не быть фееричным пустобрехом, ссылочки на «ерунду», за которые ставят двойки, в студию.Если тебе за "асп.нет рендерит на клиенте" не стыдно, то мне-то какое дело? Мне твоя биография не настолько интересна, чтобы еще какие-то ссылки искать.
МСУПо поводу интелисенса проглотил?Модель в интеллисенсе это не про xsl, что уж тут скажешь.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969467
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЕсли тебе за "асп.нет рендерит на клиенте" не стыдно, то мне-то какое дело? Мне твоя биография не настолько интересна, чтобы еще какие-то ссылки искать.
Еще раз для тех кто в танке.

"асп.нет рендерит тебе на клиенте родной table" (c)

Какие вопросы? Разумеется имелось ввиду "асп.нет рендерит тебе на клиента", тут даже у тугодума вопросов не будет. Ты же прицепился к букве как клещ и начинаешь верещать ниачём. Купи себе флаг, залезь на табуретку и покричи.

Во-вторых, ты с темы не съезжай. Ты скзал, что "я через раз ляпаю ерунду". Я попросил ссылки, где они?

AntonariyМСУПо поводу интелисенса проглотил?Модель в интеллисенсе это не про xsl, что уж тут скажешь.
Какая модель в интеллисенсе, ты бредишь? Тебе напомнить вопрос?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969593
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРазумеется имелось ввиду "асп.нет рендерит тебе на клиента", тут даже у тугодума вопросов не будет. Ты же прицепился к букве как клещ и начинаешь верещать ниачём.Одна буква делает ниачём весь смысл фразы. Тебя же могут и всерьез воспринять.
МСУВо-вторых, ты с темы не съезжай. Ты скзал, что "я через раз ляпаю ерунду". Я попросил ссылки, где они?А я сказал, ссылок не будет, давай до свиданья.

МСУAntonariyпропущено...
Модель в интеллисенсе это не про xsl, что уж тут скажешь.
Какая модель в интеллисенсе, ты бредишь? Тебе напомнить вопрос?Перефразирую ответ, ты адски туг:

Атрибуты модели в интеллисенсе предоставления это не про xsl.

Так нормально или я опять недопонял твои соки мозга из-за кривого изложения?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969662
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbek,

Я бы попробовал JSON + jQuery templates. Производители браузерв постоянно улучшают производительность JS, а XSLT действительно старо. Думаю пару тестов все покажут.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37969708
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонorunbek,

Я бы попробовал JSON + jQuery templates. Производители браузерв постоянно улучшают производительность JS, а XSLT действительно старо. Думаю пару тестов все покажут.+1 — Сериализовать xml в json наверняка будет быстрее, чем xsl
+2 — можно до кучи сериализовать свои объекты
+3 — минимизирует объем траффика
+4 — это фактически "трансформация" в таблицу на клиенте, то есть уменьшение нагрузки на сервер
+5 — отсутствие каких-либо неприятных сюрпризов на клиенте
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970060
Винни-Бух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый МСУ!
Будьте добры обосновать вот это:
МСУxslt хорош для небольших вычислительных мощностей, где небольшая нагрузка с вызывающей стороны. Как только появляется более или менее серьезная нагрузка - всё, приплыли.
Что Вы подразумеваете под "более или менее серьезной нагрузкой"? Если на странице нужно отобразить 20 записей (из миллиона), так и отображайте ТОЛЬКО ИХ! А не тащите весь миллион на свой сервер приложений. Вы так лихо оперируете терминами "вебформс" и "мвц", что забыли про пейджинг? Помнится, он (paging) во всяких gridview вызывал много нареканий, да и "движок" Вашего мвц ничего нового не дал. Если в базе - бардак, то тормозить будет все и сразу. А если слой доступа к данным написан с умом, то какая разница, чем вынутые данные из БД преобразовывать в HTML. Автор темы же ясно написал, что проблемы возникали раньше из-за циклов в ASP при строительстве HTML-таблиц.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970073
Винни-Бух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ!
А Ваше "Не так тег закрыл, всё, шаблон накрылся медным тазом и вся страница завалится" - это даже не смешно! В допотопном ASP уже был метод, который и об ошибке сообщал, и символ показывал, в котором ошибочка имеется.
"Что-то с памятью моей стало?"
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970091
Винни-Бух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ!
А Ваша "чудо-технология называется байдинг" - это просто песня! Особенно, если человек "с классике перелез", и сырые данные в цикле должен анализировать, чтобы в html дополнительное форматирование ввести! Как там событие называется? OnDataItemBound? Это ж сколько суеты появляется вместо "классического" условного оператора, который в зависимости от значения в поле Recordset подставляет в html нужный класс, например? А сейчас этот самый "классический" условный оператор перелез В ЧИСТОМ ВИДЕ в Ваш суперский мвц, и Вы городите уже ДВА огорода - как в модели, так и в представлении. Да и контроллер тоже не курит в сторонке, а пыхтит вовсю, занимаясь бизнес-логикой (тут рядом недавно совсем была тема, в которой схлестнулись сторонники пихать бизнес-логику в модель и сторонники толкать в контроллер). И все это называется НОВЫМИ ТЕХНОЛОГИЯМИ, на которых НЕ пишут только лохи!
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970110
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekПриветствую всех.
В данный момент есть Web-проект (Web-клиент к базе) в котором очень часто выводятся различные табличные данные из базы данных.
Web-сервер IIS 7.5, сайт на ASP.NET+jQuery
База данных на MS SQL Server 2008 R2.
В данный момент данные из базы выводятся в Xml и в самом SQL сервере же транслируются в html-таблицу путем XSLT-шаблона.
При этом применяются различные свойства (классы) для тэгов td, tr в зависимости от значений данных в базе, т.е. активно используются инструкции if, case в XSLT-шаблонах. Также генерация различных handler'ов на события click в ячейки или в тэги th.

В данный момент ищу способ перенести преобразование xml-данных в таблицу на стороне клиента.
Возможно, средствами jQuery, но при этом было бы хорошо использовать xslt-шаблоны, без глюков на современных браузерах, буду использоватся если не самые последние браузеры, то хотя бы релизы последних 2х лет.
Цель, уменьшить нагрузку на сервере переключив трансофрмацию на клиентской стороне, и уменьшить трафик, так как передача xml-данных с небольшими атрибутами для кастомизации отображения в любом случае меньше html-данных.
Понимаю что выигрыш в килобайтах не большой может быть, но на счету дорог каждый байт.
Так как большая часть клиентов используют дорогой тариф мобильного интернета, и отдаленность клиентов тоже влияет на скорость передачи данных.

Может быть кто-то уже переходил с решения xml+xslt на более эффективный способ трансформации xml-данных в html?
Читал про yate yandex'а, но он привязан к json и в данный момент мало документирован.
Из-за этого хотел услышать мнения про эффективные (по скорости и по возможностям кастомизации) преобразования xml-данных в html-таблицу.

Спасибо за внимание и жду советов от "бывалых" ;-)

Технология рабочая если акуратно всё сделать , будет работать
есть библиотеки , кот. работают по данной технологии, например Gizmox
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970316
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Винни-БухУважаемый МСУ!
Будьте добры обосновать вот это:
МСУxslt хорош для небольших вычислительных мощностей, где небольшая нагрузка с вызывающей стороны. Как только появляется более или менее серьезная нагрузка - всё, приплыли.
Что Вы подразумеваете под "более или менее серьезной нагрузкой"? Если на странице нужно отобразить 20 записей (из миллиона), так и отображайте ТОЛЬКО ИХ! А не тащите весь миллион на свой сервер приложений. Вы так лихо оперируете терминами "вебформс" и "мвц", что забыли про пейджинг? Помнится, он (paging) во всяких gridview вызывал много нареканий, да и "движок" Вашего мвц ничего нового не дал. Если в базе - бардак, то тормозить будет все и сразу. А если слой доступа к данным написан с умом, то какая разница, чем вынутые данные из БД преобразовывать в HTML. Автор темы же ясно написал, что проблемы возникали раньше из-за циклов в ASP при строительстве HTML-таблиц.
Сложности с чтением? Я уже говорил, как будем нагружать сайт. А именно - это кол-во пользователей и объем данных в хранилище.
Причем тут 20 млн записей в бд? Какой дурак их все будет тащить на сервер приложений. Пейджинг был и должен быть, причем серверный - это даже не обсуждается. Если хочешь это обсудить, обсуди со школьниками. А тут это не интересно.
Что именно нужно тебе обосновывать про вычислительные мощности и большую нагрузку? Открой для себя студию, сделать лоад тест и радуйся.
По поводу слоя - разница есть и большая. Речь идет о рендеринговых движках - нативные (WebForms, Razor, ASPX) и ненативные (XSLT). Я разъясняю, что XSLT проиграет по скорости априори (причем в несколько раз). Только и всего. А ты начинаешь тут гнать сопли про пейджинг, про 20 миллионов записей. Акстись епт, человек.

Винни-БухМСУ!
А Ваше "Не так тег закрыл, всё, шаблон накрылся медным тазом и вся страница завалится" - это даже не смешно! В допотопном ASP уже был метод, который и об ошибке сообщал, и символ показывал, в котором ошибочка имеется.
"Что-то с памятью моей стало?"
Ты каким местом читаешь? Еще раз для трудных:

МСУЯ тебе о ошибках на этапе компиляции. xslt может прийти из тфс битый и никто ошибки не заметит, пока не отработает шаблон. И чаще всего такие ошибки идут прямиком на продакшен.
В случае же мвц или винформс большинство ошибок не пропустит студия.

Это значит, что речь идет о том, что файл стал битый не по твоей вине. При билде проекта студия не покажет поломанные xslt.
Никогда не работал с сабвёршен системами? RTFM.

Винни-БухМСУ!
А Ваша "чудо-технология называется байдинг" - это просто песня! Особенно, если человек "с классике перелез", и сырые данные в цикле должен анализировать, чтобы в html дополнительное форматирование ввести! Как там событие называется? OnDataItemBound? Это ж сколько суеты появляется вместо "классического" условного оператора, который в зависимости от значения в поле Recordset подставляет в html нужный класс, например? А сейчас этот самый "классический" условный оператор перелез В ЧИСТОМ ВИДЕ в Ваш суперский мвц, и Вы городите уже ДВА огорода - как в модели, так и в представлении. Да и контроллер тоже не курит в сторонке, а пыхтит вовсю, занимаясь бизнес-логикой (тут рядом недавно совсем была тема, в которой схлестнулись сторонники пихать бизнес-логику в модель и сторонники толкать в контроллер). И все это называется НОВЫМИ ТЕХНОЛОГИЯМИ, на которых НЕ пишут только лохи!
Чем тебе не нравится байдинг? Это основа основ WebForms, WPF, WinForms, Silverlight. Купи книжку и учи умные слова.
В чем сложности с OnDataItemBound? Обычный перехват байдинга элементов грида на низком уровне, если нужно вставить свои дополнительные условия. Применяется не везде, а только для конкретных задач. В чем проблема?
Про мвц поржал Ты хотя бы букварь открыл бы, прежде чем тупость писать. Какой именно огород в модели и какой в представлении? Коль ляпнул, давай рассказывай подробно. А XML и XSLT - это не огороды, причем пормозные?

И в заключении простейший тест, который показывает, что XSLT более, чем в 3 раза проигрывает по скорости нормальным человеческим движкам.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970324
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Винни-БухВ допотопном ASP уже был метод, который и об ошибке сообщал, и символ показывал, в котором ошибочка имеется.
"Что-то с памятью моей стало?
Нет там такого для разметки.

Винни-БухА Ваша "чудо-технология называется байдинг" - это просто песня! Особенно, если человек "с классике перелез", и сырые данные в цикле должен анализировать, чтобы в html дополнительное форматирование ввести! Как там событие называется? OnDataItemBound? Это ж сколько суеты появляется вместо "классического" условного оператора, который в зависимости от значения в поле Recordset подставляет в html нужный класс, например? А сейчас этот самый "классический" условный оператор перелез В ЧИСТОМ ВИДЕ в Ваш суперский мвц, и Вы городите уже ДВА огорода - как в модели, так и в представлении. Да и контроллер тоже не курит в сторонке, а пыхтит вовсю, занимаясь бизнес-логикой (тут рядом недавно совсем была тема, в которой схлестнулись сторонники пихать бизнес-логику в модель и сторонники толкать в контроллер).

Критиковать что угодно можно. Вам дают инструмент, дальше все от рук и головы зависит. Или может вы некую серебряную пулю предложите? :)
Раскройте идеальную платформу )
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970365
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУИ в заключении простейший тест, который показывает, что XSLT более, чем в 3 раза проигрывает по скорости нормальным человеческим движкам.

Тест интересно на большой объем данных, а не на большое количество мелких загрузок.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970375
Винни-Бух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что касается теста, то тут, действительно, Парамон правильно заметил: "большой объем данных, а не большое кол-во мелких загрузок" надо. Да и шаблоны, часто встречающиеся в коде, будут лежать в памяти, а не браться с диска. Поэтому и тестировать надо соответствующим образом. Но с этим разберемся со временем.

А вот тема, касающаяся мвц:
http://www.sql.ru/forum/actualthread.aspx?tid=969880

И еще:
http://www.sql.ru/forum/actualthread.aspx?tid=968230&pg=1&mid=13173260#13173260

Народ вроде умный, технологии - новые, посеребренные, а на выходе все равно получается танк.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970418
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Винни-Бухна выходе все равно получается танк.
Не понял, откуда такое умозаключение, и на какую тему холивар предлогаете :)
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970561
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Винни-БухЧто касается теста, то тут, действительно, Парамон правильно заметил: "большой объем данных, а не большое кол-во мелких загрузок" надо. Да и шаблоны, часто встречающиеся в коде, будут лежать в памяти, а не браться с диска. Поэтому и тестировать надо соответствующим образом. Но с этим разберемся со временем.

А вот тема, касающаяся мвц:
http://www.sql.ru/forum/actualthread.aspx?tid=969880

И еще:
http://www.sql.ru/forum/actualthread.aspx?tid=968230&pg=1&mid=13173260#13173260

Народ вроде умный, технологии - новые, посеребренные, а на выходе все равно получается танк.

Xslt/XPath 1.0 это грустно, эксперементировал с Xslt 2.0 но ..
поддержку 2.0 Microsoft не планирует в обозримом будущем, насколько я знаю.
Соответственно строить что то "серьезное" на Xslt не стал бы.
Но если заморочиться (на что в реальном проекте зачастую, увы, нет времени. Да и не отценит никто )
то может получится очень даже красиво и декларативно :)


IMXO
Если данные приходят в XML для транcформации я пользую Linq to Xml.
Быстро, дешево, сердито.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970563
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tsyselsky,

А при чём здесь майкрософт?
Да и кто сказал, что не поддерживают? Ссылочку, плз.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970573
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУИ в заключении простейший тест, который показывает, что XSLT более, чем в 3 раза проигрывает по скорости нормальным человеческим движкам.

Тест интересно на большой объем данных, а не на большое количество мелких загрузок.
1. Большому объему данных нечего делать на клиенте.
2. Интересно должно быть различные комбинации, и мелкие страницы, и пухлые. В любом случае xslt рендеринг проигрывает в несколько раз.

Винни-БухЧто касается теста, то тут, действительно, Парамон правильно заметил: "большой объем данных, а не большое кол-во мелких загрузок" надо. Да и шаблоны, часто встречающиеся в коде, будут лежать в памяти, а не браться с диска. Поэтому и тестировать надо соответствующим образом. Но с этим разберемся со временем
Я что-то не понял, несколькими постами выше ты верещал о том, что в xml нужно подать данные только для отображения. Теперь ты пишешь о больших объемах. Как понимать?
В любом случае перформанс xslt будет в заднице, какая бы пухлая страница не была. Датабайдинг с евалом порвет как тузик грелку твои xslt костыли. Не веришь, проверь сам. Проект я дал, твоя задача сделать грид с байдингом vs xslt + table + foreach tr. Слабо, или только языком чесать умеешь?
Невооруженным глазом видно, что как-то ты заткнулся, увидев реальный тест :)
Тестировать нудно различные варианты, а не что-то одно. В любом случае xslt для генерации хтмл - тупиковая ветвь развития, как по скорости работы, как по скорости разработки, как по качеству поддержки, сопровождения, развития и рефакторинга. WebForms или MVC, остальному место на свалке. Отголоски классического апс предоставь пенсионерам, а не в дотнет тащи.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970586
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyОдна буква делает ниачём весь смысл фразы. Тебя же могут и всерьез воспринять.

А по-моему тебе просто сказать нечего, ни аргументов, ни по делу. Вот и слюной брызгаешь.
AntonariyА я сказал, ссылок не будет, давай до свиданья.
В простонародии это называется слив.

AntonariyАтрибуты модели в интеллисенсе предоставления это не про xsl.

Так нормально или я опять недопонял твои соки мозга из-за кривого изложения?
Вся проблема из-за твоего кривого восприятия. Ты еще не понял, что чушь сморозил тогда?
Вообщем тема интелисенса закрыта. Опять xslt в пролете.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970587
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ1. Большому объему данных нечего делать на клиенте.

Вроде это и проблема. О чем тогда топик?

orunbekпросто специфика задачи есть, которая не позволяет использовать постраничное деление данных
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970595
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонМСУ1. Большому объему данных нечего делать на клиенте.

Вроде это и проблема. О чем тогда топик?

orunbekпросто специфика задачи есть, которая не позволяет использовать постраничное деление данных

Я сам не понимаю проблему, это я задавал автору. Всё работает, всё устраивает. Как я понял, тс хочет на перспективу заняться оптимизацией.

Лично я разъяснил, что сам подход плохой. Начали спорить, доказывать, какой xslt хороший. Я обратное. Не верят. Я им тест. Пока заткнулись.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970636
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Винни-БухДа и шаблоны, часто встречающиеся в коде, будут лежать в памяти, а не браться с диска.
А вот это, кстати, не особо важно. Основная проблема - это время на трансформацию, а не на шаблон в памяти. Кстати, время будет практически одинаковым, можешь сделать тест. Так что мимо - это не оптимизация, а пук в кустах. Оптимизация - это выкинуть xslt и сделать нативными средствами.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970672
Фотография tsyselsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergetsyselsky,

А при чём здесь майкрософт?
Да и кто сказал, что не поддерживают? Ссылочку, плз.

http://msdn.microsoft.com/en-us/library/system.xml.xsl.xslcompiledtransform.aspx

XslCompiledTransform Class

.NET Framework 4.5
----------------------------
Transforms XML data using an XSLT style sheet.

Remarks
-------------
The XslCompiledTransform class is an XSLT processor that supports the XSLT 1.0 syntax.


О нормальной поддержке браузерами XSLT вообще и 2.0 в частности, тоже остается только мечтать :]
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970827
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВинни-Бух
Датабайдинг с евалом порвет как тузик грелку твои xslt костыли. Не веришь, проверь сам. Проект я дал, твоя задача сделать грид с байдингом vs xslt + table + foreach tr. Слабо, или только языком чесать умеешь?
Винни-Бух, вообщем я тебя пожалел и написал сам тест. И ты не поверишь, я сделал грид на aspx страничке и привязал 100 элементов {ID, Title}. А на xslt я оставил всё как есть , то есть никаких table. И всё-равно на тесте xslt проиграл ровно в 2 раза по скорости

Default2.aspx
Код: c#
1.
2.
GridView1.DataSource = Enumerable.Range(1, 100).Select(d => new { ID = d, Title = "Значение " + d }).ToList();
GridView1.DataBind();



<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" Inherits="WebXsltDemo.Default2" %>

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head runat="server">
</head>
<body>
    <h1>
        Hello World!</h1>
    <form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server" />
    </form>
</body>




Default.xslt
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output indent="yes" />
  <xsl:output method="html"/>
  <xsl:template match="/">
    <xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</xsl:text>
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <title>
          <xsl:value-of select="text"/>
        </title>
      </head>
      <body>
        <h1>
          Hello World!
        </h1>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>



В аттаче отрендеренная страничка с table.

P.S. Теперь ты понимаешь скорость рендеринга WebForms? Она просто молниеносна. xslt я даже не трогал, там никаких table и никакой динамики - всё-равно в 2 раза по скорости просела.

P.S2. А если использовать MVC движок, так скорость еще больше будет, так как полный контроль над страницей, никаких вьюстейтов, форм и пр. Так что отдыхай со своим xslt в сторонке и не зуди.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970858
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,

тест не совсем корректный, понятно что нативный рендериг рвёт xslt, но что будет при максимальной нагрузке на сайт, вопрос как раз в том, какой будет выигрыш при переносе рендеринга на клиента
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970895
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationМСУ, тест не совсем корректный, понятно что нативный рендериг рвёт xslt, но что будет при максимальной нагрузке на сайт
Ты код читаешь?

Код: c#
1.
2.
3.
4.
5.
6.
swatch.Start();
for (int i = 0; i < 1000; i++)
{
    client.DownloadString(url1);
}
swatch.Stop();



Можешь сделать параллельные запросы через Action в Parallel, можешь лоад тест сделать. Результат будет аналогичный.

pationвопрос как раз в том, какой будет выигрыш при переносе рендеринга на клиента
Обсудили же уже, клиентский рендеринг - ненадежное решение, мина замедленного действия у себя в огороде. Тебе это нужно?
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37970924
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ненадежное только при навигации на xml с инструкцией xml-stylesheet. Если получать xml через ajax и трансформировать скриптом, то никаких проблем и сюрпризов.
Но все равно отстой в архитектурном плане.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #37971103
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем, позволю себе резюмировать.
1. Старые проекты на xslt + xml = html продолжаем поддерживать так же, как и раньше. Ибо переход на нативный рендеринг неоправданно дорог по трудозатратам.
2. Новый функционал в этих старых проектах разрабатываем на том нативном движке, на котором работает веб приложение (веб формс, мвц).
3. Новые проекты решаем на нативных движках. Если нужно полностью контролировать клиентский код и отделять логику от представления - бесспорно мвц, в остальных случаях вебформс.
4. Рендерить html средствами xslt клиента - плохое ненадежное решение, которое может работать, неработать или неправильно работать в различных браузерах.
5. XSLT не развивается, ибо его нативная поддержка майкрософтом ограничена 1.0 версией. Так что для дотнета это серьезный повод задуматься о перспективах такого решения.

Вроде всё. У кого есть что дополнить или возразить - велкам.
...
Рейтинг: 0 / 0
Альтернатива XML+XSLT=HTML
    #38020003
вот была подобная реализацияМСУ,
...
Рейтинг: 0 / 0
81 сообщений из 81, показаны все 4 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Альтернатива XML+XSLT=HTML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]