Проработав около двух лет с Classic ASP, создав несколько 100 простых веб-форм, я не вижу веской причины для перехода на .net; однако я не очень разбираюсь в .net, поэтому я уверен, что могу упустить несколько вещей.
Some points that I often hear around work can be found here: http://www.packtpub.com/article/Classic-ASP (не то чтобы я разделял все эти мысли, но это хорошая отправная точка)
Мне очень интересно услышать, что другие говорят по этому поводу.
Тем, кто застрял в использовании классического ASP, следует учесть, что вы можете отказаться от VBScript, используя JScript, и ничто не мешает вам принять стиль сборки MVC. Вы также можете использовать параметризованные запросы, список можно продолжить. Другими словами, не позволяйте платформе / языку ограничивать вас ...





Для начала, производительность, масштабируемость и структура, которая обеспечивает гораздо лучшую основу для мира веб-приложений без сохранения состояния.
На странице ASP.Net Википедии есть раздел о различиях.
Для простых сайтов я предпочитаю ASP, а не ASP.NET, особенно если вы хорошо знаете HTML. Однако с ASP трудно отделить бизнес-логику от представления; код, который вы пишете, вероятно, будет сложно читать и поддерживать.
Однако PHP лучше, чем ASP, и в некоторой степени похож на базовый уровень. И вы всегда можете перейти на Rails или Django, если вас интересует автономный стек веб-разработки (но гораздо более длительная кривая обучения).
Одно из преимуществ ASP.NET заключается в том, что у вас есть возможность кодировать свой сайт точно так же, как вы это делали с классическим ASP, вместе с доступом к разнообразию инфраструктуры .NET. Вы можете сохранить существующие функции и добавить новые функции ASP.NET, которые были необходимы. Они хорошо перемешиваются.
К сожалению, автор упомянутого статья не очень хорошо разбирается в технологии, лежащей в основе ASP.NET, как видно из его замечаний (и, возможно, даже не в классическом ASP). Большинство его пунктов неверны или просто неверны.
Вам не хватает нескольких вещей! ASP.NET на порядок производительнее, надежнее и удобнее в обслуживании, чем когда-либо предполагал старый ASP. Элементы управления на стороне сервера, сторонние элементы управления, главные страницы, проверка подлинности форм, проверка форм, объектно-ориентированная модель, чем поощряет соответствующее разделение приложений, простое развертывание, встроенную отладку и отслеживание, управление состоянием.
У вас даже есть выбор между WebForms или MVC. Не будет преуменьшением сказать, что вы просто сошли с ума, если не исследуете досконально, что вам не хватает.
Я не хочу быть разборчивым, но выбор MVC в .net был уже много лет с Monorail.
«на порядки более производительные, надежные и удобные в обслуживании», а затем еще несколько!
И вы избавитесь от VBSCript! Это было мечтой с тех пор, как я начал работать с ASP! У нас была масса функций, которые просто делали то, что есть в современных языках и фреймворках из коробки.
Я с нетерпением жду того дня, когда мы сможем испытать весь наш классический код ASP на работе.
@ICodeForCoffee ... я тоже !!!
MVC 5 в .Net 4.5.1 - это самый замечательный набор технологий, которые мне когда-либо доводилось использовать. Движок Razor потрясающий. Создавать сайты на MVC 5 с помощью Razor - абсолютная радость. Но это прекрасные инструменты визуальной студии, которые добавляют вишенку на этот торт. Полный intellisense в редакторе бритвы, просто добавив пространство имен в файл web.config папки представлений ... Нет ничего проще.
Если вам нравится ASP и вы хотите перейти на ASP.NET, пропустите Webforms и изучите MVC.
ASP.NET определенно на несколько порядков превосходит классический ASP. Тем не менее, я 5 лет занимался классическим ASP, а затем 5 лет ASP.NET, и я все еще констатирую это как абсолютный факт вселенной: веб-формы ужасны для любого умеренно сложного приложения. ASP.MVC - правильный путь.
+ миллионы к комментарию и ответу: веб-формы ASP.NET дьявольские
Пропустить MVC ... сразу перейти к веб-API и шаблонам.
Самая большая проблема для меня заключается в том, что я создаю приложения, а не веб-сайты ... Пользовательский интерфейс - это второстепенная часть проблемы, большая часть - это написание уровня бизнес-логики и различных компонентов корпоративной коммуникации (подключение к SAP с помощью SOAP? Нет проблем !).
.NET Toolkit позволяет мне программировать на прекрасном объектно-ориентированном языке (C#) и имеет надежную платформу, которая может мне помочь.
VbScript - ужасный язык для написания бизнес-приложений.
Однако, если все, что вы делаете, - это простая небольшая веб-форма, тогда используйте VbScript.
Что касается вашей ссылки, это в основном сводится к следующему:
В основном, его незнание в двух словах.
Не забывайте: «Ваааа, мне не нравится C#».
Использование WSC (компонентов сценария Windows) делает этот вопрос спорным. Вполне возможно и приятно писать n-уровневые классические приложения ASP с помощью WSC.
Если все, что вы делаете, - это простые маленькие веб-страницы, делайте что угодно. Или еще лучше изучить PHP. Большинство откликов, которые вы получите, исходят от людей, которые создают веб-приложения, и за это asp.net сносит штаны классическому asp по мощности и удобству обслуживания.
У меня есть одно слово «отладка» - вы никогда не захотите использовать его, но вы всегда это делаете. В .Net, если вы используете Visual Studio, у вас есть фантастический отладчик по сравнению с попыткой отладки кода в ASP.
Отладчик в Visual Studio отлично работает и с ASP, попробуйте.
Я должен сказать, что отладка сайтов в Classic ASP, хотя иногда и раздражает, довольно проста. Я могу отлаживать любой классический сайт ASP (благодаря тому, что я знаю сейчас) намного легче, чем некоторые из сайтов, которые я видел разработанными на .NET, особенно когда часть кода уходит в неуправляемый код.
Если вы посмотрите на свой старый код и скажете: «О чем я думал! Это чушь, теперь я пишу код намного лучше!» тогда вы развились как программист.
Если сайты являются временными (то есть вы создаете их быстро, они используются для определенной цели и в течение определенного времени, а затем фактически закрываются), то удаление этих сайтов наиболее удобным для вас способом является вполне приемлемым.
Если у вас есть длинный список ошибок, исправлений и улучшений, которые вам сейчас нужны (или вы бы хотели) для резервного копирования на ваши старые сайты, или если ваши «маленькие сайты» становятся больше и более сложными, и это причиняет вам серьезное горе, тогда вам нужно сделать шаг назад и пересмотреть то, как вы структурируете и поддерживаете эти сайты.
Я полностью согласен с тем, что ASP.NET - гораздо более зрелая и эффективная среда программирования. Однако, как и любой другой инструмент, вам нужно знать (или изучить) правильный способ его использования, поскольку он не превратит вас автоматически в «суперпрограммиста» в одночасье.
Чтобы сломать лед, можно договориться со своим начальником о том, что следующий создаваемый вами «сайт» будет разработан в ASP.NET. Объясните ему, что это займет намного больше времени, чем то, как вы в настоящее время доставляете сайты, потому что вам нужно «осмыслить» ASP.NET, но преимущества заключаются в x, y и (упражнение оставлено читателю!)
Лично я все еще нахожусь на этапе перехода (и я начал использовать ASP.NET с версии v1!), Поскольку у меня есть довольно надежная классическая платформа ASP, которую я разработал и с которой мне комфортно. Тем не менее, я использовал ASP.NET стратегически и нашел его ОЧЕНЬ мощным, и вы в конечном итоге пишете меньше кода, поскольку так много встроено в структуру .net, если вы можете найти это в документации.
Я также рекомендую вам НЕ использовать VB.NET и стараться использовать C#. Смена языка довольно незначительна, но вы уменьшаете шансы написать свои сайты точно так же, как раньше. Это помогает избавиться от вредных привычек и дает вам возможность изучить новые техники.
Удачи!
Чтобы сосредоточиться на конкретном вопросе («преимущества Classic по сравнению с .Net»), я могу думать только о двух вещах, которые, как я могу думать, о том, что Classic делает то, чего не будет .Net:
1) Включает. Они просто не работают так, как вы ожидаете в ASP.Net. Конечно, ASP.Net предоставляет гораздо лучшие способы сделать то же самое, но это все равно немного потеряно и может сделать миграцию старого сайта на .Net проблемой.
2) ASP.Net не выходит за пределы корневой папки приложения. Там, где я нахожусь, у нас довольно сложная интрасеть, которая по-прежнему в основном классический ASP, с небольшим количеством приложений .Net то тут, то там по мере обновления или добавления новых вещей. Было бы неплохо иметь возможность держать одну копию общего кода довольно высоко в иерархии папок, но при этом иметь каждое отдельное приложение, изолированное от своего собственного виртуального диска. Но тогда для этого и нужен контроль версий, так что это не имеет большого значения.
Для меня самым большим преимуществом перехода от классических ASP к ASP.Net до сих пор является IDE. Так приятно иметь возможность щелкнуть правой кнопкой мыши по вызову функции и выбрать «Перейти к определению» вместо того, чтобы копаться в поисках файла, в котором функция фактически реализована. Огромная экономия времени. Поддержка intellisense и безопасность типов при вызове функций также являются благом.
Проголосовал за фактический ответ на вопрос в заголовке;)
Вторая ошибка. Можно получить доступ за пределами папки =)
Выполнив «переименовать asp в aspx и изменить, пока он не скомпилирует» порт приложения на asp.net, я бы сказал, что даже классическое программирование asp стиль в .NET лучше, чем классическое asp. VS, конечно, побудит вас упасть в яму успеха и подтолкнет вас к веб-формам и способам работы с программным кодом, но язык достаточно выразителен, чтобы воспроизвести шаблоны классического asp (а именно, множество золотых самородков / встроенных код, страницы перекрестной публикации и т. д.)
Думаю, я слышал, как раньше говорилось, что COBOL можно писать на любом языке. Это верно для классического жереха.
Все здесь высказали веские аргументы.
Я был классическим разработчиком ASP до тех пор, пока 3 года назад не перешел на .NET 2.0.
Я не мог вернуться (хотя мне все еще нужно исправить несколько классических сайтов ASP).
Мне действительно не хватает объекта набора записей, повторители данных отлично подходят для быстрого отображения данных, но наборы данных, хотя и предлагают прекрасную функциональность, ужасно ужасны, когда дело доходит до производительности на «больших» сайтах. Честно говоря, я делал наборы данных окольными путями с массивами в классическом ASP. Единственный раз, когда я использую наборы данных, - это корзины моего сайта электронной коммерции. Я скучаю по rs.movenext и т. д.
FlySwat совершил одну из самых больших ошибок, которую, как я вижу, делают многие разработчики.
Да, бизнес-логика, объектно-ориентированный подход и т. д.NET предоставляет великолепные возможности (масштабируемость, с которой я не согласен на 100%, но определенно более расширяемая), но при использовании ASP.NET вы все равно создаете ВЕБ-САЙТ. Забудьте эту чушь использования терминологии «приложение». Я встречал много замечательных разработчиков .NET, которые создают многоуровневые объектно-ориентированные сайты, но у них нет реального понимания уникальности создания веб-сайта; например, состояние или чертовски досадная проблема, из-за которой они слишком полагаются на Javascript. Большинство этих разработчиков создают сайты типа MS, которые обычно не соответствуют W3C, не поддерживают кроссбраузерность и никогда не деградируют. И нет, недопустимо, чтобы даже приложения бэк-офиса были совместимы только с IE.
.NET также имеет тенденцию «толстеть» простые сайты. .NET во многих отношениях был способом заставить разработчиков WinForm начать создавать веб-сайты (или, как они предпочитают, веб-приложения). Проблема заключалась в том, что это привело к появлению группы разработчиков, у которых была роскошь, и им не приходилось беспокоиться о состоянии, стандартах и т. Д.
Я по-прежнему утверждаю, что любой сайт .NET может быть построен на классическом ASP и работать быстрее (время отклика страницы) для конечного пользователя ...
... НО, хотя у меня остались приятные воспоминания о классическом ASP, то, что я могу делать с .NET с точки зрения создания образов, шифрования, сжатия, простой интеграции веб-сервисов, правильного объектно-ориентированного проектирования, достойного n-уровня, расширяемости и т. д., Вот что дает .NET преимущество. Даже такие глупые вещи, как простое добавление одной строки кода в web.config, чтобы указать ему записывать идентификатор сеанса в строку запроса, если пользователь не принимает файлы cookie (это было проблемой в классическом ASP), - это прекрасно.
Перейдите на .NET, вы не пожалеете об этом, но дайте себе время (особенно, если вы не знаете об объектно-ориентированном взаимодействии (наследование, абстракция, полиморфизм и инкапсуляция). Не начинайте создавать сайты .NET в классическом режиме совместимости, это просто дешевый способ сделать .NET, и вы все равно будете использовать классические методы ASP.Если бы VBScript был вашим основным языком разработки, прыжок не был бы таким легким, как MS или другие могут вам представить.
Для меня наиболее важно то, что я перенёс с моих классических времен ASP, фундаментальный дизайн приложения веб-сайта (;-)), и это никогда не должно меняться между языками.
@Carl, полностью осознайте свою точку зрения и обратите внимание на MS AJAX против ручного AJAX. MS AJAX отправляет полный запрос страницы за вызов. Быстрое решение, но в конечном итоге это полная ерунда, если вы знаете, что делаете на самом деле.
Я согласен со всеми здесь, кроме того, кто сказал пропустить веб-формы и перейти прямо к MVC. Это бесполезно. Веб-формы очень полезны для приложений, управляемых базами данных, которые отображают множество таблиц и т. д. Я работал над некоторыми очень большими приложениями веб-форм, и они отлично работают. MVC хорош для более интерактивных приложений типа «Web 2.0».
Что касается меня, я бы сказал, что классический ASP быстро развивается, прост в использовании / освоении, не слишком сложен и очень способен выполнять большинство задач.
Кодирование ASP с JScript / Javascript в качестве основного языка действительно очень весело. VBScript - это пустая трата мозгов, и я думаю, что это то, что делает Classic ASP дурной славой. Плюс это считается медленным, но все статьи о скорости и количестве пользователей основаны на серверах 10+ летней давности. У нас есть сайт, который посещают 60 000 пользователей в день на двух серверах, а процессор почти не мерцает. Современные серверы дают вам гораздо больше возможностей для игры.
Благодаря огромному прогрессу в использовании, дизайне и передовой практике Javascript за последние годы, кодировщик ASP JScript может получить множество полезных вещей, которые сделают жизнь еще проще. Я перенес Mootools на серверную часть, и благодаря этому мы получили массу замечательных подсказок, модель классов, отличную модель событий и многое другое. ASP - это большое развлечение. ОБНОВЛЕНИЕ: у Mootools теперь есть серверная сборка, которую вы можете скачать (http://mootools.net/download).
ASP.net - СУПЕР мощный, но у него есть большой пандус на кривой обучения, чтобы преуспеть, он может вывести из строя весь ваш сайт, когда он подходит, и худшее для меня может показаться действительно ходить по домам, чтобы получить самое простое из все сделано.
Я получаю массу удовольствия от использования обоих в данный момент, используя тот, который лучше всего подходит для этого промежутка. У меня есть отличная небольшая сборка CMS Cacher и Thumbnailer в .net, которую используют мои сценарии ASP. Лучшее из обоих миров.
Очень дельные комментарии. Приятно видеть, что кто-то открыт как для старого, так и для нового;)
Я должен согласиться, оглядываясь назад, ASP была в целом довольно хорошей технологией.
+1! Количество сайтов, написанных на ASP.NET и подвергшихся чрезмерной разработке, просто смешно; особенно учитывая, что они медленно ползут, чтобы делать определенные вещи! Придерживайтесь принципа KISS, пожалуйста!
Если вы используете классический asp на этом этапе (без разрешения вашего технического директора), вам нужно увидеть сокращение. или ты мазохист. Или как сатанист, и в этом случае вы этого захотите, потому что окажетесь в аду! :п
Если серьезно ... для веб-приложений используйте WebForms.
Для легких, быстрых и грязных веб-сайтов используйте ASP.NET MVC.
В ASP хорошо то, что вы можете использовать VB.NET, C#, Eiffel, Boo или PHP для своего языка! Для PHP проверьте Phalanger ...
Или вы просто не можете получить ресурсы и время, чтобы заменить годы кода в одночасье. Кобол все еще жив, и классический жерех продолжает жить. Дело не в том, что мне это нравится, просто у нас их так много, на замену всего нужно время.
Если сломается, замените. Если ему нужны новые функции, замените его. Если вам даже нужно сообщить об этом считать, замените его. В противном случае он не сломан, так что оставьте его в покое.
Хорошо, я исправлю грязную часть. Это было скорее фигурально, чем буквально. Я просто имел в виду, что asp.net mvc не подходит в качестве для веб-сайтов типа приложений. Скажем, CRM и т.д. Но это мое мнение. MVC приближает вас к металлу и удаляет множество специфических для веб-форм asp.net вещей, которые некоторым людям не нравятся.
Редко когда ответ в этой ветке отвечает на вопрос. Вместо того, чтобы идти легким путем, я попробую:
Несколько преимуществ, которые не были упомянуты (ориентированные на JScript):
char и string? (вставьте сюда религиозную войну)Пункт 4 совершенно неверен. Если вы используете автоматическую компиляцию, вы также можете сделать это в ASP.NET.
Поскольку мне платят за создание решений, а не за написание кода, я просто предпочитаю ASP.NET классическому ASP. Хотя классический ASP по-прежнему практичен для очень маленьких простых сайтов, ASP.NET по-прежнему дает много возможностей при написании немного более сложных сайтов. Кроме того, даже с ASP.NET вы все равно можете просто использовать Блокнот для самостоятельной записи файлов .aspx, включая встроенный код vb или C#. Visual Studio просто предоставляет множество дополнительных функций, которые избавляют от необходимости писать дополнительный код самостоятельно. И, как я уже сказал, мне не платят за написание кода ...
Я всегда использую Classic ASP, он прекрасно работает.
Я пробовал ASP.net пару лет, но это было слишком сложно для разработки большинства веб-сайтов. Моим клиентам это тоже не понравилось, потому что они не могли этого понять. Им также нравится знать, что они не привязаны к одному разработчику.
ASP.NET постоянно меняется и требует огромного / постоянного обучения, чтобы оставаться в курсе. MS переключила основной язык на C#, что значительно усложнило переход.
Моя производительность снизилась до ползания с .net, потому что я вечно искал учебные пособия или примеры того, как все делать.
Visual Studio - это медленная свинья.
PHP имеет уродливый синтаксис и слишком много разных фреймворков, что делает невозможным обучение для целей разработчика. На мой взгляд, подходит только для использования в интранете с выделенным персоналом.
Классический ASP заблокирован и отлично работает сегодня, как и много лет назад. С несколькими файлами библиотеки писать код проще простого, а примеров в Интернете можно найти неограниченное количество раз.
Написанный правильно, чего не делают многие, vbscript - это чистый, читаемый и эффективный код. Я оставляю вещи на стороне клиента для таких библиотек, как jQuery, и считаю, что работаю во много раз более продуктивно.
Хм ... Я понимаю ваши жалобы на веб-формы ASP.NET, но действительно ли ASP - решение? Я настоятельно рекомендую вам прочитать книгу Стивена Сандерсона и попробовать ASP.NET MVC.
Сначала это были веб-формы, затем MVC, теперь это будет Razor, затем снова будет что-то еще. Изменения никогда не заканчиваются, что было моей самой большой жалобой. Я постоянно тренировался, и между версиями никогда не было достаточно времени, чтобы стать продуктивным.
@Dee - Если честно, быть разработчиком - это ВСЕГДА быть «стажером». Единственная причина, по которой классический ASP не меняется, заключается в том, что он больше не поддерживается. Когда появится преемник .NET, я могу гарантировать, что новая платформа также будет постоянно меняться, в то время как .NET остается неизменной и устаревшей с возрастом.
@ 5StringRyan: Моя цель - быть продуктивным, а не тренироваться. С .NET мне никогда не удавалось достичь скромного уровня производительности.
Что ж, я согласен с тем, что продуктивность важна, немного сложно оставаться продуктивным, когда вы находитесь в технологической пыли.
Люди не платят мне за обучение. Если я не могу зарабатывать деньги продуктивно, я не могу зарабатывать деньги. РС усложняет жизнь.
сосредоточиться только на том, чтобы быть «продуктивным» и не тратить некоторое время на изучение новых технологий, - это проигранная ставка, в конечном итоге вы попадете в положение, в котором ваша платформа больше не поддерживается, и без каких-либо новых знаний вы окажетесь в ситуации, когда вы не может развиваться (потому что ваша платформа мертва), и вам нужно будет потратить 100% своего времени на изучение нового языка и совсем не быть продуктивным
классический asp его простой лучший язык. Вы можете делать все, что хотите, с помощью только блокнота. И отец больше, когда вы комбинируете его с isapi.dll и объектами com. Я использую классический asp в течение последних 30 лет и пока не знаю, что мне никогда не приходилось изучать какой-либо другой язык на стороне сервера
Когда я задавал этот вопрос, я пытался показать своему руководителю, что ASP БОЛЬШЕ, чем мертв. Я очень впечатлен количеством пользователей, которые говорят: «Если это не сломалось, не чините это», поэтому, как правило, мы смотрим на НОВУЮ технологию для НОВЫХ рабочих мест, и если что-то нужно изменить, мы обсуждаем стоимость обновления. В целом мы медленно переходим к новым технологиям, в первую очередь мы движемся к SharePoint для ВСЕХ наших сайтов / простых приложений CRUD, поэтому большинство наших проблем на самом деле не является проблемой из-за чрезмерного использования .net. Спасибо всем качественным ответам и некоторым забавным.