将ASP移植到Django或ASP.NET

时间:2012-03-12 10:02:18

标签: asp.net python django asp-classic

我们将Asp Classic与VBScript和SQL Server 2005结合使用。网站托管在Windows Server上。

我已经设法用Python替换VBScript,这是一个很大的改进。

我想知道下一步可能是什么。最初的开发人员是微软产品的粉丝,但他对Python印象深刻。另一方面,我更倾向于开源。

如果我们希望以渐进方式转向.NET或Django,您会推荐哪个平台?在这方面,这些增量步骤可能是什么?例如,我目前在我的asp文件的开头有我的模型,在那里我创建了一组python对象。然后,我在文件的其余部分(视图)中使用这些对象。也许下一步是使用HTML模板来表示视图,如果这与asp兼容。

能够为新平台完全添加新页面会很高兴。但是,客户端会话需要在asp和新平台之间共享。也许我可以包装asp-classic的Session对象。

还有其他建议吗?

谢谢,

百里

1 个答案:

答案 0 :(得分:10)

哇,这正是我们(作为一家公司)所经历的。

我们实际上仍然运行着一个很棒的经典ASP Web应用程序。我们已经通过使用WSC(Windows脚本组件或scriptlet)来解决普通的ASP代码可以通过使用WSC(Windows脚本组件或scriptlet)分离关注点这一事实,这实际上在经典ASP中很有用。我们现在有调试组件,国际化,3层架构,没有性能问题。

然而;作为开发者,我们希望继续前进。可以这么说。我们尝试的第一件事是将部分vbscript代码实现到Python,至少使用现代语言工作,但是在WSC实现Python的许多麻烦之后很明显,WSC和Python没有&相处得很好。
My findings regarding Python and WSCs

为我们尝试的下一个合乎逻辑的步骤是迁移到ASP.NET,因为这是Microsoft提出的路线图。我们开设了一个C#/ ASP.NET MVC课程,聘请了一位经验丰富的.NET开发人员,开始实施新项目并将现有代码移植到.NET。 MVC是来自经典ASP," webforms"抽象Microsoft在ASP.NET MVC面向应用程序开发人员之前使用的抽象,是无状态Web的可怕抽象。

我们发现,与流行的看法相反,没有简单的方法从经典的ASP迁移到ASP.NET(至少不是如果你想要做的事情"对")。语言是不同的(VB.NET vs vbscript),事实上它完全是面向对象的,这需要很多了解你之前从未做过OO的东西,框架是不同的(MVC),你将不得不接受像lambda表达式这样的事情,甚至与数据库交谈也是不同的(LINQ)。你需要做的事情太多了,能够在一年内完成一个成功的项目。此外,我们聘请的开发人员是应用程序开发人员,并且指导我们进入ASP.NET不匹配。他知道C#语法,但不知道开发一个大型的Web项目。

与业内同行交谈时,很多人声称自己是.NET开发人员,但实际上他们缺乏经验。 .NET是在学校教授的,但刚出校的人只知道基本的东西,需要经验丰富的开发人员培训,至少做几个项目才能变得有用。此外,很多人自己选择.NET,因为它是一个流行的框架,经过一两本书后,可以创建一个简单的网站或应用程序。每个工作现场也有很多这样的工作。事实上,事实证明,很少有真正优秀(甚至是中等优秀)的.NET开发人员可用。我们已经找了一年多的经验丰富的人。

大约在同一时间我们发现该项目在.NET中没有任何地方我们也偶然发现了一个python开发人员(同时寻找更多的.NET开发人员)。我们决定放弃我们正在做的事情并再次研究Python。

我们目前正在Django中实施不同的项目,并且我们在过去4个月中取得了比在.NET编程一年中取得的更多进展。主要区别在于.NET / Visual Studio中有很多东西你只需要知道",某些文件的位置,做某些东西的工具,在代码中使用lambda表达式的地方,I我不能给你一些确切的例子,因为我很幸运地已经忘记了大部分内容。

在Python中也会有很多新东西,但你会喜欢:

  • 它是动态输入的,这与vbscript非常相似。
  • 我发现编程Python我经常可以编写半个小时 没有运行我的代码,当我最终运行它时它工作 立即。这非常直观。
  • 是跨平台;如果需要,您可以使用linux作为服务器进行实验,但IIS也可以正常工作(使用Helicon Zoo)。
  • Python开发人员似乎更严肃 关于他们的职业。 .NET通常在学校教授,学习 Python是一种有意识的选择。
  • 您可以选择和选择webframeworks 和ORM,会话层或其他层等技术。 Django是 在这方面相当严格,但像金字塔这样的框架非常 灵活。
  • Python是OO,但并非必须如此。中的语言 一般是(可能不是语法上,但肯定是概念上的)a 更好地匹配vbscript。
  • 如果或当微软决定使用asp.net时 将被抛弃,就像他们使用经典ASP和(例如) Silverlight,你在使用Python时遇到了问题。

不要误会我的意思,你仍然需要学习很多来自经典ASP的新东西,但根据我们的经验,学习曲线不是迁移到Python而是迁移到ASP.NET,编程是更有趣。

编辑:我还有另一个提示;我们目前可以使用memcached COM component在ASP和DJANGO网站之间交换信息。使用此功能,您可以从经典ASP访问memcached服务器 Django可以使用memcached作为后端,因此可以在经典ASP和Django之间快速交换信息。

埃里克

修改
在我们在Django的初始项目之后,我们目前正在开发Flask。对于经典ASP开发人员来说,Flask比Django更好。 Django强加了很多约定,我们发现它限制了我们想要开发的用户界面类型 Django很棒,如果你想要快速运行,但我们已经习惯于在经典的asp中构建我们自己的表单/ datagrids /向导,而Flask在这方面为你提供了更多的自由。 从vbscript / IIS到Python / Flask的过渡是最容易掌握的恕我直言。