Рекомендуемые ссылки для классического ASP - PullRequest
4 голосов
/ 27 июля 2010

Мне нужно погрузиться в большой кусок устаревшего ASP-кода.Какие ресурсы вы бы порекомендовали прочитать, чтобы понять лучшие практики этой платформы (ориентация на объекты, конфигурация для i18n, ..)

Ответы [ 4 ]

6 голосов
/ 27 июля 2010

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

ниже приведены некоторые ресурсы, которые вас интересуют:

  1. Документы библиотеки MSDN
  2. W3Schools
  3. Webdevbros
  4. Документация по языку формата CHM
  5. Дополнительные темы на zend.lojcomm.com.br
  6. Библиотека Ajaxed , ASP3 + Прототип + Scriptaculous Wrapper

Я также все еще играю с этим немного в asp.web.id , надеюсь, что это поможет

5 голосов
/ 29 июля 2010

Во-первых, поймите, что «классический ASP» на самом деле может означать целую комбинацию технологий:

  • Среда выполнения ASP и встроенные объекты HTTP (запрос, ответ, сервер, сеанс, приложение)
  • механизм сценариев (обычно VBScript, но некоторые сайты используют вместо него JScript или Perlscript)
  • COM-хост, который позволяет вам работать с COM-объектами

Большинство классических сайтов ASP будут использовать VBScript в качестве языка сценариев и ADO (Соединения, Команды и Наборы записей) для доступа к базе данных. Вы также можете столкнуться с различными COM-объектами, используемыми для отправки почты, обработки XML и т. Д. - в вашей устаревшей кодовой базе могут даже быть некоторые заказные / пользовательские COM-объекты (вероятно, написанные на VB6 или C ++).

Скотт Митчелл Проектирование активных серверных страниц , вероятно, является лучшим общим справочником по «передовому опыту» на классической платформе ASP. На 10101 * 4guysfromrolla.com

также есть множество полезных материалов.

Затем вы захотите убедиться, что получили последнюю документацию для каждого элемента среды, которую вы используете:

Если вы занимаетесь этим в течение длительного времени, вам также следует подумать о том, как можно со временем улучшить / очистить код. Портирование отдельных страниц из .asp в .NET может быть эффективной стратегией в этом отношении; если вы изолируете свою аутентификацию и безопасность в куки, а не используете встроенный объект Session, вы сможете использовать Request.Cookies как из классического ASP, так и из ASP.NET, а затем начать перемещать кусочки бизнес-логики со страниц сами по себе и в набор основных модулей или даже что-то вроде модели предметной области.

И не волнуйся. Классический ASP не так уж и плох. Я бы использовал его над ASP.NET WebForms в любой день. :)

4 голосов
/ 30 июля 2010

Я бы первым признал, что VBScript / ASP далек от идеальной платформы, но это далеко не так плохо, как предполагают некоторые комментарии.Это не самый современный язык в мире, и у него есть свои бородавки, но вполне возможно написать хороший, надежный код на VBScript.И это не должно быть тяжелым испытанием;хотя в платформе отсутствуют многие инструменты, облегчающие программирование на других языках (списки, наследование, импорт, разумный синтаксис присваивания, правильные конструкторы), большинство из них можно заменить, смоделировать или обойти.И VBScript дает вам немало возможностей для работы:

  • Динамичность
  • Свойства по умолчанию
  • with блоки
  • Предсказуемая сборка мусора
  • Эффективный буфер ответов

Я часто слышу, что многие функции VBScript (особенно свойства по умолчанию) осуждаются как сбивающие с толку, но если вы знакомы с языком, они могут быть мощными ресурсами.Думайте о встроенных функциях и возможностях как о базе, на которой можно строить.С помощью этих инструментов вы можете исправить большинство бородавок.Например:

Проблема: friggin 'обязательный набор синтаксиса.Пример:

if isObject(foo) then
    set bar = foo
else
    bar = foo
end if

Боль в тылу, да?

Решение: VBScript поддерживает передачу по ссылке!

function assign (byref var, val)
    if isObject(val) then
        set var = val
    else
        var = val
    end if
end function

Пример:

assign bar, foo

Очевидно, это техника, используемая с дисциплиной, но идеально понятная при правильном использовании.

Еще примеры того, что вы можете сделать в VBScript, если вы хотите, чтобы он работал:

myList.map getRef(lcase)

set myDict = DB.get_record "select * from Foo where id=?", Array(42)

import "MyLib"

printf "%s, %!s" Array("Hello", "<World>")
' => Hello, &lt;World&gt;'


with Form.define("User")
    with .field("name")
        .validate_nonempty
        .validate getRef("userNameNotTaken"), "That user name is taken"
    end with

    with .field("email")
        .validate_format emailRegex
    end with

    with .field("password")
        .validate_length 6, null
        .validate getRef("passwordIsComplex"), "Your password must contain…"
    end with
end with

Существует старая поговорка, что вы можете писать на языке COBOL на любом языке.Это более или менее означает, что возможности языка менее важны, чем программист, для создания хорошего кода.Теперь вы не можете написать ruby ​​или python на VBScript, но вы можете подойти намного ближе, чем вы думаете.

РЕДАКТИРОВАТЬ: Почти забыл. Эрик Липперт был одним из дизайнеров VBScript, и его блог является бесценным ресурсом для некоторых хитрых частей языка.

0 голосов
/ 27 июля 2010

Я часто ссылался на публикацию Wrox VBScript: Справочник программиста . По сути, ваши ASP-страницы в любом случае просто VBScript.

Если ваши страницы перегружены кодом COM +, бог вам в помощь. Переполнение стека тогда не было изобретено, но я бы посоветовал вам провести здесь немало времени.

...