|Well, with ASP and PHP, you can generate all the HTML manually, so
you >>can control how closely to
Can is the operative word here. How many actually do?
My point was that this is a developer issue, not a language issue.
| The biggest advantage ASP.NET has over classic ASP and PHP is the
ideas of Code-Behind, where you
| have a clean separation of your code and the presentation code. You
have to do quite a bit to
| approach this in PHP or ASP. Also, managed post backs / page states
are quite nice.
The question we should be asking here is why is this necessary? I'm not an advanced PHP coder (something I hope to fix soon) so I
really >can't speak to
how easy it would be to do.
The biggest advantage I've seen is in maintenance. These make your program a lot easier and cleaner to maintain.
Well I guess that depends on what you think a webscripting language
should >do. True. For extremely small projects, I would say that php is just fine. Larger projects require something more, I think.
How do you figure the .Net debugger is cheaper than the PHP debugger? I don't use a PHP debugger, at least not yet. So I'm completely ignorant of costs. But if there is
a >cost difference, it is
most likely only there so Microsoft can kill off all competition to
.Net so >they can start
charging through the nose for the .Net debugger. Typical M$ attack
pattern >(ref: Sun Tzu's Art of War :: Microsoft Press).
I was comparing Visual C# Standard ($109 US) to the Zend Studio ($249 US). Both include debuggers. Although, technically, The Zend Studio debugger has problems because it can't connect to the database backend.
Overloading functions is taken from c/c++. Something that could be done most likely with java code.
My point was that you can do this using ASP.NET / C# and you can't in PHP. Not sure about PHP 5 though. Overloading Constructors can be very helpful sometimes. C# also has cool things like delegates, templates / generics (in version 2.0) and a larger framework that is easily extensible.
It's been my experience that php doesn't scale up to larger projects very well when compared to .Net/C#. It quickly becomes an organizational nightmare. With C# and .NET(which includes mono), it is very easy to compartmentalize your code any number of ways. For example, put you entire data access layer in one assembly( shared library), you business objects into another, security and permissions in another, etc. etc. You can use a different namespace for each one to make your code more readable. And namespaces can be shared across assemblies.