find a location for property in a new city

Thursday, 23 December 2010

3 things that changed ASP.NET development in 2010

As 2010 draws to a close I thought about how I was writing code last year. I realised how much development has changed in just one year. I want to look at how my work has evolved during 2010.

Entity Framework 4

I really like using Entity Framework. I wasn't quite sure about it in its first version, however, since the release of Entity Framework 4 in April I fully adopted it. It solves so many problems that I feel exist in modern web development.

I like stored procedures, I know a lot about using and optimising them but there is something seriously wrong with their concept - you have business logic in your database! When you think open mindedly about what a logical architecture should be you realise just how ridiculous that is. Entity Framework takes the last remaining strand of business logic back to the web developer.

Aside from the improvement in architecture, the other benefits I love about it is that speed you can develop with, deferred querying that improves reuse of queries, strong typing of Linq to Entities, Intellisense when writing queries, no more mapping, no more writing tedious POCOs, lack of tedious code in general.

Its hard to believe only a year ago I was writing stored procedures.

ASP.NET MVC 2

Again, I had a look into this when it was in its first version but was carried by the hype around v2. I fully adopted the use of MVC in April too and what a joy it has been to use.
A lot has changed over the last 10 years of web development such as increasing expectations of performance and web standards, popularity of unit tests and agile development, ubiquity of AJAX.

Now, I wouldn't go so far as to say there is anything wrong with ASP.NET Webforms I just feel that ASP.NET MVC has been a superb reaction to these changing trends in what web developers want to produce.

Whilst all of the above concerns can be answered by Webforms, like turning off view state to remove bloat, moving logic out of code behind to unit test, improved web standards in ASP.NET 4 etc you still feel as though you are swimming up stream some what.

I much prefer to get down and dirty with ASP.NET MVC. It's refreshing to get involved in HTML and HTTP again in a way that was abstracted out of your hands with web forms. It makes you feel like a real developer again, omnipotent! Of course the framework and templates do a lot of the tedious work for you but let's keep that quiet ay... Omnipotent! Remember that, yeah.

It's hard to think only a year ago I was using web forms.

Contribution

This has obviously been around for some time but I think only during 2010 has Microsoft's commitment to open source and code contribution has really shone through. It had been displayed, proven and truly adopted by the community. Look at how much there is to gain from MVC contrib.

I would like to think this is why frameworks such as Entity Framework and ASP.NET MVC are evolving so quickly and more importantly in the right direction. Microsoft is really listening to the community now. Forums and polls about what you would like to see in the next version of Entity Framework for example.

It is not just direct listening either, I'd be extremely surprised if Microsoft weren't reading blogs, browsing stackoverflow and stalking twitter to gain insight into what the community love and what they are crying out for.

It's hard to think last year I didn't have a blog or a twitter account or contribute on stackoverflow or publish any code.

Follow britishdev on Twitter

4 comments:

  1. Any idea about ASP.NET MVC3 >

    ReplyDelete
  2. Completely agree about ASP.NET MVC 2.

    Not so sure about your comments on stored procedures though. "Business logic in the database" is a bit of a misnomer; it's actually provided by the database management system (DBMS).

    This may seem like splitting hairs, but consider this: What is the purpose of any DBMS other than to ensure the integrity of data within the database?

    Now consider one of the ways SQL DBMSs do this: Referential integrity within tables. A customer has a one-to-many relationship to Orders. What is this if not business logic? Should one not create foreign key references between tables then? After all, that is business logic outside the data layer. By your argument, FK relationships are bad, mmmkay?

    Such an assertion almost invalidates the whole purpose of using a DBMS!

    Regards, Matt

    PS. Great blog!

    ReplyDelete
  3. Thanks so much for your comment Matt. I see your argument that database architecture is of course aligned with business requirements.

    I was, however, thinking of a time I wrote a mortgage eligibility (and comparison) engine where a users' financial details are gathered and sent to a stored procedure that used a huge amount of logic to decide which of the mortgages, stored in the database, the user was eligible for.

    This was blatant business logic in the database. The only alternative was to return all mortgages and decide which they are eligible for using Linq-to-Objects (massive network transfer) or create a SQL command dynamically in code (messy).

    Cheers for you thoughts Matt. It's great to get such a well thought comments like yours and I'm glad you're enjoying the blog!

    ReplyDelete
  4. I don't agree with superdev. Foreign key constraints define real-world relationships that are independent of the business. Regardless of whether you work for stripeysocks.com or HSBC, the relationship between customers and orders is one-to-many. But each business will have its own business rules which belong in a layer separate from the database. That's my two cents.

    Colin, what's your view on other ORM solutions? I'm a big user of NHibernate, have you considered using this?

    David

    ReplyDelete