Robert McLaws: FunWithCoding.NET

Public Shared Function BrainDump(ByVal dotNet As String) As [Value]


<script type="text/javascript"><!-- google_ad_client = "pub-4330602465258980"; google_hints = "ASP.NET, VB.NET, C#, C#.NET, WindowsForms, .NET Framework, VS2005, Visual Studio, XAML, WinFX, Windows Workflow, WPF, WCF, Atlas, NetFX3, Visual Studio Orcas"; google_ad_width = 120; google_ad_height = 240; google_ad_format = "120x240_as"; google_ad_type = "text_image"; google_ad_channel ="4997399242"; google_color_border = "B6C9E7"; google_color_bg = "EFEFEF"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "002C99"; //--></script> <script type="text/javascript" src=""> </script>

You should 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. That said, I will most likely only delete abusive, profane, rude, or annonymous comments, so keep it polite, please.


Cool .NET Articles

My .NET Tools

My Articles

My MSKB Articles

The REAL Reason Behind the ObjectSpaces Furor

So I've read the news over the past few days about the delay of ObjectSpaces until the Longhorn wave, and a lot of people seem to be upset by it for various reasons. I've been watching this play out with interest, and made a few interesting observations about the situation.

First off, after the MVP Summit, I had a chance to sit down with Alan Griver, the Group Manager for the VS Data team at Microsoft. (He sometimes posts under “yag“) His team influences data teams across Microsoft, from the VSTO team to the SQL team to the FoxPro team, in terms of how these different data systems work in Visual Studio. When I specifically brought up the ObjectSpaces delay and the ridiculous amount of speculation surrounding it, he told me that when he joined the team several years ago, he committed to having a single data access strategy, and keeping it for as long as possible. In every prior release of VS, there was a different way to access data. He said that he wanted change that, and he did, starting with ADO.NET. When Whidbey comes out, it will be the 3rd VS.NET release without major data access changes, and for that we should thank him.

Alan also told me that one of his goals was to come up with a unified model for accessing data across most Microsoft programs. It would be nice, for example, to be able to load up Microsoft Money data the same way you can in SQL Server using ADO.NET. If you put aside the emotion and really think about it for a second, that's one of the key reasons they're putting WinFS into Longhorn, to remove the "program-specific silos" that happen in application development today, and allow WinFS to be not only a file storage system, but an information storage system as well. Think MSDE installed on every desktop by default, tied into the OS. Microsoft wants to make ObjectSpaces the way IT'S OWN teams get data out of WinFS in the Longhorn time frame. Now, if you actually, oh, I dunno, READ the news past the headline, you'll see that this is exactly what they said. And for most, normal, sane people, this makes a decent amount of sense.

So, ObjectSpaces is an important technology. Microsoft wants to get it right in V1. With every product being relied upon it when Longhorn comes out, they almost don't have a choice in teh matter. They don't want to have to wait for it to be usable until V3, like most Microsoft programs, they want it done right the first time. And that's admirable. It's not like you're not going to see bits shipped in beta form between now and 2006. You'll still get to use it, so what's the big deal?

The other interesting side of the furor comes from the O/R mapping vendors. As soon as MS announced ObjectSpaces, most of them went into an uproar. From what Thomas Thomacziek (of EntityBroker fame) stated in his comments to Jesse's post, he hired an attorney to file a lawsuit against Microsoft for it. He basically stated that he thought it was possible that Microsoft was so scared at that suit, that they held off delivery. Microsoft has $60B in the bank, and he thinks that a rinky-dink lawsuit scared 'em. Come on man, I mean seriously. You don't feel like you have to compete, so you have to sue? I didn't know Thomas changed his name to Scott McNealy.

Personally, I see it as a blessing that Microsoft even releases this kind of information, and so chould they. Anything less than that is incredibly myopic. Instead of looking at the situation and going "I have two-three years to fill a void now, AND plan for how I'm going to position my product when Microsoft releases theirs. Because I know that, no matter how good Microsoft's product is, it will staill have gaping holes that need to be filled. And the more I know about it today, the better position I can be in to fill those foles later." It's like telling Saddam Hussein you're gonig to invade his country 8 months before you do. Gives you time to plan for it.

But no. Most of these companies have bet their entire business model on one product. And they guard their market share like hawks. They don't see new players as a driving force for innovation, they see them as a threat that will likely destroy their very way of life, and they must protect the way things are at all costs. So they whip out their attorneys and their harsh language, and waste time they could have been spending gaining customers in the interim. Because they have yet to discover a very simple fact: If you take care of your customers, they will stay your customers. Who is going to rip out an entire O/R framework and replace it with Microsoft's if the existing code works, and works well? No one I know. At least, no one with any common sense.

Case in point. Microsoft may make the Whidbey "DataGridView" control that can keep the header, footer, and pager stationary, while scrolling the body area. Some component vendors would get scared and head for the hills, saying "I'm ruined. This component makes up 85% of my business." But I'm not like that. Why? Because I'm thankful to Microsoft for giving me ample leadtime before they enter the market, and I don't hedge all my bets on one product. If I can't make my product compete effectively with theirs in that lead time, I have more than enough time to see what ofther parts of the Framework need spackling, and whip something togther. That's called an effectiv positioning strategy, and it's way cheaper than using the Justice System as a means for beating a competitor.

It used to be, if you can't beat 'em, join 'em. It was an effective mentality that worked. Today its: If you can't beat 'em, sue 'em.

The bottom line is, your real beef is that you want this technology now, and if Microsoft builds it into the .NET Framework, you won't have to pay for it. You can shell out money right now and use any one of the fine products available right now that do the trick, but you don't want to. It's the mentality of a three year old... "I want it NOW! GIMME GIMME!", and it's ridiculous. Grow up. Seriously.

Let the flaming begin.


Jesse Ezell said:

Robert McLaws is a Microsoft shill and doesn't ever care about product delays :-)~.
# May 22, 2004 10:38 PM

Jesse Ezell said:

PS: I have paid for those "fine products" that do the trick" and they all fall short of ObjectSpaces. Hell, I wouldn't even mind paying MS hundreds of dollars for a version of ObjectSpaces that I could use, regarless of the fact that the APIs will change with Longhorn.
# May 22, 2004 10:41 PM

Eric Newton said:

Mr Entity Broker is chompin at the bit? Doesnt surprise me... his Customer Relations are as good as a donkey's.

As long as ObjectSpaces will be released as fairly stable betas, then the furor will subside, an in a sense produce the V3 for longhorn... fact of the matter is that it usually takes 3 times for ANY company to get something right...
# May 22, 2004 10:49 PM

Robert W. McLaws said:

I'm not a shill. As a business owner, I understand delays, and I know that MS knows more than I do about the situation, and they are going to bake the best decision they can. The lesson is, don't plan your life around a product that isn't finished yet.
# May 23, 2004 12:57 AM

Frans Bouma said:

Robert, please do one of the following:
1) read about data-access, O/R mapping and ADO.NET and then go back to your visual blogger tool and edit your blog
2) stop blogging about data-related material.

Reading this entry I can only conclude: you don't understand data related material nor do you understand the O/R mapping business nor do you understand what some other people find important nor do you understand what's the troubling issue at hand.

For example: O/R mapping has NOTHING to do with a FILESYSTEM. People who are developing applications which target a database are not helped with a tech that is integrated in a FILESYSTEM.

Oh, and unified data-access was a REALITY in ADO. It is NOT in ADO.NET.

I agree with the fact that no-one should plan a project around a product that isn't released.

Jesse: I don't recall having seen your name turn up in our customer database ;)

Eric: Objectspaces is dead in its current form. The builds handed out are not continued. (nor were they stable, but that's another story).
# May 23, 2004 5:32 AM

Robert W. McLaws said:

Frans, you just proved yourself as myopic as I thought.

Again, Frans, maybe you should focus YOUR time on attaining more customers for yourself while Microsoft continues to delay. You see a failure, I see a business opportunity. Too bad you're the one in the object-orientation business.

As for my comments about a unified storage system, you focused on FILESYSTEM while I was focused on a data access model that was unified across ALL MICROSOFT PRODUCTS. That was NOT ADO. I'm talking about the ability for different programs to access data using the same methodology across 100+ products and 7 divisions at Microsoft. Maybe the strategy had business reasons as well, and was not SOLELY directed at screwing you over. Maybe Microsoft had other factors to consider, like the business implications of aligning 100 product teams into one reality.

Just a thought.
# May 23, 2004 5:55 AM

Christian Liensberger said:

There are also free O/R frameworks out there. I'm developing one and I think ObjectSpaces is very cool! But I guess they will know why they aren't going to release it next year.
Perhaps giving it away as a stand alone would be nice for the developers out there who used the beta versions.
# May 23, 2004 6:59 AM

Frans Bouma said:

" Frans, you just proved yourself as myopic as I thought. "
Whoa, 'myopic', I hear that for the first time, I had to look it up in my English - Dutch dictionary.

I can assure you, I'm not myopic (but perhaps you thought I wasn't myopic at all ;)). I'm also not bitter or other miserable things. I also didn't opt to go with Thomas on the lawsuit for a couple of reasons. Nevertheless, you fail to see my POV. Which is fine though, I just wonder why you fail to see any truth in my POV.

"Again, Frans, maybe you should focus YOUR time on attaining more customers for yourself while Microsoft continues to delay. You see a failure, I see a business opportunity. Too bad you're the one in the object-orientation business. "
First, there is no delay as Objectspaces will never be shipped as an O/R mapping add-on.
Second, I don't see a failure, I see misguided resources at MS to produce the wrong technique.

What could have been when Objectspaces was shipped as a part of ADO.NET is nice for a pub-talk after a couple of beers.

FYI: ADO does allow you to access data uniformly. Just write a driver and you're set. That is similar to ADO.NET, with one difference: ADO offered a unified DML mechanism as well, ADO.NET doesn't: you can't port code targeting Oracle over to SqlServer, as you have to deal with OracleException classes, oracle specific SQL etc. In ADO you could open a table, and add/remove rows with the Recordset object, without SQL.

FYI2: I don't see MS screwing me over at all. I just are worried about the focus changes in products in development. This is not good. Not only does it create delays, it also makes features being cut due to lack of time.

FYI3: I agree with you on the point that people shouldn't whine NOW because a technique is not coming to them in 2005. I also fail to see why people would wait for Objectspaces in the first place. As Christian also points out, there are free O/R mapper layers available today. They are also not that friendly to use, but Objectspaces wasn't either.
# May 23, 2004 7:43 AM

Addy Santo said:

Flamewar! Flamewar! :)
# May 23, 2004 1:16 PM

Robert W. McLaws said:


How is ADO.NET not the same way? Write a provider for your system and you're all set. And in ADO.NET 2.0, you'll have a whole namespace of non-connection-specific commands that you can use against ANY DB, and it will select which provider to use based on properties in the connection string.

In regards to your third point, I don't think O/R technology will be widely adopted until it is friendly to use. Because no one wants to have to body-check a component to get it to work. Until O/R mapping technology is intuitive, it won't hit mainstream. And, while I think all you O/R mapper guys are great, and your products are technically accurate and work very well, it's almost like you view O/R programming as an elite sort of club that you've put together. It's not designed for the masses. You have to know way too much about each respective system to get it to work.

I would challenge you guys, in the time before MS releases ObjectSpaces (I would argue that it will still be an add-on eventually) to really get into the usability issue, and do some research on the discoverability of your products, and enhancing the out-of-the-box experience. Making something intuitive is not dumbing it down. If you can achieve that, you can out-flank Microsoft.
# May 23, 2004 4:21 PM

Frans Bouma said:

I spent 6 months making it as intuitive as it can get. It's point, click, go. If you want MORE intuitive O/R mapping, you don't understand O/R mapping.
# May 23, 2004 6:16 PM

Shannon J Hager said:

I don't think LLBLGen Pro could be much more intuitive and easy to use out of the box without the user losing too much control. From the documentation to the code generation GUI to the easily understood (and remembered) class names in both the generated code and in the SD.LLBLGen.Pro namespace to the actual usage of the generated classes, I think Frans has hit the "sweet spot" between power, ease, and extensibility.

# May 23, 2004 9:59 PM

Jesse Ezell said:

Yah, we did the ORM stuff before your product was out (or at least before I knew about it). Then, if I remember correctly...which may not be the case, you originally had that architecture that I really thought blowed. :-)
# May 24, 2004 12:07 AM

Frans Bouma said:

"Then, if I remember correctly...which may not be the case, you originally had that architecture that I really thought blowed."
If my english is that good, I have to read this as that you didn't like the architecture of the code? Which of the 2 different architectures supported? :)
# May 24, 2004 6:02 AM

Lynn Eriksen said:

It's not completely ridiculous to want ObjectSpaces now. It would provide a very solid base for building complex business object that we have to code by hand. Many of us thought that it was going to be an add on to Whidbey that MS could afford through the new purchases of VStudio. Since ObjectSpaces has for the most part for the pasts few years been thought of as an abstration for relational data (ie the dataset), a lot of expectations were set. This all seems reasonable.

The change seems reasonable as well. If MS is going to promote ObjectSpaces internally with its own frameworks - WinFS, MBF - it makes very much sense that they would want to get it right the first time out the door by making sure it hooks appropriately with the new technologies.
# May 25, 2004 2:30 PM

Kevin Daly said:

If the news (and the announcement was sketchy, if not cryptic) means what it appears to on the face of it, then it is actually much worse than most people are assuming.
If ObjectSpaces is only released as part of Longhorn, then there will be no ObjectSpaces for server-side data access until at least 2007 (with the release of Longhorn Server.)
Which means we might as well forget about it.
# May 25, 2004 3:41 PM

Paul Gielens said:

And this even got linked via TheServerSide, ugh
# May 25, 2004 5:15 PM

Lynn Eriksen said:

I am guessing that it's more specifically going to be part of WinFX and NOT .Net Framework 'Orcas'.

That's the big issue from my perception.
# May 25, 2004 5:16 PM

Cynic said:

Your premise that you had "interesting" observations turned out not to be the case.
# May 27, 2004 11:34 AM

Grant Carpenter said:

Why are all O/R tool vendors so damn rude? Seriously, you guys should form a consortium and pitch in for some p.r.

You've collectively made me switch paradigms and seek refuge in hibernate.
# May 28, 2004 9:47 AM

Ray Jezek said:

I completely agree with Grant. I think most people interested in learning more about OR mapping don't have the courage to ask a question in a public forum for fear of being pummeled by the broma-thona one-two. So they take the high road and avoid the concept all together... and they avoid the products behind the peersonalities as well.
# June 2, 2004 3:02 PM

Frans Bouma said:

"I completely agree with Grant. I think most people interested in learning more about OR mapping don't have the courage to ask a question in a public forum for fear of being pummeled by the broma-thona one-two. So they take the high road and avoid the concept all together... and they avoid the products behind the peersonalities as well."
if 'broma' is 'bouma' and that you mean me, I would like to ask you to point me to a single answer from my side to a person who asked a question about O/R mapping which I answered rudely. I try to be as polite as possible to people who ask questions about O/R mapping or even have different ideas about how O/R mapping should be. If you don't like what I have to say as in: you disagree with me, that's fine by me, make no mistake about that. I'll be the last person who wants someone else to shut up just because he/she disagrees with me.
# June 3, 2004 4:42 AM