I was only able to attend the viewing event at Microsoft’s Alpharetta, GA office on 10/28/2010. I watched the keynote presentations.

Here are the key items I got out of the keynote:

Emphasis on IE9 beta with HTML5 and CSS3 in my opinion was interesting, but since it is still in development, it’s still hype. The nice thing is that they are getting behind HTML5 in a big way which will help cross-browser development move forward. I understand the concerns about it detracting from (or eliminating) Silverlight, but I have a wait and see attitude about all that. In the meantime, I am going to go full steam ahead on both.

There’s a new oData client library out for Windows Phone 7. New profiling tools are coming soon. I have been trying out oData for an InfoTrail contact manager application for WP7 – so far, so good. I’ll get into more detail on that in another post.

There will be an Azure virtual machine role available for Windows Server by year end. That should allow an easier migration path to the Cloud for many legacy applications. It will include Remote Desktop, full IIS, elevated privileges, and multiple administrators. Gee – just like a “real” server!

Team Foundation Server is coming to Azure. This is very interesting to me because it opens up more opportunities to collaborate anywhere in the world.

Azure Marketplace is being opened up to allow buying and selling of data.

The only problem I have with this information is that most of it was things that are coming soon, not things that are available now. But that is normally what is presented in this kind of keynote. I always get a sense of vaporware from this.

I was impressed with the presentation made by Ritesh Khotari at the Atlanta .NET User Group on 10/25/2010. The topic was on WCF 4.0 discovery and routing services. I have been working with WCF services (and RIA services), but I hadn’t learned much of the scope of what WCF really can do. In a way, it was so easy to set up a web service project in Visual Studio to send and receive data that I didn’t take the time to learn what was available for the bigger picture of SOA architecture using WCF. Ritesh’s presentation definitely changed that for me.

WCF Discovery

Ritesh walked us through a simple printer example that demonstrated the use of discovery. He created two simple projects, one (client) that sent a line of text and another (“printer” service) that received the text message and displayed it. He then made the service “discoverable” so the client could view if it was available. Then he created copies of the service with different end points to show multiple “printers” available. By turning the services off or on, the client app could show the user which “printers” were in service or off-line. Each instance of the “printer” service had a different endpoint and broadcast its availability. This reminded me of what MEF and PRISM can do for application modules and components. The loose coupling of services to client applications or other services is pretty easy to do with WCF and really can help with scalability, flexibility, and maintainability. Ritesh added discovery to the client and service projects mostly via additions to the web.config files, but you can also do the same thing in code.

WCF Routing

Ritesh then went on to discuss WCF routing. When the number of services in a system gets large, it becomes difficult to maintain because the services can be moved from device to device, added, deleted, or addresses can change. A good approach to mitigate this problem is to use a service router that serves as a centralized place to control traffic to available services. This is one of many approaches, but Ritesh made a compelling argument for using WCF routing by showing another simple example. He created a routing service project and showed how to make changes to service endpoints by making changes to the web.config. Then he showed how to add rules to the routing service, again in the web.config, that would allow routing according to specified conditions being met. His example showed how different incoming messages to different services depending on who was sending them or where the message was sent from.

Here are some of the key points I got out of the presentation:

WCF has facilities beyond just sending and receiving messages between applications and/or services

WCF discovery allows loose coupling of applications with services that can allow better SOA architectures to be implemented.

WCF routing is a great way to create SOA implementations that scale and are easier to maintain as the number of applications, services, and devices increase.

Use WCF discovery and routing to make your SOA system better in many ways.

When I get a link to download Ritesh’s code, I’ll add it to this post.

During the past few months I attended some live seminars hosted by Microsoft. Each of them have covered the basics of developing software for Windows Phone 7. The most recent was the two day event held here in Atlanta (Oct. 21, 2010 & Oct.22, 2010. It was an expanded version of the one day Firestarter event that I attended last month. The key presenters were Joe Healy and Glen Gordon.
Here are some of the key things about WP7 that I got out of the sessions:

I am looking forward to November 8th when I can buy a real phone to work with. It has been a long wait since I attended my fist seminar on WP7 and I would like to break out from only using the emulator.

WP7 may be promoted as primarily a consumer-oriented product , but it can be used as a general-purpose user interface for business applications. The only problem is there is no easy method for deployment to business users except for the app store, which opens up issues with security. The hope is that there will soon be something like private app stores that could be used by businesses. In the meantime, there are phone versions of outlook and office included.

Application development for WP7 is much the same as with any other Silverlight project. However, data persistence must be handled to avoid data loss when the user exits from the app, or when the app is shut down by the operating system. Fortunately, there are events that can be used to trigger saving of user data.

You can also develop games using XNA. I haven’t tried this yet, but it looks like fun. My experience with making Flash games showed me that creating all the graphics, sprites, and sound effects takes the most time, but once that work is done you can do a lot of great things. You can even build 3D applications for WP7 and the rendering speed and flexibility is impressive.

So I was inspired to try my hand at writing an app for WP7 that was more that just a “Hello World”. The application I am making is a contact management system that uses the same database as my Silverlight and Lightswitch applications. More on that in upcoming posts.

Since I had already installed the beta version of the WP7 tools, I had to uninstall them before installing the latest version. That took a long time. I think the whole process lasted a couple hours. I was able to take a nice nap during the final install.