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?
The dedicated server MIGHT cost $10 more for a Windows platform. Might. And you can get good deals for hosting with MSSQL Server as well. And will you need a dedicated server to begin with? Good luck with the project though!
If you are planning to do business, take a look at Microsoft's Empower and BizSpark programs. They can help you with the licensing costs until your business can stand on its feet.
i dont understand why people listing cons in .NET that MSSQL is expensive .NET have MYSQL API that supports MYSQL and other Databases.
If you are worried about the license costs, then perhaps you should use another database? PostgreSQL and mySQL is often sufficient.
what do you mean by dedicated server? You have to host any website whether you use ASP.NET MVC or PHP+Zend framework.
Depending on the size of your database, you can use free version sql express from Microsoft or MYSQL. ASP.NET MVC works with any database under the hood.
Besides I do not like the way you have to use the whole '_' thing to mean Zend/File as Zend_File. Whats up with that? ASP.NET MVC is well crafted, and is open source, and has an integrated url routing system built.
Just passing through and saw this. As someone who's used ASP.Net for a couple of years and Zend Framework for a couple of years (PHP itself for many years and ASP.Net MVC briefly) I would definitely choose PHP and ZF. I have found the exact opposite and don't see how anyone could find anything in ASP.Net to be more flexible. I think what most people mean by "flexible" is that the IDE does alot of code completion or the framework scaffolds everything for them. The later is the exact opposite of flexible. To be honest ZF may be overly flexible. This is why the documentation while extensive doesn't seem to cover everything. Re-usability with ZF for my projects has been off the charts. Its definitely been better than plain ASP.Net.
You're probably going to find the same features in both as most are standard for an MVC framework and probably more in ZF. The Zend_Db library works alot like LINQ and any dynamicaly typed language will win out on DB access (hence the reason .Net had to add it for LINQ). ZF has a built-in URL routing system as well...nothing amazing there about .Net MVC. Master pages is handled by the layout system in ZF and to be honest you could have been doing master pages with raw PHP years ago. I don't know where comments about a "real" language would come from...PHP and ZF projects are capable of being unit tested. I do it all the time. If your roots aren't in C/C++ then usually a "real" language means it forces you to write OO code. Given any other option you won't because you don't know how to enforce it yourself.
In conclusion check out the features in both for yourself. From years of watching it happen firsthand I can tell you the .Net crowd will tell you about all sorts of "exclusive" .Net features that stem from a lack of actually having decent knowledge of other technologies and frameworks. The truth is that most if not all of the features are available on other platforms...many being older than the .Net implementations.