Ого, это именно то, через что мы (как компания) прошли.
На самом деле у нас все еще работает большое классическое веб-приложение ASP.Мы обошли тот факт, что простой классический код ASP может быть спагетти-кодом, используя WSC (компоненты сценариев Windows или скриптлеты) для разделения задач, что на самом деле прекрасно работает в классическом ASP.Теперь у нас есть компонент отладки, интернационализация, трехуровневая архитектура и никаких проблем с производительностью.
Однако;как разработчики, мы хотели «двигаться дальше», так сказать.Первым делом мы попытались реализовать часть нашего кода VBScript для Python, чтобы, по крайней мере, работать на современном языке, но после многих трудностей, связанных с реализацией Python в WSC, стало ясно, что WSC и Python не ладили.
Мои выводы, касающиеся Python и WSC
Следующим логическим шагом, который мы попробовали, был переход на ASP.NET, так как это план действий, предложенный Microsoft.Мы взяли курс на C # / ASP.NET MVC, наняли опытного разработчика .NET и начали реализовывать новые проекты и переносить существующий код в .NET.MVC - это путь от классического ASP, абстракции «веб-форм», которую Microsoft использовала до того, как ASP.NET MVC ориентирован на разработчиков приложений, и является ужасной абстракцией сети без состояний.
Мы обнаружили, что, наоборотпо общему мнению, не существует простого способа перехода с классического ASP на ASP.NET (по крайней мере, если вы хотите сделать все правильно).Язык отличается (VB.NET от vbscript), есть тот факт, что он полностью объектно-ориентирован, что требует большого понимания того, что вы никогда раньше не делали OO, фреймворк другой (MVC), вы будете иметьчтобы понять такие вещи, как лямбда-выражения, даже общение с базой данных отличается (LINQ).Слишком много вещей, которые вам нужно будет подобрать, чтобы иметь возможность осуществить успешный проект в течение года.Кроме того, разработчик, которого мы наняли, был разработчиком приложений и несоответствием для нас в ASP.NET.Он знал синтаксис C #, но понятия не имел о разработке большого веб-проекта.
Говоря со сверстниками в отрасли, стало очевидно, что есть много людей, которые утверждают, что являются разработчиками .NET, но на самом деле они очень неопытны..NET преподают в школах, но люди, не посещающие школу, знают только базовые вещи и должны пройти обучение у опытных разработчиков и выполнить хотя бы пару проектов, чтобы стать полезными.Также многие люди сами выбирают .NET, потому что это популярный фреймворк, и после проработки одной или двух книг можно создать простой веб-сайт или приложение.Есть множество таких на каждом рабочем месте.По правде говоря, оказалось очень мало действительно хороших (или даже умеренно хороших) разработчиков .NET.Мы искали опытного более года.
Примерно в то же время, когда мы узнали, что проект никуда не денется .NET, мы также случайно нашли разработчика Python (в то время как искали больше .NETРазработчики).Мы решили отказаться от того, что мы делаем, и снова исследовать Python.
В настоящее время мы реализуем различные проекты в Django, и за последние 4 месяца мы добились большего прогресса, чем за год программирования .NET.Основное отличие состоит в том, что в .NET / Visual Studio было много вещей, которые вы «просто должны были знать», расположение определенных файлов, инструменты для выполнения определенных задач, где использовать лямбда-выражения в коде, я не могу вам датьточные примеры, потому что, к счастью, я уже почти все забыл.
В Python также будет много нового, но вам понравится:
- Тот факт, что он динамически печатается, что очень похоже на vbscript.
- Я обнаружил, что программируя на Python, я часто могу писать в течение получаса без запуска своего кода, и когда я действительно запускаю его в конце, он работает немедленно.Это очень интуитивно понятно.
- Это кроссплатформенная;при необходимости вы можете поэкспериментировать с использованием linux в качестве сервера, но IIS также работает (используя Helicon Zoo ).
- Разработчики Python, похоже, более серьезно относятся к своей профессии..NET обычно преподают в школах, изучение Python является осознанным выбором.
- Вы можете выбирать веб-фреймворки и технологии, такие как ORM, сеансовые слои или другие слои.Джанго довольно жесток в этом отношении, но структура, подобная пирамиде, очень гибкая.
- Python - ОО, но не должен быть.Язык в целом (возможно, не синтаксически, но определенно концептуально) лучше подходит для vbscript.
- Если или когда Microsoft решит отказаться от asp.net, как это было с классическим ASP и (например) Silverlight, у вас не возникнет проблем с использованием Python.
Не поймите меня неправильно, вам все равно придется изучать много нового, поступающего от классического ASP, но по нашему опыту, кривая обучения менее крута при переходе на Python, чем на ASP.NET, а программирование - намного большевесело.
РЕДАКТИРОВАТЬ: У меня есть еще один совет для вас;в настоящее время мы можем обмениваться информацией между сайтами ASP и DJANGO с помощью memcached COM-компонента .С его помощью вы можете получить доступ к серверу memcached из классического ASP.
Django может использовать memcached в качестве бэкэнда, поэтому обмен данными между классическим ASP и Django возможен очень быстро.
Erik
РЕДАКТИРОВАТЬ:
После нашего первоначального проекта в Django, мы в настоящее время развиваем во Flask.Flask даже лучше подходит для классических разработчиков ASP, чем Django.Django налагает множество соглашений, и мы обнаружили, что это ограничивает нас в типе пользовательских интерфейсов, которые мы хотели разработать.
Django хорош, если вы хотите, чтобы что-то работало и работало быстро, но мы уже привыкли к созданию наших собственных форм /datagrids / wizards в классическом asp, и Flask дает вам гораздо больше свободы в этом отношении.
Переход от vbscript / IIS к Python / Flask ИМХО проще всего понять.