My last post was in late June when I blogged on WinFS. At that point I hinted that there was a relationship between MBF and WinFS. Since then, my blog has gone dark.
I'm sure this was very unsatisfying for anyone who has an interest in MBF. But hopefully you can now start to see the reasons behind the blackout. As a personal philosophy, I want to make my best effort to only deliver you reliable information. If I truly don't have reliable information, then I would rather stay quiet.
Things weren't very reliable over the summer. I don't think this should be a big surprise for anyone given the recent announcements about the Longhorn replan. Avalon and Indigo are planned to ship co-incident with Longhorn but are not part of the operating system. WinFS also is not part of the operating system and is planned to be in beta when the operating system ships and be delivered after that in production form.
As I hinted in my June post, MBF does have a relationship with WinFS. So MBF had some uncertainty over the summer as well. I'm not certain that everything is sorted out yet. But there have been some recent public announcements made and I would like to comment on them.
First, we have to establish the relationship between MBF and WinFS. At some level MBF has a relationship or dependency on all the components of WinFX. (WinFX being the name used to refer to Avalon, Indigo, and WinFS in the collective sense). MBF needs Indigo to enable its mission to build Service Oriented business applications. MBF will enable developers to build Avalon-based user interfaces for those business applications as well.
But MBF has the deepest relationship with WinFS. At the surface, they look totally different... WinFS is (was) used to show pictures in the "My Pictures" folder on your hard drive and MBF is used to build multi-user ERP applications.
Under the surface, MBF and WinFS were also significantly different. WinFS is basically a single-user system (with some peer-to-peer type synchronization capabilities). MBF is based on an N-Tier architecture. WinFS is optimized for a client machine... memory footprint needs to be very small. MBF is optimized for a server machine where you might want to consume more memory if it improved overall scalability.
So MBF and WinFS were very different. But should they be?
I specifically selected examples for WinFS and MBF to be as different as possible (My Pictures vs. and ERP system). But there is alot of overlap in other scenarios. Suppose you're building a small business application. Take Microsoft Money or Quickbooks or Peachtree as an example (Disclaimer: These are just examples... this should not infer in any way that any of these products are really using MBF or WinFS). Which would you choose: MBF or WinFS?
You want your product to run well on a single machine (small memory consumption) and you would want the deep shell integration that WinFS would bring. Wouldn't it be fantastic to finally let users see their Customers and Orders in the shell? But a significant portion of your business is selling multi-user systems. While WinFS synchronization is great for keeping your pictures synced across machines, it really isn't going to be viable to build a multi-user business application. So you need the server-side N-Tier capabilities that MBF provides.
Earlier this year, it became apparent to us that ISVs really need one combined platform which merges the best of the WinFS and MBF data persistence stories. A formal decision was made last May to begin an effort at aligning WinFS and MBF. We (MBF) formed a team of 24 people to work on the merger. I personally took the task of leading the development effort for that team.
We worked over the summer taking MBF N-tier code, plus other goodies related to business logic support and worked to integrate that with the WinFS world. We had alot of fun. Got to work in the innards of Longhorn.
But over the summer it also became clear that some changes were going to be made with the Longhorn plan in order for it to ship as planned in 06. And adding more complexity by trying to align MBF and WinFS, while needed and important, was only making the schedule issues worse. Now I do <not> want to infer that MBF integration was responsible for the overall Longhorn reset! We were a very, very small part of a much more complex situation.
However, at some point decisions had to be made. We could not align MBF and WinFS and release Longhorn on time. So the decision was to continue working on aligning MBF and WinFS, even if it meant that WinFS would not be part of Longhorn. You can see this in any of the Longhorn reset PR. The press release says: (roughly) "WinFS was removed from Longhorn to make sure that it got server-side support". While MBF is not mentioned by name... the server-side support for WinFS is at least partly coming from the MBF alignment.
So where are we now? Here is a link to one story: http://www.techworld.com/opsys/news/index.cfm?NewsID=2170&Page=1&pagePos=14
The story is generally factually correct. The current plan of record has MBF joined at the hip with WinFS. If WinFS slips, then so does MBF. The story also correctly notes that there is still a possibility that MBF might ship earlier:
"The current plan remains to ship MBF in the WinFS time frame. The MBF team, as a result of the decision to remove the link between WinFS and Longhorn, is investigating if it is possible to release earlier, but no commitments can be made at this time," a Microsoft spokesman said.
But to make things clear... there is <no> move afoot to sever the alignment between MBF and WinFS. We still have every intention of having a single API long term. But it may be possible to ship something early which still aligns with a "1 API" story. Before the Longhorn change, the combined WinFS \ MBF had to support both LOB scenarios and "My Pictures" in the Longhorn shell. Now the WinFS has been removed from Longhorn it <may> be possible to ship a version early which only supports LOB. It would still be one API, but it would be LOB focused in the near term, with more Shell focus added for the next release of the OS.
There are no promises here. The plan of record is that MBF will get aligned with WinFS. If we can figure a way to accomplish that and still ship something earlier, then that will be considered a bonus. Nothing is decided yet, but I can tell you that we are working very hard to get MBF to our ISVs as soon as possible.