Rick Strahl's Weblog  

Wind, waves, code and everything in between...
.NET • C# • Markdown • WPF • All Things Web
Contact   •   Articles   •   Products   •   Support   •   Advertise
Sponsored by:
West Wind WebSurge - Rest Client and Http Load Testing for Windows

ASP.NET gets no Respect


:P
On this page:

As an ASP.NET developer I'm pretty much sold on ASP.NET as a platform. I've used ASP.NET since the beginning of the early .NET betas and while I originally had a tough time getting started with it, I eventually came to really enjoy the framework. But once I understood the platform and the flexibility it offers, it's now really hard to think of any other Web development platform that I'd rather be working on. The flexibility of what can be done with ASP.NET reaches everything from high to low level tasks in a flexible and highly extensible environment.

 

Sure ASP.NET can be used very inefficiently and can produce some truly horrific code, but what platform doesn't allow for that? To me ASP.NET has the breadth necessary to let me build Web applications that range from very high level using the Web Forms engine, to building ultra low level applications or even service level interfaces at the raw HTTP level. I've built plenty of high level Web Forms applications and I've also built several applications where the point of entry interface was an HttpHandler, with our application logic providing the Web interface layer directly at the protocol level.

 

The cool thing is that all of that wide range can be done fairly easily and consistently in ASP.NET. True the framework is big and there's complexity if you want to understand it well, but the model is clean and effective. In the process of development I've built quite a few applications for and with customers, a few of ended up with sites that had  backend page hit rates in the millions per day. Never have I run into a corner were ASP.NET was not up to the challenge of handling the load that was thrown at it either directly or by standard ways of load balancing that are available to any Web platform. These days it's getting rarer and rarer with  today's hardware environment to have to resort to load balancing with single high power machines able to manage massive loads. Which isn't to say that there isn't a need for that as well when you end up building a site for the top 100 trafficked Web sites. Frankly I haven't been so lucky yet, but I'm fairly confident that if it came to that ASP.NET would be more than up to that challenge.

 

In short my experience with IIS and ASP.NET has been a solid one both in terms of performance and security – especially with IIS 6 and now IIS 7.

So why all the Dissing?

 

For this reason I'm baffled that the ASP.NET platform is often maligned as inefficient, slow and maybe most importantly insecure (which really is pointed at IIS). If you spend a little time searching around the Web and looking for comparisons of ASP.NET versus some other technology – typically PHP or Phython on Apache on a full LAMP stack – invariably ASP.NET will be played down as a vastly inferior choice. It's slow, it's inefficient, it's difficult and oh yeah, it's not free – or more accurately running on Windows which is not free.

 

Most of the bad mouthing of course comes from aficionados of alternate technologies and it's not terribly surprising that they think that their solution is better. You know the typical us vs. them argument and that's pretty normal.

 

But it goes even a bit further. It seems that ASP.NET's adoption rate for highly visible sites is not all that high. Sure there are plenty of big sites including Microsoft's own which tends to be around the busiest site on the Web, but overall when you start looking for high profile sites that run ASP.NET you'll find that not all that much content is running on ASP.NET.

 

You can do this test yourself – check out the top 20 sites outside of developer sites that you use yourself on a regular basis and see how many of them run ASP.NET. I think you'll find that very few run ASP.NET.

 

Which isn't to say that there aren't some popular and very busy sites out using ASP.NET. Here are a few you might recognize:

·         www.MySpace.com

·         www.newegg.com

·         www.cdw.com

·         www.dell.com

·         www.HomeShoppingNetwork.com

·         www.Phanfare.com

·         www.careerbuilder.com

·         www.progressive.com

·         www.CostCo.com

 

Still even looking at the list of sites above you'll notice that most of these are old school business sites and it gets much harder to find examples of ASP.NET in the type of social networking sites that many of us are working or playing with in the course of the day. It seems for smaller and startup sites, ASP.NET is vastly under-represented.

 

So the question arises why does ASP.NET have such a bad rap and why is it so relatively lightly used? Let me play devil's advocate and speculate on some of the reasons that ASP.NET  is maybe getting a bad rap.

 

Competing with Free

I think competing with free tools is a big issue of why ASP.NET is not used as widely as it otherwise might be. Although ASP.NET is free the underlying platform it runs on is not. Windows is licensed and costs money – even if Windows Server Web Edition is available for a relatively small fee.

 

Compared to free even a small price looks expensive. Free draws a lot of people. Period. No matter how you look at it, if you have a free platform and one that costs money in the end there is always going to be a significant chunk of folks going to the free platform, regardless of whether free in this case has the better cost benefit or not. Free tools are compelling and it also drives developers who are just starting out into this direction because, let's face it, when you're starting out the last thing you want to do is spend money even if it's a relatively small amount.

 

In reality 'not-free' is a weak argument given that the Window Server Web Edition is pretty inexpensive at around $300. The Web Editon is fully loaded with everything to get an ASP.NET app up and running although the database needs to be added separately. You can even run open source data backends if you can't or don't want to use SQL Server or the free Sql Server Express Edition. With this kind of low price investment, especially in relation to any sort of software development fees, licensing shouldn't be a factor.

 

But the problem is one of perception: Micro$oft is by default associated with big dollar signs, and "Microsoft is always after your money". Certainly that's not my experience either for myself or for the customers I've worked with costs very clearly delineated.

 

But I can certainly attest to the hesitancy of many developers and companies to trust Microsoft, always feeling that in the end Microsoft is out to screw them. It's unrational to the biggest extent but it's a very real issue that plagues Microsoft in general in my opinion.

 

Barrier of Entry

ASP.NET from the outside is seen as a big and bulky solution. Huge framework, huge runtime requiring large servers, lots of memory etc.  This criticism is really leveled against Windows as the platform rather than ASP.NET since the bulk of those requirements are for the operating system.

 

I find this argument very common, but it's also pretty weak given that high end hardware and memory are becoming so very cheap in recent years. For example, I just upgraded my server to a quad core Xeon box with 8 gig and 3 high speed harddisks for less than $1200.00 with a packaged server from Dell. It's hard to accept any whining about an application taking a few extra megabytes when you can buy 4 gigs of RAM for $70. Yet the argument goes, no matter how much hardware you use, the LAMP stack always requires less so you can make more out of your hardware and there certainly is some truth to that.

 

Along the same lines if you go looking for hosting space with ISPs it's also no secret that Windows hosting is more expensive and this is mostly due to the higher hardware and resource requirements plus licensing that host providers have to invest in order to host Windows solutions. Again these differences are not very large but they are subtle marks against a Windows solution.

 

Learning Curve

Maybe an even bigger concern is that ASP.NET or .NET in general has a pretty steep learning curve. Web development is never easy, but ASP.NET involves learning a fair bit of framework functionality before you can really be productive and get stuff done. It's easy to build a hello world page or even a simple data form, but once you start building more complex stuff – especially when it requires data access and an architecture -   all of a sudden there are a huge number of options of varying complexity available. Many choices but not a lot of guidance on which of these choices works well in which scenario.

 

I think it's very easy to forget for those us that are now proficient in .NET how much of a struggle it was to get to that first level of proficiency beyond feeling like a complete dork with .NET. I know it took me a lot more time to get there than I care to admit to feel comfortable working with .NET. It's not that .NET is particularly hard, but it is very large. The framework is huge and while you don't need to know all of it, figuring out which pieces you need and which pieces are the right ones to use at any given time takes time. This process is more involved with .NET because there are many more choices available than in most other Web environments especially scripting languages. It can also be frustrating to get to that first stage of proficiency beyond feeling like a dork and frankly I think this stage is where many would be developers drop off the ASP.NET try outs and opt for another solution.

 

Compared to other solutions like PHP, Python or maybe even more drastically ASP Classic ASP.NET is a monstrous beast that can be a blessing for those that feel comfortable with the framework and know how to leverage the rich functionality, or a curse for those just starting out to become proficient and become overwhelmed and confused by the myriad of choices.

 

It's easy to point a finger here and say – "Well, software development is hard and you have make an investment to learn a new tool", but the reality is that there are still a lot of developers out there that are already proficient in one tool or another and if you are comparing tools on a regular basis and find one that on first blush seems more complex than it needs to be, it's not going to win any popularity contests.

 

I personally feel that investing the time in .NET was definitely worth the effort. When I first looked at ASP.NET I was also overwhelmed and confused by which approach to take, but with time of learning the framework and understanding the architecture I've come to really appreciate the power and flexibility that it offers in Web development or development in general. I've spent a fair bit of time building my own Web frameworks from the ground up, I've looked at various other frameworks more recently and for me it still comes back to the simple fact that ASP.NET is built on a very solid and flexible foundation that can do just about anything on the HTTP stack fairly easily.

 

But I'll be the first to admit that the learning curve was steep and I think this is where the sticking point lies: You have to make an up front time investment and upon starting out it's not obvious whether this investment pays off especially in the eyes of developers who may already have a skeptical tendency and who can use technologies that are more popular and provide a more straight forward path to Web development.

 

The problem is that this is difficult to convey the benefits of .NET from a perspective of "you have to be highly proficient first". It's not going to go over well when you say: "After you spent a year studying the deep inner workings of the framework you'll really benefit from ASP.NET". Never mind that this concept applies to just about any tool, but without that instant gratification of productivity it's a tough sell.

 

ASP.NET is a Different Web Metaphor

ASP.NET – at least using the Web Forms engine - uses a different approach to Web development that is based on abstraction and effectively hiding many of the HTTP semantics from developers. In some ways this can be very efficient and produce very rapid results if you know what you're doing and you flow with this concept, but if you are coming from a raw HTML and CSS background or even as a developer from other tools that are based on raw HTML/CSS principles it's actually difficult to get your head around the abstraction that Web Forms provides.

 

Web Forms also produces HTML that is not easily styled via CSS so traditional design mechanisms can be more involved. The raw output of the stock (and even more so third party) controls is at fault here often producing inline styled HTML that makes it really difficult or impossible to use standard HTML and CSS concepts effective. It's possible to do once you understand how controls render, but it's not exactly obvious and easily discoverable.

 

In addition ASP.NET's naming container ID mangling which causes client IDs to be changed can be very counter productive for styling with CSS and for working with elements using JavaScript. It's no fun referencing controls with references like $("#ctl000_StatusCtl_txtNameId") for element selection (with jQuery here) especially since those generated ID values can change. Then there's also ViewState and the massive amount of gunk that can and often does inject into the page, and the havoc it can cause with Ajax applications that update controls on the page.

 

The bottom line is that if a developer already familiar with HTML and CSS looks at ASP.NET there are going to be a lot of questions of how do I style my output properly, and how do I perform tasks that I already know how to do by hand with ASP.NET's markup and code.

 

Some of this is unwarranted, because as I mentioned at the outset of this post there's low level support available in ASP.NET at all levels including in Web Forms. But it's not the default model out of the box and as a new developer you're not likely to find examples showing lower level, 'raw' approaches out of the box. If you really wanted to output 'raw HTML' and not rely on formatting of complex controls it's easy to do that by using placeholders, inline script and otherwise simple controls that can easily be styled. For example, you can use a ListView or Repeater control instead of a DataGrid and produce fully CSS compliant table output. But this is not always obvious, not covered in an entry level tutorial and certainly not easy to figure out on their own for somebody starting out with the tool.

 

It's also important to remember that ASP.NET does NOT equal Web Forms. Most of the criticism leveled against ASP.NET has to do with Web Forms and using Web Forms in it's default Drag and Drop like way. But there are alternative view engines available that either allow you to go lighter in usage of Web Forms functionality or replace the Web forms engine completely. The just released Microsoft ASP.NET MVC Framework (part of .NET 3.5 SP1) for example offers a more low level Model View Controller approach to creating Web applications, with Views that are effectively moving back to a more script like, raw Html interface.

 

MVC is a development pattern, but one that is widely used on other platforms, and one can also hope that the Microsoft ASP.NET MVC implementation might bring a turning point in getting more people from outside of the .NET fold into ASP.NET as it uses a model that might be more familiar to developers coming from other Web technologies.

 

The Loss of Cool

I remember the days when ASP.NET first came out and there was a ton of excitement around this new tool. It brought compiled object oriented code for pages that could be mixed with script code, a true object oriented architecture plus a sophisticated platform architecture to bear on Web development. At the time ASP.NET was an innovative product by providing a comprehensive framework that encapsulates the Web platform as well as the Html document using a server side programming model. ASP.NET was the crown jewel of the .NET platform and many developers from all persuasions were eager to try out and eventually work with this new environment. ASP.NET enjoyed a solid wave of popularity for new development for a while.

 

It seems that this early excitement has faded quite drastically. Nowadays it seems that even within the ASP.NET community some of that fire has died down considerably as developers have settled in and are going about their jobs using tools that have seemingly become old hat.

 

The end result is that ASP.NET is not a first choice among many Web developers and certainly not among designers or other standards oriented workers. In those circles ASP.NET is a foreign entity and if a project based on ASP.NET needs to be sold into this environment there's invariably going to be some hard nosed discussions about why ASP.NET should be used over other 'open' software.

 

ASP.NET is not amongst the hip technologies that startups like to use. I'm not sure why that is, but it's clear that the majority of new startups and especially those that are in the 'hip' social networking category are not choosing ASP.NET as their tool of choice. Whether it's perception of ASP.NET as slow or inefficient, or whether it's its image or merely the fact that it comes from Microsoft the evil empire is hard to say, but the effect is undeniable.

 

Worse the problem of non-adoption starts even lower down. If you look at what kids and hackers are doing these days you're not likely to find very many working with ASP.NET (or .NET in general for that matter). While this may not seem significant, it is something that should be worrying because the next generation of developers growing up is growing up distinctly distant from Microsoft's tools. Many of this generation of kids who've grown up on computers and know of no world without them are generally very anti-Microsoft biased. This in turn means there's not a lot of influx of 'young blood' into the community which can provide a kick start, new innovation and the sheer energy that seems to have drained from the platform.

 

Maybe it's just me, but it definitely feels like energy levels are way down. To illustrate the point, the last couple of .NET conventions I attended were dull and almost boring both in terms of content and even more so in mood and attitude, which is quite a contrast from the way I remember the earlier days of .NET. This is a bit disheartening.

 

ASP.NET has gone Stale

It also doesn't help that Microsoft has let ASP.NET stagnate a bit since the release of .NET 2.0. .NET 2.0 brought about so many changes that there was some backwash against the sea of new features that were introduced in that version. While there were tons of major and useful improvements in 2.0 there also were a number of confusing features (like the funky 2.0 stock project model) and a host of features that seemed to seemingly overlap. Nevertheless the release of .NET 2.0 was eagerly anticipated because it brought many valuable improvements that affected developers in day to day tasks.

 

Since then though it's been rather quiet around ASP.NET. By comparison the recent release of ASP.NET 3.5 was an anti-climax for ASP.NET with almost no new features save integration of some previously released features – namely ASP.NET Ajax and the IIS 7 integration. Ironically the just released .NET 3.5 Service Pack 1 brought more new features and a new framework in the form the Microsoft MVC Framework that breathes some new life into the platform and diffuses some of the ire that the Web Forms engine had taken from agile developers looking for a more fitting platform for Web development.

 

Change is good, but I personally think that taking a breather in ASP.NET 3.5 was probably a good idea. There's been so much change recently in other areas of .NET from WCF, WPF, WorkFlow plus the new LINQ features in all of their various dialects that not having a boat load of new controls and framework features in ASP.NET 3.5 was actually a welcome relief. But it's a balancing act. Having a platform stabilize and not constantly requiring changes to keep up with new versions is a good thing, but dropping innovation too much also makes the platform appear to stuck in a rut and not moving forward which is also important for perception and adoption. It looks like ASP.NET 4.0 will again pick up the pace and provide more enhancements to address the latter.

 

Ajax – stuck in the Mud

Another issue that might account for the lack-luster adoption is Microsoft ASP.NET Ajax. The biggest change in Web Development over the last 3 years has been the steady march forward of Ajax and JavaScript technologies on the client. Microsoft's answer to Ajax is the bulky and clumsy ASP.NET AJAX framework which in a way takes a very different approach than most other Ajax libraries by trying to drive Ajax development primarily through server code and hiding client script from developers.

 

The problem here is that these tools offer virtually no compelling features to client side developers who choose to write Javascript code for rich clients that use the server for data retrieval. The client library offers practically no assistance for typical client side scripting tasks.

 

As with ASP.NET in general the ASP.NET Ajax tools have become stale after the initial release several years back. .NET 3.5 brought merely integration of these tools into the shipped runtimes, but there was no significant new functionality added to these libraries. The innovation has gone out of the Ajax tools while the rest of the Ajax world was frantically innovating.

 

It's important to point out though that ASP.NET Ajax is by no means required to do Ajax with ASP.NET. You can easily use another JavaScript framework like jQuery, Prototype, ExtJs and so on with ASP.NET. But the damage to the image is done with ASP.NET Ajax often considered a bulky choice that gets in the way more than it helps.

 

Microsoft Stigma

I'm always amazed how many people outside of the Microsoft fold have such intense loathing of Microsoft. It's not just dislike, but a virulent loathing where anything Microsoft is considered evil. Microsoft has certainly made itself unpopular over the years in a variety of ways and unfortunately mistakes of the past are now coming back to haunt the companies and likely will continue to do so for some time. Most of this is completely unrational, but it's a very common sentiment.

 

On the developer tools front Microsoft does well in the Enterprise and for typical business level systems mainly because Microsoft products are already entrenched in these environments and so .NET has a strong foot in the door already.

 

But outside of the enterprise and especially in Web development circles Microsoft is often greeted with strong cynicism and so tools that come from Microsoft are already facing an uphill battle. The perception of Microsoft as the evil empire with no good qualities and only out to get your money is definitely an issue in many circles and often results in downright dismissal of anything Microsoft as an option. This is often a consideration before even any sort of technical viability is established.

I'd argue that Microsoft has long shed this 'evil empire image' especially on the development tools front. These days Microsoft is much more open and transparent in regards to forthcoming developments and to some degree there's community involvement in product shaping. However, it isn't a truly open process and critics continue to point at the fact that Microsoft will never be able to create good software because it is not open sourced.

 

This stigma is going to be very difficult to overcome for Microsoft, unless the company can drastically change its image. Right now Microsoft's image is of a big stodgy company – the new IBM of old that is big and wants to keep its market dominance without contributing anything innovative to the technology pie. For Microsoft to turn things around would involve providing something new that is so compelling that it can overcome all the negative energy or a very drastic change in its business and development model that aligns it closer with the open source process. I wager, chances are slim that either of these will happen anytime soon…

Does it matter what others think?

The obvious question is whether all of this should concern us at all, or whether we should just be happy we've found our development platform that we're happy with and go on our merry way. It does matter to some degree to me. Like most people I want to be using a framework that has merit and is popular and maybe more importantly that I don't have to fight to justify my use of everywhere I go.

 

I think from a technical perspective ASP.NET is a solid framework with lots of room to grow and produce Web/HTTP applications of any kind. There are a number of options available for high level development with the Web Forms and MVC engines available now in the box, and additional third party engines available. ASP.NET is flexible enough to do high and low level development so that you can either rely on existing high level frameworks that are provided or – if you really need something specific – you can roll your own and even mix and match between them. Technically I'd argue that ASP.NET has nothing to worry about.

 

The bigger problems are those of political nature. Microsoft's stigma as a big company out to take advantage anyway it can is probably the biggest deterrent for ASP.NET adoption on the ground floor before it ever even comes to technical decisions. I also think the barrier of entry and getting started is turning off many people who are giving ASP.NET a first shot but are either overwhelmed or not comfortable with the default Web Forms mechanism.

 

There aren't a lot of solutions to these latter problems because they are based primarily on subjective sentiment. Certainly cleaning up Micorosft's image is not something that's going to happen overnight. I also think that on the development tools front at least Microsoft is going down the right path by being ever more transparent and even making source code available for many of the new projects that are coming out. For example, the MVC Framework's source code is actually available on CodePlex so you can look at the core source as well as become involved in the development process. This is a drastic change and a good step in the right direction to open up the tools and platform.

 

I think it would also help if Microsoft spent a little more effort to push the Microsoft platform outside of the already converted. Most of the advertising for ASP.NET and .NET and developer tools in general tends to be targeted at .NET developers, which is just preaching to the choir. What's really needed is more of a push to gain the hearts of those outside of the already converted circle. This is not easy and has to be done sensibly and not in the ram rod fashion that Microsoft 'case studies' often employ.

 

I also think that Microsoft would be well served by more introductory tutorials that focus on scenarios that go beyond the very basic drag and drop demos. Specifically some HTML designer centric demos that approach ASP.NET web development from the typical Html/CSS  workflow approach would be very useful. Currently there's nothing of the sort that I've seen on the Microsoft site. This could help bridge the gap between developers who already are familiar with Web development and don't want to be dragged by the nose by the Visual Studio Visual Designer. Also more examples that about code rather than how to use the designer to hook up everything would be beneficial I suspect. All of this serves to make things more transparent – it helps convey that ASP.NET is just a big black magic box that mysteriously generates HTML but rather a tool that works with existing standards and features that HTML provides and provides the flexibility to generate just about any layout necessary.

 

For us as developers I think it's also very important to keep up to date and look at other technologies outside of the Microsoft space from time to time, to understand the grievances and also to see if there's not something that we can learn from other platforms.

 

I know it's hard to find the time to look at other technology; it's hard enough to keep up with all the new stuff coming out just inside of the Microsoft universe let alone looking at Web technologies in general. But I do believe it's important to understand what other technologies are out there and how they are approaching the same problems that we are solving with ASP.NET. In the end all tools generate HTML output that gets rendered in a browser, so there's more than one way and there's no one best way. It's a good idea occasionally to step outside your comfort zone and check out what the other guys are doing. Pick up a book on PHP or Phython, or sit down and install and run a Ruby on Rails tutorial and see how the same problems are solved with these other tools. Not only does this improve the way you can talk about other technologies intelligently, but it also might inspire new ideas on how you can do things differently in your own work even with ASP.NET.

 

And maybe, just maybe, the tide can turn and ASP.NET will be greeted with a little more respect in the future.

Posted in ASP.NET  

The Voices of Reason


 

Steven Black
August 14, 2008

# re: ASP.NET gets no Respect

Good article, Rick.

Another major reason: <em>churn</em>. You say that ASP has settled-down, but relative to what? To illustrate: what is the half-life of any given Microsoft development tool investment? How many front-page bandwagon MSDN cover-page technologies make it to a meaningful fifth anniversary? Not too many.

Then there's <em>churn</em> in the related-technologies space, be it server software, service packs, framework versions, VS versions, data access, add-ons, and on and on, many of which carry upgrade dependencies, related lock-in issues, and not all of which get released sufficiently baked.

In the end, just how much are many of these incremental version improvements worth?

I disagree with your assessment that "<em>Most of this is completely unrational</em>" in regards to loathing of Microsoft by the developer space. You're kidding, right? Or maybe you're writing this, in some way, for a secondary audience that loves being stroked. (That's OK, by the way).

For me the bottom line with Microsoft is this: it long-ago turned into a company where many key players either retired rich, or will retire rich, regardless of what was (or is) released to developers. Today you can work at Microsoft, collect your paycheck, and what ends-up released just doesn't much matter to your career path. There's little <em>stake</em> in outcomes. That's just never going to be a compelling bet in my books.

Bob Archer
August 14, 2008

# re: ASP.NET gets no Respect

Rick,

Nice article. But, I did want to point out the MVC is NOT part of SP1. The only thing that is in the new routing stuff that lets you create URL routing handlers and such. I am pretty sure this is used by Astoria which is part of SP1 as is the Entity Framework and Tools.

BOb

Steven Berkovitz
August 14, 2008

# re: ASP.NET gets no Respect

One of the biggest selling points with any MS technology has always been support. Almost every customer asks me, "what happens if you die and we have problems?" My answer? "Call PSS - It will cost you around $300, but you'll get your problem solved." Compare that to most of the open source alternatives - support is either non existent or provided by a third party, and in my experiences, is seriously lacking. In fact the last time I had to call one of these support providers, I was sent a link to the manual - and they wondered why I refuted the credit card charge.

There is also the support lifecycle to take into consideration. PHP might be great, but where the guarantee that security fixes will still be shipping in 5 years? MS, on the other hand, has a clear and transparent support lifecycle for its products.

And finally, with regards to cost, software development is expensive, period. We all have our rates, and software development often takes hundreds of hours. In the grand scheme of most projects I work on, the licensing costs are pale when compared to hardware and development costs.

Steve
August 14, 2008

# re: ASP.NET gets no Respect

First, for myself, I differentiate 'asp.net' from 'webforms', 'mvc', etc... The asp.net engine is solid. So solid that it was able to easily incorporate a mvc framework on top of asp.net. I think that says alot.

php, etc... really aren't close to what 'asp.net' brings to the table.

That being said, the 'webform' model that sits on top of asp.net - the 'view engine' has serious flaws. I find it to be very thick. The page lifecycle is complex and because of it, requires some workaround that get ugly. I'm not of the opinion that the page controller model is a very good one. Certainly you can create simple pages very quickly, its very RAD but at the same time I have found as the complexity of the application grows, it can be messy. I think many confuse 'webforms' with 'asp.net'. Microsoft has promoted it that way for years. So much, that even some of the MS employees will remark about mvc 'don't worry, we aren't moving away from it' - obviously to ease the fears of those people that have invested so much into this webform model.

Monorail was the first step of showing the power of what asp.net can bring with a different framework sitting on top of it.

ASP.NET Mvc to me is really showing the power of asp.net with a different engine sitting on top of it that is both 'lighter' and very flexible.

With the ability to use different view engines just shows it's flexibilty. To me it has breathed new life into the asp.net architecture.

Just my 2 cents - Rick, where I'm at, asp.net is still growing and in high demand.

Steve
August 14, 2008

# re: ASP.NET gets no Respect

One more comment:

"Microsoft's answer to Ajax is the bulky and clumsy ASP.NET AJAX framework which in a way takes a very different approach than most other Ajax libraries by trying to drive Ajax development primarily through server code and hiding client script from developers."

I couldn't agree more. This is actually a major reason for my move to asp.net mvc: I like the freedom to use a library like jQuery which I think is a much better client side development choice.

Steve from Pleasant Hill
August 14, 2008

# re: ASP.NET gets no Respect

Way to vent, dude! I'm old enough to have worked on mainframes, so have seen a few things come and go.

I like the .NET framework quite a bit. The form/postback cycle can sometimes really piss me off, and I don't like the implementation of Master pages at all.

VB.NET and C# are good languages. Winforms kind of suck (especially when compared to Delphi for Win32 stuff, which never got the respect).

For business apps, particularly with SQL Server as a back end, it's hard to not go with it.

As for alternatives, in my limited look around I am very impressed with extJS and of course jQuery. Using AJAX via jQuery to call .net webservices and plop stuff onto your page really excited me the first time I saw it.

But, cutting edge developers use some form of *nix, and a god-awful shopping list of stuff just to build their dev machine. I can't even get Ubuntu to install on an old PC. I don't need the grief.

I have never been a MS fanboy, but I respect many of their products. .NET developers in SF are not in such demand, perhaps there are too many. If you know Java you can work almost anywhere, but last year Charles Schwab decided to rewrite their Java sites in .NET. Go figure. A major bank in SF is replacing it's payroll system with one built in-house in .NET.

Apple converted the kids by bringing Apples to the schools. I wonder how much .NET is taught in college? Probably not much!

Ricardo Oneda
August 14, 2008

# re: ASP.NET gets no Respect

Rick,

the RTM version of ASP.NET MVC Framework was not released yet. The SP 1 doesn't contain it. It's still in preview.

Mark Tellnorth
August 14, 2008

# re: ASP.NET gets no Respect

Hi Rick,

I can tell you that, as someone who has tried to use ASP.NET more than once, I have felt the pain of the default MS way to do things and felt the total lack of control over the output of my ASP.NET application. The problem is that the other ways are non-obvious, get almost no support from the community and the books published on ASP.NET all tell you to do things in the usual drag-drop way. Now with the new MVC Django-esque approach things are going to get better but it's too little too late. I know companies that to keep the total control of the HTML output have chosen to serve the view with ASP Classic and that pass data to the view in XML from a C# business layer. Can't blame them.

Why didn't ever, anyone write a book on ASP.NET that showed the non drag-drop way? Guess there would have been interest. Why don't you write it since you're probably the first one to admit in the MS community that drag-drop is not the way you should do things? ;-)

christophe
August 14, 2008

# Freedom

Rick, you miss one point: free software is about freedom, not price. Hackers insist on freedom even when it is inconvenient...

My mission today is to teach you to value these freedoms... Please, try to learn this philosophy. Free Software is a movement that one day you will rejoin ;)

Freedom is worth a sacrifice - (RMS)

christophe

http://www.gnu.org/philosophy/free-sw.html
http://www.gnu.org/
http://www.fsf.org/

http://www.gnu.org/software/emacs/
http://code.google.com/p/js2-mode/
http://groups.google.com/group/emacs-on-rails

fsdaily.com
August 14, 2008

# Story added

This story has been submitted to fsdaily.com! If you think this story should be read by the free software community, come vote it up and discuss it here: http://www.fsdaily.com/Community/Why_our_mission_is_to_teach_them_to_value_Software_Freedoms

John Walker
August 14, 2008

# re: ASP.NET gets no Respect

Rick,

Thanks for taking the time to post this. It expresses many of the feelings and beliefs I have (in a much more comprehensive manner) regarding ASP.NET, .NET and IIS. It's been a wonderful platform for me and my company and is getting better with each new rev. Thanks again.

Jonno
August 14, 2008

# re: ASP.NET gets no Respect

Great article Rick.

In think some of the comment here show the misconceptions and ignorance regarding free software.

"support is either non existent or provided by a third party"

I don't know about the US. But overseas it is probably easier to find open source developers.

"There is also the support lifecycle to take into consideration. PHP might be great, but where the guarantee that security fixes will still be shipping in 5 years? MS, on the other hand, has a clear and transparent support lifecycle for its products."

One of the tings that have made many people distrust Microsoft is the lack of long term support. Back in the day I wrote a lot of VB6 ...

There are still people patching and fixing bugs in PHP3 and maintaining application written in it. PHP4 is now not officially supported but 3rd parties will release security patches for it.

"But, cutting edge developers use some form of *nix, and a god-awful shopping list of stuff just to build their dev machine. I can't even get Ubuntu to install on an old PC. I don't need the grief."

This is just what Rick has been talking about. It takes time and effort. Ubuntu is not "Windows for Free". It is a unix clone. It may look pretty, but ultimately you will have to learn to love the command line if you want to develop on a unix platform. If you are not familiar with unix then it requires an open mind, the concepts are very different.

Jonas Follesø
August 14, 2008

# re: ASP.NET gets no Respect

Greate read Rick!

I feel that ASP.NET MVC is "bringing sexy back" to ASP.NET. ASP.NET AJAX 4.0 roadmap also shows som interesting stuff. But it really isn't that important, as MVC enables us to use other libraries.

I don't feel that ASP.NET gets no respect. Today ASP.NET is concidered stable, mature and I don't have to convince clients to use the .NET platform to build web applications.

It might not be as "cool" as Rails or Django, but it sure has good tooling support and a good track record.

I also think adding dynamic languages to ASP.NET, combined with some Silverlight on the front-end, is going to enable some interesting innovation on the web.

fritz
August 15, 2008

# re: ASP.NET gets no Respect

Hi Rick,

nice article. Here are my reasons for using PHP over ASP.NET for webstuff.

- php is so much simpler and closer to the metal of what the web really is
- turnaround times: I'm sick of hitting F5 and waiting for the damn site to appear. PHP is awesome in that regard. Write something, refresh the browser, get instant feedback.
Scripting rocks.
- Linux is just an awesome server platform. Configuration is easier and hassle free, once you know what you are doing. Can't beat SSH/vi for remote server administration. I can deploy as many Linux servers as I want without ever worrying about licenses. I can setup a new LAMP server in minutes.
- I've worked for a company that used ASP.NET. On many occasions, the server had to be rebooted because something was not working. Linux has given me less troubles so far.
Paying for troubles - why would anyone do that?
- VS performance: that thing is so damn slow, I absoluteley hate working with it. While there are many positives (great debugger), I just can't stand waiting for my IDE to let me continue typing.

Mal
August 15, 2008

# re: ASP.NET gets no Respect

I've used ASP.NET quite a lot in a previous position and from as the article points out it is a pretty good technology. I also work on a few projects on the side and the reasons I wont choose Asp.Net is mainly because of Cost, not of the deployment environment, but rather of the development tools.

Microsoft is the only company that charges money for an development environment that has lots lots of stuff, but a lot of it is just bloat, and not core development features. The only way I can use visual studio now is by installing Resharper( which costs more money) because of the standard of tools that are available for free in competing techs like java, and ruby, but that is just me. VS used to be king of the hill, but now it really isnt.

Ragnar Österlund
August 15, 2008

# re: ASP.NET gets no Respect

Great article, you hit the spot on many things!

I think that ASP.NET is good at some things, and not so good at others. As with many MS products it's: Do it the MS way or don't do it at all. I mean that as long as you are working within the boundaries of the framework (eg. designer and some code-behind) it is easy, but as soon as you need some custom solution things can get very hard. I think this might also be the reason why free software is popular, there is often a solution to some problem or way of doing things because chances are big that someone had the same issue as yourself before you, and thus implemented it.

Compared to a framework such as JBoss Seam, I don't think that ASP.NET has a steep learning curve. Seam BTW joins large technologies, but in a way that permits freedom of choice.

Derek Lawless
August 15, 2008

# re: ASP.NET gets no Respect

Good article Rick.

I think that the problems for ASP.NET are twofold. Firstly, Web Forms.

My background is in developing sites for SMEs whose online success is pretty much predicated on their Google ranking. As most standards-based developers will know, creating semantically strong and syntactically-correct markup is an easy win to help improve searchability. To me, it seems Microsoft totally missed the boat on this with web forms - spelunking into the code for the stock server controls will send shivers up the spines of any standards-based developers.

While you can override the default rendering of controls, use control adapters, or even go as far implement HTTP handlers, at that point you're effectively engaged in guerilla warfare with the web forms model itself.

I'm delighted to see the Microsoft finally reacting and offering the MVC framework as an alternative to web forms - and I think it will have a big impact - but I'm saddened to see the numerous posts from web forms developers who fundamentally just don't seem to understand/care how HTML, CSS, and clientside scripting should work and just want to live in their drag-and-drop worlds.

Secondly, ASP.NET and .NET in general being tied to the Windows platform. Mono aside (and there are serious issues with their ASP.NET implementation, not least the legal ambiguity), using .NET wffectively ties you into the Windows platform. For web startups and SMEs this is a huge concern.

I think the tie-in model Microsoft uses is actually incredibly lazy and short-sighted. What they should be doing is ensuring .NET becomes as widespread as possible (platform bedamned) and instead offering innovation on the Windows side to make it /the/ most compelling platform to host .NET applications on.

I think there are serious issues ahead for ASP.NET. While it will remain entrenced in the business applications world, in the consumer world (your social networking sites etc.) I don't see it ever catching on and, if anything, its use deminishing. That worries me because it's in the latter that the innovation will happen.

Danijel
August 15, 2008

# re: ASP.NET gets no Respect

Hahaha, David Getz comic strip links made me laugh loud. Comic strips really point the power that Asp.Net developers have in their hands.
By the way, I believe that MS is going up good road with IIS7, (ASP).NET (MVC and/or WinForms) 4.0 and of course Silverlight/WPF, Live Mesh ... for web (and desktop development, too!) and I believe that lots of that stuff can be called as innovation on MS side. I am sorry for the folks that don't see any goods coming from it... at least healthy competition to Apache, Java, Flash and other great technologies out there.

Great article Rick. MS should really consider all those and I think that some points are already being considering, but it will surely take time...
I remember one friend of mine (great developer on *nix) who didn't want to speak anything technology related with me because I work with MS tools, but I found it weird because I would love to learn from him, and I also have some knowledge to share ;).

Mark Wisecarver
August 15, 2008

# re: ASP.NET gets no Respect

Very good article bro.
I did a lot of ASP development back in the day.
Have helped with thousands of ASP.NET sites...
Still love both technologies.
I think Classic ASP still has a place, if not just for Hobby sites.
Most of the Hobby sites I help with would be easier to manage.

Fabien
August 15, 2008

# re: ASP.NET gets no Respect

I work in a very small company, which means I'm reponsible for both the programming, and the installation/management of the web server. There are at least three reasons (see below) why I didn't consider Windows/IIS/ASP.NET.
The point of this message is an attempt to explain why a little company won't start with ASP.NET. And if the company makes it big, to switch to ASP.NET they'd have to rewrite everything from scratch.


1- As a web developer, I'm a programmer. So I do enjoy an operating system made by programmers for programmers. Configuration via a text file is what I like the most with LAMP.


2- If I want to install LAMP on a machine, I just go ahead. If I want to install Windows on a machine, I need to buy it, meaning I have to ask my boss, the accountant, maybe a lawyer, then a Microsoft reseller. And that is exactly the kind of thing I really don't like to do.


3- ASP.NET is a thing by Microsoft to create HTML. Heck, the same Microsoft who proved, with IE (especially 6 and 7) and Word, that they don't understand a thing about HTML and CSS? The same Microsoft that encourages IE-only websites? Ugh. I really don't want to have a look.

Yeah, maybe I'm harsh about Microsoft. Especially since I saw them switch from a shitty, expensive C++ compiler (VC++6) to a free, very good C++ compiler (VC++ express 2008).
But their sheer hate for HTML and Netscape/Firefox has left Microsoft with an incredibly bad reputation in that domain.
And while I'm at it, Microsoft also has an incredibly bad reputation with security. Using a Windows machine for a web server means letting the dangerous Internet have a direct access to a Windows machine, which goes against everything I've heard for years.
Maybe that double bad reputation isn't connected to facts any more, but it's there anyway, and it partly explains the mistrust against Microsoft and its ASP.NET.

Steve
August 15, 2008

# re: ASP.NET gets no Respect

Outside of a handful of posts here, is there any empirical evidence supporting this view?

ie. you listed some asp.net websites - how many social networks use ruby on rails ? how many use php ? java ?

How many large corporations internally use .net vs. java vs. php vs. ruby on rails ?

I say all this because I can read a handful of blogs, or get feeds from some news sources, which can lead me to believe a certain situation.

Again, where I'm located, nearly all internal business applications run .net or java. I have heard the buzz of ruby on rails, but no large corporations/organizations I know of use ruby on rails or php.

As far as social networking sites - do we think those are the cutting edge technologies? What does Amazon use, etc... sites that generate tons of traffic. I'm curious about what google, msn, yahoo, msnbc, espn etc.. these sites that I know have to be pulling in large numbers

Angel Freire
August 15, 2008

# re: ASP.NET gets no Respect

I've using ASP .NET in my current work, and of course the full Microsoft Stack with SQL Server and Microsoft Queue: It's overcomplicated, makes what should be simple hard, and the framework itself doesn't make too much sense.

Compare IIS to Apache or Lighttpd, configuration is horrible, I don't mean hard, after you take some time you tend to get it, I just mean: is complex where it should be simple. Sames applies for SQL Server, great tool but makes query analizing and optimization harder compared to Oracle o MySQL (Yes, Open Source has betters tools for designing).

In my experience, dedicating the requiered time to know the technologies that you work with, .NET is complex and wortless.

Fabien
August 15, 2008

# re: ASP.NET gets no Respect

Not sure this is the point here, but if you want to promote ASP.NET, Mono http://www.mono-project.com/ASP.NET might be a good starting point. I've not really looked into it (and I probably won't), but it seems to be ASP.NET without the dreadful Windows/IIS hurdle.

infocyde
August 15, 2008

# re: ASP.NET gets no Respect

Hi Rick,

I've been reading your blog for a long time, and I think you brought up some excellent points in this post. Microsoft has essentially lost the imagination of younger developers, and I see that as a huge problem for the long term viability of both ASP.Net and Microsoft. I give props to Microsoft for bending over backwards to make free versions of their products available, but I don't think adobption rates and this point are high. I'd like to see Microsoft get back into into the battle for internet dominance again by focusing on the browser. Here are a few additional points.

1) Microsoft's product offerings are very confusing to outsiders. Where do I get a copy of Expression Blend? Or do I just need Visual Studio? What do I need to do to come up to speed on Silverlight? How do I get certified in a technology? What server software do I need? It seems where there were once clear answers to all these questions, now, especially for beginning developers, there is confusion. Microsoft needs to have clear strategic goals, and then bring all their products and marketing campaigns inline with these goals.

2) Microsoft must get back into the browser war. IE 7 kind of sucked. IE 8, though I haven't tried the beta, sounds like a cluster waiting to happen. Microsoft browsers need to become compliant with standards, which I know they are working on, but IE must again pust the envelope. Microsoft must quit succumbing to the roar of the open source/standards crowd and begin to start adding new features the push the limits of what CSS and Javascript can do. Webkit took a page from IE 4-6's page book and is already adding new features outside of web standards, which is capturing the imaginations of new developers and making microsoft look like a monolithic giant not nimble enough to keep up with innovation from the open source crowd. And although I like Silverlight (I think I'll pass till version 3 or 4 though), why not compete with Adobe on another front by adding Flash like capabilities directly to IE's Javascript engine? Why not attack on two fronts?

3) Microsoft has to do more to reach the hearts and minds of the youngens. I'm a little light on thoughts on how to do this other than it has to be done.

Keith Elder
August 15, 2008

# re: ASP.NET gets no Respect

@Fabien

Mono is an alternative but the problem is the thousands of LAMP hosting companies don't support it. There are some (2 or 3 that I know of) that do but that is about it. So while the framework is free, and mono is free, it hasn't gotten the main stream adoption on the $5 / month hosting accounts it needs. Much needs to be done in that area.

-Keith

Vladimir Kelman
August 15, 2008

# re: ASP.NET gets no Respect

Thanks for a great article, Rick!
To me, C# language and .NET 3.5 platform are outstanding. They clearly went ahead of Java competitors in terms of functional programming, etc. But ASP.NET (on which I work unfortunately) is horrible. It is vastly overcomplicated, it tries to solve all the problems for all the users and as a result is not a convenient tool at all. (I remember our attempt to use SharePoint which is even more inflexible and overcomplicated. All-in-one machines never work. http://pro-thoughts.blogspot.com/2008/01/why-i-hate-ms-sharepoint.html)
Simple tasks should be solvable by simple methods, but ASP.NET is too monolytic. When I was asked I started to program in PHP in a couple of hours...
When I saw those dreadful "page was expired" messages on user attempts to hit browser's "Back" button, due to ASP.NET using POST operation on each user click, I was angry. In the past, when I programmed in classic ASP I had a rule: NEVER POST TO A PAGE WHICH HAS DISPLAYABLE (HTML) CONTENT. Instead, post to pages with no HTML, process and then redirect. It was nice and clean solution, but not compatible with ASP.NET. To me, without Update Panel it was simply unacceptable. With Update Panel (Ajax) it's OK, but even more complicated. Who's idea was to try to force JavaScript to behave like C#? If I were Brendan Eich, I would kill that guy :)
Unfortunately, USA market for Web developers is kind of dominated by MS. It is not easy to study other technologies while working full time too... On the bright side, I think MS world is starting to changed... because of ideas/competition which came from free world. There is more and more open source developers, blogs, technologies and ideas finding their way to MS.

Rakhun
August 15, 2008

# re: ASP.NET gets no Respect

Well written, Christophe (the one about Freedom in case there are others by the same name)

ASP.NET is not Free, it is proprietary like possibly everything else running on the author's box.
About the security I would like to mention that being non-Free is a security risk in itself. When no one except the author of a software is allowed to read its code there is nothing stopping them from including nasty code. Microsoft already does this in vista, those forced upgrades mean that microsoft might ship any code to you against your will (hearsay: they also have controls to send specific updates to specific computers), likewise microsoft have been accused of spying on its users through the operating system.

And with open sourcecode (which Free software is) you do not have to wait until "oh lord the developer" fixes a security flaw (which might have been found early by people with malicious intents), instead anyone with the skills and knowledge can fix it, in many cases such fixes are sent "upstream" to the main developers of the software, who hold the main sourcecode repository for the software.

ethermal
August 15, 2008

# re: ASP.NET gets no Respect

Good job sir. I do have one criticism though, you mention that the framework is vast and has a steep learning curve. the framework is vast but I think that intelligence has gone into how it is organized and that intelligence is the framework's strong point. As a consultant my job in the past has been to get teams converted from various other technologies onto .net. I have seen some amazingly short turn around times. I think as you mention it just takes the right focus on the tutorials and I think the hello worlds tutorials are more harm the good. If people tend to have a bad experience with asp.net it usually tends to be how they were introduced to it. My experience has been in the "teach them how to fish" category as opposed to "give them a fish". So I lay the ground work and explain the philosophy (both written and unwritten) behind the framework and I find newcomers become very proficcient very quickly.

Vladimir Kelman
August 15, 2008

# re: ASP.NET gets no Respect

P.S. I always thought that an attempt to bring a desktop (WinForm) semantic too Web was a bad idea. Web is essentially distributed and not centralised, and trying to remove boundaries between a server and client will always fail.
"Sometimes you discover that if you try and use an abstraction like local-remote transparency, suddenly the complexity around it gets huge" - http://www.artima.com/intv/abstract3.html
P.P.S. I think that Microsoft's recent attack on Yahoo brought a new wave of hate too.

Roboblob
August 15, 2008

# re: ASP.NET gets no Respect

Good article and I agree with most of it.

I came from PHP background and i must say that the power that ASP.NET offers is much greater it just needs to be used wisely.

Long live .net!

Mike
August 15, 2008

# re: ASP.NET gets no Respect

Microsoft = money + licenses
open source has no OEM restrictions, no windows + db = to buy a new license of Windows Datacenter, no CALs etc.

David Betz
August 15, 2008

# re: ASP.NET gets no Respect

You non-Microsoft people need to learn that Microsoft IS also open source. I run seven open source Microsoft projects. .NET is itself a shared source project. For that matter, C# is an ECMA International standard.

It's absolutely idiotic to compare .NET to PHP or Java. You need to be comparing .NET to C++ or some other system with RAW power. There's no need for .NET people to give PHP or Java people the time of day. They're products are DOA.

mikedopp
August 15, 2008

# re: ASP.NET gets no Respect

Great article.

I was and well still am a php/java developer.
I was offered a .Net job around 3 years ago and like most open source developers I thought ASP.NET was a joke. That is until I started writing it. Sure there was a learning curve. Of course because of that challenge it made it great to work with.
I am well beyond that and enjoy writing ASP.NET.
Thanks for the article.
I encourage other "open source" developers give it a try.

Mike Dopp

David Walker
August 15, 2008

# re: ASP.NET gets no Respect

Great article Rick!

In response to some of the comments already made:

Visual Studio has had a very viable and functional FREE version for several years now - Express Editions. In fact, I believe for students you can get Standard edition free.

I love these debates. They always have the same arguments. Free not Free. It's a matter of what platform you can be the most productive on AND it remain supported and stable for years to come.

A prime example has been the bashing that Alfresco has been doing against SharePoint. Claiming SharePoint is the "next big Microsoft vendor lockin" and how Alfresco is free. Well, before we choose SharePoint for our development environment I looked at Alfresco. The only thing I could find on their site was a $10,000 version of their product.

IMHO - RIA is where the big buzz is now (Silverlight, Flex, JavaFX). This is no excuse to not learn and keep up with the straight web platforms.

I agree with the statement that the educational instutions are outdated and don't teach .NET or any other 19th century technology. Kids do need to be given more than a WII to motivate them into the next generation of developers.

Microsoft does have a bad image, as evident by most the comments on here. Most of those that feel that way are the ones who will probably never change their mind.

Supprt? To the guy who mentioned VB 6. We could do everything in assembler too.

As Rick mentions, every developer needs to stay current with latest languages and frameworks. jQuery is a great example. If you just HAD to go back and write a VB 6 application today. It would look nothing like the one you wrote back in 1998, because even if with an ancient tool like that, you would be bringing the additional knowledge and experiences gained from using the modern tools.

Joe Brinkman
August 15, 2008

# re: ASP.NET gets no Respect

Nice short summary ;-). It is amazing though how many people read this blog and then post a comment which shows their lack of knowledge concerning ASP.Net.

- closer to the metal - Closer than what? an HttpHandler?
- sick of hitting F5 - Haven't had to do that in well over 3 years...
- Scripting rocks. - Scripting is a performance pig
- Server had to be rebooted because something was not working. - Not sure what you were doing to the servers, but in companies I've worked at Windows Servers are rock solid. Reboots measured in months not days.

These are just a few examples

Code Monkey Labs
August 15, 2008

# Weekly Web Nuggets #25

General The Tortoise And The Hare : Tim Barcz has a must-read post comparing enterprise development to the fable of the tortoise and the hare. As someone who's been dealing with this sort of cycle for the last few years, I couldn't agree more. Diligent developers should be striving to be the tortoise...


Rick Strahl
August 15, 2008

# re: ASP.NET gets no Respect

@Joe - This misconception of ASP.NET is why I wrote this up. I've seen a lot of the downright vile attitude lately with a couple of projects I've been working working with other teams that are working in mixed Windows and LAMP environments. The sad part is that most of the time the bad press comes from people who have no clue about the technology they are bashing.

My experience with Microsoft OSs and servers is much like your's - very positive. I've been running Microsoft Servers on the Web since 1995 on my own and other than one self inflicted gaffe a few years back I've never had any serious issues with stability, security or management. I have no complaints and nothing but success to report with this environment. I'm not what you would call an Admin type either although I've learned my way around the server stack well enough over the years. Total cost of the sequence of servers I've had up has been minimal - especially when compared to the cost of development or even as ROI where it barely figures.

That's not to say that you couldn't achieve the same on the LAMP stack. But most of the crap that gets pointed at MS - insecure servers, bad performance and expensive as hell are exaggerated MYTHS. Windows Servers have been more secure than any flavor of *nix for years even without manual lockdown (Windows Server 2003 and now with 2008).

Scripting is always my favorite point that people point AGAINST ASP.NET. If one wants to one can write all inline script code in ASP.NET the same way as you could in ASP classic or even PHP etc. IOW, the Web Forms model doesn't need to be utilized even if you are running the WebForms engine. You can script away and still get most of the benefits of that the framework provides. What other tools don't have is CHOICE to choose to do it one way or the other.

And that is part of my point - the education is completely missing and the perception of ASP.NET outside of the Microsoft world is so bad that it is a problem that affects the platform as a whole and adoption of it. Microsoft would do well to try to address this perception.

Kevin Dente
August 15, 2008

# re: ASP.NET gets no Respect

I agree that MS tools and servers get an unfairly bad rap in the industry. Most of it is FUD.

However, I do think MS has pretty clearly targeted their tooling at the enterprise space, not the Web 2.0 space, and that's one reason why it doesn't see as much uptake in public facing internet sites. Examples - relatively poor cross-browser support (even on some of MS's own public facing sites), server-focused Ajax (UpdatePanel), terrible support for non-MS Javascript stacks in VS2008 (getting a little better, though the lack of JSDoc support still grates on me), etc. Also, the slavish devotion to backward compatibility and the big-bang release cycles (MVC excluded) hurts them in the more dynamic and fast-paced web space.

Lack of cloud hosting support ala EC2 also hurts them, since everyone thinks they're going to be the next Google and wants to be able to scale (though I think this will be coming from MS eventually). And the incredibly obtuse licensing schemes make even figuring out how to buy the software a headache. Also, IE8s glacial and opaque evolution hurts their web cred.

Jon
August 15, 2008

# re: ASP.NET gets no Respect

I'm not bothered about what developers think. I trained as a designer and moved into .NET from there. THAT is a steep learning curve. I dont really have time for Open source. People want to use a strong, flexible product with great support, because when things go wrong on large scale sites, it needs to be fixed fast- VS debugger is unparallelled. There is little out there to compete. Again, hosting /licencing cost? Very little outlay against the bill the client gets for any software development.

If i can do it anyone can! Learning .NET was hard, but very rewarding and logical too.

Great post.

christophe
August 15, 2008

# Freedom

Hi all!

The story has been promoted on FSdaily's homepage! This means that the free software community agree with its mission to teach you to value software freedoms...

Now, i'm really interested in organising a debate on these freedoms; please, consider each freedom as a question, and try to explain your point...

-------

1) The freedom to run the program, for any purpose (freedom 0).

2) The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.

3) The freedom to redistribute copies so you can help your neighbor (freedom 2).

4) The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.

--------

Perhaps it would be nice to introduce yourself a a windows user to clarify the debate... Hope to See You on http://www.fsdaily.com/Community/Why_our_mission_is_to_teach_them_to_value_Software_Freedoms

You are all welcome!

@Rakhun: thanks ;)

@balzac, aboutblank, lozz and others: I am counting on you!

Bram
August 15, 2008

# re: ASP.NET gets no Respect

Regarding the learning curve; you're absolutely right.
It ain't easy.

I personally found that for an introduction to multi-tiered code, error-handling, security, user-authentication, best(ish)-practices ... blah blah blah ... that I could skip having to learn it all in one big lump by using the DotNetNuke development framework. (http://www.dotnetnuke.com)

DotNetNuke isn't perfect but it prevents that re-discovery-of-the-wheel that we all had to go through, simply because its wheels are setup already.

And its Open Source, free, ASP.Net driven, has nice people in the forums. Etc.

If anyone knows a way that is even less painful for that step to intermediate-coder, tell me about it.

Cheers!

Wheelwright
August 15, 2008

# re: ASP.NET gets no Respect

Here is my take: I don't think .NET stagnates at all for 2 major reasons: LINQ and extension methods.

LINQ has the potential to completely reinvent the way data query/update/transformation code is written in mainstream languages. Don't believe me ? Try converting some objects to xml in VB.NET using literals or do a 3-way ordered group join between xml, relational and array data sources. It is scary how powerful this stuff is yet even a child can understand it due to sql-like self-explanatory syntax. You can't say that about Haskell, Erlang or even to a lesser degree Python. Hats off to Microsoft for truly outstanding work.

When it comes to extension methods they can actually make any .NET application resemble something written in a custom, personalized
language! The concept and its execution are quite similar to javascript prototypes (except you can't inadvertently screw-up your array loops / splits and objects are extensible as well). Truly awesome capability for a static language. This begs the question: since .NET somehow managed the impossible: to approach Javascript in flexibility
while retaining strong typing and backwards compatibility why are people still complaining ?

And regarding developers using wrong tools for the job (like utilizing DataGrid for low-level html generation) they have mostly themselves to blame. All professionals should understand tradeoffs between high-
level abstractions and hands-on approach to web development and choose accordingly. Perhaps a drag & drop, abstract approach was highlighted more by Microsoft which might have mislead some but to be honest what company wouldn't show off their shiny new toys ?

Off the top of my head the only thing that needs improvement in .NET is LINQ integration within the framework: some existing methods need to be overloaded so they accept new LINQ types as parameters. However Rome wasn't built in one day and Microsoft's first attempt is quite impressive indeed if not 100% complete yet. So much so that when I looked at various open-source alternatives I found very little to get excited about. Not worth my time.

Vijay Santhanam
August 15, 2008

# re: ASP.NET gets no Respect

Good article.

If I were MS, I'd give up on ASP.NET WebForms postback model and just focus on MVC.

WebForms has been a terrible experience for me for all the reasons you mentioned.

MVC is a god-send. If MS.MVC weren't around, we'd probably use SubSonic or MonoRail.

I, for one, am happy never to see a postback event handler ever again. WebForms is definitely a leaky abstraction in the web 2.0 world. I extended ajax.asp.net twice and was puzzled by it's complexity.

David Betz
August 15, 2008

# re: ASP.NET gets no Respect

...and another thing!

If you don't like WebForms, DON'T USE THEM. ASP.NET MVC is not that complex of an entity. The source code is freely available. Expert programmers (.NET or otherwise) should understand the VERY fundamental concepts going on in there to have created it themselves years ago. Many of us have! I don't use WebForms for almost anything anymore (well, except for... FORMS) Once you get past the EXTREMELY naive belief that ASP.NET *is* WebForms, you can do just about anything. Many people think of ASP.NET as being WebForms, "Magical" PostBack, and ViewState. Well, where I work, the architects who laid the ground before me have created a system that REPLACES each of those concepts with MUCH more power. You can do that too. If you don't want something, FIX IT. ASP.NET is just a .NET application with one C++ based DLL. For the most part, it's just a bit C# application. Change it, hack it, bend it... do whatever you want. It's RAW power.

SECONDLY, you anti-Microsoft people better NOT tell me that I, as a .NET developer, am not an open-source developer. I am senior architect on SIX .NET open source source projects (two of which FIX things about Microsoft technologies that I don't like). They are FREE as in soda *AND* FREE as in speech. Just because I'm using C#, not PHP, that doesn't mean I'm not an open source developer. You do NOT need to use open source tools to be an open source developer. If so... stop your programming now, unless you are using "open" hardware, living in an "open" house", in an "open" (anarchic) country. That cult-like extremism has no place in the realm of professionalism. Also, I, like Rick, am a subversion addict who can't stand Microsoft source control systems.

NEXT, do you people have any idea who Rick Strahl is? The man is a celebrity in the ASP.NET world. He has been doing programming for much longer than most of your people knew how to spell the word. As for myself, I spent the first portion of my career as a *nix hacker. I know PHP. I know Linux. I've been doing AJAX since before the new millennium. Rick is an expert and proponent, NOT of Microsoft AJAX, but of JQuery. I'm an expert and proponent, NOT of Microsoft AJAX, but of Prototype. As much as Rick writes and teaches about JQuery, I write and teach about Prototype. We are Microsoft professionals who have no time for anti-Microsoft stereotypes. Likewise, the technology itself has no time for your stereotypes.

I'm the creator of all the C# 2.0 Brainbench exams and what were the texts that I prescribed for exam reviewers? Microsoft Press books? No, since C#, like ECMAScript (JavaScript), is an ECMA International *STANDARD*, I used the ECMA-International ECMA-334 standard (and, by the way, is PHP a standard at all? No?) When I designed the Brainbench AJAX exam, did I use Microsoft's AJAX stuff? No! I created the exam to test your ability to create your own framework from scratch. Clearly, my being a Microsoft-centric developer, has nothing to do with my relationship to open-source technology (LONG LIVE FIREFOX- DOWN WITH Intranet Explorer!; heck I created the Firefox 1.5 demo video!) That stereotype, as with almost all stereotypes, is lame. In the same way, the common nonsensical stereotype of Microsoft technology being bad is also lame.

It's also insane to hear "open source" anti-Microsoft hackers complain about Microsoft tools. If you people would just LEARN the Microsoft technologies, then you could make your own tools. My goodness. I can't stand the Microsoft development web server. Does that means I complain endlessly? No... that's why I created its replacement, the OPEN SOURCE project called DevServer (which, for political reasons, I was forced to put on CodePlex-- yes, I lose points and feel dirty about that).

So, you "open source" people. We are open source too. Stop your extremism and start accepting the true sense of programming community that has the potential to exist.

Khurram Ijaz
August 16, 2008

# re: ASP.NET gets no Respect

I have been using php, java, python, rails, grails, asp.net etc. for programming stuff. I think microsoft's platform is indeed richer and powerful than any of the free solutions available. But the problem is variety of programming styles it can cater for especially for web development.

I have never used zend's framework or libraries during my development in php. I have never used sun's jsp, jsf etc. for development in java. Hundreds if not thousands of frameworks are available other than the official ones. This induces variety in development and attracts a wide developer audience with different interests.

PHP's or java's usually used servers( e.g. tomcat and apache(cgi or module)) give more options in web development rather than restrictions.

.Net is tied to windows, thats no problem. But when ASP.Net is tied to IIS then thats a big problem. If some body does not feel comfortable with ASP.net he has no other options. I can see MVC framework ( which looks dead with no release in the last two months) but still the options are limited. Microsoft may eventually have a good number of programmers working with its tools, but the quality may not be good. A majority of serious programmers will never use asp.net, as they will have some better options available to go with their style of programming. I think this scarcity of high quality programmers on .net platform is bogging down the open source work on .net. Linq has been here now for over an year, and I dont see any serious development toola except microsoft's own, which is not to my liking. I would like something like hibernate, whose nhibernate is just an anti climax.

I think Microsoft should devote more people to MVC framework and let them copy more features from rails for a start. I think with features available such as closures, generators( functional stuff) they should be more geared towards ruby's active record than java's persistence.

But I know this day will never come. They will try to have their own way, try not to follow anyone. Although for rails developers MVC lacks thousands if not millions of features, to do some serious development. It looks more trimmed down version of rails with some day to day stuff easy to implement and anything serious you need to look through the MVC source.

SQL server did not support paging till 2005. How can a serious webapp be developed without paging support in the database. You were talking about top ten website, sql server before 2005 could not be used to display a paged list of 5000 orders on a simple ecommerce website.

Similarly their paging implementation in controls was based on disconnected data objects ( the whole data is still in memory) which in my opinion were never meant for web applications. And this is what 90% of asp.net developers use especially the novice who dont have any idea what will happen if a large numbers of users visit a website or after 3 years when the data is very large. I know people have found efficient ways around these limitations using stored procedures etc. But I question what is such a large and rich framework like .Net of use if you write your business logic in the database.

Dennis Bailey
August 16, 2008

# re: ASP.NET gets no Respect

@Rick: Good post, I can feel your pain. When I saw this topic come up on the RSS reader, I was interested in seeing how many flames you would get, and obviously you are somewhat preaching to the choir here, but did see a couple of Free Software people show up at your doorstep. I will state that you are unequivocally a promoter of free ideas and free thought in the programming community. So what you are using Microsoft’s tools and languages.

You have shown on many occasions that you have spent some time thinking of ideas and how to code them and then pass on those ideas and code. You even promote community by asking for help on your blog to certain problems. What more can you do to promote open source or community for that matter? It took you time to develop your application and you should be rewarded for that time. Of course rewards come in many flavors including monetary for your expertise. It is so hypocritical for these people to say, I am using Linux and PHP because it is Free and I can do what ever I want to it. REALLY? How did you get to that point? How much time and money did you spend getting to that point? What is the REAL cost? I continue to hear these points spewed in meetings and then I ask them how much is it going to cost to do this. It’s not Free People! It costs money for a company to spend on architecture and development time. If it is free and you are working for free then you are slave labor and you are not free!

yaip
August 16, 2008

# re: ASP.NET gets no Respect


Michael
August 16, 2008

# re: ASP.NET gets no Respect

Not sure where this open source vs microsoft came from.. you need open source programs to get any kind of .net stuff running under linux.

I have nothing against ppl using microsoft tools, I can actually get along with most of them it's just the ppl who yell that microsoft product X is better then anything out there, bleeding edge w/e while in 95% of the cases it isn't. Some ppl even manage (even in replies to this very article) to tell that they know jack about Y, Z but do know that microsofts X is the best thats out there. Can you adleast look at what the rest of the world offers? The bad bit is that those ppl are always yelling the loudest.

I'm sure ASP.NET is a fine technology, if it wasn't it would have faded away ages ago. Same can be said about php and java tbh.

As far as misconceptions about the 'general' open source project go; At decent projects release cycles are clearly defined(and just as 'well' kept as at microsoft) Support is available with SLA's for just about any thing with could be used in anything critical, etc. Sure general support has with some project bad beats but over at microsoft they are no stranger to to either and no that doesn't mean microsofts support is shit in general either. If you need strict guaranties get a SLA.

RogerV
August 16, 2008

# re: ASP.NET gets no Respect

I worked for Microsoft for over five years back in the 90's and worked on the .NET project. During those years I drank their cool aide pretty deeply.

But in the years since I've gone over to the Java, Linux, and open source camp for all the enterprise development I've built or directed.

From the outsider position I've been in since, I'm loath to put my personal success at the mercy of the Windows and .NET stack. I can't tolerate being in a position of being beholden for all important progress of my platform to have to come from Microsoft. (Open source for .NET is a pale reflection of what it is for Java and Linux.)

I really can't begin to emphasize enough just how utterly intolerable that kind of situation would be. On Java, important innovation of the stack can come from anywhere - and very often the best, most widely used stuff is open source and/or originates from places other than the large vendors (i.e., BEA, Oracle, IBM, Sun, etc.).

I got stung by too many bad technology decisions regarding Microsoft. In the mid-nineties, it was their OLE APIs, then their exceedingly lousy DCOM stack - and COM in general.

When I got outside and was building enterprise software, Microsoft had the industries worst messaging solution to proffer for use with .NET. With Java I had a myriad of excellent heterogeneous messaging solutions. When I needed to do really efficient i/o, I had Java NIO - .NET had nothing comparable. When I needed to do robust concurrency, with Java I had the Java 5 Concurrency library. There was nothing as well thought out as this for .NET multi-threading.

And then came the Spring Framework - the Spring.NET is a shadow of what Spring Framework for Java. Spring is a shear delight to enterprise developers.

Then for years Java has had good ORM solutions. I worked on an ORM solution for .NET back in '98 - but Microsoft opted in the end to present just ADO.NET. Only in last couple of years has reasonable ORM for Microsoft started to materialize (LINQ by itself doesn't address the purpose of ORM).

Then these days I'm doing Adobe Flex. I have no interest in a large sever-side stack like ASP.NET or JSF. These things are dinosaurs. The contemporary enterprise app is being developed as RIA coupled to simple middle-tier services. No more heavyweight server-side solutions like ASP.NET.

Java and Spring Framework are excellent for building SOA to back end web RIA apps. Or python or any of the LAMP languages. But not old-school ASP.NET.

RogerV
August 16, 2008

# re: ASP.NET gets no Respect

Gartner's analysis is correct. As things trend toward cloud computing, open source solutions will dominate in the data center cloud tier. When you start installing hundreds of blades, no company is going to want to pay a software royalty license for any piece of the stack that goes on the blade.

This is the core reason that Windows/ASP.NET don't have a hopeful long term trend. The demands of scaling out make licensed software intolerable relative to pure open source stacks.

Gabe Sumner
August 17, 2008

# re: ASP.NET gets no Respect

Regarding the "M$ wants all your money" stereotype; it certainly doesn't help that many ASP.NET product tutorials assume a full-version of Visual Studio, a dedicated Windows Server, MS-SQL and other MS products.

For ASP.NET to cultivate a wider-audience we need to celebrate casual exploration & discovery. It should be easy to "play with" & deploy MS technologies in a casual/personal setting. Your article inspired me to write a bit more about this here:

http://www.goondocks.com/blog/08-08-16/ASP_NET_Supporting_Casual_Exploration_Discovery.aspx

Marcin
August 17, 2008

# re: ASP.NET gets no Respect

"Regarding the "M$ wants all your money" stereotype; it certainly doesn't help that many ASP.NET product tutorials assume a full-version of Visual Studio, a dedicated Windows Server, MS-SQL and other MS products."

lol that's such a rip off ...

Richard
August 17, 2008

# re: ASP.NET gets no Respect

Thanks Rick,

I originally come from the "*ix*/LAMP fanatics" community and ASP.NET is now my platform of choice for several reasons: strategic, design, coding, tools. I do code...

I'll have to agree with you on the AJAX.NET. Although the Update Control and a few of the others are very usefull (e.g. GridViews + UpdateControl rules for fast admin aps and data access with LINQ). So I hope these continue to evolve. Microsoft: don't rock the boat again here, just improve on this!

Licensing is the biggest problem: the Windows Server 2008 WebServer Edition is a big step forward. However, precisely the cloud machines you mention will often have large memory configurations, so the rediculous 32 GB memory limit in the WebServer Edition is precisely the factor that is keeping Windows Server 2008 off large machines -- I speak from personal experience here.

Anyway, good article, now get back to work! :-)
Richard ( www.it-architecture.eu )

shiyazahammed
August 17, 2008

# re: ASP.NET gets no Respect

hello,
I am totally passionate about web development using asp.net 3.5
Am totally excited also,and since an year , i developed around 5 websites just like social n/w,
image sharing,greetings and personalization,
and newly launched one kkooolgreetings.com.The main problem i face here is the slow rendering of pages and make site browsing sucks.Do you think, the future of ASP.net gets diminished or better to go 4 php or java platform.
Because i came frm basically j2ee paltform.

Nahum Kovalski
August 17, 2008

# re: ASP.NET gets no Respect

Thank you for an excellent article.

For me, my dream is to have ASP.NET adopt the (what I believe is) drop dead simple form development a la Microsoft ACCESS.

My company has an in-house developed electronic medical record system that is now 5 years old. The front end was originally all in Microsoft ACCESS and ASP (and vbscript). Over time, we are slowly converting it over to .NET, primarily ASP.NET with AJAX. Still, a lot of the development continues in the ACCESS modules. Why? Because building a form in ACCESS is drop dead easy. Creating a link to an external database in ACCESS is drop dead easy. Because making on the fly changes in ACCESS is easy.

Of course, there are limitations to ACCESS and of course, it is not web based. But the simple fact is that I have a VERY happy client base who like the ACCESS based interfaces. They love the fact that I can make changes quickly. And when weird bugs happen (which are thankfully very rare), I can install a full version of ACCESS on the problematic machine (versus the runtime that usually runs), and identify the bug in minutes.

From ACCESS, it doesn't matter if the source table is from MySQL (which we use heavily) or SQL Server (2000 or 2005, which we both use). Once the virtual table links are set up, it is just so easy to work. And to this day, I find the ACCESS query builder to be so easy to use. Truth is that I use inline built SQL for a lot of my queries. So I graphically build them in ACCESS, test them there and then copy the SQL code into my run time code. And it all just works.

Thanks

Joggee
August 17, 2008

# re: ASP.NET gets no Respect

Hi Rick,

You have taken my heart Man.

wonderful Article, I have forwarded this link to the people who are against ASP.NET, You have spent lot of time to write this, that really appreciable and the points (key points) for comparison are more than enough to argue and explain that ASP.NET is not a BAD CHOICE, Keep it up and GOB BLESS YOU.

Thanks and regards,
Joggee

Fed
August 17, 2008

# re: ASP.NET gets no Respect

I just want to say that ASP.NET is for many but not for everybody...
I'm lucky to be one of those many. VS let you get the work done in a reasonable amount of time which on a busy IT shop is never enough.

ed
August 17, 2008

# re: ASP.NET gets no Respect

The problem isnt the price of the server.... is the price of the components... if you want a good pdf creator you gonna pay $2000... the other techs are for free.

Make a favor for yourself... install ruby on rails of django and begin a new life

ed

PS: i was a asp.net developer :p

Amit
August 17, 2008

# re: ASP.NET gets no Respect

Nice article!

Well talking about social networking sites... Google's social networking site Orkut(http://www.orkut.com/) runs on ASP.NET.It offers a very clean UI compared to the some of the other sites.

I think ASP.NET is pretty cool and offers much more features than other platforms.

The one downside is that the pages developed using the provided controls are not that Cross browser compliant!

Regards,
Amit

Radu
August 17, 2008

# re: ASP.NET gets no Respect

oh well...the author is certainly a big fan of microsoft. He says that 300$ for a Window Server Web Edition license is "pretty inexpensive". Well maybe for you it is inexpensive, cause you're paid in $. Remember that a lot of developers are not paid in $, plus a lot of firms just don't need or want to pay for some technology that doesn't bring anything over, let's say for example - Java, which is free ;).

Yordan Georgiev
August 17, 2008

# re: ASP.NET gets no Respect

Great article!

More abstractly thinking open source is the common effort slightly chaotic, but rather systemized for achieving rather common goals.

Software is so complex nowadays that there no longer large enough leagal entities ( even Microsoft ) to ignore the benefits of open source ...

As Rich pointed out Microsoft has started to realize that ... The .Net platform is a good chance for Microsoft to bring more openess while keeping their business model functioning.

Because it is rational to buy something that simply works ( including software and IT Services... ) , instead of fixing and developing it by yourself. In the real business world if you don't do it you 'l be dead and soon ...

neil
August 18, 2008

# re: ASP.NET gets no Respect

<snip>
In those circles ASP.NET is a foreign entity and if a project based on ASP.NET needs to be sold into this environment there's invariably going to be some hard nosed discussions about why ASP.NET should be used over other 'open' software.
</snip>
This is exactly the experience I made recently in a project team with colleagues, usually not in my working team. We had to build a very sophisitcated demonstrator for a 3GPP NGN authentication solution (HttpProxy and stuff)l. Because I came from .net this was my primary choice, just because I am familiar with it, more than I ever was in my early Delphi, C or C++ days :), leaving any performance and platform pricing concerncs behind.

I claimed, that we will ever be able to switch to "free" environments by using Mono, crossing my fingers and hoping, they'll never come and want to see this....

Lastly I had to proove this claim. And - indeed - my solution is .net 2.0 based and it runs now binary compatible under Mono 1.9.1 with just one or two minor and obvious changes... That was a great "WOW" effect to me and many others too...

Regards

Deependra Solanky
August 18, 2008

# re: ASP.NET gets no Respect

Very good post Rick. I think ASP.NET MVC will provide the momentum and we will see some good things in near future.

VOE
August 18, 2008

# re: ASP.NET gets no Respect

How about a page or so description saying (1) what is .NET? (2) What, exactly does it do? (3) Why is it good for doing these things? (4) Is there any relatively painless way to learn how to use it?

MS has this bad habit of releasing new technologies without explaining much about them. Some people just jump on the bandwagon because it's the latest thing, but others have actual work to do and are only willing to put in the effort if there's tangible benefit, known in advance.

Jordan Marr
August 18, 2008

# re: ASP.NET gets no Respect

Rick,

Thanks for the excellent post/article. Your posts have come up in so many of my Google searches, and have helped me find the solution to many problems while developing (WSP vs WAP project model comes to mind)!

Just a side point here, but I wanted to respond to those who criticized WebForm WebControls such as the GridView for creating non-standard or inflexible HTML markup:

You can download or create your own Control Adapters to completely change the markup of existing web controls. For example, you can download CSS Control Adapters (http://www.asp.net/cssadapters/) that will render the standard WebControls in more CSS friendly ways. Or you can create your own.

I also agree with the previous posts about creating your own libraries, or using other 3rd party .net libraries. I have had success using free open source ORMs, and now use my own personal library for all DAL functions that is built on top of ADO.NET. The power of OOP makes it easy to build on top of ADO.NET.

BTW, my experience has been as a lead ASP.NET developer on enterprise projects for a few very well known large corporations. I have had nothing but success after success using asp.net in the enterprise web app domain. I enjoy working for the larger companies because by the time I am brought in as a contractor, the decision to use .net is a given -- not something I have to fight for. Smaller companies, OTOH, are a different story. I choose to just come in and start writing code, rather than waste my time trying to convince people of anything. I guess I've been lucky thus far in that regard.

Long live .NET.

Jordan

MrCripple
August 18, 2008

# re: ASP.NET gets no Respect

Two years ago I started learning vb.net and before long I found that it was an extremely powerfull environment, in the same year I was learning ASP and PHP. After the first year I had a good introduction to all three and from a begginers perspective ASP.net and Visual studio dominate, no other IDE or platform currently being taught in education institutes compare, not even close. And as for comments about visual studio being slow, yes it is rather sluggish but at the end of an eight hour day im sure visual studio would still be far more productive than all others.
I do agree about this drag and drop generation of crap tutorials and books, but I just over look that, I think no IDE can produce clean code from drag and drop but it is good to have for lazy folk.
I think the argument about MS vs Open source is one that can be argued with interconnectivity, no open source platform offers as much interconnected software, services and development platforms as microsoft and from what I have seen MONO was a good attempt that failed to make an impact due to incompleteness. I have downloaded three linux release ISO's that failed to install and have had several which ran like absolute dogs, when all MS OS's I have had have installed and operated fine.
I do like open source, but it just cant be co-ordinated enough as thier is no pre design, just a platform and many seperatist programmers forming little groups. Trying to compete against MS in this fasion is not effective, many open source platforms I think rely on microsofts cost and "bad rep" to get users. too many indians and not enough cheifs...
Please dont assume me to be an open source hater (Im downloading "PC Linux OS" right now)...

Ah
August 18, 2008

# re: ASP.NET gets no Respect

I just wanna say that asp.net is REALLY big, big enough to allow everything that can be done in php and classical asp (do it your self model) and also allowing the rest of the drag and drop world....
What I am saying that you shouldn't judge it just from the first two chapters in a book...
You have to get the whole picture....
and by the way.... you can delete the from in any asp.net page and consider your self in classical asp or php and write everything the conventional way.. you dont need mvc to things the conventional way..

Indrek Altpere
August 18, 2008

# re: ASP.NET gets no Respect

Well, the steep learning curve excuse is bit exaggerated in my opinion.
I had had .NET winforms experience with c# for few months before I went to work fr a company as ASP.NET developer, with no specific ASP.NET knowledge whatsoever.
One week to get the general idea how the ASP.NET things work (real tasks were given for web app, not exercises). Second week I was working normally, third week I was already creating a simple tabcontrol that had the option to turn on or off ajax support for tab changes and content rendering.

As I have developed in asp.net, php and in java I have a general idea why asp.net is not so widespread and I'd like to sum up those main points.
1) cost of windows server: linux is 100% free (unless you buy it on cd since cd itself is not free) while windows server edition costs at least 300$(as you said).
Now imagine you need test environment, development environment and production/live environment (and for huge sites, more than one server for production/live environment) so it would sum up to 900$ at least, for one site.
And if you have more than one site and want to run/test/develop them on separate machines, again, 300$ for each installation. The price puts some major limits for people since it takes away option to install it cheaply/freely on as many servers as you like. Therefore promotion of the platform is only by marketing guys, not the cheapskat IT guys.
If a small company that is just starting it's business has an option to select setup that would cost additional 300$ for each machine plus development price or setup that costs only hardware price plus development price, then unless IT head is an ASP.NET fanboy who fights with his entire spirit for ASP.NET, the company will ~90% of the times choose the cheaper solution.
2) maintenability (as in command line tools). Linuxes have very good command line tools that help to maintenance the server and do literally everything from command line, so you can log in over terminal, no vnc or remote desktop connection needed. Of course I haven't had command line experience with server edition so I cannot be 100% sure that server edition does not have all command linetools needed, but for linuxes I am 100% sure tht command line is enough to do everything fast.
3) malicious code: since windows platforms are widespread, they are main target of attackers, and every now and then some critical update appears patching some critical vulnerability that would enable attacker to gain control over the system. No one wants to run their main business site on a platform that is main target of attackers and where every now and then some critical vulnerability is found. Of course Linux systems and programs in them have also their vulnerbilities, but somethig critical is found only few times per year.

So in general, the problem is not exactly with ASP.NET itself, but rather in running the windows server opsystem (which costs 300$ more then linux, does not have such big number of available command line tools and is main target of attacker) for a mission critical website.
If microsoft would manage to create some stripped down version of windows server (or do whatever it takes) that would be free, I bet there would be more ASP.NET users out there.
So far I have seen only companies with big wallets using ASP.NET. If a startup company could get windows server edition for free, they would be happy, use it AND promote it.
I don't know how exactly would it be possible, but I know for sure, if windows server would be free, a lot more users would use it.

I know that Mono exists out there, tha can run .NET binaries under linux, but not so many users actually know that, so cheaper server software would be the biggest improvement in ASP.NET usage IMHO.

Paul Sanders
August 18, 2008

# re: ASP.NET gets no Respect

I use ASP.Net for the code-behind pages on my little website and I love it. Aside from the mind-boggling vastness of the framework itself, C# is a vastly superior language to PHP - strong typing, compile-time syntax checking and comprehensive, ground-up exception handling make it a safe and productive evironment to work in. And the fact that C# ultimately executes as machine code gives superior performance to interpreted or semi-compiled languages like PHP.

The other potential plus is: learn one framework, develop both web and desktop applications. I have yet to discover how much of an advantage this really is as I devlop my desktop stuff in C++, but I hope to find out some day.

Paul Sanders
AlpineSoft
http://www.alpinesoft.co.uk

Tom Hall
August 18, 2008

# re: ASP.NET gets no Respect

Great article :)

It appears to me that Microsoft are trying to generate an increasing amount of exposure to its developer technologies by wooing developers with free dev tools such as the Express Editions of Visual Studio, this is good because it enables new developers to learn for free and get into it. The problems come when it comes to moving a solution from development into production and the licensing costs start creeping in, the technology then looks less attractive. I believe if Microsoft really want to try and get this exposure they need to go further than Microsoft Windows Server 2008 Web Server Edition, which is a great move forward, and create a version of Web Server version of Windows that is completely free - it wouldnt take much to rework the current version of windows so that it only included web components such as IIS, it wouldnt even require a desktop, and with that you wouldnt need a particulary powerful server...

Resuna
August 18, 2008

# re: ASP.NET gets no Respect

The higher overhead of Windows, as well as the lack of tools to allow you to run multiple unrelated servers on the same host without using virtual machines, makes for a difference that's far greater than you're implying.

The biggest cost for data centers these days isn't computers... it's power. It's well worth while replacing that quad core server with a dual core server, if you can do it... the savings in power will make a huge difference. If you can do the same work at a hosting service that's running multiple FreeBSD jails on a single server (running BSD or Linux binaries, thanks to FreeBSD's linux emulation) you can save even more.

Basically, anything hosted on Windows just isn't "green". And that gets more and important every year.

And comparing ASP.NET favorably with PHP is damning with faint praise: PHP gets no respect either.

Bill Woodruff
August 18, 2008

# re: ASP.NET gets no Respect

A very thoughtful article, Rick, extremely well written, a rarity amidst the flood of spew :)

Wish I could read "your book" on effective approaches to using ASP.NET.

thanks, Bill Woodruff

Ross Mason
August 18, 2008

# re: ASP.NET gets no Respect

Hi Rick,

Thanks for the great article. I too am amazed by the stick .NET gets from communities which are dedicated to open source tools. We concentrate mainly only small bespoke web based applications for clients and to be honest one of the main advantages for us is that .NET or more to the point Windows Server + IIS is easy to sell to our clients who are already using and understand these products.

Since the release of .NET 2.0 I have seen the .NET community go from strength to strength and there are excellent products such as NHibernate that have come from the community and I believe more projects like this will showcase the true flexability and power of the .NET framework.

My one niggle with the framework relates to the glut of enhancements that have come from Microsoft. Some of these such as LINQ and the MVC Framework seem to be excellent tools that have been well thought out but others such as AJAX tools seem destined for failure. Because of the glut of feature releases from Microsoft all m y spare time seems to be taken up looking and evaluating these technologies for use. It seems to me that Microsoft lacks direction in this sense. Maybe it would be better to have fewer tools being released but higher standards of quality to save the Microsoft converts from wasting there time evaluating immature or unusable technologies.

That said I am very happy with the flexibility that the .NET framework brings to my projects. It has always been very easy to work at different levels within the framework meaning you can work with default controls and webforms for fast turnaround of small simple projects and drill down right through to working with raw HTTP protocol for more complex requirements. This for me makes it a real winner and it is the Swiss army knife I am always glad to have in my tool kit.

Adam Tibi
August 18, 2008

# re: ASP.NET gets no Respect

Rick,

You have copied my brain and pasted it in this article. It is nice to know that a guy on the oher part of the world (with respect to UK) shares me the same thoughts!

I want to add that major projects such as OSCommerce, Magento, WorldPress and Joomla are not using ASP.NET, for reasons you have specified in your article. This reduced the oppertunity for ASP.NET developers to work on projects that requires customisation rather than full development. This is also a major reason why small web design companies are shifting away from ASP.NET.

What do you think?

Adam Tibi
.NET Software Consultant

Anonymous Coward
August 18, 2008

# re: ASP.NET gets no Respect

Right, so, to take some choice quotes, ASP.NET's cost is "the last thing you want," hosting is "more expensive," when starting there are "Many choices but not a lot of guidance," and it is "a struggle," "frustrating," "a curse," "the learning curve was steep," and "not going to win any popularity contests." Web Forms "produces HTML that is not easily styled via CSS," (ie. produces ugly, bordering on non-standard, HTML), has element naming which is "very counter productive," and "no fun." Your HTML is liable to end up with a "massive amount of gunk," which will cause "havoc" with any AJAX application. It offers "no compelling features" to AJAX developers and "no assistance for typical client side scripting tasks."

But, of course, the problem is all Microsoft's image problem. The platform is fine...

Right.

Mick
August 18, 2008

# re: ASP.NET gets no Respect

I think the lack of respect stems from the academic community. By and large they don't want to learn or teach .Net when they can continue to stick with stuff they've known for years like Jave or PHP. Sad but true. So every new generation of programmers comes out with an anti-MS bias.

I work in all kinds of languages but for my personal sites I use .Net by choice, using mysql, free visual studio and cheap shared hosting. No cost overhead there.

I just wish they's relax the C# rules and stop everything having to be expressly converted. For example, not being able to divide two integers to give a float is just plain laughable. And what benefits did case sensitive ever bring to the table?

Henry Troup
August 18, 2008

# re: ASP.NET gets no Respect

The decisions are really not technology-by-technology but stack-vs-stack. And the cost of the MS stack (which I use) includes SQL Server licensing. MS licensing terms for SQL on the Internet used to be excessively high - comparable to Oracle. For small projects, MS priced themselves out of the market. That seems to have changed, but for a long time it was definitely a major driver.

Dan
August 18, 2008

# re: ASP.NET gets no Respect

I just finished a 2 year internet programming course at the local community college.

We took ASP.net, php, coldFusion, Java and Ruby on Rails.

We actually focused on ASP.Net.

By the end of the course, even the guy with php experience and no ASP.Net was converted to ASP.net. (Although he still likes php)

Yes ASP.Net is difficult at first, but extremely powerful, especially for programmers.

David
August 18, 2008

# re: ASP.NET gets no Respect

Great article!

I'd like to point out another site that is built on .Net that and uses the Silverlight to stream thousands of hours of video content. NBCOlympics.com.

I've been working with .Net since the beta versions, mostly just playing with stuff at that point. I decided to take a class in VB.Net at the local community college, even though I was coding in nothing but PHP and JavaScript. After three months (my first class) I've not coded another application in PHP (except for small maintenance) since.

From a developers point of view, just the organization of projects, compiled libraries etc.. make working with .Net a JOY! I can't tell you how many times jumping into a 600++ file PHP site kept me busy for many days just figuring out where all of the guts, includes and other crap resided. For the most part, I can jump into a .Net project and be almost up to speed in a few days. The debugging tools in .Net was one of the biggest reasons for jumping ship - it's worth every dollar I paid for the IDE. Also, the software costs for developement teams, there are express versions of the IDE that pretty much do everything and they cost nothing.

I've literally seen a team of 20 PHP developers not be able to hit a deadline, have a project scratched just to be written in .Net by 5 developers hitting the same deadline.

People want a free server platform and a free IDE - yet they would not code a single line for free themselves. My biggest complaint with ASP.Net is the id mangling - if I can change anything with a magic wand - this would be it.

Also, the CSS is not that hard once you understand how things are rendered.

Mick also made a good point, you can use *any other db and not inccur the SQL expense if so desired - this just about levels the playing field regarding developer/team cost, licensing fees and hosting.

FYI - Facebook, a "social networking site" that is primarily PHP based - moves and loads at a glacial pace, is this the platform, the code, not enough servers to handle requests, or is it because they are trying to do too much with an inferior code base?

David
August 18, 2008

# re: ASP.NET gets no Respect

@Anonymous Coward

You can still build strings or use one of the various writers to build generic HTML to output to a page and be inline with "The Power of PHP", calling methods to build HTML tables/divs etc..

I miss all that power, yet still enjoy the "havoc" of .Net :)

Tim
August 18, 2008

# re: ASP.NET gets no Respect

Excellent article, which mirrors a lot of my own opinions. The two biggest barriers to ASP.NET are lack of clean support of web standards and excessive complexity. To make it easier for new developers, Microsoft tries to hide too much of the CSS/HTML/JavaScript under the ASP.NET framework. Yet to be a good web developer,you __must__ know each of these, along with their strengths and weaknesses. ASP.NET tries to make the hard stuff easy but ends up confusing the hell out of anyone not an expert in the framework.

Complexity is the other killer. Too much is added to the framework too frequently and developers just can't keep up. It's great for consultants, since the new stuff generates new revenue streams, but it drives users a bit crazy.

-Tim

Martin
August 18, 2008

# re: ASP.NET gets no Respect

Excellent. That was the boost I needed to complete my ASP.NET studies.

But can a company settle down and stop making tons of changes... I am currently completing a .NET 2.0 certification and two more versions (+SPs) came since.

Where is stability in development? Anybody remember COBOL? You can still compile a 30 year old source file with today's compiler. Will .NET let me compile a 2.0 source in... .Net 10.0 version?

I'd like systems to stabilize so we can spend time becoming experts in our language instead of constantly learning new ones...

Joe Stagner
August 18, 2008

# re: ASP.NET gets no Respect

Rick,

Great post.

As the MSFT guy who spends as much time writing PHP as I do ASP.NET I always get kick out of the irrational dialog that this subject causes.

The answer to the question "which technology is best" simply can't be answered by comparing the technologies in isolation.

The QUESTION post folks are answering is the wrong one. The question should be "Which technology is best suited for the problem domain."

When the argument is "licensing costs creep in", then the problem domain probably includes a strategy of devalued labor (we have to pay our people anyway so we don't see their time as real expense). That's dumb fiscal management, but it does happen allot.

If it's "learning curve" then the question is, will complexities in the application (and the development costs associated) mitigate the learning curve issues.

Example: If I'm going to build a complex distributed application with Multiphase transactions, high performance tier interactions, detailed Operating System interactions, complex workflows, etc, etc, then .NET makes allot of that MUCH easier than most other developer technologies".

If I need to build reasonably atomic web application with independent authentication and very specific complex UI requirements then I'll probably pick PHP or Python.

<Sarcasm> And If I want to be cool and my site won't have many users or it can afford to be down allot I might choose Rails :) </sarcasm>

But seriously, it's fun to bash Microsoft and people love "free". (I got a free puppy once, it cost me a fortune.)

I suggest that you may have a certain perspective because your focus is on "mission critical" higher end, applications. (Not that you can't build those with PHP, Java, etc.)

At the end of the day, software runs businesses. Save a bit up front matters to individuals (who would otherwise spend their own money on tools etc.) but to real "companies" licensing costs are nearly NEVER the determining factor.

Risk is the BIG pivot point.

Can I get the kind of support that I need? Will I be able to take the software to places I can't perceive of when I start building or will I get painted into a corner by the choice I make. Can I hire enough great people? Will the technology evolve at a pace that will keep us competitive in our market? DO I need n-tier? Will I have to integrate "stuff" and how hard will that be? Does my choice make Security, Scale, or Performance easier or harder for the developer?

I think ASP.NET has advantages there.

But, there are other questions where ASP.NET is at a disadvantage.

Do I need absolute detailed control over the markup emitted? This is harder to do with asp.net, though ASP.NET MVC will help allot.

Can I start with an existing application? (Joomla, Drupal, phpbb3, OSCOmmerce, etc, etc. etc.)? If this is the case, forget about it, PHP is in a league of its own when it comes to free applications availability.

Is the BUSINESS MODEL of my organization innately Open Source? If so, maybe you can significantly augment your developer resources with free contributions.

I guess my point is that professionals should be OPEN minded.

If you choose and, for that matter speak to influence people, because "Software Should be Free", then I say. "Ok Harry Krishna, so should gasoline be free, and there should be world peace, no sickness, car accidents, and oh yea, I shouldn't have to pay taxes or get any older, but unfortunately I live in THIS world" :)

I think people should use the technology that is most likely to make their applications, and their companies a success, but I hate ignorance and think folks should make the decision based on unbiased, educated evaluation.

Since I work for MSFT, I like it when ASP.NET is the best choice, but I also "get it" when it's not.

Anyway Rick, thanks for the great thought provoking post, and for your work in helping people have the info to make INFORMED decisions.

-Joe

Matt
August 18, 2008

# re: ASP.NET gets no Respect

I've had small web projects that a few developers and I were going to work on that were great, seemingly lucrative ideas, get scrapped by PHP vs. ASP.Net arguments (In one example we all decided to run our own ways, the 3 of them in PHP, myself in ASP.Net, and they eventually just gave up, my product is in beta.)

Arguing that the framework is too bloated to work well is like arguing for a simple pocket knife over a multi function leatherman, yeah, you have to pick the right toolset but at least the options are there. Many programmers who have not diversified their portfolio of languages, tools, and stacks are uncomfortable when they don't just have one tool (a simple hammer) at their disposal and not all problems look the same (like a nail).

Arguing that the "drog-n-drop" way is the only way fully enlightened on educational sites is kind of weak as well. I feel that programmers and other tech workers, more than any other profession, should be masters of finding information on the internet. ASP.Net offers so many levels of abstraction that you can work with, some more beginner suited than others. How many VPs does Zend have blogging about PHP, and not just blogging about release dates, etc. really blogging about the code, how it makes things faster, how it benefits you and your customers, code examples and walk throughs, etc.

Finally, Microsoft is doing more than a lot of "Open Source" projects to be transparent and affordable. In a lot of ways Microsoft has licensing schemes set up that will charge you based on the scale of your application, express editions are available of all of the Visual Studio languages and project types, SQL Server, and the designer studios. Additionally, there are methods of running ASP.Net on linux servers using the Mono project (often this is less than ideal however). Additionally, MSDN subscriptions are available that put a wealth of OSes, IDEs, and development toolkits at your fingertips for a low price, the terms of the license are that the products are not to be used in a production environment, and since most production environments should result in productivity (i.e. profit), this seems a more than fair stipulation to me, get your application running freely, once there's interest and functionality, purchase a license and move it to "production".

.Net's detractors generally fall into one of three categories: Those who are faithful to a particular solution they learned first(and by faithful I mean religiously), script kiddies, or talented but inexperienced programmers.

David
August 18, 2008

# re: ASP.NET gets no Respect

Great post rick.
I got a question?
I have some experience with programming but it has been a while since i programmed. ie basic, pascal, and c.
I am now 30 years of age, is it still too late to learn programming such as asp.net?


dave

David H
August 18, 2008

# re: ASP.NET gets no Respect

Rick,
Let me just say that I have enjoyed your previous articles on ASP.NET, and this one is no exception. My background includes building C++ apps for Solaris using XWindows, on to building C++ apps for GNU/Linux in the 90's using makefiles and on to building Java apps using Swing and then JSP on top of Tomcat. I have been asked to maintain PHP sites that took forever to figure out and I have been asked to maintain ASP sites that took equally long to figure out. All-in-all, I have been through lots of fads. ASP.NET (and .NET in general) is not a fad. It's just that that I have to keep explaining what it is to the people that I work with. Web developers and designers around here used to using Macs and Dreamweaver to build pages aren't programmers and don't get what the fuss about object-oriented tiers are all about. On the flip side, programmers used to building Windows forms apps don't seem to get the Web a lot of time. I have straddled both sides of the fence, and I when I looked at ASP.NET datagrids (winforms, etc), I immediately wrote them off as useless for my work. Microsoft should never make things that easy when they are so inefficient. Something that's built as a quick hack one day soon becomes something that has to be refactored at great cost because everybody wants to use it, when it was never designed to be scalable in the first place.

Also, classic web developers used to the post-redirect-read-display UI pattern are put off by the complexity of webforms. Like me, they are going to ask, will I have to examine everything if Microsoft builds things that doesn't work the way we work? That is the problem--we have to constantly try to figure out (and map) if we will be bitten by something later on when it comes from Microsoft. Case in point is that ridiculous Web Application Project debacle/patch for Visual Studio. That shows lack of understanding of how web developers really build things for the Web. Around here, we build the classic way with database-business objects/webservices-UI. That keeps the UI guys happy, since they can continue use inline scripting if they like, and our hardcore guys get to fiddle with the business objects and security. UI people are rarely good developers anyway. Another problem is the integration of IIS with Windows Server. Who wants to upgrade an entire server OS just to get the latest IIS? We have a major investment in our infrastructure and don't want to have to upgrade for at least a little while. That leaves us stuck with IIS 6. We are still sticking with ASP.NET, but we are also investigating whether Apache+Mono+mod_mono is stable enough for production use. It is stable on the Mac, FreeBSD and Linux, but not on Windows! I don't have the time to help make it stable either. I also don't know how long we can continue to make the argument for Windows just to have ASP.NET when so many folks around here already run Macs, FreeBSD and GNU/Linux, especially the younger folks. Most of the tools in our stack (MonoDevelop, Subversion, PostgreSQL, MySQL,...) already come from the open source world. In fact, I am running Windows Server 2003 inside of a Macbook Pro in VMWare Fusion. It's not the way I like to work, but I like the new Mac and I like .NET; I just wish I didn't have to make a choice between the two. Ah...choice, something that has been missing from my vocabulary for a long time. Microsoft needs to decouple IIS from Windows, fast! Otherwise, they might end up like IBM when the personal computer came along and gave people real choice. Microsoft needs to learn that you have to develop tools that assist people with the workflows that they have developed to do their jobs; don't make them change drastically everytime.

David
August 18, 2008

# re: ASP.NET gets no Respect

Great post rick.
I got a question?
I have some experience with programming but it has been a while since i programmed. ie basic, pascal, and c.

And lets say hypothetically i have no choice but to pick asp.net. I am now 30 years of age, is it still too late?


dave

Marshall
August 18, 2008

# re: ASP.NET gets no Respect

Nice Article Rick,

I think that some of microsofts divisions have been improving their products steadily over the years, while others are just too flawed or overambitious to ever be more than bloatware (Exchange, Office).

I am an ASP.NET developer these days, and i love it - the ability to create a nice chunky class libraries, is cool, and makes my life a lot easier. I used to do Cold Fusion, Lots of Classic ASP, Php, and also learned Java (for the web). Using compiled code (java/asp.net) is something that i find very hard to go back from, and the advantages of one platform using Asp.net rather than lots of java platforms is actually an advantage for productivity.

I sidestep a lot of Microsofts controls, and most of my web output from my projects is "published", so none of my front end (public) code is crippled by microsofts dependencies. In fact My asp.net applications punch out classic asp code, so there is no viewstate or MS-style javascript, etc.

Thanks gaimn
Marshall

amit
August 18, 2008

# re: ASP.NET gets no Respect

The article too god. But....


As I am fresher ,i get confused about whih tech. i choose JAVA or .NET because both have thier loop holes.

Bogdan Iosif
August 18, 2008

# re: ASP.NET gets no Respect

Hi,

The problems you talk about are not specific to ASP.NET but to most dev. technologies coming out of Redmond and it can be traced, I think, to the contrast that now can be made between open-source freedom and closed source single-mindedness.

Please note that I'm not a big open-source fan.

Think about a new kid wishing to develop web apps for a living. How much technology is there to learn?

- 4 years - computer science (algorithms, dev thinking)
- 2 years - internet technologies (a little about OSI layers and HTTP and a lot about HTML, JavaScript and their freaky child: AJAX, web browsers, advanced debugging and monitoring of HTTP requests, DOM, client side JavaScript helper frameworks like JSON, etc.).
- 3 years - server side web app development (.NET Framework at a decent level, ASP.NET at advanced level, T-SQL at a decent level)
- 3 years - enterprise web apps (architecture, special needs, special technologies that come into play at this level for reliability, security, etc.)
- 2 years - etc.

Add it up and this means you need to be ~30 years old and full of knowledge to be able to write a decent enterprise app. Is this correct? I think it is. You should be able to write some apps after 5y and good apps after 10y but you can't really think enterprise without taking the whole journey. Add to all of this the fact that your target is continuously moving as technology changes.

Is 15 years a long time? You bet. A lawyer or a doctor also needs about this much to really start working and make some serious money. Do you think there would be a lot of good lawyers or doctors if the law or human body would drastically change every 10, 20 or 30 years?

We are long past the time when computer science, assembly and standard C were all you absolutely needed to know in order to start working. Now we absolutely need to know a lot of technologies before we can actually get to work.

Problem 1. Microsoft doesn't play "tit for tat".

If a developer chooses to invest all these years of learning to build software for the Microsoft platform, what does he get back out of it? The immediate gratification is ZERO. You have to pay huge amounts of money for Visual Studio, workstation OS, MSDN, development servers OS, etc. Keep in mind that this money is due before you are a big shot and income certainty installs. This is why developers choose to walk past Microsoft even before any technical analysis. You don't have this problem with LAMP, Eclipse, Java, etc. Don't you think that for all your learning investment in the Microsoft platform you should get totally free access to the dev tools, servers, etc. Don't you think that in exchange of passing the exams you should get a commercial license for the most advanced version of Visual Studio?

Problem 2. Windows 2000, 2003 and 2008 are NOT different platforms.

One of the big failed promises of ASP.NET (and .NET in general) was that it is platform independent. When Microsoft talks multiplatform they talk about different versions of Windows. Everyone else thought about Symbian/Linux/MacOS/Windows/Unix/etc. Don't you think that they should build at least a CLR for Linux and one for MacOS? Mono is not something anyone would like to bet money on.

Problem 3. You are NOT in control of your future.

A truism, but think about how Microsoft decided to kill VB6, FoxPro, Win DNA or Win9x. Was it necessary? I think so, but I wasn't affected by any of these changes and my opinion is purely academic: They were old and crappy technologies that deserved to die. You can bet that people who invested in them were not happy to have Microsoft's will shoved down their throats. Don't you think obsolete technologies need to be open sourced even if this is very legally complicated and it may go against their own business interest?

I am not a huge fan of GNU principles because they are business unfriendly. Sometimes you need to play poker with the cards close to your chest. However, the open source movement puts Microsoft in a contrast that is very bad to them. They need to see that in order to survive, being the very very good guy that does everything good even if it makes him lose money is not optional, it's mandatory.

Also, I'm not a big fan of open source software. It lacks consistency and user friendliness, BUT I have to wonder: If 25 years ago open source was close to nothing and it got here until now, where will open source be 25 years from now? Where will Microsoft be? I wouldn't bet on Microsoft when IBM, Sun, Oracle, BEA, Red Hat, (long list here) are all head on against them.

Pierre Boucher
August 18, 2008

# re: ASP.NET gets no Respect

Excellent article!

I currently work for a big company and we use Asp.Net for our development. I am also working on a startup company on my own and Asp.Net should have been the logical choice. But it was not the case. The back end layers will be written in C#.Net / SQL Server and the front end layer will be written with Prototype / script.aculo.us / prototypeUI javascript library.

Why? For the pleasure and freedom (no references to open source) using those libraries gives me. The client code is where the fun and the creation is. I can use well written js controls or write my own to match my needs. At the end, it will differentiate my work for others and allow me to create something new while using existing technology (HTML, AJAX, XML or JSON).

The back-end is pretty strait forward. Business rules, persistence, etc. .Net and SQL server are good at it. It does not need to be exiting. It just need to be efficient and stable. The fun will be in the design of the data structure and in the learning and use of NHibernate.

On the other hand, the front end is where the fun (for me) and the show (for my users) must be. Unfortunately, Asp.Net is neither that much fun nor does it allow me to show it off. No passion anymore.

Bryan Prendergast
August 18, 2008

# re: ASP.NET gets no Respect

Speaking of excitement around ASP.NET, I am surprised that so few of you mentioned Silverlight.

I am a WinForms C# Developer very excited about WPF, and the power it will afford me over WinForms.

As members of the ASP.NET community, are you all not excited about the new rich experiences you will be able to provide via Silverlight? Or does Silverlight seem just a niche tool for specific situations, like Flash has been?

Perhaps, it is too soon and too early for Silverlight to make inroads and win strong adopters? Or perhaps, the web world will remain very heterogenous with ASP.NET MVC being just one of the more bread-and-butter, content-serving tools for building websites, along with Apache and RubyonRails, and PHP, etc. and Silverlight will be just a niche tool for more premium, discretionary websites who desire (and will pay for) a rich experience . . . Comments?

James
August 18, 2008

# re: ASP.NET gets no Respect

Learning C# took me all of 5 minutes to grasp. ASP.Net took another 5 to get the basics. So I'm not 100% sure where the learning curve comes in for the basics. But then again I love learning new languages and I was able to relate both of those to things I've used in the past. I've seen others though, pick them up rather fast as well and the ASP.Net site does a good job of giving basic introduction tutorials (even if they stick mostly to drag and drop).

Also, there's a good number of open source projects out there for ASP.Net, .Net in general, etc. And for those that complain that decent ones for solution X isn't out there, why not start one? If it's a good idea, I'm sure you could get other .Net developers to help out.

As far as price is concerned: Mono isn't perfect but gets the job done for most projects, MySQL works fine with ASP.Net, etc. And Microsoft gives out copies of Visual Studio like hot cakes if you go to one of their events. I don't think I've paid for a copy since 6.0, but I can see that as a cost. Also, for the guy complaining about the PDF module costing $2000, look into iTextSharp (works great): http://itextsharp.sourceforge.net/

In terms of use, it might just be where I'm located but ASP.Net wins out most of the time. No one is ever looking for a PHP or Java programmer where I live, it's all ASP.Net. Maybe that's internal use only and not for the "cool" sites. But if it weren't for Ruby on Rails, PHP would probably be dead in terms of interest. Which is sad because I like using it...

To be honest, the only issue that I've seen brought up though that I agree with is the issues with JavaScript/CSS in ASP.Net. Most of them are easy to get around or learn the quirks of (id changing for example). But they do feel like second class citizens in the whole process sometimes.

Just another developer
August 18, 2008

# re: ASP.NET gets no Respect

I'm a Java Developer who's changed to .NET in the last 6 months and I'm hating it. I should never changed from my Struts/Hibernate/Spring job. I thought they had their technology much more figured out, being MS and all but this is pathetic.

The MSDN sucks compared to the Java API website, it's too full with crap and worthless alongside it. Haven't they tought of separating those too? The C# forums are much less responsive, there's much better support (and goodwill btw) for Java related technologies and IIS is a freaking nightmare. Not to speak about the great Java related frameworks that abound in the internet that MS keeps trying to emulate (yes copy) one at a time.

The people who are saying that .NET is better are clearly self delusional. I can't wait to change to a Java related job again.

Leblanc Meneses
August 18, 2008

# re: ASP.NET gets no Respect

>where will open source be 25 years from now? Where will Microsoft be? I wouldn't bet on >Microsoft when IBM, Sun, Oracle, BEA, Red Hat, (long list here) are all head on against them.


i use both open source stack and windows stack.

I run windows xp, 2003 server inside vmware server. and run it on top of a linux distribution; opensuse, fedora, or ubuntu.

the only reason i use windows is for easy development - visual studio.
for this reason alone i will always have windows near my side even if it's inside a virtual machine.

mono will remove the need of having applications run only on windows. So iis will eventually disappear - apache will become #1 again. All winform/wpf applications will run on both platforms. (its to the benefit of novel, red hat to make this happen - will happen sooner than later; 3 years cross platform applications without any tweaking)

the only reason to run windows at that point will be visual studio as it won't be till after 5 years from now that mono develop will begin to compete. corporations will begin installing ubuntu, LDAP based solutions with vmware running legacy windows applications only until they can be replaced. 10 years from now... at this time linux itself will be running inside a vm. updates will be simply pushing a new virtual image unto the lan. (sales.iso, dev.iso, management.iso, ect..)

I don't see windows around in 15 years.

There micro framework won't take off. who would pay royalty for using the framework on every device someone sales. mono will make a microframework that runs on arm (already done), freescale chips, and namespace so embedded compilers can target a specific chip.

Vinny
August 18, 2008

# re: ASP.NET gets no Respect

Social Networking site www.BlogTalkRadio.com is an ASP.Net site.

Tim Hunold
August 18, 2008

# re: ASP.NET gets no Respect

Your samples above look mainly to applications running ASP.net and not all the players out there. I know personally that all the Anheuser Busch (brewery and theme parks) sites are on it, Variety.com is on it, Sony Home Entertainment uses a CMS based on it, there are plenty. Sometimes I hear people talk about .net and it sounds like they are talking about ColdFusion back in 98 or something. But that is ok because there is a usergroup for EVERYTHING... right?

The culture of "empowering" users has not left a lot of accountability when things break. Pointing fingers can get a bit much too when your users get in over their heads. Cars and code are pretty similar. Kit car versus dealer, holistic versus doctor. I could go buy a kit car, put in a great motor and it may beat up Porsches, but when the damned thing breaks, I am stuck roadside trying to patch it back together while BMW "on call" comes and gets the other guy and he finds out about a well documented fix and recall. Sure there are clubs that may have the same car but not everyone built theirs the same way or stuck to all the same guidlines. So there I am, no recourse when the wheels fall off the thing sitting by the roadside. I saved a few bucks but I'll end up paying for it in another way and sure it could take a little bit for the other guy to get his car fixed, but the problems are known and you know a fix and not a work-around is coming.

I am no fan of MS, but given the incredible hate they get and the horrible failures I have experienced in the last 14 years of mainly shoddy PHP work. Sure there are great asp.net killing apps out there, I just don't want to be married to the project. I'll take the devil I know anyday.

bURL
August 18, 2008

# re: ASP.NET gets no Respect

Thanks for your comments Rick. I always think of the saying "when all you have is a hammer, everything looks like a nail" when people start thrashing competing technologies. Each is unique, elegant and useful in its own way and should be considered in picking a technology for a project by its merits and shortcomings. As a consultant/developer, I approach each project by letting the problem guide the solution and not let the solution guide the problem.

Kamran
August 18, 2008

# re: ASP.NET gets no Respect

i think it's just about choice a sensible businessman/IT manager will have to make. He measures different things and decides if he has to use ASP.net or PHP or anything else.

I don't think those religious followers of technology X are worth a mention - as they won't agree even if you put gold against their favorite technologies.

And I believe one of the main barriers ASP.net loses a lot in the eyes of a sensible businessman/IT manager is the platform dependence. ASP.net is good, but we have to stick to the IIS and Windows Server platform for that. Mono isn't up to date so cannot really think about that as a definite and as polished a replacement as Microsoft's ASP.net.

So my idea: Microsoft should actually DO something rather than sponsoring Open Source events, and have an official port of it's ASP.net platform for Apache and other servers and platforms. I love the framework and the architecture - but only if Microsoft could think this way.

Niclas
August 18, 2008

# re: ASP.NET gets no Respect

Nice article and also quite timely. The same problems you are describing with ASP.NET has happened to Vista. I fully agree with your assessment that most people bashing MS usually do it without actually knowing what they talk about, they are often taking the route of rumor/populistic.

I do understand the freedom arguments, and they are valid for sure, but not very necessary or useful in reality. It is seldom a problem that someone builds a blackbox as long as it works, actually that is one of the better ways to actually design programs, as blackboxes that does it stuff.

Either way, I think ASP.NET is on a declining path, at least I hope so, because the future cannot be in application such a google doc or bloglines etc. The future must be in rich clients that actually performs better or equally good as a local application would. Same goes with AJAX, it is just another not so good way to accomplish what you want, a rich client.

I surely hope Microsoft will start working on their perception again, because it saddens me that people out there choses tools and stack based on religion instead of what is actually the overall most optimal and cost effective way to do things. Sometimes it is a LAMP stack, sometimes it is a Java EE, and sometimes it is IIS/ASP.NET/Silverlight

Someone here pointed out that the tools for configuring Apache and MySql were much better, it is a false statement, it is simply a matter of perception. I would argue the opposite, it is much easier to configure and get things done when they are actually laid out from a user perspective instead of a programmers perspective. Programmers should not build programs for programmers, they build them for users (whom may or may not be programmers).

As a very recent anecdote, I for one have spent an awful lot of hours (and together with 2 people that actually are strong FSF/FOSS) trying to get apache to work properly as a proxy. All we have had so far is grief and problems, which we surely could solve, the software is out there and we were able to patch it. But it took time, it is not our core domain where we went to spend money.

We decided to try the same thing in IIS, which was a breeze through a custom plugin, and in ISA it just worked.

ISA surely costs money, but 3 people for a week costs much more, considering that we will have to support this modification we did through upgrades until the patch can be included.


A tool/stack should be chosen because it gives your customer the most longterm and sustainable value. (Unless you are doing short term stuff that is..)

If you are a MSVP you have access to all MS stuff at the tip of your finger, the same the LAMP stack. The difference is, you have free support and everything in one place. You do not need to invest in several horizontals to actually finally get to the point where you can develop your vertical...

I am a fan of MS stuff, but I hope it is for the sole reason that it usually gets things done faster, if it is not I will use whatever gets it done faster.

In this case ASP.NET get things done faster I think. We have developed the same application both through a LAMP stack and also through an IIS/ASP stack. We see a much faster development curve in the ASP stack.

Either way, all this will just end up in the void, changing people perceptions take a long time, but Microsoft need to start, I would hate to lose a very powerful platform

PUNKORE8
August 18, 2008

# re: ASP.NET gets no Respect

Well written.
Some good changes at Microsoft will come in time. Big changes are overwhelming, as you said. And Microsoft knows that something's happening faster and faster. Do you think that they don't wanna be around?

Daniel
August 18, 2008

# re: ASP.NET gets no Respect

Hi Rick,

I think that ASP.NET 3.5 is a more than adequate choice for web startups, but do believe that the alternatives (MVC/MonoRail, JQuery) are much more in tune with the needs of these kind of development projects than WebForms allow. I believe that C# and .NET are powerful allies but that we shouldn't narrow our view to Microsoft products built on these technologies if we want to get the best out of the C# language or the .NET framework. There are plenty of open source options in .NET that satisfy the 'free' requirement and provide a way to build worthy startups. You just have to be willing to look for them.

Daniel
Dimebrain

Si
August 18, 2008

# re: ASP.NET gets no Respect

@David Betz:

"You non-Microsoft people need to learn that Microsoft IS also open source. I run seven open source Microsoft projects. .NET is itself a shared source project. For that matter, C# is an ECMA International standard."

Wow, what an excellent way to muddy the waters. Lets mix open source with shared source with a language specification (not an actual implementation of that language!) into one paragraph. It must be people like you that came up with the name for "OfficeOpenXML"...just to create some more confusion a propitiatory product with an product that IS truly free and open source.

Open Source != Shared Source != Language Specification

To say that "Microsoft is also open source" is probably the most stupid thing I have ever read about the company. Of course Microsoft have to respond to the threat of open source software to their business, it would be negligent of them to their shareholders if they didn't, but they still can't make up their own mind which way to go, just have a look at what is happening to some projects on Codeplex:
http://www.codeplex.com/Sandcastle/Thread/View.aspx?ThreadId=29085


"It's absolutely idiotic to compare .NET to PHP or Java. You need to be comparing .NET to C++ or some other system with RAW power. There's no need for .NET people to give PHP or Java people the time of day. They're products are DOA."

Please, it's this kind of head up your arse attitude that gives Microsoft.NET developers a bad name. I program on the .NET and really like the platform and C#, but to say things like this, especially given how many sites (including huge sites like Facebook) are running PHP, is just silly.

Also, how can you say it's idiotic to compare .NET to Java when they both run in a managed code environment and share many of the same features? (in both language and execution) .NET has the obvious advantage of being developed years after Java, and I admire the vision the architects had for the platform, but a little reality check please.

David Betz, you're taking evangelism to a whole new low.

EdSF
August 19, 2008

# re: ASP.NET gets no Respect

Hi Rick,

Agreed. However, I'm willing to go all the way and say that it's really mostly about "religion". Its just animosity toward Microsoft, for all the reasons you have stated. And yes, to be fair, if you've been in this industry for some time, the animosity is valid.

But for the newbies, its really quite simple. Free, as in free beer. You'll see it in some comments here. Even those trying to push the whole "free" as in "freedom", and not "free beer". Hey I understand those that truly believe in it, but to say that people choose LAMP because it's freedom and not "free beer" is quite naive.

Free, yes, as in free beer (freedom isn't why you create a startup **business**), is how people usually start. You can't beat "zero barrier to entry" in the monetary sense. And as you said hosting costs matter, cheaper is the first choice, we can all attest to that. And well, just like, ahem, the saying that "Microsoft hooks you into its clutches that you can't ever escape from", it's the same for startups. You'd have to have some really good reason to move architectures from the one you built up from the start, ergo, you're in the "clutches of what you chose".

But in the end, its really all about what you, the specific developer, are comfortable with. Your expertise and whatever platform you can really derive results from. For me, just like yourself, when it comes to web development, I don't stray from .Net/ASP.net. When it comes to AJAX, hey, if you don't like MS AJAX, it's simple to choose other frameworks (dojo, motools, scriptaculous) and have it work in ASP.Net.

One thing I do have a bone to pick with is documentation, or maybe writing styles. You can pretty much read documentation on any other framework, with really simple examples, and you get up and running quite quickly.

MS documentation on the other hand (and it's not just MS AJAX), is like asking someone "what's the time?", and you get an answer about how great it is to build an atomic clock, goes on and on about why, then tells you how to build the atomic clock...at which point, you've forgotten that all you really wanted was what time it was...not always, but often enough.

I can't stress that enough. Documentation is key - particulary for "newbies" (that's not derogatory, we're all newbies to any new technology). Go to code.google.com, pick an API, read documentation (which usually is one page, long, but still one page), and bam, you've got stuff happening. So if you find yourself doing this over and over, then presto, you've got a "high rate of adoption", even when you simply just cut and pasted code!

Without the "asp.net" site itself, and the blogs of MS employes (like Scott Guthrie's awesome blog), if all ASP.Net had was MSDN documentation, I think it would've really been bad for the platform....

Mainthreadmartin
August 19, 2008

# re: ASP.NET gets no Respect

I am in the Euro zone and am a C# developer who is getting into ASP.NET V2.0

I use 1and1 for web hosting and notice that although all there MS Windows hosting packages use ASP.NET V2.0 the MS Home package only supports classic ASP.

Therefore even if you wanted to use ASP.NET at that level you couldn't. So another subtle barrier to adoption.

As an aside I have been using .NET since the beta in 2003 and I like it. I used to be an OS/2 developer and loved the IBM ICLUI class library. .NET was a really simple transition because it was almost the same. .NET V2.0 is a nice follow on with lots of good elements and certainly makes programming easier on the Winforms front - not sure about the Web as I am still new to that.

I do agree that there is a steep learning curve as you need to understand OO as well. But worth the effort.

Jordan Marr
August 19, 2008

# re: ASP.NET gets no Respect

RE: Microsoft Documentation: I love coding in asp.net, but I'm to the point where I immediately delete any emails from Microsoft targeting developers, and I avoid any Microsoft technical articles like the plague.

I just keep a nice selection of (mostly) Apress books around as documentation. Sure, the internet is free, but you get what you pay for.

For some reason Microsoft docs only diminish my drive to write code. Especially their architectural patterns and practices site. Give me Martin Fowler's PoEAA any day of the week.

Fortunately, .Net is flexible to the point that non-Microsoft practice books are just as good of a ROI.

LazyCodeSlinger
August 19, 2008

# re: ASP.NET gets no Respect

Rick,
Nothing useful from me - I just wanted to tell you that this was really a great post.

Sergio
August 19, 2008

# re: ASP.NET gets no Respect

Hi Rick,
great articol, really.
Sergio

Robz
August 19, 2008

# re: ASP.NET gets no Respect

There are so many comments here it is hard to know if anyone pointed out how at least one linux site has been powered by Windows Server 2003.

http://news.netcraft.com/archives/2004/08/04/linuxworld_expo_site_powered_by_windows_server_2003.html

http://www.theregister.co.uk/2006/05/03/linuxworld_shocker/

christophe
August 19, 2008

# Freedom

Hi EdSF!

EdSF wrote:
> for the newbies, its really quite simple. Free, as in free beer.
> You'll see it in some comments here. Even those trying to push the
> whole "free" as in "freedom", and not "free beer". Hey I understand
> those that truly believe in it, but to say that people choose LAMP
> because it's freedom and not "free beer" is quite naive.
>

Free Software is an irreversible movement. That’s why you have to learn to value Software Freedoms, because you need them to be part of the Free world...

Please try to read "Free Software, Free Society", the selected essays of Richard M. Stallman: http://shop.fsf.org/product/free-software-free-society/

>>Introduction by Lawrence Lessig: « Every generation has its philosopher—a writer or an artist who captures the imagination of a time. Sometimes these philosophers are recognized as such; often it takes generations before the connection is made real. But recognized or not, a time gets marked by the people who speak its ideals, whether in the whisper of a poem, or the blast of a political movement. Our generation has a philosopher. He is not an artist, or a professional writer. He is a programmer. Richard Stallman... »

Hope this helps

http://www.fsdaily.com/Community/Why_our_mission_is_to_teach_them_to_value_Software_Freedoms

James
August 19, 2008

# re: ASP.NET gets no Respect

First of all let me state that I absolutely love C#. I'm not a Vista hater, and I don't wish Microsoft ill despite their sometimes anti-competitive practices. That said there are a lot of reasons I can see for the resistance to using Microsoft's products and platform.

The Express tools are great on the surface, but critical features are missing relative to the FREE competition. Lets face it, Microsoft doesn't want to cannibalize sales of their flagship VS product. Unfortunately, this means if you aren't already an "MS shop" or independently wealthy, you aren't likely willing to pay for an expensive software stack when the competition is free and in many (though not all) ways better.

Here's just a few things I can think of that you don't get with the Express products that are standard with other free IDEs:

No performance or memory profiler. Yes, CLRProfiler is semi functional as a memory (only) profiler, but is massively intrusive on your app and relatively difficult to use.

Thread debugging limitations (except for C++). Unfortunately even the simplest GUI apps require more than one thread, and we're now in the "many-core" era, yet Microsoft deems working with threads in the debugger not fit for the Express product line.

Ridiculous limitations like that you can't use ATL with Visual C++ Express. Ok, the other IDEs don't have this either, but good luck finding some Windows Visual Studio C++ projects out there that aren't using ATL, and hence are buildable using the free IDE. I don't actually know who this product is targeted at.

Incompatible project types and poor side by side interoperability. Have you ever installed full VS along with an express product? Good luck doing something simple like being able to choose what version of VS will open your solution.

Extensibility forbidden. No built-in support for unit testing. No built-in support for version control. Every other free IDE has these. Much has been written on this, but the bottom line is that any developer who has grown to rely on these fundamental features is not gonna be particularly interested in the Microsoft stack when the entry level is many thousands of dollars per developer.

Tool downloads are huge and take /forever/ to install. I run a system with tons of ram and a 10k RPM disk and it feels like I might as well plan a whole day to get a new dev machine going. Until you've used something like apt in linux land to download and install software including all dependencies in a matter of minutes, you really don't know what you're missing. Even on windows the Netbeans install with the java jdk is relatively fast compared to VS.

On top of that there are some general microsoft developer ecosystem problems:

Documentation chaos. There is no single way to view, search, and configure all of the available documentation. There are umpteen different gigantic packages with documentation in them, umpteen different viewers, most of which have poor search. Is it too much to ask to have all the relevant docs in one place on my local computer with fast search and good filtering? They have tons of docs (great!), but the experience for using them is terrible.

Complicated and fragile dependencies. Or in many cases, just too many dependencies. Searching unoffical Microsoft blogs on google to find some tidbit about how X relies on Y relies on Z, except when Y or Z is Q and blah blah blah, see what joe bob wrote on his blog also so you don't hose your machine, is not what I wanna be dealing with.

Versioning story is a mess. We've got CLR versions, framework versions, C#/VB versions, Windows versions, Service Packs, hotfixes, and all of it is a rapidly moving target. Its hard enough on the inside to keep it all straight, somebody considering moving to the platform from the outside is gonna tear their hair out and run away.

No clear product layering. ASP.NET is a conglomeration of many things that most people equate with webforms. No wonder it gets a bad rap. This is a marketing and user perception problem, but microsoft has done little to appeal to web developers outside of the enterprise space. Maybe MVC will help, or maybe that ship has already sailed for too many developers.

API/SDK proliferation. Java and PHP are worse (ok, PHP is terrible in this area), but Microsoft is in control of their entire platform, so there is no excuse for making a mess in their own backyard. This same argument applies to many areas of what Microsoft is doing.

Too many product variants. I can't even count how many versions of Windows there are, and honestly even having to take the time to figure it all out has skewed the value proposition dramatically. I want to get the job done, not figure out if i'm spending enough money to get the feature I need to get the job done.

Taking cool product code names like "Sparkle" and giving them boring official names. Ok, this is nitpicky, and there are lots of legitimate reasons they do this, but it just emphasizes how stodgy Microsoft can seem at times.

Interoperability ignorance. We'd love to build everything on Microsoft's stack, but as soon as that isn't possible, the incentives to leave Microsoft behind entirely are just too high. Microsoft should focus on building the better product and playing well with others, not on choking you with their kool-aid.

Too much focus on money over mindshare. A great many people just don't trust Microsoft, and changing this perception will be a major uphill battle.

On the subject of cost. Hardware is now dirt cheap and getting cheaper all the time. Software is keeping pace, but only in the free-software world. When the cost to buy a server is dominated by the cost of a Windows license (even a "cheap" windows web server license), the relative value of using the Microsoft software stack falls rapidly. Even if Microsoft was suddenly twice as innovative, and their software was twice as powerful, or twice as productive, they'd still be far behind the curve on overall value.

neliason
August 20, 2008

# re: ASP.NET gets no Respect

Great article!

I love Asp.Net. Once you are comfortable with it you can really turn out some solid code quickly. Visual Studio is a wonderful tool.

I'll tell you one thing that really hampers Asp.Net. Being tied to IIS. And the fact that versions of IIS are tied to certain OSs.

Just today I had a problem developing a site on my XP machine because of limitations in IIS. I can download a full blown Apache web server for free. And, while the Apache config file is somewhat confusing to me since I dont use it too often, I can fully configure Apache to do anything I want. I can configure it on my XP development box just like it would be configured on a production server. I can setup multiple websites based on host name, port, whatever I want I can do.

I cant say the same of IIS. This is especially a problem when you can configure your Apache server on shared hosting accounts, but not your IIS server. Basically if I want a lot of control of my web server on cheap shared hosting Apache is the way to go.

One other thought is that CMS systems what a lot of web development use for websites. These systems give you lots of functionality out of the box. While the .Net framework is very rich, it isnt a CMS.

I have done a few sites in Drupal and it was really easy to quickly setup a very robust website with advanced features. I dont have a lot of experience with free .Net CMSs but it doesnt seem that any of them are anywhere near as robust as the PHP based systems.

Richard Norris
August 20, 2008

# re: ASP.NET gets no Respect

Great article rick!

I'm glad you are able to get that off your chest too because thats one thing I loath about the Open Source world, SLANDER!! I love open source projects but there is an absolute arrogance surrounding some of its followers that, as you say, produces so much of a negative image over MS technologies. Yeah sure, MS got things wrong with the platform but I agree with you when it comes to the power and breadth of the platform its hard to match.

Believe it or not my first ASP.NET experience was with HTTP Async Handlers, nothing to do with Web Forms. I'm surprised how many ASP.NET developers don't know about them! Hey, it was the answer to a problem I had with long running requests. I'm not sure if you remember but I was asking for advice on this topic and it didn't take me long to crack it!! It was at this point that I reliased that ASP.NET was not just more complex but actually more powerful than ASP and other web server platforms on the market. You'd have to write your own ISAPI extension without this feature and you of all people know how frustrating that can be. ASP.NET made it an absolute dream to develop and I'm sure with the intorduction of new technologies such as the MS WCF platform (which some developers at MS on this also helped me on this subject) it can only get better!!

Anyway ASP.NET and PHP etc aside I know of a platform that I think absolutely rocks! I only hope it lives on past VFP and continues to follow the ASP.NET path. WEST-WIND WEB CONNECTION FOR VISUAL FOXPRO!!! This product is the best web framework for VFP, it gives you ASP.NET style coding with the WCF stuff and a PHP/MVC low level HTTP output along side. Above all it is using the best data language ever to exist. "VFP"! (namely DBase!!!). If any product got a slating, then VFP's had the worst. This is one platform that has unfortunately been horribly let down by MS and the rest of the slanderous few in the VB and Open Source world. I wouldn't mind it is just I don't shout VB is sh*t because I actually don't think it is. I made sure I used VB before making any decision. To be honest it is the right tool for the job and the tool your most comfortable in. Although I don't use VB for much its certainly a great scripting language, great web development language (although I usee C# <g>) and great for Office development. VFP certainly didn't deserve having MS turning its back on it but thats the world of business for you, this really is M$!

Scott Barnes
August 24, 2008

# re: ASP.NET gets no Respect

Great article Rick :)

I've sent this around internally to my fellow Developer Division folks, as I think there is a great mix of technical depth around ASP.NET and also around Brand perception for Microsoft.

I think responding would be premature, instead the classic saying goes "put up or shutup", so my take away action for this is, prove it.

-
Scott Barnes
Rich Platforms Product Manager
Microsoft.

Babblr.de
August 25, 2008

# re: ASP.NET gets no Respect

Hey Rick.

Good article. But there are some student powered startups using ASP.net. For examlple us :) We're using ASP.NET/MVC for our german microblog called babblr. It's rock-solid, fast and elegant. We love MVC! www.babblr.de

Dana
August 26, 2008

# re: ASP.NET gets no Respect

Rick, good article! I haven't been to UniversalThread much lately, but I recognized you instantly. I've started to teach myself ASP.NET recently.

I just wanted to add to your site list... CapitalOne uses ASP.NET!

What's in <your> toolbox? :)

Dana

Peter
August 27, 2008

# re: ASP.NET gets no Respect

Hey Rick,

As ever a great article. My problem has always been that if you do it the ASP.Net way it's very difficult to use the tools / scripts etc that the rest of the guys are using. Microsoft constantly try to wrap everything up in such a way that you can't get to the stuff you need too. For simple CRUD cases it's a blessing but through accessibility or web2.0 in the mix and it all breaks down really badly.

Thankfully MVC.Net is on it's way and that means we'll finally get control back. It will be heaven. In the meantime ...

Also. We don't have any "killer apps". PHP has Joomla, Drupal, Social Networking and everything else you could possibly want. We have DotNetNuke *blush* and a couple of others like Umbraco that look more promising. If choosing ASP.Net means building your app from scratch its no wonder people go for PHP.

Cheers

Pete

Mark Gordon
August 28, 2008

# re: ASP.NET gets no Respect

Rick,

The product doesn't deserve any respect, the problem I have with .NET is the amount of code necessary to create an application compared to a VFP/VB application. .NET is truely a step backwards in most situations. This product is overkill when most businesses want to store some data run a process gen some reports and webenable their app. We dont need 50 ways to do something with 48 of the 50 having some strange gotchas, why do you think Scott Gu has a job he basically documents or in my opinion makes excuses for the development tool. Nor does a medium or small business want to administor an SQL Server application.

Besides the fact Microsoft keeps changing paradigms. They need to develop a paradigm, stick to it and refine it which is what Visual Basic and Visual Foxpro did. Look at the amount of different paradigms changes .NET has had now they are hyping MVC and EDM while some of the basic features are still not even in the package. There still is not a visual control inheritance in the class browser (shock vfp pulled this trick off), sure you can code it out if you work around all the bugs in VS, there isn't a datagrid as part of WPF, LINQ to SQL is still not an industry success, two way databinding is missing in webforms even simple stuff like format and inputmask properties this is a joke.

That is why the hype is gone people have migrated to the crap development tool and realize there is alot of cost and no real benefit other then Microsoft stopped development on their tool kits that actually where productive and RAD environments.

For us "mortal" programmers that actually have to go out and quotes jobs try walking into a company with 50 employees and a current foxpro application and tell them then have to buy SQL Licenses, new hardware to run the application on top of the development cost which in every case to date I have seen .NET is more then a VFP or VB application. Or have you seen the BAD .net application being deployed which I get called into to try and fix all the code is everywhere, it is a clusterf*, code in the html markup, javascript, poorly implemented ajax mixed in and cut, copy and paste is used everywhere there are no standards! Microsoft really has screwed over the small developers and small to medium size business market. I would stop using this .NET crap tomorrow if I could.

I wish more developers would quit defending the .NET monster and call a spade a spade already.

Vladimir Kelman
August 29, 2008

# re: ASP.NET gets no Respect

I think that a major issue with a standard Web Form / POSTBACK / server-side controls paradign of ASP.NET is that it broke BACK button. An issue is well described in this post http://www.strong-point.com/Blogs/tabid/87/EntryID/9/Default.aspx, so I won't repeat.
I programmed for many years in classic ASP and in PHP and always used a clean PRG (Post-Redirect-GET) approach, although I didn't know the term and re-invented that approach by myself.
http://www.strong-point.com/Blogs/tabid/87/EntryID/8/Default.aspx
http://www.theserverside.com/tt/articles/article.tss?l=RedirectAfterPost
http://www.theserverside.com/tt/articles/article.tss?l=RedirectAfterPost2

I know that we could use some tricks with cache.
I know that Ajax (Update panel, etc.) kind of solves this problem at the expense or more complicated model, difficulties with debugging, and maintaining History.
As far as I understand, MVC (ASP.NET MVC) is supposed to eliminate the issue. Am I right?

As many people above said, .NET itself is a wonderful platform, C# is a dream language (especially after that poor VBScript), but why the default Web programming model for ASP.NET suffers from such a major issue?
ASP.NET proponents above said that .NET is so powerful that nothing stops us from inventing our own model instead of a standard WebForm/ViewState/Server Controls. Sure. One would even able to program server code for Web sites in Assembler... My point is: why the default model which is offered in all ASP.NET tutorials suffer?

Rick Strahl
August 29, 2008

# re: ASP.NET gets no Respect

@Vladimir - Breaking the back button? Huh? How's that? ASP.NET is no different here than any other Web platform. ASP.NET is not the only mechanism that uses postback to the same page which is a reasonable practice for data entry operations and which I've used way before I ever touched ASP.NET.

A lot of complaints I see against ASP.NET Web Forms are leveled out of ignorance. Not understanding the platform and not investigating far enough to understand what you can do (relatively easily) to bend Web Forms to work in a more lean way. I've been doing this from day one with Web Forms precisely because I came from a more traditional Web development background where everything was done by hand and some constructs in Web Forms (like postback code from links on a all controls and ViewState for everything) have always felt unnecessary, but also easily bypassable.

A lot of people forget that there are also many very useful things about Web forms like the Postback data management and the ability to have a reusable control model. A page that can be controlled and allows building high level controls that act on the page - for example I would not want to live without my custom Databinder control that handles all aspects of binding data to controls without having to worry about string to type and vice versa conversions or manually tracking each field bound. These sort of things are not easily duplicateable in other tools because there's no structure the UI.

@Mark - sorry what you're railing against sounds like sour grapes to me. When's the last time you've seen a 50 developer FoxPro shop? In 1990 maybe? I think you also sound like you're comparing desktop development rather than Web development which is a whole different beast. Web development always has complexity regardless of which tool you use. A lot of people using ASP.NET are lulled into thinking that it should be super easy because when you start out with ASP.NET it just feels that way. Once you work more with it you realize that Web development is complex and you can't completely get away from the abstraction and you still need to be able to apply Web principles to layout and even the state management.

My point is that Web Forms can be made to run lean and mean if you put a little effort into understanding the underlying Web platform as well as Web Forms. The same effort that gets thrown into learning something like MVC which is not without its complexities - especially when it comes to building more than simple user interfaces that manage multiple pieces on a single Web page.

Vladimir Kelman
August 29, 2008

# re: ASP.NET gets no Respect

OK, Rick. I'm not very experienced in ASP.NET, I must admit it. But overall, I program web pages for a long time. And what books and MS documentation teach on ASP seems often seems to be a bad design. And, as opposed to simple things like ASP or, better, PHP, ASP.NET is so big, that it is hard to find a good approach by yourself.
I understand that there are pluses like the ability to use controls and data binding. However, how do you resolve a simple situation described in http://www.strong-point.com/Blogs/tabid/87/EntryID/9/Default.aspx? You have an "edit" page and a Save button to save changes. It is naturally using POST operation and posts to the same page - by default. Then you click Back button - and it displays that "Web page has expired" message.
It would be bad idea to allow page cache, because values were changed as a result of POST operation (perhaps - saved). In ASP or PHP I always POSTed to another page which didn't have HTML, saved data there and then redirected back. Yes, you can use cross page postback(like http://www.odetocode.com/Articles/421.aspx) it it looks crazy and overcomplicated.

I found that in many cases doing things "manually" on a lower level is actually simpler. ObjectDataSource is a great thing, isn't it? But why does it require my business object to have a parameterless constructor and define set {} for properties which supposed to be get {} only? UI i snot supposed to dictate my BO design. Yes, I know I can use ObjectCreating event http://weblogs.asp.net/srkirkland/archive/2007/10/10/using-bll-objects-with-parameterized-constructors-in-an-objectdatasource.aspx, but it seems that on Update ODS requires parameterless constructors and set {} anyway...

All looks great on a surface, but as soon as one tries to do something meaningful, strange things immediately reveal themselves, like no one before (or no book authors) did a real-life projects in ASP.NET.

Rick Strahl
August 29, 2008

# re: ASP.NET gets no Respect

@Vladimir - I agree on that much of what is shown in the 'basic' examples and documentation encourages bad practices, especially when it comes to data driven applications. As i mentioned in the article that the biggest hurdle to ASP.NET is indeed the .NET framework's size/breadth that is quite overwhelming when getting started.

If we're talking about ASP.NET in general and alternatives to Web Forms (say MVC) though we have to say that those same rules will apply regardless. Data access, and general programming code/utilities etc. always have to be learned before you can do any thing really productive.

But I'd also argue that using ASP (classic) or other scripting languages aren't exactly what I would call good design. Creating maintainable applications using scripting code is very difficult and requires a lot of discipline.

My point is simply that if you apply discipline to Web Forms the same functionality is available as in scripting environments. For example, I have NEVER used any of the ASP.NET DataSource controls in production code. Heck I don't even use them in demos. They are awfully designed and add inflexibility. There's nothing stopping you from writing data access code manually with code and binding data manually ( as you would have to with scripting ) or - which is the approach I use - to use my own data binder that I've built that fits my needs exactly.

I can't overstate the latter case because it's maybe the main reason I really like Web Forms: It's an extensible object model and not just a dumb view container, and you as the developer have control over the page rendering process in ways that is simply not possible in a scripting environment.

But yes believe me - I see your point. About the complexity, about the bad practices the Web Forms guides you into out of the box. Totally get that and I think that IS why Web Forms gets such a bad rap. It just bugs me because most of these issues are only true if you let yourself be pidgeon holed by the default Web Forms model, but this is not the way it has to be.

I don't know how to change that either though. New users will not want to use more manual approaches to development when high level tools like DataSource controls exist. Especially if that's what's advertised out of the box.

This is maybe why MVC is really hitting a nerve - it's not a half way solution but a complete break with the old architecture and going from scratch with the low level approach. I'm just not so sure that this model goes too far into the other direction.

Whitesites
August 29, 2008

# re: ASP.NET gets no Respect

Rick,
Yes cost is an issue with MSFT products ( especially SQL server ). Thus it has spawned a generation of guys like me who prefer to write asp.net code in dreamweaver, and use MySQL for the database. I am just not a fan of visual studio, or making pre compiled DLLs. I would rather keep the source code on the server, so I could remote in and patch things up if I was desperate from my cell phone.

When a programmer starts out, they don't even know enough to know what they don't know. They are scared to spend the money on software only later to find they don't have what it takes to write code for a living.

Rick Strahl
August 30, 2008

# re: ASP.NET gets no Respect

@Whitesites - not sure I understand the money point especially with what you say above. ASP.NET and .NET itself is free (besides the Windows requirement on the server and for dev). Visual Web Developer Express is free. You can use MySql or Sql Server Express to get free database access. Where's the money trail here?

Sure for serious development a full version of VS will be better although in the recent Express 2008 SP1 there are some big improvements that make VWD much less of a burden: WAP support, multiple projects so you can have separate classlibs for example.

You mention DreamWeaver - that's not exactly a cheap product either, no?

Thomas
August 31, 2008

# re: ASP.NET gets no Respect

A lot of the applications written on ASP.NET are "inside of the intranet thingies", also there's the problem that many junior developers starts with ASP.NET which reduces the average quality of ASP.NET solutions. Note that this doesn't say anything about the quality of ASP.NET, though it does say something about the (*average*) quality of ASP.NET developers. Which in turn comes back to haunt ASP.NET...

Chris
August 31, 2008

# re: ASP.NET gets no Respect

The biggest problem with asp.net is the poor disjointed promotional strategy followed by Microsoft!

Some of the technologies rolled out as .Net are in my opinion the finest solution available for web development, but unfortunately it is very difficult to tell the wheat from the chaff with any Microsoft technology due to all the self generated hype, and no-one has the time to just play with the new stuff all the time.

The ground swell of support for non-Microsoft platforms has come because Microsoft has alienated developers using their tools in the past and continues to do so today. PHP really gained momentum after Microsoft forced on us the web forms asp.net model and many asp developers defected in their droves to alternative platforms.

The latest betrayal of loyal .Net developers is the decision to better support PHP on their server platform. IIS fast cgi support for php and native SQL Server data providers means that the php camp can more easily compete for development work running on Windows servers which used to be a safe haven for .Net code. Furthermore thay can offer the flexibility of portability to a linux server at some date in the future with minimal disruption to the code leaving the clients choices open.

With the current low uptake of hosting supporting mono .Net is very much confined to Windows and is therefore now disadvantaged against php in this respect. This now makes it an up-hill struggle for .Net developers trying to justify their choice of platform to the men is suits.

Once again I'm thinking maybe it's time to jump ship and learn some open source technologies instead.

Vladimir Kelman
September 02, 2008

# re: ASP.NET gets no Respect

Thank you Rick!
I understand that regardless of technology chosen, as a programmer I'm responsible for following good design practices. In fact, I was trying to make a good code in classic ASP by writing my own classes and using a bunch of include files, and yes, it was difficult because of no support from the environment. (I think, Visual Studio and C# are brilliant.)
By the way, a very simple PHP language/environment (which people blamed above) offered much better support than classic ASP. It's enough to mention conditional includes and the ability to go to function/class definitions in an excellent Zend IDE. Now, with introduction of Zend Franework (MVC, etc.) it's a powerful platform.
I also started to bind data manually instead of using ODS. It appears to be simpler, more flexible and it does not force me toward bad BO design (default constructors, having "setters" for semantically read-only properties). We use good N-Tier design shown by Imar Spaanjaars in his article at http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=416. I think that to switch to some kind of ORM tools it's better to try and feel manual DAL design first.
Some people in comments above blamed Java along with PHP as DOA. It's completely wrong to put an equal sign between a simple PHP web environment and complicated fully-developed Java technologies. As someone said, C# was designed to be as close to Java as it was legally possible, CLR and JVM have much similarities as well. (See http://www.25hoursaday.com/CsharpVsJava.html)
I'm not very experienced .NET programmer, but I read a lot and have a strong feeling that there is a lot of good influence currently coming from Java world to .NET. For some reason, those good design principles - Domain-Driven Design, Dependency Injection, ORM, MVC, etc. - all these concepts are much more prevalent in Java community, even for junior developers, than in ASP.NET community. It looks like thing are changing for better in ASP.NET now. Personally, I started to understand what is good and what is bad after reading "Foundations of Programming" series by Karl Seguin http://kelman-all.com/developer/books-and-docs/seguin/.

Regarding MVC "model goes too far into the other direction", personally I always preferred more manual approach and felt that by offering too much of automatic solutions MS sacrificed flexibility. I still feel that high-level Web Form model introduced more difficulties, than simplified things. (I never used bound controls even in MS Access programs :) ) "New users will not want to use more manual approaches" - unfortunately its a result of poor Microsoft's approach in educating new developers by presenting their technologies as "no code is necessary".

Sorry for a long comment and thank you again for starting these important theme.

David
September 03, 2008

# re: ASP.NET gets no Respect

For me the problem is WebForms. Sure you can say that ASP.NET != WebForms, but WebForms IS the dominant programming model for ASP.NET (MVC isn't even in Beta yet) and most of the criticisms I've seen, and made, are about WebForms.

With WebForms, MS essentially promoted a WinForms-based drag and drop programming model that turned out to be fine for many situations, but prone to being frustratingly brittle for developers trying to do anything beyond the Tutorial stuff.

Yes, there's more to ASP.NET than that, but the drag-and-drop webforms story is what MS has promoted, at least until very recently.

These sorts of comments by k_man at http://blog.wekeroad.com/blog/asp-net-mvc-avoiding-tag-soup/ seem to me to reflect a common expectation of ASP.NET:
"What I meant, was that when I have "<asp:GridView ..." on a web form, it should do everything for me and I do not have to write one lick of code, other then the data binding stuff, to get all the features to work."

Being promised almost a no-coding experience, and then having to debug low-level framework limtations/bugs creates a lot of frustration among developers, which will result in a lot of anti-ASP.NET comments from the very people you'd expect to be defending it.

Trying to develop in a good manner, and hitting brick walls because to create the drag-and-drop model ASP.NET has hidden away from you stuff you need to control, creates similar frustrations.

Compare that with the enthusiastic posts of converts to Ruby on Rails, and to me it's easy to understand a statement like "ASP.NET gets no Respect".

John M. Anderson
September 16, 2008

# re: ASP.NET gets no Respect

Here is the list I was able to come up with:
cdw, home shopping network, career builder, orkut, blog talk radio, progressive, lego, match.com, continental airlines, zagat, scandanavian airlines, dell, myspace, microsoft, verizon, t-mobile, monster, newegg, starbucks, costco:

- http://www.cdw.com/Default.aspx
- http://www.hsn.com/default.aspx
- http://www.careerbuilder.com/Default.aspx
- http://www.orkut.com/Home.aspx
- http://www.blogtalkradio.com/Default.aspx
- http://www.progressive.com/home.aspx
- http://www.lego.com/en-US/default.aspx
- http://www.match.com/matchus/index.aspx
- http://www.continental.com/web/en-US/default.aspx
- http://www.zagat.com/index.aspx
- http://www.flysas.com/Default.aspx
- http://www.dell.com/content/default.aspx?c=us&cs=19&l=en&s=gen
- http://www.myspace.com/default.aspx
- http://www22.verizon.com/Content/verizonglobalhome/ghp_wireless.aspx
- http://www.t-mobile.com/default.aspx
- http://my.monster.com/home.aspx
- http://www.newegg.com/index.aspx
- http://www.starbucks.com/retail/locator/default.aspx
- http://www.costco.com/home.aspx

yahoo -> uses .NET and WPF for windows messenger.

ATI -> Uses it for their catalyst control panel.
- http://ati.amd.com/products/catalystcontrolcenter/features.html

Cafepress -> All their secure pages (login, registration, etc) use ASP.NET

Intuit -> Quicken requires .net to install, not sure what they use it for.

Ones using .NET on mono:
Novell -> Lots of internal projects, Banshee, Tomboy, iFolder, F-Spot
- http://banshee-project.org/
- http://www.gnome.org/projects/tomboy/
- http://www.ifolder.com/index.php/Main_Page
- http://f-spot.org/Main_Page

Imeem -> Imeem uses Mono on their servers and also they use it on their MacOS port to reuse the same codebase that they had on Windows.
- http://developer.apple.com/business/macmarket/imeem.html

medsphere -> http://medsphere.org/community/project/openvista-cis

wikipedia -> They use mono/dotLucene for searching
- http://tirania.org/blog/archive/2005/May-30.html

John M. Anderson
September 16, 2008

# re: ASP.NET gets no Respect

Oh, I also forgot to mention second life which is using Mono as their scripting language.

http://wiki.secondlife.com/wiki/Mono

Socrates
September 20, 2008

# re: ASP.NET gets no Respect

The main problem with .NET today is its increasing complexity.

For example, WPF. Read some great articles by Josh Smith, Karl Shiflet,et al and you begin to realise this is a whole new ball game. Add MVC and WCF and, unless you have nothing better to do than research these technologies, you will have one heck of a steep climb.

Tools need to be simple and intuitive. The current technology stack is complex and getting more complex with each release. MS will find it harder than ever to convert non .NET developers to .NET and will drive away existing developers who see their development time being eaten up by learning time.

There is already a large proportion of .NET developers moving away from MS Ajax to other platforms such as jquery. MS needs to take this on board. They are not doing what developers want and they are not producing tools that are better than anyone elses.

Just as an aside, people in the UK resent paying 58% more for the same product in the UK than those of you who live in the US. Yes that is before any taxes have been applied. Read details at http://ambercat.blogspot.com/2008/06/when-is-microsoft-going-to-stop-ripping.html.

Also check out the Bill Gates article on the same blog. MS have lost their focus regarding usability.

Many years ago I worked for Burroughs in their research and development department. There was a receptionist there who made the very astute comment "You are all brains and no common sense" regarding the engineering staff. To a large extent this is a real problem at MS.

There are geeks who just love the technology and take pride in being able to figure out the well hidden and obscure contortions that they have to perform in order to get even the simplest tasks to work. Then there are the majority of developers who are working to a tight schedule and need to get the job done.

Read the developer blogs. Listen to all the tips and tricks and devious procedures. Which group (Geeks or Developers) do you think the current MS products are serving? It most definitely is not the developers.

That is why MS is being dissed. That is why so many developers turning toPHP / MySQL and other platforms.

Our development shop uses both PHP/MySQL and .NET/MSSQL. I am in the .NET/MSSQL camp and have been generally happy with the environment, but I do have some concerns about the direction that MS is taking.

insurance
September 20, 2008

# insurance

This article tries to illuminate the features necessary to look out for before forex traders buy automated trading software. There are many scam forex products out there, but this does not for once suggest there are no profitable ones too. The big question is, how do traders recognize good expert advisors? This is what this article endeavor to address. Read on…

# Recent Links Tagged With Repeater

Bookmarked your site as repeater at JabberTags!

Bill
September 23, 2008

# re: ASP.NET gets no Respect

I don't know PHP, or any other language for that matter. I'm not interested in open source vs MS arguments. I know that I owe a lot to MS.

I've been programming with VB, ASP and, for almost two years now, with ASP.NET.

I don't like it. Even after two years, I still don't like ASP.NET. How can I like it? It introduces layers on top of layers and hides the most essential thing that is sent to the browser, the HTML code. Try putting two dependent dropdownlists (e.g. Countries >> States) in a detailsview... Such a trivial thing can turn into a nightmare with ASP.NET.

Programming with ASP.NET is like trying to manoeuvre a crane blindfolded.

MS should have improved ASP with .NET at the back end. That's all we needed.

I can write pages and pages on this but I'll stop here.

Now we have ASP.NET MVC coming (has come).

ASP.NET MVC; Does it stand for "...well, ASP.NET didn't work, let's try something else.." ?

I don't like the way MS makes such dramatic changes on their development tools. By the time I learn something it already becomes obsolete. Why should I believe that MVC is here to stay.

Please don't tell me that MVC is an "alternative" not a "replacement".

Forex Trading Course
September 28, 2008

# Forex Trading Course

There are several training institutes out there who have associated themselves with the best forex dealers in the market currently. These institutes bring you up to speed with all the latest tools being used in the market these days. They will help you evolve your own trading strategies that you can use to make profits in the market. Some of the institutes also allow you to trade on some of the best platforms with the best traders that these institutes have associated themselves with. The institutes help you...

4x Trainings
October 04, 2008

# 4x Trainings

Bank of America is currently running a promotion where you can get 100 for opening any one of their checking accounts. Each state has their own different account types, but there is usually always one that’ s free with direct deposit, or free with a 1,000 minimum balance. BofA is a huge behemoth now, but I still use them as my primary checking account due to them having branches and ATMs everywhere. I’ ve really not had any problems with them at all, and their online bill pay is great. I’ ve had one...

Iain
October 29, 2008

# re: ASP.NET gets no Respect

"My point is simply that if you apply discipline to Web Forms the same functionality is available as in scripting environments. For example, I have NEVER used any of the ASP.NET DataSource controls in production code. Heck I don't even use them in demos. They are awfully designed and add inflexibility. There's nothing stopping you from writing data access code manually with code and binding data manually ( as you would have to with scripting ) or - which is the approach I use - to use my own data binder that I've built that fits my needs exactly."


Hit the nail on the head!
When you use webforms with strong development/archtiecture practices there is nothing stoping you from constructing extremyl powerful and elegant layered solutions.
The majority of arguments against web forms assume really really bad use of them.

Anon
October 29, 2008

# re: ASP.NET gets no Respect

"I don't like it. Even after two years, I still don't like ASP.NET. How can I like it? It introduces layers on top of layers and hides the most essential thing that is sent to the browser, the HTML code. Try putting two dependent dropdownlists (e.g. Countries >> States) in a detailsview... Such a trivial thing can turn into a nightmare with ASP.NET. "

Answer: Don't use the DetailsView. It's for noobs. ;-)

Chris
November 13, 2008

# re: ASP.NET gets no Respect

Anon is right. The Asp.Net web forms model is trash. Asp.Net is a great server side technology, the best actually. For the UI the best is ExtJs IMHO. Once MVC is production ready I'll being going that route with ExtJs and life will be bliss. (or so I hope :)

Mick
January 01, 2009

# re: ASP.NET gets no Respect

the size of .Net is the real problem. When you're running a commercial development team, you want everyone to work the same way because consistency = quality. Trouble is, in .Net there's at least a dozen different ways to accomplish even the simplest task. It's a nightmare, but I wouldn't swap it for php.

Code Monkey Labs
February 22, 2009

# Weekly Web Nuggets #25

General The Tortoise And The Hare : Tim Barcz has a must-read post comparing enterprise development to the fable of the tortoise and the hare. As someone who's been dealing with this sort of cycle for the last few years, I couldn't agree more. Diligent developers should be striving to be the tortoise...


Ilia Shterev
March 17, 2009

# re: ASP.NET gets no Respect

Hello Rick,

I would like fisrt to say that in general you write very pessimistic posts.

I agree with you that Ajax – stuck in the Mud. Since it is for IE only I am not going to even touch it. Who would want to do that in these days of browser's wars.

But I can't disagree more with - ASP.NET or .NET in general has a pretty steep learning curve. Give me another better example. Compare VB.Net with PHP, Java or Perl. They can't be cripier as far as learning and, I repeat and, development is considered. I Personally think that there it would not be humanly possible to make anything easer than that.

It might be bulky but I have not seen much more imperssive PHP examples. Or whenever I go to best buy's site - JSP, my processor's vent goes to its highest speed.

It might go with a little more hardware expenses (I do not know that since I run on hosted envornment) but my shopping carts are among the quickest I have seen.

I think it is all that matter if you want to use the web to chase customer's money.

To the free platforms guys - thanks that you are there to impose some restraints on the MS's prices i.e. some relief on my pocket but that is all I can say.

I will get back some day, only now is 4 am here.

Vladimir Kelman
May 06, 2009

# re: ASP.NET gets no Respect

Ilia, there is no simpler thing to learn than PHP. I started to program on it in a couple of hours. PHP is like vastly improved classic ASP.

Rob Conery recently posted an article titled as "I Suppose I’ll Just Say It: You Should Learn MVC". This article by itself and following comments are best descriptions ow what is wrong with WebForms (and what is greatly improved in ASP.NET MVC.)

http://blog.wekeroad.com/blog/i-spose-ill-just-say-it-you-should-learn-mvc/

Hunzonian
September 24, 2009

# re: ASP.NET gets no Respect

Rick, This is a fantastic article. I can completely identify with everything you've mentioned. I came from a mid-level classic ASP and PHP background. This is my fourth year learning ASP.Net and still feel like a complete beginner. The learning curve for me personally (a below everage mind) has been enormous and wonder every day if I will ever qualify for an entry level job.

As of late, I started wondering if it was worth the investment of time. All in all it is a love and hate relationship just as for many others.

I decided to learn ASP.Net because at the time it seemed that the job market was much more appreciative (salary wise) for ASP.Net developers than for PHP or classic ASP.

I hope that ASP.Net will stick around for a very long time and keep getting better and better so as to close the gap in the minds of opposition.

By the way, in light of the "free as in free bear" argument, I have never spent a dime on anything that has to do with ASP.Net. I use the Express version so all my tools are free, and learned everything I know from blogs, forums, articles, free online books etc. As for hosting, I can find them just as cheap as anything else.

There are a few things that do bother me like it does a great many others. Code output could be cleaner and compilation should not be so horribly slow. In a shared hosting environment, the application pool is sometime cleared after only five minutes of inactivity. Then it takes forever to recompile everything again. if I had to choose one, this would be the greatest of my objections because of the embarrassment it causes in front of my clients.

I'm hopeful that .NET will keep improving in the right direction. I personally love drag and drop although it really isn't drag and drop. Virtually everything I use them for requires lots of code in addition so drag-and-drop my ass.

For those who absolutely hate drag-and-drop, get used to it because it is with absolute certainty will be a major component of future web development. The very idea that 10-15 years from now I will still have to waste so much time writing code to accomplish simple every day development tasks is just plain idiotic.

We will have a load of very sophisticated drag-and-drop components with very clean and correct output that will work efficiently and flawlessly, streamline development but most of all allow us to accomplish more in less time so we can actually make some money.

Why these tools are not here yet? Because of politics. All development frameworks are geared towards developers and the developer community in general. This monopoly however will run its course like everything else. When companies run out of ideas, they will start creating tools that will ultimately bring about the demise of the "coders-only" monopoly and other more innovative ideas will lay the groundwork for how the industry earns a living.

In my 17 years messing around with websites, I have not ones seen any real innovation to make the job faster and easier. It is always the same old crap with more and more useless bloating.

DLT
July 10, 2010

# re: ASP.NET gets no Respect

Rick,

I'm glad to see you prefer to do your own databinding too. My company is in the process of designing a new generation for our web applications. We have some consultants that, like everyone else with a thin skin, is touting MVC as the way to go. Me, I'm not so sure. Life without the ListView control might not be worth living ;). Seriously, though, I just have to shake my head at developers who believe that absolute control of what is rendered is above all other concerns. I never use the designer to drag and drop because I want my markup to be clean and clear. I keep an eye on what gets rendered, ViewState and all, and I do my own binding. I also shy away from the various ORM frameworks that work to shield developers from the database. Ironically, the same people who tout MVC, also tout one ORM framework or another. They want to be close to the metal on what they're good at, and wrap the database up in objects so they can be as far from this metal as possible. Me, I like having the database right by my side, so I can easily watch every parameter, feed them in optionally, and debug / alter with ease. If you don't know SQL, you should not be developing database applications, any more than you should be designing the UI without knowing markup, CSS and javascript. On the other hand, controls like the ListView and even the much-maligned GridView, combined with a proper dose of CSS, provide functionality I'd be hard-pressed to duplicate, and certainly not in a cost effective time-frame. I'll all for objects, which I'm happy to create myself, but I don't like the inflexibility that comes with a framework. I like LINQ for Objects, but rarely use LINQ for SQL (I'll roll my own, thanks). In my environment, there are just too many times when you have to spend time working around the default behavior, and too many times when the structure of a table or output of a stored procedure needs to change.

Finally, thanks for sharing your wisdom.

West Wind  © Rick Strahl, West Wind Technologies, 2005 - 2024