Задача - существующие ASP приложения необходимо перевести в ASP+.
Давайте рассмотрим основные требуемые изменения.
ASP+ - это последнее обновление ASP. Оно вносит огромные изменения в
функциональность, в отличии от ASP2 - ASP3, которые имели очень мало
различий. Где бы ни было различий, всегда существует проблема
совместимости. Значит необходимо как можно проще трансформировать
предыдущую версию в новую. Когда была введена версия ASP3, не
потребовалось решать таких проблем, т.к. код, написанный в ASP2, работал
так же эффективно и в ASP3. В ASP3 в то же время были введены
дополнительные возможности, которые позволяют эффективно увеличить
функциональность уже существующих версий. К примеру ограничения в методе
Redirect объекта Response в ASP2 эффективно преодолены методами Execute
и Transfer объекта Server в ASP3.
В ASP+ компания Microsoft представила новое поколение решений,
достигающих резкого повышения функциональности и расширения возможностей
ценой ухудшения совместимости. Полный переход от ASP к ASP+ включает
следующие шаги (возможно еще размещение работающих ASP приложений
параллельно)
- Изменение расширения файла (aspx)
- Совершение необходимых изменений в коде
- Тщательное тестирование
- Исправление ошибок
- Перекомпоновка с новым расширением
Давайте главным образом сконцентрируемся на
изменениях в структуре кода, требуемых для перехода от ASP к ASP+.
Требуемые модификации кода представлены в различных аспектах. Давайте
рассмотрим несколько наиболее общих из них.
- Изменения в объектах и языке ASP
Рассмотрим простенький код.
В ASP значения Querystring могут быть
получены, используя следующий код
Response.Write Request.QueryString ("Name")(1)
Response.Write Request.QueryString ("Name")(2)
Response.Write Request.QueryString ("Name")
|
На выходе будет:
В ASP+ приведенный выше код необходимо
изменить, как показано ниже
Response.Write (Request.QueryString.GetValues ("Name")(1))
Response.Write (Request.QueryString.GetValues ("Name")(2))
Response.Write (Request.QueryString.GetValues ("Name"))
|
Мы можем отметить дополнительный метод
GetValues, используемый объектом Request для доступа к членам набора
QueryString.
Другое крупное отличие ASP+ состоит в том, что теперь поддерживаются
компилируемые языки. ASP+ более не поддерживает VBScript, используемый в
предыдущих версиях. Он заменен VB.NET и новым языком - C#. Это изменение
резко увеличило возможности ASP+. Также Visual Basic имеет различные
значимые изменения в новой реализации (VB.NET).
Следующие изменения в языке (Visual Basic 7) могут быть рассмотрены на
приведенном ниже примере
- Введение индексирования массивов с 0
- Введение пробелов после метода write
- Изменения в вызовах функций
Основные изменения в представлении страницы заключаются в виде функций
внутри скриптового блока.
ASP код
<%
Function Test ()
..
End Function
%>
|
будет заменен ASP+ кодом
Таким образом? для изменения простого ASP
кода на код ASP+ необходимо внести приведенные выше изменения. Для более
сложного кода необходимо произвести больше изменений. Особенно в случае
компонент, когда должна быть выполнена перекомпиляция (Visual Basic 7) и
для баз данных, где должны быть использованы соединения ADO+ для
ускорения исполнения.
Microsoft также предусмотрела альтернативное решение проблемы
совместимости. Оно заключается в распределении изменений в коде путем
инсталлирования на один сервер ASP и ASP+ без их взаимодействия. Это
возможно, т.к. после инсталляции ASP+ не происходит никаких изменений с
существующей библиотекой asp.dll. Более того, файл, записанный в ASP+,
сохраняется с разными расширениями [.aspx, .asmx (Web Service) и .aspc
(Pagelets)], отличающимися от существующих ASP файлов. Этот путь дает
уверенность в нестрогом переходе от ASP к ASP+. Нельзя не отметить, что
новая платформа обеспечивает гораздо лучшую скорость выполнения по
сравнению со старой. Ожидается, что Microsoft в скором времени выпустит
средство преобразования, которое позаботится о большинстве рассмотренных
ранее проблем совместимости.
Итог:
ASP+ предлагает прекрасные возможности, но переход от ASP к ASP+ требует
некоторого напряжения