Порт ASP для Django или ASP.NET - PullRequest
       5

Порт ASP для Django или ASP.NET

4 голосов
/ 12 марта 2012

Мы используем Asp Classic с VBScript и SQL Server 2005. Веб-сайты размещены на Windows Server.

Мне удалось заменить VBScript на Python, и это стало большим улучшением.

Мне интересно, каким может быть следующий шаг.Первоначальный разработчик - фанат продуктов Microsoft, однако он впечатлен Python.Я, с другой стороны, более склонен к открытому исходному коду.

Если мы хотим постепенно переходить к .NET или Django, какую платформу вы бы порекомендовали?В связи с этим, какими могут быть эти дополнительные шаги?Например, у меня в настоящее время есть моя модель в начале моих файлов ASP, где я создаю набор объектов Python.Затем я использую эти объекты в остальной части файла, в представлении.Возможно, следующий шаг - использовать шаблоны HTML для представления представления, если это совместимо с asp.

Было бы неплохо иметь возможность добавлять новые страницы полностью для новой платформы.Тем не менее, сеанс клиента должен быть разделен между asp и новой платформой.Возможно, я могу обернуть объект Session asp-classic.

Любой другой совет?

Спасибо,

Барри

1 Ответ

10 голосов
/ 12 марта 2012

Ого, это именно то, через что мы (как компания) прошли.

На самом деле у нас все еще работает большое классическое веб-приложение 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 ИМХО проще всего понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...