Saturday, March 31, 2007

How to do (Almost) Everything in Active Directory via C#

I found this really nice article on The Code Project. Very useful if you need to use Active Directory within your .NET applications.

Friday, March 30, 2007

Developer & IT Pro Days 2007

Great sessions and content on the Developer & IT Pro Days 2007. The following sessions where my favorites:

WCF communication patterns: more than request-reply and Beyond ABC: WCF practices from the field by Christian Weyer.

These ones were really nice! Not just plain marketing about how great WCF really is, but some real world stuff from the speaker's own experience. He's right you know. When you start looking further than the marketing stuff, you see the first version of an over-engineered framework for creating services: but I still love it!! I mean, endless extensibility options: what's not to like. This boring topic was very well compensated by the speaker itself an his speaking skills. Kudos!

Team System for Database Developers - Stuff you wish you had yesterday, Implementing Continuous Integration: With and Without Team System, FIT for acceptance testing: Beyond Unit Testing and Test Driven Development by Roy Osherove.

This was actually the first time I could go to his sessions and very much appreciated his teaching skills. "Data Dude" is really cool, but there is one major drawback that makes it almost completely useless for me to use it: no support for other databases except SQL Server 2000 and 2005. At my current employer, we are using DB2 most of the time. I will definitely use "Data Dude" when I'm on a project that uses SQL Server. The session on continuous integration was priceless and we are going to start using it on Monday.

The .NET Language Integrated Query (LINQ) Framework and C# 3.0: Future Directions in Language Innovation by Raj Pai.

During his sessions, he dumped the slides and went straight to the code. That's the way to present new C# features! Besides the fact that he's a very nice guy, I'm also glad that he's the Group Program Manager (GPM) of the Visual C# team. All the new LINQ features in C# 3.0 are originally coming from dynamic languages. The Visual C# team managed to implement all these features without sacrificing type safety. That's a great accomplishment! After one of his sessions I asked him if they are going to sacrifice some type safety in order to implement more dynamic language features. I mentioned that it's crucial to promote unit testing before doing such a thing. He recognized that and said that they were promoting more unit testing within Microsoft itself before making this the strategy to their community. He said that this was going to take some time, but that it's definitely the way to go. It was actually very reassuring to hear that. We definitely got to have some more testability features from the .NET Framework (especially ASP.NET). If they can accomplish this and reflect that to the entire .NET community, they've made one happy developer!

Tuesday, March 27, 2007

Developer & IT Pro Days 2007 - Pre-Conference

I followed the web development track today. Jeff Prosise delivered great content in his sessions on ASP.NET AJAX and WPF/E. I'm still a bit brainwashed by the propaganda, but I'm really impressed by his speaking and teaching capabilities.

I loved the part were he urged to not use the UpdatePanel control. This because the amount of data between the client and server is too much overhead. He advised and showed us how to use some client-side JavaScript to do the trick without sending too much over the wire.

In his session on the Microsoft AJAX Library, he covered some of the undocumented features and their capabilities. Very nice overview, putting his own experiences into the open.

His session on WPF/E was also nice, but one that could not match the level of the earlier sessions. Maybe because WPF/E is still CTP and lots of it's details is still subject to change.

The only downside of the Microsoft Web Story is it's lack of testability and it's abstraction leaks. As Jeff stated in one of his sessions: ViewState sometimes can get in the way. Well put!

For testing the client-side part, I definitely should take a closer look to what WatiN has to offer. I'm really looking forward to some MVC/Rails framework from Microsoft. 

To conclude this post, the overall quality was great and well worth its the time. Two thumbs up! 

Monday, March 26, 2007

Tuesday, March 20, 2007

The parallel programming challenge

Some time ago I wrote a post about the urgent need for more multi-threading support from Microsoft. Apparently, my prayers are answered! Bill Gates himself talked at the latest MVP summit about the importance of parallel programming and it's challenge for the .NET community.

Friday, March 16, 2007

Thrill seekers and Fear avoiders

From my previous post, you can guess that I'm definitely a Thrill seeker. What kind of developer/person are you?

ASP.NET Model-View-Controller Framework

This is just about the best thing I've heard in the last couple of years. Scott Guthrie showed a prototype of an MVC framework on the MVP Summit (ship it!).

This framework can be compared with Ruby on Rails and MonoRail.  A handler factory that determines from the URL which controller to instantiate and load. From the description, it sounds very cool and I hope that Microsoft will do the right thing: testability and maintainability right out-of-the-box. We can only hope that Microsoft will pick up some of the ideas behind the existing open-source frameworks. 

It has been a long time since I've been this excited about some new stuff coming from Microsoft. I would love to get my hands on some bits!

Thursday, March 15, 2007

Persistence Ignorance

The blogosphere is full with posts about how the ADO.NET Entity Framework is violating Persistence Ignorance by letting domain classes inherit from an abstract base class in order to be persisted. In addition, you have to put attributes on the properties of your class. Besides that you also need to have three mapping files. You can find more info in the following posts:

This is what I believe a huge mistake made by the ADO.NET team. They should provide a mechanism that has enough with the three mapping files. Besides that, it should be possible to use an abstract base class (or interface) and attributes on properties, without the mapping files. This for the people who don't care about Persistence Ignorance. For those who want to keep their domain model free from all kinds of data dependencies (like me) would like to have mapping files only.

I think that Microsoft is going to have a hard time keeping up with NHibernate. NHibernate is already providing these two mechanisms separately. Please let them change their mind before RTM! 

Thursday, March 08, 2007

The Underlying Problems of TDD in the .NET World

This post of Jeremy D. Miller hits it right on the head: 

In .NET development, and especially ASP.NET WebForms development, you often have to go out of your way to create testable code.

Also see my earlier post about What's wrong with ASP.NET. I'm also glad and pleasantly surprised that Scott Guthrie joined the discussion (read the comments). You should definitely read his comment as it contains lots of useful information.

ScottGu mentions the Plasma project on CodePlex.

It allows you to create an ASP.NET application in-memory (without requiring a web-server or a separate process), and allows you to simulate http requests to ASP.NET (effectively mocking HttpContext objects through the pipeline).

Why isn't this project discussed all over blogging land? When you read the Weblogs@ASP.NET the last couple of days, there are like a thousand announcements that the new CTP of Visual Studio Orcas is available, but nothing about Plasma. Something to have a closer look at!

ScottGu also recommends using WatiN for integration tests. Very interesting as this is also an open-source project ;-).

What it all comes down to is the fact that applying presentation patterns (like Passive View, Model View Controller, ... etc.) is somewhat awkward with the current versions of ASP.NET and it's code-behind / event model. What I would like to see in the next version of Visual Studio is that you have no other option than to separate your code into a view and a presenter/controller (and add some more testability options while they're at it). I very much like the approach of MonoRail and I hope that it will soon get the credits it deserves. 

Again I'm glad that a smart guy like ScottGu appeared on the stage and hopefully he will make a difference.

Wednesday, March 07, 2007

Domain-Driven Design

I'm so much into Domain-Driven Design! I already read Applying Domain-Driven Design and Patterns and I just finished reading Domain-Driven Design: Tackling Complexity in the Heart of Software from the DDD guru himself. If you should read one book about software design, than this one is definitely it.

The only downside of these rather abstract books is their lack of (real-world) examples. I'm glad that Tim McCarthy is writing a book with the intention to clarify this complex subject. A case-study of a real-world application that uses Domain-Driven Design concepts should do the trick. I'm looking forward to read his book and get some insights about how others are applying the DDD techniques. I'm eagerly reading the Domain-Driven Design Yahoo group to feed my brain and I already learned a lot from the people there.     

Tuesday, March 06, 2007

A lean mean blogging machine

I'm convinced that this guy does not sleep at night (or his time management must be awesome). He does so many blog posts a day, he must be a cyborg of some sort ;-) or is he a true hero?  Kudos to Oren Eini for his great content and learning me how to become a good programmer someday.