June 2006 - Posts
Unless you have been living under a rock, you have probably heard of the acronym WCF that has been circulating the Microsoft media domain. Of course, it stands for Windows Communication Foundation. It is one of the WinFX...err .NET 3.0...subsystems that will become available with the upcoming release of Windows Vista. Unfortunately, WCF seems to be getting a lot less press than its sibling WPF. Let's see if we can steal some of the thunder from the UI guys. ;p
For those focused on distributed applications and service oriented archicture, WCF will present a significant advancement in your ability to deliver solutions capable of interoperability and more. Since I am one of those guys that loves to bury myself in the nuts and bolts of distributed systems, this is of particular interest to me. This is the first of what I hope is many, many posts about WCF. As I continue to absorb more knowledge about the technology, I hope to share a lot of it with you here. However, before we start getting into the details of any technology, it is always a good idea to understand why it is relevant in the first place.
Over the last few years, there have been quite a few options for the technologies used to create distributed systems. For basic interoperability, a popular choice was ASP.NET web services (ASMX). If both the client and server are .NET applications, .NET Remoting could potentially be the "right" choice. For advanced options such as distributed transactions and object pooling, Enterprise Services was the logical choice. You also have the advanced web service capabilities introduced in WSE (Web Services Enhancements), particularly around security and reliability. On top of that, there is also MSMQ (Microsoft Message Queuing) for message-based solutions.
Those are a lot of different choices. Don't get me wrong. Choices aren't necessarily a bad thing. However, it can certainly cause confusion as to which one is the best one for your situation. In addition, the act of combining these technologies into an application can lead to additional complications. This is where WCF comes into play.
It will make your life extremely easier as a service oriented developer by providing a unified programming model that encapsulates all of the previously mentioned options and more. In doing so, you can focus on the development of the service logic rather than worrying with the underlying communication protocols. With WCF, it is a simple matter of a configuration change to switch from HTTP to TCP to MSMQ. Of course, there is much, much more to WCF than this. However, this is simply an introductory post to whet your appetite.
So, there you have it. In a nutshell, those are the reasons for the importance of WCF and why it should matter to you. Stay tuned for much. much more about WCF as I continue to examine the details of the technology.
I wrote a few weeks ago about a poll that I posted to allow the Birmingham .NET User Group to choose their preferred topic for my presentation at the July meeting. Since the information was published on my blog and an email sent to the registered members of the user group, I have received 29 votes. Surprisingly, it was almost an even split, but Windows Communication Foundation (WCF) won by only three votes.
This tells me that both WCF and Mashups using ATLAS have the potential to be good topics for future presentations. However, I am sticking with the poll and presenting an "first look" at WCF. It will probably be titled something to the effect of: Introduction to Windows Communication Foundation: What Does It Do and Why Should I Care? I am still working on the complete agenda, but it will provide a high level overview of the architecture of WCF and some of the key concepts such as contracts and behaviors. Of course, there will also be a couple of impressive demos. ;p
Thanks to everyone who took a moment to vote their preferrence. Your feedback is greatly appreciated. We want to ensure that the user group is focusing on areas that people truly are interested in hearing. If you have some suggestions, feel free to drop me a line or stop by the user group forum and make a post.
I hope to see you next month at the meeting.
In my last post, I was expressing my disappointment with the performance of Vista Beta 2 while running on a virtual machine under Virtual Server 2005 R2 SP1. This is due to the VM additions no longer working with Beta 2. Technically, there are new VM additions to resolve the problem, but they are not currently accessible to the general public. Since there is no telling how long it may be until those VM additions are released, I decided to take a look at what VMWare had to offer.
Much to my surprise, I discovered that they currently have a free beta product named VMWare Server. I was shocked even more when I read that they intend to continue to offer this as a free product when it is officially released. So, I thought...why not? I registered on their site, received a product key via email, and installed the product.
After completing the installation, I noticed there is an import option that can be used to load a Virtual PC 2004 or Virtual Server 2005 machine defintion into VMWare. Unfortunately, this didn't work for me. I am guessing that it may have something to do with the fact that I am running Virtual Server 2005 R2 SP1, which is still beta. Since that didn't work, I created a new virtual machine, mounted the ISO, and started installing Beta 2 on the new VM. It should be noted that the performance of the installation was noticeably faster than it was on Virtual Server.
So, I now have Beta 2 installed and logged in for the first time. Again, I didn't really expect much in terms of performance, but VMWare pulled it off. Sure, there was some noticeable delay, but it was actually usable. What impressed me even more was that I still hadn't installed their VMWare Tools, which is similar to VM addtions in the Virtual PC/Server world. It is software installed on the guest OS that improves performance. After I installed the VMWare Tools, I couldn't really tell that it is even running in a virtual environment.
Needless to say, I am pleasantly surprised with VMWare. If you are one of those people caught in a state of great anticipation over the announcement of the new VM additions for Virtual Server 2005, then I highly recommend you take a look at VMWare Server. Once the new VM additions are released, I will probably take a look at Beta 2 via Virtual Server just to see how well it does. However, I must admit that my brief experience using VMWare has me reconsidering my preferred choice for virtualization software.
We will see how it holds up as I start to really use the OS.
UPDATE
Since I originally posted this, Microsoft has released the new VM Additions for Virtual Server 2005. I have not tried them yet, but I just thought I would pass the information along. You can get the details on the Virtually Vista blog in this post.
I have been a little sluggish getting back into the routine of blogging and stuff since I went on vacation last month. So, I decided it was time to stop making excuses and get back into Vista and WCF. Naturally, I assumed the best way to do this would be by downloading and installing Vista Beta 2 to update my WCF development environment with the latest release. The previous releases were simple enough to deal with, so I didn't expect Beta 2 to be any different. Boy, was I in for a surprise.
I started off creating a Virtual Machine and configured it to host Vista. Next, I mount the ISO image and start the installation process. Sure, its miserably slow, but it typically is until the VM additions are installed after the OS. So, the OS is loaded and I install the VM additions. I boot up Vista again with great anticipation of diving into to see what has changed. Instead of the joy of playing with Beta 2, I am slapped in the face with persistent, miserably slow performance. I mean...BAD!
Of course, I start assuming I have done something wrong. After trying numerous tweaks to get this thing running, I finally start hitting the web. Alas, I discover that the VM additions for Virtual Server R2 SP1 are broken with Vista Beta 2. If you are fortunate enough to have access to the BetaPlace, then you can download the latest release that supposedly addresses the issue. However, if you are like the rest of us, then you get to twiddle your thumbs whille waiting for the announcement that Microsoft is releasing the revised VM additions to the public.
I suppose I will continue working with the February CTP until the VM additions are available. There is no way you can be anything close to productive using Beta 2 in a VM without those new VM additions. It is times like this that I wish I had a spare machine laying around that could be put to use.
UPDATE
Since I originally posted this, Microsoft has released the new VM Additions for Virtual Server 2005. I have not tried them yet, but I just thought I would pass the information along. You can get the details on the Virtually Vista blog in this post.
Disclaimer:The opinions and views expressed within this blog are solely my own and do not represent those of my employer or anyone else.