哇,这正是我们(作为一家公司)已通过。
实际上,我们仍然有一个很大的传统的ASP Web应用程序的运行。我们已经通过使用WSC(Windows脚本组件或脚本)来分离关注点,从而避免了普通的ASP代码可以通过spaghetti代码这一事实,这在传统的ASP中非常有用。我们现在拥有调试组件,国际化,3层架构和性能问题。
但是;作为我们想要“继续前进”的开发者,可以这么说。我们尝试的第一件事是将我们的vbscript代码的一部分实现到Python,至少用现代语言工作,但是在WSC中实现Python的许多麻烦之后,显然WSC和Python并没有相处得很好。
My findings regarding Python and WSCs
下一个逻辑步骤来尝试我们被转移到ASP.NET,因为这是由微软提出的路线图。我们参加了C#/ ASP.NET MVC课程,聘请了一位经验丰富的.NET开发人员,并开始实施新项目并将现有代码移植到.NET中。 MVC是从传统ASP开始的方式,在ASP.NET MVC面向应用程序开发人员之前,Microsoft使用的“webforms”抽象是对无状态Web的可怕抽象。
我们发现,流行的看法相反,有没有简单的方法从传统的ASP迁移到ASP.NET(至少不是如果你想要做的事情“正确”)。语言是不同的(VB.NET vs VBScript),它是完全面向对象的事实,它需要很多的理解,你从来没有做过OO的东西,框架是不同的(MVC),你会有要捡起像lambda表达式之类的东西,即使与数据库交谈也是不同的(LINQ)。有太多的东西你必须拿起才能在一年内完成一个成功的项目。另外,我们聘请的开发人员是应用程序开发人员,并且指导我们进入ASP.NET的不匹配。他知道C#的语法,但不知道如何开发一个大型的web项目。
谈起同行中成为appearant有很多自称是.NET开发人员,但在现实中,他们都非常缺乏经验的行业。 。NET是在学校教授的,但是在校外的人只知道基本的东西,需要经验丰富的开发人员进行培训,并且至少要做几个项目才能变得有用。也有很多人选择.NET自己,因为它是一个流行的框架,并通过一两本书后,可以创建一个简单的网站或应用程序。每个工作场所也有大量的人员。事实上,事实证明,很少有非常好的(甚至是中等优秀的).NET开发人员可用。我们寻找了一年以上的有经验的人。
大约在同一时间,我们发现该项目没有在.NET中去任何地方,我们也发现事故Python开发(同时寻找更多的.NET开发人员)。我们决定放弃我们正在做的并再次研究Python。
我们目前正在实施在Django不同的项目,我们已经在过去4个月,比我们一年编程.NET的那样取得较大进展。主要区别在于,在.NET/Visual Studio中,有许多“你只需要知道”的东西,某些文件的位置,做某些事情的工具,在代码中使用lambda表达式的地方,我不能给你确切的例子,因为我幸运地已经忘记了它的大部分。
在Python会有很多新的东西为好,但你一定会喜欢:
- 事实上,它的动态类型,这是很多喜欢的VBScript。
- 我发现编程的Python我可以经常编码半小时 而不运行我的代码,当我运行它时,它会立即运行 。它非常直观。
- 它是跨平台的;你可以尝试使用Linux作为服务器,如果需要的话,但IIS也可以工作(使用Helicon Zoo)。
- Python开发者似乎对自己行业的更严重 。 .NET通常在学校教授,学习 Python是一个有意识的选择。
- 您可以挑选webframeworks 和技术,如奥姆斯,会话层或其他层。在这方面Django是 挺僵化的,但像金字塔这样的框架很灵活。
- Python是OO,但不一定是。 中的语言一般是(可能不是语法上的,但在概念上)是更好地匹配vbscript的 。
- 如果或者当微软决定放弃asp.net ,就像他们对经典ASP和(例如) Silverlight所做的一样,那么使用Python就不会有问题。
不要误会我的意思,你仍然要学习很多从传统的ASP即将到来的新的东西,但在我们的经验中学习曲线不太陡迁移到Python比ASP.NET和编程是更有趣的。
编辑:我有一个小窍门给你;我们目前可以使用memcached COM component在ASP和DJANGO网站之间交换信息。使用这个你可以从传统的ASP访问一个memcached服务器。
Django中可以使用的memcached作为后端,这样交换的信息是可能的,快如闪电传统的ASP和Django的之间。
埃里克
编辑:
之后,我们在Django最初的项目,我们目前在瓶发展。对于经典的ASP开发人员来说,Flask比Django更适合。 Django强加了很多约定,我们发现它限制了我们想要开发的用户界面类型。
如果你想要一些东西并且运行的很快,Django是很好的,但是我们已经习惯用经典的asp构建我们自己的窗体/数据网格/向导,并且Flask在这方面给你提供了更多的自由。
从vbscript/IIS过渡到Python/Flask是恕我直言,最容易掌握。
此外,不要让人们告诉你.NET编译速度更快。它可能是,但当然在Web环境中,开销几乎不是服务器端代码,而是数据库,HTTP调用和/或UI。优化这些和一个体面的服务器,你将不会注意到.net和python之间的速度差异。 – 2012-03-12 21:20:21