I am looking to start a new project and I am trying to decide which framework to go with. I have been using ASP.Net for a while and enjoy it. My first introduction to web applications was with PHP and I still love it. The project should be a medium sized project maintained by 1 or 2 developers with a potential to grow. The only pros and cons are can think of are as follows:
ASP.Net MVC Pros
- Big community support and increasing
- Seems to be fully featured
Cons
- Getting a dedicated server will be expensive.
- A licensed version of SQL Server will be expensive
Zend Framework Pros
- Also a fairly large community
- Free, using the typical LAMP setup
Cons
- Not as mainstream
- Might contain possible limitations
Lastly, I have enjoyed working with ASP.Net's concept of Master pages. Does ASP.Net MVC still support this and does Zend Framework have something similar. I think that Zend offers something called templating and it looks close to Master pages.
What is your opinion?
I work with both professionally and creating enterprise level applications. Both approaches are completely valid, supported, documented, and well implemented with a skilled developer.
What is nice with .NET in general is the fact that you have a comprehensive end to end solution. From Visual Studio to IIS to SQL Server and ever where in between, it's all created by one company to work seamlessly together. You also have some pretty outstanding performance from a compiled language and a massive framework that's integrated into the entire delivery system.
PHP is a language with a bad rep from what seems to be a large number of poor developers. It's a huge community with developers of vastly different skill levels. It also doesn't help that it's a fairly misdirected community with more forks in design patters than your kitchen drawer. Many different frameworks, many different cms, and some are really bloated and slow. Zend Framework is certainly enterprise worthy, and I've enjoyed programming with it. ZF2 is now out, which seems to catch it up closer to the more progressive competitors in the OS arena, like rails and Django, although scaffolding still appears to be a blatant MIA feature (although available in Yii) for those that dont want to really develop, but just rapidly automagically create CRUD functionality.
All in all, you can develop great sites with both. I think C#.NET MVC with Razor will be a great option if you're want to learn "the right way" to do things and you dont have experience in MVC and writing DRY code. However, if you are an experienced developer and know what you're doing, you can do the same in PHP (which lets bad programmers get away with absolutely horrific code successfully).
If you're going for PHP I would try another framework, I didn't like Zend framework very much. Why not try CakePHP maybe?
There are a lots of PHP-MVC frameworks better than Zend.
Check this http://www.mustap.com/phpzone_post_73_top-10-php-mvc-frameworks
At first, i recommend not to use PHP but a better language, Python for example. You code less, faster, more stable and with less maintenance issues. I'm currently using the Pylons-Framework and am very happy with it.
Anyway, if you want to stay with PHP, it depends on how flexible you want to be, means, how much the framework shall do for you. Recently I ran into a bundle of problems using CodeIgniter, which is a fast and leightweight framework that does, ehm, not much for you but only the "frame". There is a fork named "Kohana" which is besser concerning the licensing, but poorly documented.
Zend ist very powerful but complicated - what what is more an PHP- than a Zend-Problem though.
Symfony is also powerful and complete. It's totally derived from Ruby on Rails, and I never had a PHP-Project where i used all the Symfony-features. It has a really nice scaffolding.
From all PHP-Frameworks i tried, I liked CakePHP most. It seems like a middle-way between complexity and an easy-to-use approach.
All serious PHP-Frameworks support standard-applications like templating, modeling and caching.
I have been .Net (C#, VB.Net, Asp.Net) developer for the past 8 years and developed a few web apps. For my most recent project, I had to dust off my PHP skills. The customer preferred a fully open source platform. I have decided for PHP + Zend Framework + mySql on Linux server. The learning curve is steep at the beginning, but once you pick up the skills, you will get very fast and productive.
Yes you can have master pages for your views in ASP.NET MVC Framework as well, it works pretty much the same as in Webforms.
According to my experience, ZF is not hard to learn, especially if you understand MVC/ROR. CakePHP is more similar with ROR, but it is only suitable for small web sites.
You may wanna to take a look at "A Basic Quick Starter for ZF New Guys": http://blog.sunnyboy.me/2013/05/20/14848/