Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Приветствую всех. В данный момент есть 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-таблицу. Спасибо за внимание и жду советов от "бывалых" ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2012, 22:24 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Если отдавать голый xml с инструкцией xml-stylesheet, то могут всплывать разные сюрпризы в разных браузерах. Например, хром как раз двухгодичной давности внезапно потерял способность делать трансформацию, что вызвало волну кирпичей по всему миру, и эта способность к нему вернулась лишь несколько версий спустя. Все проблемы решаемы, но есть один баг в ie9 — вместо русского текста он может нарисовать белиберду (см. рис.). Поэтому основную страницу лучше отдавать в html, а через ajax можно и xml, трансформируя его скриптом. Но в этом случае возникает вопрос, где взять xsl? Если с сервера, то это будет лишний запрос, что никак не повысит быстродействие ни сервера ни интерфейса. Можно xsl вставить в сам xml, но это приведет к появлению моря мелких xsl, в котором несложно утонуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 10:14 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Т.е. предлагаете оставить все как есть? А передача xml с трансформацией через xslt на стороне клиента, это "море браузеров с кучей подводных камней"? И в конечном счете больше проигрыша чем выигрыша? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 12:46 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Т.е. предлагаете оставить все как есть?да. И в конечном счете больше проигрыша чем выигрыша?На крупных трансформациях больше выигрыша в плане ресурсов сервера, на мелких — проигрыша. И в любом случае это проигрыш на клиентах в принципе не способных на трансформацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2012, 20:55 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
За такую «архитектуру» нужно увольнять из компании и бить розгами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2012, 17:03 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ, За XML+XSLT на стороне клиента? или на стороне сервера? Или вообще за XML+XSLT? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2012, 09:29 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekМСУ, За XML+XSLT на стороне клиента? или на стороне сервера? Или вообще за XML+XSLT? Я про xml + xslt = html. Наследие прошлого, когда хотели полностью отделить логику от представления. Сейчас есть asp.net mvc, его и используем. А грабли типа xslt - большой жирный гроздь в производительность, в поддержку, в рефакторинг и в сопровождение. Скорость разработки шаблона в разы выше, чем разработка на родных движках webforms / mvc. Нужна правильная архитектура и быстрое качественное решение? Юзай полноценные фреймворки, а это гумно на лопате - удел кривомыслящих архитекторов с идиотской идеей универсализировать мир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2012, 13:10 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ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-таблица к примеру) способе передачи полученных данных от сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 18:59 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ, дополню еще, у меня еще не было опыта в использовании MVC-фреймворков, в основном небольшие проекты обращающиеся к БД и возвращающие различные данные. Есть ли способы в ASP.NET MVC 3ей версии или в 4ой версии, более быстрые варианты преобразования xml-данных в html-таблицу к примеру, ежели связка xml+xslt? Например, следующий xml Код: xml 1. 2. 3. 4. 5. 6. 7. в таблицу вида: Код: html 1. 2. 3. 4. 5. 6. 7. 8. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 19:08 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
извиняюсь, забыл добавить еще количество строк может превышать 500-1000 записей, т.е. действительно быстрый способ формирования данных должен быть при этом возможны дополнительные наложения html-кодов onlclick и т.д. на опредленные тэги таблицы, в зависимости от исходных данных. Даже если xslt это пережиток, в данный момент он с этой задачей справляется, просто хотел перекинуть преобразование в таблицы на клиенсткие браузеры уже и снизить трафик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 19:11 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekвнутри хранимой процедуры в SQL Server'е, получаю данные в виде XML, которые посредством трансофрмации шаблоном xlst преобразую в html-данные. Всё запрещено, причем сильно. Архитектора такого решения на свалку. Не нужно в слой бд закладывать вопросы представления (хтмл) или модели (xml). База данных предназначена для хранения данных и только для этого. Обращение к базе и выдача результата должна быть как можно быстрой. Никаких преобразований в xml средствами базы, только данные, правильно поставленные индексы и всё. После того, как данные попадают на сервер приложений, их в сыром виде конвертируют в модель (представления), которую скармливают самому представлению (через контроллер, если это мвц). Никаких преобразований xml, xslt. Так работают всё нормальные движки, которые рендерят html (webforms, mvc - razor, aspx, ...). Ты же используешь свой наколенный движок рендеринга на основе xslt, да еще и в слой бд прибил xml. Жуть, разумеется весь этот навоз будет нереально тормозить. Особенно на большом кол-ве данных и при большой нагрузке (в т.ч. при пиках) на сайт. Два варианта - переписать этот бред на нормальном движке либо оставить всё как есть и насладиться тормозами. Я бы начал переписывать отдельные части проекта, при наличии ресурсов, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 19:57 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekДаже если xslt это пережиток, в данный момент он с этой задачей справляется, просто хотел перекинуть преобразование в таблицы на клиенсткие браузеры уже и снизить трафик Для задач генерации html это действительно пережиток прошлого. Ладно бы еще отдельные веб-контролы, небольшие веб-части по такому принципу рендерить, но чтобы весь сайт так строить, это батенька пестец чистой воды. Про клиентский рендерринг коллеги ж уже высказались, что не понятно? Забудь. xslt хорош для небольших вычислительных мощностей, где небольшая нагрузка с вызывающей стороны. Как только появляется более или менее серьезная нагрузка - всё, приплыли. Нужна внешняя динамика - не вопрос, плагиностроение. Создаем сборки, подключаем, пользуемся. Например, классическая задача «подключаемые тарифы». CodeDom в руки и вперед. Что-то я отвлекся и меня понесло :) Просто я негодую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:06 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУВсё запрещено, причем сильно. Всё запущено... Сорри, т9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:10 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ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 таблицу, скиньте линк пожалуйста, для ликбеза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:13 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Вот представляю себе извращенца, который в xslt готовит html-шаблон... Мрак. Ни интеллисенса, ни человечески читаемого html, ни плюшек в виде серверных контролов, ни мвц-хелперов, ни отлова ошибок. Не так тег закрыл, всё, шаблон накрылся медным тазом и вся страница завалится. А еще ко всему этому добавить тормозов, всё. Харакири - верный друг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:16 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekЕсли есть быстрый и опробованный способ преобразования данных из базы, скажем datareader'а в html таблицу, скиньте линк пожалуйста, для ликбеза Вот, пошли правильные вопросы. Конечно есть! Если вебформ, то эта чудо-технология называется байдинг. Есть серверный контрол GridView, у него есть свойств DataSource. Заглянешь туда сырые данные из бд и асп.нет рендерит тебе на клиенте родной table. Всё, очень быстро и правильно. Я так и думал, что ты с классики перелез. Это всё с асп пришло... Совет - возьми нормальную книжку и изучи богатые возможности платформы. Про xslt забудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:21 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ, У меня web-forms в связке с jQuery работает, вызывается метод wcf-сервиса, который получает из БД готовый html, который и вставляется в внутренность определенного div'а Подскажите плз метод трансформации данных sql в WCF-сервисе в таблицу со сложными правилами, т.е. подитожывание, проверка значений и добавление onclick и других event'ов в код таблицы и при этом без потери скорости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:27 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
для меня желательно не использовать server'ные контролы наподобие GridView, так как они достаточно тяжеловесны очень много ajax'а и поэтому со стороны web-сервиса должны возвращаться готовые данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:30 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
О, да тут и вцф сервис есть Еще раз говорю - это задача сайта, а не бд или сервиса. Сервис должен возвращать DTO объект (или коллекцию их), а задача веб-формс всё это отрендерить через родной движок. А у тебя сборная солянка какая-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:32 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekЯ на этот вариант перешел именно из-за торможения, при цикличном преобразовании данных из базы в html-таблицу на стороне ASP.NET приложения. Странно все это. Вы что, всю базу в html выгружаете? А на странички там разбить? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:33 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekдля меня желательно не использовать server'ные контролы наподобие GridView, так как они достаточно тяжеловесны очень много ajax'а и поэтому со стороны web-сервиса должны возвращаться готовые данные Они не тяжеловесны в прямых руках. И уж тем более не тяжеловесней, чем твоя сборная солянка :) Юзай родной рендерринг вебформс и будет щастье. В некоторых случаях вообще хватит клиентских контролов. Но упаси боже никаких xml и xslt. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:36 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbek, Возвращайте не ХML, а JSON. Можно в вэб-приложении (на сишарпе, например) трансформировать XML2JSON, а в браузере - дело техники. Можно ExtJs заюзать, например, или ручками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:36 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУО, да тут и вцф сервис есть Еще раз говорю - это задача сайта, а не бд или сервиса. Сервис должен возвращать DTO объект (или коллекцию их), а задача веб-формс всё это отрендерить через родной движок. А у тебя сборная солянка какая-то. Я это полностью понимаю в плане правильной архитектуры, но такой вариант я использовал только для эффективной и быстрой выборки данных. Конечно можно сделать так, чтобы хранимка в сервере БД возвращала просто xml-набор данных, а преобразованием в html-таблицу будет заниматься Web-сервер. Но даже в этом случае, знаю только один способ быстрого преобразования в html-таблицу из xml. Цикличная обработка сразу отпадает. А все перенес в SQL из-за того, что t-sql может очень быстро возвращать набор записей в xml-виде и остается только преобразовать посредством xslt-трансформации и для того, чтобы не хранить xlst-шаблоны локально на сервере, а прям из базы вытаскивать и трансформировать ПарамонorunbekЯ на этот вариант перешел именно из-за торможения, при цикличном преобразовании данных из базы в html-таблицу на стороне ASP.NET приложения. Странно все это. Вы что, всю базу в html выгружаете? А на странички там разбить? ) Нет конечно, просто специфика задачи есть, которая не позволяет использовать постраничное деление данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:42 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУНи интеллисенсаДля xsl интеллисенс есть, для html он нафиг не нужен. МСУ ни человечески читаемого htmlЧеловечески читаемого html нет как раз в мвц. Но это наверное дело вкуса. МСУНе так тег закрылСтудия тут же выкатит ошибку. Чтобы страница завалилась, нужно вообще нихрена не обращать внимания на сообщения студии. МСУасп.нет рендерит тебе на клиенте родной tableКаком еще клиенте? Клиент получает готовый html. И рендерит его лишь в графическом смысле слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:43 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУorunbekдля меня желательно не использовать server'ные контролы наподобие GridView, так как они достаточно тяжеловесны очень много ajax'а и поэтому со стороны web-сервиса должны возвращаться готовые данные Они не тяжеловесны в прямых руках. И уж тем более не тяжеловесней, чем твоя сборная солянка :) Юзай родной рендерринг вебформс и будет щастье. В некоторых случаях вообще хватит клиентских контролов. Но упаси боже никаких xml и xslt. Может быть, но для меня проще использовать "чистый" html с возможностями jquery ShSergeorunbek, Возвращайте не ХML, а JSON. Можно в вэб-приложении (на сишарпе, например) трансформировать XML2JSON, а в браузере - дело техники. Можно ExtJs заюзать, например, или ручками. В простых наборах данных так и делаю, т.е. WCF-сервис обращается к базе, вызывает хранимку, получает результат и возвращает их в JSON-наборах данных. Основная проблема в преобразовании табличных данных из базы в html-таблицу Может быть действительно xml+xslt это старье, но возможности xslt-шаблонов (условное конструкции, циклы, проверка последних строк, группировка) меня устраивают и позволяют создавать простые шаблоны для формирования сложных табличных данных. В принципе Yandex.Mail тоже сравнительно недавно перешел на другие способы формирования данных, но и то в их случае это шаблонизатор. В моем же случае простой, быстрый и гибкий способ формирования html-таблицы из базы, с условиями формирования и проверки исходных данных в xslt-шаблоне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:50 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ... Еще раз говорю - это задача сайта, а не бд или сервиса. Сервис должен возвращать DTO объект (или коллекцию их), а задача веб-формс всё это отрендерить через родной движок ... А если сервер БД будет возвращать набор xml, а web-сервер будет преобразовывать xml в html-табличку через xslt будет это "архитектурно" правильно? так сказать в стиле MVC? И это решение от текущего будет отличаться только тем, что трансформацией занимается Web-сервер а не сервер БД, и все. Но в любом случае задача преобразования xml-данных в html'таблицы на стороне клиента остается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:54 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbek...Может быть действительно xml+xslt это старье... Нет, всё нормально. Может быть, не очень удобно для программиста (мне, например XSLT писать лень), а так - всё отлично. Другое дело, что всё-таки хмл - данные, а хтмл - отображение этих данных. Здесь важно почувствовать некоторую разницу. То есть, я в хтмл могу вставить яваскрипты, я могу их и в селект из БД вставить, но - нехорошо мухи с котлетами мешать. Короче, проблемы имеют только религиозный характер. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 20:59 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
При этом скорость обновления данных из БД в html думаю получше будет, в проекте где данные обновляются путем ajax-вызова WCF-сервиса чем подобное решение В связке "чистый html"+ajax+wcf (который возвращает готовый html-таблицу, трансформированный из xml-наборов данных посредством xslt) Ну а вообще, вне сабжа, есть ли проекты, в которых кто-либо до сих пор используются xslt-шаблоны для формирования табличных или иных данных? P.S. Это я не для оправдывания, а хочу узнать насколько xslt-трансформация потеряла свою актуальность, и если это так, то "менять курс" в следующих проектах ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 21:01 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
ShSergeorunbek...Может быть действительно xml+xslt это старье... Нет, всё нормально. Может быть, не очень удобно для программиста (мне, например XSLT писать лень), а так - всё отлично. Другое дело, что всё-таки хмл - данные, а хтмл - отображение этих данных. Здесь важно почувствовать некоторую разницу. То есть, я в хтмл могу вставить яваскрипты, я могу их и в селект из БД вставить, но - нехорошо мухи с котлетами мешать. Короче, проблемы имеют только религиозный характер. :) Понятно, данный вариант формирования данных я использую в первую очередь из-за скорости и гибкости при формировании html-таблиц или данных. Конечно javascript туда "не пихаю", а просто onclick на определенную функцию, в зависимости от определенных значений, ну или различные css-class'ы через тэг xsl:attribute в зависимости от значения исходных данных Конечно, если есть более нативный, быстрый и гибкий для ASP.NET (3.5 или 4ой версии) способ формирования html из данных sql сервера или xml-данных, то я с удовольствием опробовал бы этот способ, отдавая "дань моде" :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 21:05 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
AntonariyДля xsl интеллисенс есть, для html он нафиг не нужен. Это не интеллисенс, а гумно на лопате. Сравни с интеллисенсом мвц, когда тебе доступны всё атрибуты модели в предоставлении, когда тебе доступен весь .нет в модели. Это называется интеллисенс. AntonariyЧеловечески читаемого html нет как раз в мвц. Но это наверное дело вкуса. В мвц есть человечески читаемый язык, а не те огрызки тегов, которые в xslt. Во-вторых в мвц или вебформс никто не запрещает писать человеческий хтмл. В любом случае это читабельно и понятно для восприятия. AntonariyСтудия тут же выкатит ошибку. Чтобы страница завалилась, нужно вообще нихрена не обращать внимания на сообщения студии. Я тебе о ошибках на этапе компиляции. xslt может прийти из тфс битый и никто ошибки не заметит, пока не отработает шаблон. И чаще всего такие ошибки идут прямиком на продакшен. В случае же мвц или винформс большинство ошибок не пропустит студия. AntonariyКаком еще клиенте? Клиент получает готовый html. И рендерит его лишь в графическом смысле слова. На обычном клиенте, браузер называется. Асп.нет рендерит, это и уходит на клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 21:50 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekМожет быть действительно xml+xslt это старье, но возможности xslt-шаблонов (условное конструкции, циклы, проверка последних строк, группировка) меня устраивают и позволяют создавать простые шаблоны для формирования сложных табличных данных. Всё это делается родными средствами вебформс без каких-либо костылей и подпорок. Причем это работает быстро и проблем не возникает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 21:54 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekМСУ... Еще раз говорю - это задача сайта, а не бд или сервиса. Сервис должен возвращать DTO объект (или коллекцию их), а задача веб-формс всё это отрендерить через родной движок ... А если сервер БД будет возвращать набор xml, а web-сервер будет преобразовывать xml в html-табличку через xslt будет это "архитектурно" правильно? так сказать в стиле MVC? И это решение от текущего будет отличаться только тем, что трансформацией занимается Web-сервер а не сервер БД, и все. Но в любом случае задача преобразования xml-данных в html'таблицы на стороне клиента остается. Забудь про xml. Не нужно его впихивать в каждую щель. Он оправдан только там, где действительно это надо. В твоем случае твоя архитектура - помойка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 21:56 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekP.S. Это я не для оправдывания, а хочу узнать насколько xslt-трансформация потеряла свою актуальность, и если это так, то "менять курс" в следующих проектах ;-) Потеряла еще давно, как только появился асп.нет. А когда вышел мвц, то и подавно. Отголоски классического асп, которым место на помойке, а не в .нет решениях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 22:00 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekданный вариант формирования данных я использую в первую очередь из-за скорости и гибкости при формировании html-таблиц или данных. А почему тогда жалуешься, что всё тормозит? orunbekКонечно, если есть более нативный, быстрый и гибкий для ASP.NET (3.5 или 4ой версии) способ формирования html из данных sql сервера или xml-данных, то я с удовольствием опробовал бы этот способ, отдавая "дань моде" :-) Десятый раз говорю, забудь про xml. Ты на нем помешался ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 22:03 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУДесятый раз говорю, забудь про xml. Ты на нем помешался А вот Балмер сказал, что хмл - наше всё. :) Пардон, ролик сейчас не найду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 22:42 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУAntonariyКаком еще клиенте? Клиент получает готовый html. И рендерит его лишь в графическом смысле слова. На обычном клиенте, браузер называется. Асп.нет рендерит, это и уходит на клиента."Рендерит, это и уходит на клиента" это не тоже самое, что "рендерит тебе на клиенте". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 22:43 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ, ёклмн, кто жалуется что тормозит? Я ищу способы дополнительной оптимизации, а xml просматриваю только "в свете" трансформации в html через xslt и уменьшения трафика от Web-сервиса к клиенту. А варианты рендеринга данных из базы без использования серверных контролов наподобие GridView? На стороне web-сервиса WCF к примеру? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 22:45 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekМСУ, ёклмн, кто жалуется что тормозит? Я ищу способы дополнительной оптимизации, а xml просматриваю только "в свете" трансформации в html через xslt и уменьшения трафика от Web-сервиса к клиенту. А варианты рендеринга данных из базы без использования серверных контролов наподобие GridView? На стороне web-сервиса WCF к примеру? Погуглил, выше уже приводил эту ссылку, нашел пока этот http://www.aspsnippets.com/Articles/Bind-Dataset-to-ASPNet-GridView-using-jQuery-AJAX.aspx есть решение которое более "элегентно" и "побыстрее" будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 22:47 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbek, Да нету вариантов. Либо "построчно", как во времена asp и детства интернетов, либо xml/xsl отрочества, либо мвц юности. И если второе натянуть на первое можно со значительным выигрышем в большинстве аспектов, то третье это значительный шаг вперед, завязанный на такие вещи, как всякие линки и ормы, в старых архитектурах неприменимые. Вернее применимы, но свой потенциал вне мвс не раскроют, ну это все равно как сменить dao на adodb и продолжать гонять рекордсеты построчно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 22:59 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Мм.... надо попробовать реализовать тест, смогу без проблем такое сделать для построчного вывода в ASP.NET и/или XML/XSLT вариант но не смогу сделать оптимальный вариант рендеринга в html-таблицу в WCF-сервисе в ASP.NET MVC на третий случай есть у кого желание и время написать простой тест на SELECT? С различными дополнениями в виде дополнения css-class'ов к tr в зависимости от исходных значений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 23:10 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
+1, тоже хочу погонять такой пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 23:14 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
На завтра подготовлю пример по работе с данными MS SQL вариант вывода данных через XML+XSLT полностью на стороне SQL-сервера вариант вывода данных через XML+XSLT, на стороне SQL-сервера получение xml-данных, на стороне Web-сервера траснформация через XSLT Думаю, пример построчного вывода делать нету смысла, так как он во всех отношениях проигрывает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2012, 23:33 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
AntonariyМСУпропущено... На обычном клиенте, браузер называется. Асп.нет рендерит, это и уходит на клиента."Рендерит, это и уходит на клиента" это не тоже самое, что "рендерит тебе на клиенте". Я обобщенно сказал, если требуется разжевывать, то ок. orunbekМСУ, ёклмн, кто жалуется что тормозит? Я ищу способы дополнительной оптимизации, а xml просматриваю только "в свете" трансформации в html через xslt и уменьшения трафика от Web-сервиса к клиенту. А варианты рендеринга данных из базы без использования серверных контролов наподобие GridView? На стороне web-сервиса WCF к примеру? Не понимаю, зачем оптимизировать то, что замечательно работает? А если ты хочешь трансформацию делать на клиенте, это еще больше трафика будет. На стороне веб сервиса рендерить html идиотизм. Почему ты так боишься заниматься этим на сайте, собственно, где рендерингу и место? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 00:07 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Мля, люди. Ваши убитые жизнью архитектуры не видывали базы от сотен гигабайт и выше, а так же нагрузку в пиках при минимум 5 тыс. пользователей в момент времени. За ваши xml из хранимых процедур дба минимум яйца отрежет, за xml + xslt сайт набок сляжет. Безумцам классического асп нужно не подпорки переносить на новые платформы, а заново перерабатывать механизм в соответствие с новыми технологиями и правилами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 00:15 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
На пример, представим ту же трансформацию на стороне клиента средствами xml+xslt, xml весит меньше чем конечный html, по крайней в моем случае, а xsl шаблон будет закеширован. Кроме того уменьшается нагрузка на стороне сервера. Ну как вариант, но как в начале ответили и google "подсказал" о проблемах браузеров, из-за чего ищу другие способы. Раз тема пошла про MVC что для меня ново, хотел разузнать больше, если по скорости и функционслу больше почему бы на MVC не перейти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 00:23 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУМля, люди. Ваши убитые жизнью архитектуры не видывали базы от сотен гигабайт и выше, а так же нагрузку в пиках при минимум 5 тыс. пользователей в момент времени. За ваши xml из хранимых процедур дба минимум яйца отрежет, за xml + xslt сайт набок сляжет. Безумцам классического асп нужно не подпорки переносить на новые платформы, а заново перерабатывать механизм в соответствие с новыми технологиями и правилами. В данный момент полугодичная база весит 245gb, число активных пользователей в среднем 2000-2500 пока что. Есть схожие проекты с такой же технологией работает уже несколько лет и без проблем. В последнем проекте желательно уменьшить траф между клиентом и сервером и постараться уменьшит нагрузку, так как собираюсь там запустить еще 2 проекта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 00:29 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Если тебе нужен полный контроль разметки (особенно важно для мобильных клиентов) и полное разделение логики и представления - мвц, строго. Если этим можно пренебречь, оставайся на вебформс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 00:30 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekВ данный момент полугодичная база весит 245gb, число активных пользователей в среднем 2000-2500 пока что. Неплохо. И что, нет вообще проблем с производительностью, всё летает? Хоть убей, не верю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 00:33 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbekНа завтра подготовлю пример по работе с данными MS SQL вариант вывода данных через XML+XSLT полностью на стороне SQL-сервера вариант вывода данных через XML+XSLT, на стороне SQL-сервера получение xml-данных, на стороне Web-сервера траснформация через XSLT Думаю, пример построчного вывода делать нету смысла, так как он во всех отношениях проигрывает Оба варианта плохие. Самый правильный - получение чистых данных из сиквел сервера, на стороне веб-сервера - преобразование чистых данных в xml и трансформация через xslt. А вообще и этот вариант ужасен, ибо мвц :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 00:44 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Dell PowerEdge T610 CPU 2 Xeon, 8 ядер RAM 32Gb летает и проблем с производительностью нет, над эти проектом я уже работаю где-то год более-менее нормально эксплуатироваться начал последние 6 месяцев, можете по моим постам проверить, в частности ms sql. Частота вызова трансформации достаточно интенсивная. Только я не буду доказывать потому что это правда. И от вас не требую доказательств, лучше давайте подойдем к решению вопроса более конструктивно. Если есть время, помогите с примером на ASP.NET MVC в связке jquery+wcf с серверным контролом gridview, проверил бы и для себя выводы сделал бы, да и уроком кому нибудь послужил бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 00:49 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
GridView - это для вебформс :) Я не понимаю, ну если всё летает и проблем нету, сайт написан и всё работает, зачем что-то менять? По поводу мвц - воспользуйся гуглом, море информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 01:03 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУAntonariyпропущено... "Рендерит, это и уходит на клиента" это не тоже самое, что "рендерит тебе на клиенте". Я обобщенно сказал, если требуется разжевывать, то ок.Обобщенно, ага. Ты через раз ляпаешь ерунду, за которую в школе ставят двойки, а потом удивляешься, что за дурачка принимают и тупые вопросы задают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 07:39 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
AntonariyМСУпропущено... Я обобщенно сказал, если требуется разжевывать, то ок.Обобщенно, ага. Ты через раз ляпаешь ерунду, за которую в школе ставят двойки, а потом удивляешься, что за дурачка принимают и тупые вопросы задают. Чтобы не быть фееричным пустобрехом, ссылочки на «ерунду», за которые ставят двойки, в студию. По поводу интелисенса проглотил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 09:51 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУЧтобы не быть фееричным пустобрехом, ссылочки на «ерунду», за которые ставят двойки, в студию.Если тебе за "асп.нет рендерит на клиенте" не стыдно, то мне-то какое дело? Мне твоя биография не настолько интересна, чтобы еще какие-то ссылки искать. МСУПо поводу интелисенса проглотил?Модель в интеллисенсе это не про xsl, что уж тут скажешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 10:03 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
AntonariyЕсли тебе за "асп.нет рендерит на клиенте" не стыдно, то мне-то какое дело? Мне твоя биография не настолько интересна, чтобы еще какие-то ссылки искать. Еще раз для тех кто в танке. "асп.нет рендерит тебе на клиенте родной table" (c) Какие вопросы? Разумеется имелось ввиду "асп.нет рендерит тебе на клиента", тут даже у тугодума вопросов не будет. Ты же прицепился к букве как клещ и начинаешь верещать ниачём. Купи себе флаг, залезь на табуретку и покричи. Во-вторых, ты с темы не съезжай. Ты скзал, что "я через раз ляпаю ерунду". Я попросил ссылки, где они? AntonariyМСУПо поводу интелисенса проглотил?Модель в интеллисенсе это не про xsl, что уж тут скажешь. Какая модель в интеллисенсе, ты бредишь? Тебе напомнить вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 10:36 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУРазумеется имелось ввиду "асп.нет рендерит тебе на клиента", тут даже у тугодума вопросов не будет. Ты же прицепился к букве как клещ и начинаешь верещать ниачём.Одна буква делает ниачём весь смысл фразы. Тебя же могут и всерьез воспринять. МСУВо-вторых, ты с темы не съезжай. Ты скзал, что "я через раз ляпаю ерунду". Я попросил ссылки, где они?А я сказал, ссылок не будет, давай до свиданья. МСУAntonariyпропущено... Модель в интеллисенсе это не про xsl, что уж тут скажешь. Какая модель в интеллисенсе, ты бредишь? Тебе напомнить вопрос?Перефразирую ответ, ты адски туг: Атрибуты модели в интеллисенсе предоставления это не про xsl. Так нормально или я опять недопонял твои соки мозга из-за кривого изложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 11:30 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
orunbek, Я бы попробовал JSON + jQuery templates. Производители браузерв постоянно улучшают производительность JS, а XSLT действительно старо. Думаю пару тестов все покажут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 12:02 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Парамонorunbek, Я бы попробовал JSON + jQuery templates. Производители браузерв постоянно улучшают производительность JS, а XSLT действительно старо. Думаю пару тестов все покажут.+1 — Сериализовать xml в json наверняка будет быстрее, чем xsl +2 — можно до кучи сериализовать свои объекты +3 — минимизирует объем траффика +4 — это фактически "трансформация" в таблицу на клиенте, то есть уменьшение нагрузки на сервер +5 — отсутствие каких-либо неприятных сюрпризов на клиенте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 12:16 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Уважаемый МСУ! Будьте добры обосновать вот это: МСУxslt хорош для небольших вычислительных мощностей, где небольшая нагрузка с вызывающей стороны. Как только появляется более или менее серьезная нагрузка - всё, приплыли. Что Вы подразумеваете под "более или менее серьезной нагрузкой"? Если на странице нужно отобразить 20 записей (из миллиона), так и отображайте ТОЛЬКО ИХ! А не тащите весь миллион на свой сервер приложений. Вы так лихо оперируете терминами "вебформс" и "мвц", что забыли про пейджинг? Помнится, он (paging) во всяких gridview вызывал много нареканий, да и "движок" Вашего мвц ничего нового не дал. Если в базе - бардак, то тормозить будет все и сразу. А если слой доступа к данным написан с умом, то какая разница, чем вынутые данные из БД преобразовывать в HTML. Автор темы же ясно написал, что проблемы возникали раньше из-за циклов в ASP при строительстве HTML-таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 15:23 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ! А Ваше "Не так тег закрыл, всё, шаблон накрылся медным тазом и вся страница завалится" - это даже не смешно! В допотопном ASP уже был метод, который и об ошибке сообщал, и символ показывал, в котором ошибочка имеется. "Что-то с памятью моей стало?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 15:27 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ! А Ваша "чудо-технология называется байдинг" - это просто песня! Особенно, если человек "с классике перелез", и сырые данные в цикле должен анализировать, чтобы в html дополнительное форматирование ввести! Как там событие называется? OnDataItemBound? Это ж сколько суеты появляется вместо "классического" условного оператора, который в зависимости от значения в поле Recordset подставляет в html нужный класс, например? А сейчас этот самый "классический" условный оператор перелез В ЧИСТОМ ВИДЕ в Ваш суперский мвц, и Вы городите уже ДВА огорода - как в модели, так и в представлении. Да и контроллер тоже не курит в сторонке, а пыхтит вовсю, занимаясь бизнес-логикой (тут рядом недавно совсем была тема, в которой схлестнулись сторонники пихать бизнес-логику в модель и сторонники толкать в контроллер). И все это называется НОВЫМИ ТЕХНОЛОГИЯМИ, на которых НЕ пишут только лохи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 15:35 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 15:46 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Винни-БухУважаемый МСУ! Будьте добры обосновать вот это: МСУ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 раза проигрывает по скорости нормальным человеческим движкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 17:36 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Винни-БухВ допотопном ASP уже был метод, который и об ошибке сообщал, и символ показывал, в котором ошибочка имеется. "Что-то с памятью моей стало? Нет там такого для разметки. Винни-БухА Ваша "чудо-технология называется байдинг" - это просто песня! Особенно, если человек "с классике перелез", и сырые данные в цикле должен анализировать, чтобы в html дополнительное форматирование ввести! Как там событие называется? OnDataItemBound? Это ж сколько суеты появляется вместо "классического" условного оператора, который в зависимости от значения в поле Recordset подставляет в html нужный класс, например? А сейчас этот самый "классический" условный оператор перелез В ЧИСТОМ ВИДЕ в Ваш суперский мвц, и Вы городите уже ДВА огорода - как в модели, так и в представлении. Да и контроллер тоже не курит в сторонке, а пыхтит вовсю, занимаясь бизнес-логикой (тут рядом недавно совсем была тема, в которой схлестнулись сторонники пихать бизнес-логику в модель и сторонники толкать в контроллер). Критиковать что угодно можно. Вам дают инструмент, дальше все от рук и головы зависит. Или может вы некую серебряную пулю предложите? :) Раскройте идеальную платформу ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 17:42 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУИ в заключении простейший тест, который показывает, что XSLT более, чем в 3 раза проигрывает по скорости нормальным человеческим движкам. Тест интересно на большой объем данных, а не на большое количество мелких загрузок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 18:03 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Что касается теста, то тут, действительно, Парамон правильно заметил: "большой объем данных, а не большое кол-во мелких загрузок" надо. Да и шаблоны, часто встречающиеся в коде, будут лежать в памяти, а не браться с диска. Поэтому и тестировать надо соответствующим образом. Но с этим разберемся со временем. А вот тема, касающаяся мвц: http://www.sql.ru/forum/actualthread.aspx?tid=969880 И еще: http://www.sql.ru/forum/actualthread.aspx?tid=968230&pg=1&mid=13173260#13173260 Народ вроде умный, технологии - новые, посеребренные, а на выходе все равно получается танк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 18:09 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Винни-Бухна выходе все равно получается танк. Не понял, откуда такое умозаключение, и на какую тему холивар предлогаете :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 18:48 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Винни-БухЧто касается теста, то тут, действительно, Парамон правильно заметил: "большой объем данных, а не большое кол-во мелких загрузок" надо. Да и шаблоны, часто встречающиеся в коде, будут лежать в памяти, а не браться с диска. Поэтому и тестировать надо соответствующим образом. Но с этим разберемся со временем. А вот тема, касающаяся мвц: 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. Быстро, дешево, сердито. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 21:39 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
tsyselsky, А при чём здесь майкрософт? Да и кто сказал, что не поддерживают? Ссылочку, плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 21:45 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
ПарамонМСУИ в заключении простейший тест, который показывает, что XSLT более, чем в 3 раза проигрывает по скорости нормальным человеческим движкам. Тест интересно на большой объем данных, а не на большое количество мелких загрузок. 1. Большому объему данных нечего делать на клиенте. 2. Интересно должно быть различные комбинации, и мелкие страницы, и пухлые. В любом случае xslt рендеринг проигрывает в несколько раз. Винни-БухЧто касается теста, то тут, действительно, Парамон правильно заметил: "большой объем данных, а не большое кол-во мелких загрузок" надо. Да и шаблоны, часто встречающиеся в коде, будут лежать в памяти, а не браться с диска. Поэтому и тестировать надо соответствующим образом. Но с этим разберемся со временем Я что-то не понял, несколькими постами выше ты верещал о том, что в xml нужно подать данные только для отображения. Теперь ты пишешь о больших объемах. Как понимать? В любом случае перформанс xslt будет в заднице, какая бы пухлая страница не была. Датабайдинг с евалом порвет как тузик грелку твои xslt костыли. Не веришь, проверь сам. Проект я дал, твоя задача сделать грид с байдингом vs xslt + table + foreach tr. Слабо, или только языком чесать умеешь? Невооруженным глазом видно, что как-то ты заткнулся, увидев реальный тест :) Тестировать нудно различные варианты, а не что-то одно. В любом случае xslt для генерации хтмл - тупиковая ветвь развития, как по скорости работы, как по скорости разработки, как по качеству поддержки, сопровождения, развития и рефакторинга. WebForms или MVC, остальному место на свалке. Отголоски классического апс предоставь пенсионерам, а не в дотнет тащи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 21:57 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
AntonariyОдна буква делает ниачём весь смысл фразы. Тебя же могут и всерьез воспринять. А по-моему тебе просто сказать нечего, ни аргументов, ни по делу. Вот и слюной брызгаешь. AntonariyА я сказал, ссылок не будет, давай до свиданья. В простонародии это называется слив. AntonariyАтрибуты модели в интеллисенсе предоставления это не про xsl. Так нормально или я опять недопонял твои соки мозга из-за кривого изложения? Вся проблема из-за твоего кривого восприятия. Ты еще не понял, что чушь сморозил тогда? Вообщем тема интелисенса закрыта. Опять xslt в пролете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 22:14 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ1. Большому объему данных нечего делать на клиенте. Вроде это и проблема. О чем тогда топик? orunbekпросто специфика задачи есть, которая не позволяет использовать постраничное деление данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 22:19 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
ПарамонМСУ1. Большому объему данных нечего делать на клиенте. Вроде это и проблема. О чем тогда топик? orunbekпросто специфика задачи есть, которая не позволяет использовать постраничное деление данных Я сам не понимаю проблему, это я задавал автору. Всё работает, всё устраивает. Как я понял, тс хочет на перспективу заняться оптимизацией. Лично я разъяснил, что сам подход плохой. Начали спорить, доказывать, какой xslt хороший. Я обратное. Не верят. Я им тест. Пока заткнулись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 22:31 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Винни-БухДа и шаблоны, часто встречающиеся в коде, будут лежать в памяти, а не браться с диска. А вот это, кстати, не особо важно. Основная проблема - это время на трансформацию, а не на шаблон в памяти. Кстати, время будет практически одинаковым, можешь сделать тест. Так что мимо - это не оптимизация, а пук в кустах. Оптимизация - это выкинуть xslt и сделать нативными средствами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 23:18 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
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 в частности, тоже остается только мечтать :] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2012, 00:29 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУВинни-Бух Датабайдинг с евалом порвет как тузик грелку твои xslt костыли. Не веришь, проверь сам. Проект я дал, твоя задача сделать грид с байдингом vs xslt + table + foreach tr. Слабо, или только языком чесать умеешь? Винни-Бух, вообщем я тебя пожалел и написал сам тест. И ты не поверишь, я сделал грид на aspx страничке и привязал 100 элементов {ID, Title}. А на xslt я оставил всё как есть , то есть никаких table. И всё-равно на тесте xslt проиграл ровно в 2 раза по скорости Default2.aspx Код: c# 1. 2. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" Inherits="WebXsltDemo.Default2" %> Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Default.xslt Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. В аттаче отрендеренная страничка с table. P.S. Теперь ты понимаешь скорость рендеринга WebForms? Она просто молниеносна. xslt я даже не трогал, там никаких table и никакой динамики - всё-равно в 2 раза по скорости просела. P.S2. А если использовать MVC движок, так скорость еще больше будет, так как полный контроль над страницей, никаких вьюстейтов, форм и пр. Так что отдыхай со своим xslt в сторонке и не зуди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2012, 09:36 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
МСУ, тест не совсем корректный, понятно что нативный рендериг рвёт xslt, но что будет при максимальной нагрузке на сайт, вопрос как раз в том, какой будет выигрыш при переносе рендеринга на клиента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2012, 09:56 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
pationМСУ, тест не совсем корректный, понятно что нативный рендериг рвёт xslt, но что будет при максимальной нагрузке на сайт Ты код читаешь? Код: c# 1. 2. 3. 4. 5. 6. Можешь сделать параллельные запросы через Action в Parallel, можешь лоад тест сделать. Результат будет аналогичный. pationвопрос как раз в том, какой будет выигрыш при переносе рендеринга на клиента Обсудили же уже, клиентский рендеринг - ненадежное решение, мина замедленного действия у себя в огороде. Тебе это нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2012, 10:14 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Ненадежное только при навигации на xml с инструкцией xml-stylesheet. Если получать xml через ajax и трансформировать скриптом, то никаких проблем и сюрпризов. Но все равно отстой в архитектурном плане. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2012, 10:27 |
|
||
|
Альтернатива XML+XSLT=HTML
|
|||
|---|---|---|---|
|
#18+
Вообщем, позволю себе резюмировать. 1. Старые проекты на xslt + xml = html продолжаем поддерживать так же, как и раньше. Ибо переход на нативный рендеринг неоправданно дорог по трудозатратам. 2. Новый функционал в этих старых проектах разрабатываем на том нативном движке, на котором работает веб приложение (веб формс, мвц). 3. Новые проекты решаем на нативных движках. Если нужно полностью контролировать клиентский код и отделять логику от представления - бесспорно мвц, в остальных случаях вебформс. 4. Рендерить html средствами xslt клиента - плохое ненадежное решение, которое может работать, неработать или неправильно работать в различных браузерах. 5. XSLT не развивается, ибо его нативная поддержка майкрософтом ограничена 1.0 версией. Так что для дотнета это серьезный повод задуматься о перспективах такого решения. Вроде всё. У кого есть что дополнить или возразить - велкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2012, 12:00 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1359100]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
130ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 451ms |

| 0 / 0 |
