Having read a great variety of forum and blog posts, I met a lot of misconceptions about ASP.NET that definitely made people to turn away from ASP.NET. I won't argue whether ASP.NET is better than PHP (or Ruby on Rails) or not, instead I'll try to bust those myths.
The common myths are:
That is certainly wrong. This misconception is caused by dynamic compilation, when an ASP.NET application is accessed for the first time it gets compiled unless it wasn't pre-compiled before. This leads to a delay in page loading. However, the next requests are served much faster.
Wrong. In fact, ASP.NET since its 2.0 version produces XHTML compliant code.
First, all ASP.NET validators perform server-side validation that is surely cannot be browser dependent. Second, client-side validation works in any modern browser.
Well, some ASP.NET controls really output the code that is full of tables, however due to the extensible nature of ASP.NET you can write your own adapters that will extend the current controls and make them produce clean tableless code. Actually, you don't need to write adapters yourself, there is already a good set of ones available for free download.
No. Although Visual Studio allows you drag controls from the Toolbox in the visual or in the source code, you still can write code yourself, IntelliSense helps a lot with that. Even if you use the drag-n-drop method and the visual tools, you still can see all the changes in the source view. Basically, those tools don't hide anything from you, they just generate the code that you can always view and modify.
No. You can you any database that has a .NET provider. At the present time, you can find providers for MySQL, Oracle, DB2, PostgreSQL, Informix, Sybase, sqlite.
No. Just read some tutorials, for example, this one. There is also a module for IIS 7 that provides a mod_rewrite style of URL rewriting. ASP.NET MVC Framework If you want to have 100% control over HTML code, then you should definitely have a look at ASP.NET MVC Framework.
I think there are some more misconceptions. Anyway, if you already developer web sites with ASP.NET, then you are likely to know the truth, however if you develop web application with some other tools or want to start web programming, I recommend to take a closer look at ASP.NET. Sometimes, it is not a best option to read opinions on web forums that tend to be biased sometimes. You'd better visit some comprehensive resources, like www.asp.net and msdn.microsoft.com.
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way. My personal thoughts tend to change, hence the articles in this blog might not provide an accurate reflection of my present standpoint.
© Mike Borozdin