ASP.Net MVC或Zend Framework。你有什么意见

时间:2009-04-09 10:54:58

标签: php asp.net asp.net-mvc zend-framework frameworks

我正在寻找一个新项目,我正在尝试决定使用哪个框架。我一直在使用ASP.Net并享受它。我对Web应用程序的第一次介绍是使用PHP,我仍然喜欢它。该项目应该是一个由1或2名开发人员维护的中型项目,有可能增长。可以想到的唯一优点和缺点如下:

ASP.Net MVC 优点

  • 大社区支持和增加
  • 似乎功能齐全

缺点

  • 获得专用服务器将非常昂贵。
  • SQL Server的许可版本将是昂贵的

Zend Framework专业人士

  • 也是一个相当大的社区
  • 免费,使用典型的LAMP设置

缺点

  • 不是主流
  • 可能包含可能的限制

最后,我很高兴使用ASP.Net的Master页面概念。 ASP.Net MVC是否仍然支持这一点,并且Zend Framework有类似的东西。我认为Zend提供了一种称为模板的东西,它看起来与Master页面很接近。

您有什么看法?

18 个答案:

答案 0 :(得分:11)

我已经尝试过Zend Framework和ASP.NET MVC,我的印象是ASP.NET MVC是最容易开发的。 ZF需要花费大量时间来学习,而且(在我的意见中)也需要花费太多时间来设置。在许多情况下,ZF还限制了您,使您可以为框架中默认应该实现的内容构建大型变通方法。 ZF提供的许多库也是针对特定用例而制作的,并且难以定制。

使用ASP,您可以立即启动并运行应用程序。您要对默认设置进行的任何更改都有丰富的文档记录。您还拥有像C#这样的“真正”编程语言的优势。 MVC模式与真正的编程语言相结合,可以轻松进行单元测试,尤其是当您进入测试驱动开发时。我的ASP.NET MVC专业列表是:

  • 使用.NET框架轻松实现本地化和全球化
  • Master Pages比ZF中的布局模型更容易使用且更灵活。
  • 你可以从像SiteMap这样的ASP.NET中获得所有好东西
  • LINQ的
  • Microsoft Entity Framework / NHibernate / Spring.NET

关于服务器和SQLServer的成本,许多托管公司以相当不错的价格提供专用服务器。

答案 1 :(得分:8)

我认为ZF会根据您的要求提供更多服务。你列出的针对ZF的缺点是相当主观的,但ASP.NET的成本是明确的。

肯定有一个富有的社区致力于Zend Framework,它的1.0版本发布于一年多以前,所以它稳定可靠。

Zend Framework支持两步视图,其中视图模板在布局模板中呈现。我认为这满足了您对母版页的需求。

看起来你对PHP和ASP有着同样的热爱。如果我做出决定,我会使用我最有信心使用的,或者与未来最相关的。

答案 2 :(得分:6)

刚刚经过并看到了这一点。作为一个使用ASP.Net几年和Zend Framework几年的人(多年来PHP本身和ASP.Net MVC),我肯定会选择PHP和ZF。我发现完全相反,并没有看到任何人在ASP.Net中找到任何东西更灵活。我认为大多数人所说的“灵活”是指IDE完成了很多代码,或者框架为他们提供了一切支持。后者与灵活完全相反。说实话,ZF可能过于灵活。这就是为什么文档虽然广泛但似乎并不涵盖所有内容。 ZF对我的项目的可重用性已经脱离了图表。它肯定比普通ASP.Net好。

你可能会在两者中找到相同的功能,因为大多数是MVC框架的标准功能,而在ZF中可能更多。 Zend_Db库很像LINQ,任何动态类型的语言都会在DB访问中胜出(因此.Net必须为LINQ添加它)。 ZF有一个内置的URL路由系统......没有什么令人惊奇的.Net MVC。母版页由ZF中的布局系统处理,老实说,几年前你可以使用原始PHP做母版页。我不知道哪些关于“真实”语言的评论会来自...... PHP和ZF项目能够进行单元测试。我一直这样做。如果你的根不是C / C ++,那么通常一种“真正的”语言意味着它会强迫你编写OO代码。鉴于您没有其他任何选择,因为您不知道如何自行执行。

总之,请亲自检查两者的功能。从多年来看它发生的第一手资料,我可以告诉你.Net人群会告诉你各种各样的“独家”.Net功能,这些功能源于缺乏对其他技术和框架的实际知识。事实是,大多数(如果不是全部)功能在其他平台上都可用...许多功能都比.Net实现更早。

答案 3 :(得分:4)

过去8年来,我一直是.Net(C#,VB.Net,Asp.Net)开发人员并开发了一些网络应用程序。对于我最近的项目,我不得不放弃我的PHP技能。客户更喜欢完全开源的平台。我决定在Linux服务器上使用PHP + Zend Framework + mySql。学习曲线在开始时很陡峭,但是一旦你掌握了技能,你就会变得非常快速和高效。

答案 4 :(得分:3)

如果您担心许可证成本,那么您是否应该使用其他数据库? PostgreSQL和mySQL通常就足够了。

答案 5 :(得分:2)

是的,您可以在ASP.NET MVC Framework中拥有自己的视图母版页,它的工作方式与Webforms中的相同。

答案 6 :(得分:2)

如果您打算开展业务,请查看Microsoft的EmpowerBizSpark计划。他们可以帮助您获得许可成本,直到您的企业站稳脚跟。

答案 7 :(得分:1)

根据我的经验,ZF并不难学,特别是如果你了解MVC / ROR。 CakePHP与ROR更相似,但它仅适用于小型网站。

你可能想看看“ZF新人的基本快速入门”:http://blog.sunnyboy.me/2013/05/20/14848/

答案 8 :(得分:1)

我不明白为什么人们在.NET中列出MSSQL是昂贵的.NET有MYSQL API支持MYSQL和其他数据库。

答案 9 :(得分:1)

我专业和创建企业级应用程序。这两种方法都是完全有效的,支持的,记录的,并且由熟练的开发人员很好地实现。

.NET的优点在于您拥有全面的端到端解决方案。从Visual Studio到IIS再到SQL Server以及介于两者之间的所有内容,都由一家公司创建,可以无缝地协同工作。您还可以通过编译语言和集成到整个交付系统中的庞大框架获得一些非常出色的性能。

PHP是一种语言,它似乎是大量贫穷的开发人员。这是一个庞大的社区,开发人员的技能水平差异很大。这也是一个相当误导的社区,设计模式中的叉子多于厨房抽屉,这也无济于事。许多不同的框架,许多不同的cms,以及一些非常臃肿和缓慢。 Zend Framework当然是值得企业的,我喜欢用它编程。 ZF2现在已经出局了,它似乎更接近于操作系统领域中更加进步的竞争对手,比如rails和Django,尽管脚手架似乎仍然是一个明显的MIA功能(虽然在Yii中可用)对于那些不想真正的人开发,但只是快速自动创建CRUD功能。

总而言之,您可以用两者开发出色的网站。我认为如果你想学习“正确的方法”来做事并且你没有MVC和编写DRY代码的经验,那么使用Razor的C#.NET MVC将是一个很好的选择。但是,如果您是一位经验丰富的开发人员并且知道自己在做什么,那么您可以在PHP中执行相同操作(这样可以让糟糕的程序员成功地完成可怕的代码)。

答案 10 :(得分:1)

Windows平台的专用服务器MIGHT要多花10美元。威力。而且你也可以获得与MSSQL Server托管的好交易。你需要一个专用的服务器吗?祝这个项目好运!

答案 11 :(得分:1)

我在.net上工作了3年。 .net框架有一些缺点,如数据库和主机的昂贵成本。 但你可以使用具有免费许可证的ms sql express。 .net的问题是:它没有像php这样的活动社区, 这太重要了! 多年来,每当我需要一个组件时,我都遇到了这个问题,我不得不经常搜索 免费版本的组件。但是在PHP中一切都是免费的! 但总的来说,我认为在.net中开发软件更快更容易,因为当你是 编码和设计,这是VS为你做的大部分事情。 特别是.net中的编码让你远离大多数细节,因为它有一个非常好的抽象。

答案 12 :(得分:0)

选择Symfony并在其中使用ZF组件:) Sf有很棒的文档阅读,丰富的社区+功能。 Sf只是在其中嵌入了许多开源工具,如Twig,Doctrine,单元测试,资产优化工具(Uglify JS,YUI压缩器),Swiftmailer,Monolog ......

答案 13 :(得分:0)

首先,我建议不要使用PHP,而是使用更好的语言,例如Python。您的代码更少,更快,更稳定,维护问题更少。我目前正在使用Pylons-Framework,我非常满意。

无论如何,如果你想继续使用PHP,它取决于你想要的灵活性,意味着,框架应该为你做多少。 最近我遇到了一堆使用CodeIgniter的问题,这是一个快速且轻量级的框架,嗯,对你来说并不多,只有“框架”。有一个名为“Kohana”的分支,它涉及许可证,但记录很少。

Zend非常强大但却很复杂 - 但更多的是PHP而不是Zend-Problem。

Symfony也很强大而且完整。它完全来自Ruby on Rails,我从未有过使用所有Symfony功能的PHP项目。它有一个非常好的脚手架。

在我试过的所有PHP-Frameworks中,我最喜欢CakePHP。它似乎是复杂性和易于使用的方法之间的中间环节。

所有严肃的PHP-Frameworks都支持标准应用程序,如模板,建模和缓存。

答案 14 :(得分:0)

如果您要使用PHP,我会尝试另一个框架,我不太喜欢Zend框架。 为什么不试试CakePHP?

有很多PHP-MVC框架比Zend更好。

选中此http://www.mustap.com/phpzone_post_73_top-10-php-mvc-frameworks

答案 15 :(得分:0)

我也在2 + Ruby on Rails之间做出决定......

我正在使用Zend Framework 1.8.2并且喜欢它(大约3个月前开始)。它的学习曲线很陡峭。但我现在非常喜欢它。除了MVC,它有Zend_Forms,允许我甚至将“输入”逻辑和验证分开是很好的。

模板是通过Zend_Layouts和Zend_View实现的。我不知道如何改变布局(现在我有整个网站使用相同的布局...)但我认为它可能。

但是在我知道Zend Framework一段时间之后很难,现在正在探索是否有更好的框架..所以ASP.NET MVC和Ruby on Rails

ASP.NET MVC的第一印象还可以,他们可能需要知道他们如何进行表单和验证。除此之外...我觉得LINQ很棒!

对于Ruby on Rails我喜欢同时自动生成模型和表单。加快了很多事情,但需要知道这些自动生成表单的定制是否容易。在官方网站观看了一个截屏视频,并且整合AJAX似乎很容易。

答案 16 :(得分:0)

* Getting a dedicated server will be expensive.

专用服务器是什么意思?无论您使用的是ASP.NET MVC还是PHP + Zend框架,都必须托管任何网站。

* A licensed version of SQL Server will be expensive

根据数据库的大小,您可以使用Microsoft或MYSQL的免费版本sql express。 ASP.NET MVC适用于任何数据库。

此外,我不喜欢你必须使用整个'_'来表示Zend / File为Zend_File的方式。那是怎么回事? ASP.NET MVC制作精良,是开源的,并且内置了集成的URL路由系统。

答案 17 :(得分:0)

作为开发人员,我认为它更像是asp.net和php。我知道asp.net比php更多,所以我会建议asp.net。你也不能用php获得linq的强大功能,这是一个非常大的优势。

Zend已经有一段时间了,Asp.net MVC仍然是新的。我所看到的是,很多开发人员对传统方法比MVC更舒服。

MS拥有开源MVC,所以它的社区肯定会成长。