Microsoft LINQ Resources for September 20th

Community Thoughts

  • Werner Moise has been “reflecting” on LINQ and the more time he spends, the more he's realizing “how well thought out and practical it is”. He has some excellent points.
  • Dinesh wants to know how you feel about attributed-based O/R mapping vs. external XML Files. He also talks about the connected vs. disconnected nature of DLinq. Also, here is the code from his DLinq demo at PDC.
  • Jomo Fisher shows how to create a custom aggregate function in LINQ using extension methods. Sweet, but it don't work for DLinq, but maybe then you want to look at User Defined Types and Aggregates in Yukon/SQL Server 2005. Oh man, this is going to take some architectural distillation.
  • Jon Galloway is scared by code maintainability problems introduced by DLinq. Jon and I share a common PowerBuilder background, where you could put SQL right inside your PowerScript (not unlike Progress either). This is not really a DLinq problem, but a code separation, high cohesion-loose coupling problem. The answer back in the PowerBuilder day was to put all your data access in datawindows. The .NET answer today would be componentized DataAdapters or DataReaders, but we still see the bad practice of people intermingling data access code in other areas of their application. But perhaps maybe DLinq does make this a slippery slope. Maybe we should all just stick to TableAdapters - yikes!






What am I missing? Drop me a line on this blog. I'm heading out next week to a VB Software Design Review and the MVP Summit in Redmond, just because there isn't enough new technology in my life these days.

Integration VSTS with Project Server

This article on gotdotnet explains in 67 pages of detail how you can integrate VSTS with Project Server for two way automatic synchronization of work items. Nice.

More on LINQ, XLinq and perspectives.

On XLinq

A lot of the questions about XLinq are around how it will sit beside/replace XQuery (and other XML query/transform techniques). Back when I first started doing some .NET 2.0 training in February, I was a bit miffed that XQuery had not made it into the .NET Framework. Now don't get me wrong, it's not the most elegant thing in the world, but the excuse that “it's not a standard YET, so we can't put it in the framework“ seemed a little insincere given that the SQL team had managed to jump over that hurdle. But given LINQ/XLinq, maybe this now makes sense. We'll have to get our feet wet and see how LINQ evolves over time into a shipping product.

  • Michale Rys gives his thoughts on the relation between XLinq and XQuery. Interestingly he points out that XLinq uses about 30% less memory than the DOM.
  • Mike Champion's thoughts also comparing XLinq to the DOM.
  • Soumitra Sengupta also adds his 2 cents on how XLinq is positioned with the rest of the XML processing technologies.
  • Dave Remy gives some also talks about how XLinq's implementation was from the ground up, but inspired by lessons learned on the back of the DOM.

Other perspectives floating around....

  • On an unrelated note, M. David Peterson has an interesting post from one of his colleagues, with specific mention of comparisons between LINQ, and Haskell.
  • Kent Tegels also shares his first impressions.
  • Paul Wilson has a critical review of DLinq. He rightly questions the “sqlserver only“ aspect of DLinq. I'm hopeful that this is only a temporal condition. Paul also mentions, among other things, poor support for stored procedures in DLinq, but at this point, I'm not convinced that is all too important. I have to think about that some more.
  • Werner Moise has some in depth thoughts.

Some Articles...

  • Infoworld has an interview with Anders.
  • Scott Swigart has an article on VB 9 in Dr. Dobb's with interviews with Paul Vick, Amanda Silver, Erik Meijer, Rob Copeland, Alan Griver, and Jay Roxe.

And if you are at PDC and want to get more information, Don Box is hosting a LINQ Panel discussion tomorrow and he is looking for your questions in his blog comments.

Access VSTS information - from Unix, Mac, and Eclipse with Teamprise

This is often a common push back or at least concern with big shops whom are considering adopting Team Foundation. How do we integrate our Java Developers (or non .NET Developers) into the Zen of Team System?

Enter TeamPrise. This looks like a serious gap filler. On their site you can download a trial that works with the July CTP of the Team Foundation Server. Lastly, TeamPrise is a division of SourceGear.

UPDATE: Also check out devBiz X5 web client - work item tracking via the browser - everybody has been asking for this one, say for example to integrate customer change requests into the team work flow. It doesn't yet seem to allow you to only edit certain types of work item types (they really need that) or to have an external authentication scheme. [Eric Jarvi]

Introducing Windows Workflow Foundation (and you thought you wouldn't have to learn BizTalk)

If you're not using BizTalk today in your applications, probably the #1 reason is that you can't afford it. “It's overkill” is probably a big reason as well, but I consider that a variation. Seriously, how many applications do you write that don't have some component of workflow? Maybe you don't, but if it was baked into the framework, and you didn't have to install (and pay for) a workflow engine, maybe you'd take advantage of it - no?

Windows Workflow Foundation, a new component of WinFx was announced today. Lots of great resources here. Including overviews, labs, and even an MSDN VirtualLab so you can play with this stuff without having to install it. Also keep tabs on the blogs of Scott WoodgatePaul Andrew, and of course our own Matt Meleski

You can download the beta 1 of the extension for Visual Studio 2005. Don't get too carried away yet - it's not going to be released with 2005, it will be released in the second half of 2006 (likely along with the rest of the WinFx bits).

What is the world saying about Microsoft's C# and VB LINQ Project

I have to say that the LINQ syntax in VB hits much closer to the mark than C#. More on that later. What is everybody else saying out there about LINQ?

  • Erik Meijer says that VB has become his “programming language of choice.“
  • Sam Gentile “LINQ is freaking cool“, but he's feeling the beta pain because the VB and C# tech previews work with Beta 2 of 2005 and he just installed the VSTS release candidate.
  • Rédo believes LINQ “will represent a tectonic shift in the way that VB programmers will work with data“.
  • Somasegar believes that LINQ is a signifiicant developer productivity enhancement and he wants to hear your feedback.
  • Sean Chase points out some interesting ideas using lambda expressions with LINQ.
  • Frans Bouma compares DLinq to O/R mappers and points out the negative side of attribute based mapping for use in cross db platform support. There is a good follow up discussion in the comments on that post.
  • Marius Gheorghe likes the LINQ idea, but not so much the implementatio and seems to agree with Frans.
  • OrangeVolt hopes that Sun will adapt this for Java.
  • Ben Galbraith gives his comments on LINQ from a Java perspective. In particular, he's happy to see the type inference feature added to C# and wishes Java could do the same. The comments also contain some interesting discussion on Java and .NET.
  • Over at the SPS Weblog, LINQ is inspiring a Visual FoxPro Object-Oriented SQL. Don't get crazy, he's only got 1 hour of development under his belt.

There is also an interview with Anders Hejlsberg and Paul Vick worth reading. Why does Paul look so much happier than Anders in these photos? No doubt it is the VB syntax simplicity :)

Linq Resources

As you may have heard, the LINQ(Language Integrated Query) Project was announced publicly today at PDC. There will be a lot more information coming throughout the week, but here's the resources available as of today.




Visual Basic


Microsoft LINQ Bloggers

Upcoming Chats

UPDATE: Added Dinesh, Matt and Luca to the bloggers list.
UPDATE 2: Added Rob, Erik, and Amanda to the bloggers list.


Reflections on the PDC Day 1 Keynote

Bill Gates gave a pretty typical high level keynote to introduce the keynote this morning. He talked about the past, how far we've come, and how now is the most exciting time, and that we are in most exciting industry. Not that I don't disagree, but I swear I've heard this keynote before.

After Bill, a series of VP's and Architect's ran through more product details. Things started to get much more interesting at this point. Chris Capossela gave an end user run down of Windows Vista and Office 12 - which will be both released at the same time near the end of 2006.

The UI is just stunning (as it always is in these demos). It was also nice to see the QuickSearch text box integrated through both products. Not unlike Google Desktop Search, and using the same engine as MSN Desktop Search, the QuickSearch text box gives context sensitive searching through the application. If you're in a document explorer - you can search there for documents. If you are in the start menu, you can easily search for applications (and recent documents). If you are in outlook you can easily search your in-box, contacts, etc. Of course you can do broad computer searches too, but that context is nice.

Chris also showed off Sidebar which isn't really big news, but he also showed the audience Sideshow. Sideshow uses the same dock-able gadgets that Sidebar does, but re-use them on what I can only describe as a built in Pocket PC device that is built into the cabinetry of your laptop. This allows you to check real-time information (email, appointments, etc.) without turning on or booting up your laptop. Expedia had a nice gadget working in Sideshow that showed up to the minute flight status. Nice.

RSS is also taking a prominent position in Vista and Office. An RSS store was announced that would store subscribed RSS feed content. This content would be regularly downloaded automatically, and the content would be available to the Sidebar, Outlook, IE7, and your own applications. Cool.

Office 12 has a new user interface that hopes to make more of its features discoverable. At first glance I wasn't all too excited about this, but I'll reserve my judgment until I play around with it. The quick “wizard“ like features were absolutely stunning though.

The integration with Outlook and Sharepoint is quite impressive. We are all accustomed to having our email/contacts/appointments offline stored in our outlook store. With Office 12, you can keep in sync with any Sharepoint folder to keep those files on your local store. Sweet. Better yet, a special new Sharepoint List for sharing PowerPoint decks. When you upload a PowerPoint file, an item appears in the list for each slide. From within PowerPoint, I can create a new deck, and pull individual slides from the Sharepoint server. You can optionally have it keep that slide up to date so if a new version is uploaded to the server, you'll automatically get it. Corporate plagiarism has just become so much easier.

After Chris's “consumer“ demos, Jim Alchin came out with Don Box, Chris Anderson, Anders Hejlsberg and Scott Guthrie. Jim started by giving some demos of some interesting plumbing bits. One cool thing in Vista is Super Fetch. Super Fetch is a preloaded memory cache of things you'll likely need, but unlike typical hard drive caches, it basis it's decisions on analyzing your behavior over days, weeks, months to determine what an idle machine should be preloading. The second part of his demo tied in very nicely where he showed that any USB Memory Stick could be plugged into a Vista machine and it would automatically start using it for expanded virtual ram. That totally rocks for laptops which can quickly max out their ram capacities.

Don and Anders went on to talk about some big news, namely the Language Integrated Query (LINQ) project. Linq provides a query engine on top of XML, Object and Relational data stores using a common query language reminiscent of SQL. No, this isn't an O/R mapping tool, but you can see how they may have wanted to delay ObjectSpaces until they got Linq out the door. I'll have more on this in my blog in the coming days. Attendees at PDC are getting Linq bits to try out, and don't forget to stop by the track lounge to pick up a copy of a Linq whitepaper. 

Next Don and Chris messed around with Indigo, and they also created a goofy Avalon application. Scott Guthrie came out to show off the Atlas product which is a set of cross browser javascripts and server side ASP.NET 2 controls to make Ajax style programming a snap.

To close out the lengthy presentation, Jim brought out a few other people to demonstrate complete applications to bring up the wow factor, including Microsoft Max and a kiosk application created for the North Face.

UPDATE: Dinesh Kulkarni gives some inside scoop on how ObjectSpaces is dead, or rather morphed into DLinq. It would appear ObjectsSpaces is not something you'll see built down the road on top of Linq.

Download Avalon Indigo Peer to Peer Sample App Project Max

The MicrosoftMax application that was demoed today at PDC is now available for download here.

The application allows you to share and publish photo slide shows using an Indigo Peer to Peer channel. The beautiful presentation layer is provided by Avalon.

Download ATLAS Toolkit for AJAX development on ASP.NET 2.0

The community preview site for ATLAS is now available as announced by Scott Guthrie at today's keynote during the PDC Conference in LA.

Now availalable is:

  • Documentation
  • Hands-On-Lab
  • Quickstart Tutorials
  • Project add-in for Visual Studio 2005 Beta2 (with it's own hands on labs)

UPDATE: Scott Guthrie has code snippets posted from the keynote demo.