Microsoft has released a number of exciting new tools and technologies that certainly bear some watching! These are preview releases so the usual caveats apply about installing these on a production system.

The "home" page for Microsoft's Data Platform is here and it contains the most up to date information about the various shiny new pieces.

The main bits are ADO.NET Entity Framework Beta 3, ADO.NET Data Services CTP1, and ADO.NET Entity Framework Tools CTP2.

So what exactly is the Entity Framework? It's a toolset and framework that enables a developer to visually design and model data driven applications, both forms based and web based.

Collectively these technologies are part of the ASP.NET 3.5 Extensions which are in preview mode at the moment. Combined these technologies allow a developer to expose data from their applications in well known formats, some of which are not Microsoft specific such as JSON and REST and also in standards based formats such as XML.

There are a number of QuickStarts that the ASP.NET team has made available. Also as part of this release the ASP.NET MVC framework is available.

Go check it out!

 


 
Categories: .NET | ADO.NET | Ajax | ASP.NET | Programming | SQL | Visual Studio


December 8, 2007
@ 09:30 PM

Rhys, my oldest son, becomes a teenager tomorrow, December 9th by virtue of being 13.

PC080007

I took this picture of him a few minutes ago, he has several friends over for a sleepover tonight. They are playing an XBox game and will probably stay up way to late as usual.

He is an avid gamer and very creative, he likes to draw and tell stories, write and read. I am constantly surprised by how fast they grow!

Anyway, wanted to take a moment to acknowledge one of the prime reasons I do what I do, after all, we work for our families!

Happy Birthday Rhys! Many, many more!

Cheers,

Robert


 
Categories: Family | Misc | Ramblings


Ray Ozzie proposed his concept of Simple Sharing Extensions back in 2005, and then more or less went silent. Until now!

Another Live Labs technology preview release arrived this week. It's called FeedSync and it is the current incarnation of the concept Ozzie developed to allow data sharing over web protocols like RSS.

The initial specification is available as version 1.0 at the time of this writing. It extends both the Atom and RSS specifications to incorporate item sharing which Microsoft defines as "bi-directional, asynchronous synchronization of new and changed items amongst two or more cross-subscribed feeds".

(Hmmm, calendar sharing anyone?)

The samples in the specification deal with a fictional task list example. Here is the code (emphasis added) for the sample RSS feed.

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:sx="http://feedsync.org/2007/feedsync">
 <channel>
  <title>To Do List</title>
  <description>A list of items to do</description>
  <link> http://example.com/partial.xml </link>
  <sx:sharing since="2005-02-13T18:30:02Z"
    until="2005-05-23T18:30:02Z" >
   <sx:related link="http://example.com/all.xml" type="complete" />
   <sx:related link="http://example.com/B.xml" type="aggregated" 
    title="To Do List (Jacks Copy)" />
  </sx:sharing>
  <item>
   <title>Buy groceries</title>
   <description>Get milk, eggs, butter and bread</description>
   <sx:sync id="item_1_myapp_2005-05-21T11:43:33Z" updates="3">
    <sx:history sequence="3" when="2005-05-21T11:43:33Z" by="JEO2000"/>
    <sx:history sequence="2" when="2005-05-21T10:43:33Z" by="REO1750"/>
    <sx:history sequence="1" when="2005-05-21T09:43:33Z" by="REO1750"/>
   </sx:sync>
  </item>
 </channel>
</rss>

Notice the namespace reference sx=http://feedsync.org/2007/feedsync the "sx" prefix is the one designated in the spec.

FeedSync supports multi-master topologies which means it can be used to send and receive data to multiple clients. An example topology is shown below, (image from Microsoft's web site.), as you can see clients can be bi-directional or pull only.

feedsyncdiagram

The possibilities are many, I am already thinking about using this technology to allow calendar syncing between Google Calendar, and Outlook. Another thought that jumped to mind would be to allow sharing appointment data for a centralized calendar among a group of subscribers on a project I am working on.

Best of all, the technology has been released and licensed under a Creative Commons license which means the technology is likely to be extended.

The best place to start looking for developers is the FeedSync For Developers page.

Have fun! Share with me your observations and ideas!

Cheers,

Robert Porter


 
Categories: .NET | Mobile | Programming | Reviews | Tools and Toys | Visual Studio | XML


December 7, 2007
@ 10:01 AM

Microsoft has released a Live Lab's (Microsoft Research and Live Services) preview technology package called Volta.

Volta is a framework that allows a developer to potentially build a multi tier application initially as an client application, and then use a technique called "declarative tier-splitting" to identify which pieces of the application run on a server and which pieces run on the client.

This is accomplished by using and XML like declarative markup within the code. With this approach a developer can focus on getting the application designed and functional and then let Volta split the tiers and create the communications "glue" that lets the applications tiers work together.

How this is accomplished is rather interesting, Microsoft decided to go with an MSIL based approach, mostly accomplished in the post compilation area. MSIL code is rewritten to run in Javascript for the client, and ASP.NET for the server side, typically as a web service.

Since Volta works it's magic at the MSIL level, any CLR targeted language is supported, C#, VB.NET, IronPython and others. Visual Studio 2008 is required at this stage, 2005 is not supported and it is unclear if it will ever be.

So show me some code already!

The code shown below is from the Volta Recipe's page. It shows the [RunAtOrigin] custom attribute in use.

namespace VEMashup.Weather
{
    [RunAtOrigin]
    public class WeatherSvcProxy
    {
        public string GetJsonWeatherInfoFor(double lat, double lng)
        {
            var baseUri = @"http://ws.geonames.org/weatherIcaoJSON";
            var uri = baseUri + "?lat=" + lat.ToString() + "&lng=" + lng.ToString();
            var xhr = new Microsoft.LiveLabs.Volta.Xml.XMLHttpRequest();
            xhr.Open("GET", uri);
            xhr.Send();
            if (xhr.Status == 200)
                return xhr.ResponseText;
            else
                return null;
        }  
    }
}

 

This is an example of "tier splitting" via markup. This tells the Volta framework that this code is destined to run on the server. Code not marked will continue to run on the client. This means that as a developer you can postpone deciding how and where to partition your application until the last minute.

The agile developer in me seriously enjoys this particular aspect! Volta technology is seriously early in the life cycle however, so bear in mind that this will change before it gets released.

There is a handy list of known issues you should review before you start playing with the framework.

You could think of Volta as architecture refactoring on steroids. As shown below Microsoft has designed it explicitly with that in mind. (Image from Volta Web Site.)

image001

Bear in mind that you are not limited to 2 tiers, you can retarget portions of your application to as many tiers as you want!

All in all I think this bears some watching!

Cheers,

Robert Porter


 
Categories: .NET | Agile | ASP.NET | Javascript | Programming | Reviews | TDD | Tools and Toys | VB.NET | Visual Studio | XML


By now everyone knows that Visual Studio 2008 has launched, along with the .NET Framework 3.5. This version, previously known as 'Orcas', brings some significant new capabilities with it.

But first things first, installation and out of the box impressions.

I installed 2008 on a system that was clean in the sense that it had never had any of the pre-release versions of Orcas installed on it. I used the Virtual Machines that Microsoft provided to play with the pre-release versions. Wonderful idea judging by all the recent blog posts on how to uninstall the beta's before installing the final release.

If you do need help uninstalling the beta's in order to get the final production version installed, ScottGu has an excellent post on the topic.

Microsoft's official 2008 site has a great deal of good information, tutorials and other examples to peruse, I strongly recommend you check it out.

Anyway, I installed, from a DVD image I burned from the ISO file I downloaded from MSDN. I installed the Professional edition as I do not have access to a Team Foundation Server.

Installation was NOT smooth, the install kept crashing trying to install the .NET Framework 3.5 which was one of the very first steps. So I tried downloading and installing the Framework directly, which also failed.

Looking at the log files I was surprised to see that it was complaining that the 3.0 Framework SP1 was not present and that 3.5 considered that a pre-requisite for installation. Since I was running Vista which came with 3.0 pre-installed I was surprised as I check Microsoft Update weekly and I was sure the SP1 patch had already been installed.

I finally rebooted and logged in as Administrator and re-installed the standalone version of 3.5 again, this time it worked fine. Then I installed 2008 still logged in as Administrator and again everything went fine. The install, including the new MSDN library took slightly over 2 hours.

Once everything was installed I fired up the IDE which took another 10 minutes to configure itself based on my environment selections. Once it was finally up I was able to begin playing around a bit.

The IDE is very similar in appearance to 2005, in fact it is identical, at least initially. The first time I noticed a significant difference was when I opened a project. Visual Studio now uses the native file dialogs as opposed to it's own custom versions. (This is true on XP as well.)

image This is a welcome change especially on Vista as it allows all the functionality of the file dialogs that Windows provides.

There are numerous changes under the hood of course, and many many changes and new features in the languages and Framework which I hope to touch on in a future post.

One other thing I noticed was the fact that Visual Studio now seemed to be a lot faster to load. This is of course a welcome change!

One of those buried features is very welcome and much talked about, multi-targeting! As you can see from the screen shot below this allows you to target an imageapplication at the following frameworks:

2.0, 3.0 or 3.5

This means you can continue working on your 2.0 or 3.0 projects using the newer IDE. Rick Strahl has a great post on moving projects between 2005 and 2008 and back. Basically the project format has NOT changed, and the Solution file changes are minor. This means that you can work on 2.0 targeted applications in either 2005 or 2008 with no particular problems.

I was able to open several 2005 projects, work on them, compile them, run and debug them with no issues. I opened WinForms, ASP and Class library projects with no issues.

One annoyance I did notice was that the help library was much slower to open and seems prone to hanging. The MSDN library is fine when launched standalone, but when launched from within the IDE it is slow to actually show up.

More to come in the next post! Stay tuned.

Cheers,

Robert Porter


 
Categories: .NET | Reviews | VB.NET | Visual Studio