(Через InfoWorld ) В статье в Центре разработки ASP.NET Microsoft рассказывает о значительных изменениях между текущей бета-версией ASP.NET 2.0 (кодовое название Whidbey) и окончательной версией Release to Manufacturing (RTM), которая должна быть выпущена в ноябре.
Хотя Microsoft преуменьшает значение большинства этих изменений, одна из них, которая действительно привлекла мое внимание, — это удаление поддержки XHTML 1.1. В настоящее время Beta 2 отображает XHTML 1.1- совместимую разметку по умолчанию с возможностью возврата к выводу, не совместимому с XHTML (например, <br> вместо <br />). Вместо этого в окончательном выпуске ASP.NET 2.0 по умолчанию будет отображаться переходная разметка XHTML 1.0 с возможностью отображать разметку XHTML 1.0 Strict или не совместимую с XHTML.
Почему изменения? Microsoft немного расплывчата в этом отношении, ссылаясь на необходимость многих разработчиков, которые полагаются на устаревшие сценарии на стороне клиента, которым требуется атрибут name в теге формы. Использование этого атрибута не поощрялось в HTML 4, а официальное использование не рекомендуется в XHTML 1.0 . Атрибут вообще не разрешен в XHTML 1.0 Strict или XHTML 1.1, поэтому рендеринг XHTML 1.0 Transitional по умолчанию дает самый современный из возможных выводов по умолчанию, но при этом разрешает использование этого атрибута.
Но, как уже упоминалось выше, Microsoft по-прежнему планирует поддерживать «строгий» вариант рендеринга в ASP.NET 2.0, который выдает XHTML 1.0 Strict. Почему бы не продолжать поддерживать XHTML 1.1 в этом режиме рендеринга?
Ответ на этот вопрос остается невысказанным, но я считаю, что его можно сформулировать в двух словах: Internet Explorer. W3C рекомендует предоставлять контент XHTML 1.1 с типом MIME application / xhtml + xml, который Internet Explorer 6 не поддерживает. На данном этапе нет оснований полагать, что Internet Explorer 7 также будет поддерживать его.
В другой статье, посвященной ASP.NET Developer Center, в которой содержится впечатляюще обширное руководство по созданию приложений, соответствующих стандартам ASP.NET 2.0, Стивен Вальтер из SuperExpert.com высказывает следующее мнение по этому вопросу:
Есть одна вопиющая проблема с рекомендацией W3C: не все браузеры распознают application / xhtml + xml. В частности, Internet Explorer (самый популярный веб-браузер в мировой истории) не распознает тип MIME application / xhtml + xml. Поэтому обслуживание страниц XHTML с использованием рекомендуемого типа MIME application / xhtml + xml не является приемлемым вариантом.
Является ли «вопиющая проблема» W3C или Microsoft спорным вопросом, но, удалив поддержку XHTML 1.1 из ASP.NET 2.0, Microsoft, похоже, склоняется перед мудростью W3C. Если бы ASP.NET 2.0 должен был выводить XHTML 1.1, он должен был бы обслуживать его, используя более старый тип mime text / html, поддерживаемый Internet Explorer, что было бы прямым нарушением рекомендации W3C.
Хотя на первый взгляд может показаться, что Microsoft делает шаг назад в соблюдении стандартов, на самом деле она демонстрирует здоровое уважение к веб-стандартам, признавая, что она должна довести свой «самый популярный браузер в истории мира» до перед принятием XHTML 1.1 в своей платформе веб-приложений.
Обновление: Том правильно указывает в своем историческом комментарии, что проблема с IE больше, чем отсутствие поддержки нового типа MIME. Действительно, тот факт, что Microsoft не торопилась навязывать такую поддержку наивно, является еще одним хорошим знаком. Похоже, Microsoft понимает, что тип application / xhtml + xml MIME должен быть реализован в тандеме с поддержкой geniune для XHTML, которой также не хватает в Internet Explorer.