...or are things getting more complicated?

It seems to me that you need to know a lot of stuff to 'properly' develop an MS web app these days. In the bad old days when we didn't know any better we had database tables, ASP.NET, ADO.NET and you constructed a web app using relatively simple concepts.

These days there seems to be a lot of framework around to 'help' you do it 'right', but I'm not convinced this makes it all easier and better. I've got a feeling I'll be in a pretty small minority with this sentiment, but is there anyone else out there who thinks that things have gone a bit mad?

  • MVC = ASP.Net, WCF = Web services + .Net Remoting, EF = ADO.Net, Linq is replacement of some foreach loops. Now there are as many frameworks as before. – vortexwolf Mar 21 '11 at 17:05
  • John I have to 'partly' agree with you. I'm currently brushing up my .Net skills, certainly alot more to go through than 5 years ago. – TeaDrinkingGeek Mar 21 '11 at 17:23
  • While there may be a lot of DB technologies in the MS arena, this question is really off-topic on this site. It doesn't really ask a question and falls squarely into the "...sucks, am I right?" rant category listed in the FAQ – Walter Mar 21 '11 at 18:42

All those things are optional, use them if they're helpful, don't if they're not. It's as simple as that. You can certainly write good/proper web apps w/o any of those acronyms in your solution.

Personally, I tend to find MVC to be a pretty lightweight and easy to use framework (much easier to get started on than webforms, imo). Likewise, LINQ provides a common way of querying anything; also good. EF and WCF and I have had our disagreements, but when that's the case, I don't use 'em.

  • 2
    +1 on 'use them if they're helpful'. I try to use the rule, try to do 1 new 'thing' in every project. After a while you'll have experience with a lot of stuff and see things are getting easier as you use it more. – Jan_V Mar 21 '11 at 19:18
  • +1 to you as well for the 'try to do 1 new thing on every project'. I like learning and growing as well. – Paul Mar 21 '11 at 20:25
  • 1
    I try to do 1 new thing on every project, but that's usually because the new thing I learned last project is now obsolete :) – gbjbaanb May 6 '11 at 14:13

No, not really. LINQ is the greatest thing since sliced bread when interacting with a database.

What you should remember is that these things are built on other things. LINQ is not adding to the number of things you need to know to develop an ASP.NET website, because now you don't need to know SQL. And LINQ is OO, which is far more in line with regular application development, which makes it a complete shitton easier to do than SQL, and much easier to integrate with C#.

If you don't think that LINQ is easier than SQL, perhaps you should post some examples of something that's harder in the new paradigms.

More importantly, previously websites had far less functionality. How are you going to make new websites that perform better, scale better and offer new functions in the same code?

  • 4
    A left join in LINQ is harder than in SQL. Also if you're trying to troubleshoot database problems, you'll wind up having to look at SQL anyways. Plus knowing SQL will help you if you ever want to move to a non-Microsoft development platform. – btilly Mar 21 '11 at 17:40
  • 10
    No ORM framework is as powerful as SQL. There are queries that I have to perform that are next to impossible to do in an ORM framework. – bit-twiddler Mar 21 '11 at 17:52
  • 1
    @bit-twiddler> yes, and that's why most ORM frameworks let you execute raw SQL (or sprocs) as well. You can have a good C# guy write most of the pedestrian queries, and DB experts like you can package the hard stuff for them in a sproc or view. – Paul Mar 21 '11 at 20:26
  • 1
    While I design large-scale databases and write a ton of client-side and server-side SQL, I am not a DBA. I am a software engineer. I have never worked anywhere where software developers where uni-skilled. On any given day, I may write code in C, C++, Java, Object Pascal, PL/SQL, or Intel assembly language (I do not count HMTL, XML, and CSS as programming languages because they are not Turing Complete). I maintain my own tool sets and a Tomcat-based test environment as well (everyone on my team has their own Tomcat server). – bit-twiddler Mar 21 '11 at 22:47
  • 1
    Writing LINQ to interact with a database (LINQ-to-SQL, LINQ-to-Entities) without knowing SQL...? Recipe for disaster. – Kirk Broadhurst Dec 22 '11 at 4:06

If the old concepts you mentioned didn't work any more, I would agree that would be mad, but the newer frameworks are alternatives. Blind acceptance would be mad. You need to justify. Personally, SQL in itself isn't a problem for me. Trying to add some of the functionality of modern websites, webforms isn't cutting it anymore.

I'm sure some classic ASP folks felt the same way about .NET, but few can continue to make that arguement. I build a couple of sites in classic ASP and would not go back.


"Gone a bit mad". That's exactly the way I'd describe a DataSet, ADO.NET, ASP.NET solution. :)

I agree there is a lot more to learn, but each of the frameworks you mention have made .NET development better.


I would say that this is a global problem which can affect pretty much every framework or (developer) platform. When new framework is released it looks usually small and compact, but as time goes on and new features/functionality/APIs are included (either by roadmap/request, new concepts/trends/technologies or simply by evolution) it gets "bloated". You started with "one way of doing things" and now there are more possibilities which you can choose from (and - you don't know/are not sure - which one to choose). It can be time consuming to learn new things, however they can offer you much more flexible/faster/better solutions to the same problems which were previously solved by limited set of options.

I once stumbled upon a funny quote - "all code turns into s#!t given enough time and hands" - which IMHO summarize why new stuff within existing frameworks should emerge to bring fresh ideas into action and do the evolution.

Not the answer you're looking for? Browse other questions tagged or ask your own question.