in

Platinum Bay

Peace, Love, and...

This Blog

Syndication


.NETicated

Frameworks

A couple weeks ago I bought Pro WF: Windows Workflow in .NET 3.0, as an eBook of course. I'm in chapter two, and something the author said made me stop and think.

"The term framework implies order, structure, and control. It represents much more than just a collection of classes. It provides a defined structure that you use when building applications. It requires that you follow a prescribed set of rules when using portions of the class library. But in return, the framework handles many routine tasks and allows you to concentrate on implementation of your business logic." – Bruce Bukovics, Pro WF: Windows Workflow in .NET 3.0, Page 33

This seems to me to be an awesome description of a framework, and is what I love about the .NET framework. It provides a platform and defined structure on which to build applications, and handles many routine tasks for me. I think I love frameworks. But I also recall a funny article by Benji Smith about frameworks and over-factorization. You really must read it. Go ahead, I'll wait.

It now seems I have two conflicting points of view. I myself have fallen victim to over-factorization, yet I would rather not build everything from scratch. But on deeper inspection, these ideas are not really conflicting; I think both authors make a valid point. And I think the .NET framework exemplifies both their points.

In the course of my career in technology, I have come in contact with many technologies: Java, ColdFusion, Perl, C++, Delphi, PHP, and of course .NET to name a few. Java for one is wrought with frameworks; Spring, Struts, JSF, RIFE, Seam, Spring MVC, Spring Web Flow, Stripes, Struts Action 1, Tapestry, Trails, WebWork, and Wicket for starters. Angusman Chakraboty said it well in his article Java Framework to Create Java Frameworks, "Too many Java programmer(s) want to create (their) own framework." He goes on to recommend a universal Java framework framework, which "should take at least a week to learn. It is advisable to have a steep learning curve with obtuse documentation. Anyone who finally masters it will be too tired and too horrified to ever venture into any other Java frameworks."

"On the other hand, the .NET Framework, and ASP.NET in particular, offer many advanced security features [built in] that go above and beyond such simple tasks as authentication and authorization."

- MSDN

To be fair, .NET has some frameworks as well. There is the ASP.NET Ajax framework, which was so widely accepted that it is now incorporated into the next version of the ASP.NET framework. But I think that Microsoft has gone way beyond Java by baking in many features and functionality, as well as integrating tedious tasks in into the framework, stuff that Java developers have to roll their own frameworks to accomplish.

I don't think any of us want to be writing raw code in C++ or FORTRAN or Assembly. But if you are creating yet another framework to build web applications (Struts, Tapestry, Spring MVC), something might need to be re-examined. Like why you're not using the ASP.NET framework with (most of) this built in.

I also understand that there may still be a place for Java; like a company with a heavy investment in non-Microsoft platforms (although NASDAQ is switching their legacy systems over to Windows and .NET), or a company with a lot of existing Java applications (though Random House, one of the world's largest publishers, converted their CodeNotes.com website from Java to ASP.NET). Java also has the advantage, for now, of multi-platform distributions (Mono isn't official, but the Micro-Framework on the Mac is a good start).

Despite this, for new product development there is no reason not to take a good, long, hard look at the .NET framework. I think you'll be surprised at the ease of use, the simplicity, the performance, and the power. I feel that .NET 1.1/2.0 finally brought Microsoft into the realm of enterprise frameworks, and with the advent of Workflow Foundation and Windows Communication Foundation (SOA) and .NET 3.0, it looks like it will be investing in this arena for quite some time.

Published Jun 14 2007, 07:55 PM by Steve
Filed under: , ,

Comments

July 21, 2007 7:35 AM

Pingback from  A quick search « .NET according to Bruce

 

Leave a Comment

(required )  
(optional )
(required )  
Add

About Steve

Steve Andrews is an independent consultant, INETA speaker, and Microsoft MVP for Visual Studio ALM. He has been working in technology for over ten years focusing on custom application development and Application Lifecycle Management. Steve is also Microsoft and IBM certified and a community fanatic having led sessions at nearly 100 events across North America. When he's not developing software solutions or engaging with the community about software technology, Steve is a closet singer and songwriter and plays the guitar and keys. Occasionally, Steve even gets to sleep. Occasionally.
Powered by Community Server (Commercial Edition), by Telligent Systems
© Platinum Bay | Some Rights Reserved Creative Commons License

Disclaimer: The information in this weblog is provided "AS IS" with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion. Feel free to challenge me, disagree with me, or tell me I'm completely nuts in the comments section of each blog entry, but I reserve the right to delete any comment for any reason whatsoever (abusive, profane, rude, or annonymous comments) - so keep it polite, please.