我正在考虑将应用程序从Asp.net转换为python。我想知道:将asp.net应用程序移动到python(插入框架)时要注意哪些关键比较?
python是否有用户控件?母版页?
答案 0 :(得分:8)
首先,Python是一种语言,而ASP.NET是一种Web框架。实际上,您可以使用IronPython编译ASP.NET应用程序。
如果你想让ASP.NET落后并使用Python“堆栈”,那么你可以从几个不同的Web应用程序框架中进行选择,包括Django和Zope。
例如,Zope提供了一个可插拔的架构,您可以在其中“添加”诸如wiki,博客等内容。它还有页面模板,有点类似于ASP.NET母版页。答案 1 :(得分:4)
我在Out Into Space中说明了python是一种语言与Web框架的关系;这是一个重要的观察结果,几乎是从ASP.NET迁移到Python的所有内容的基础。
在类似的说明中,您还会发现C#/ VB.NET和Python之间的语言风格和开发人员社区的差异会影响开发Web框架的基本方法。无论你是从用java,php,ruby,perl或任何其他语言编写的web框架移动,都是一样的。
旧的“当你有一把锤子时,一切看起来像一个钉子”的格言真正体现在框架的基本设计中:-)因此,你会发现自己有一些范式转变,当你用锤子代替螺丝刀。
例如,Python Web框架比ASP.NET更少依赖于声明性配置。例如,Django只有一个配置文件,实际上只有几十行(一旦删除注释:-))。同样,与ASP.NET相比,URL配置和页面生命周期非常紧凑,同时功能强大。配置上有更多的“约定”(尽管Rails要少得多),并且大量使用Python中的模块是语言中的顶级对象......并非所有内容都必须是类。这减少了所涉及的代码量,并使应用程序流程具有高可读性。
正如Out Into Space所提到的,zope的页面模板与ASP.NET母版“有点”相似,但并不完全相同。 Django还提供了相互继承的页面模板,它们工作得非常好,但如果您尝试像ASP.NET模板一样使用它们,那就不行了。
Python Web框架中也没有用户控件的传统。配置机制,请求/响应进程间接,处理程序复杂性和代码库大小不是python开发人员对其工具集的感觉的一部分。
我们都争辩说你可以使用pythonic-tools构建相同的Web应用程序,可能更少的代码,更容易调试/维护:-)这里的主要好处是你也可以利用python语言,还有一个pythonic框架,这使得python开发人员很乐意在早上去上班。当然是YMMV。
所有这些都说,你会发现你可以做你做过的所有事情,只是区别对待。从长远来看,差异是否令你感到沮丧,将决定python web框架是否适合你。
答案 2 :(得分:0)
python的大多数框架都有一个“模板”引擎,它提供了与ASP.NET主页面和用户控件类似的功能。 :)
感谢Out Of Space和Jarret Hardie的回复