Development
.NET 3.0 Framework
SQL Server
Miscellaneous
I just blogged that I'll be switching back to Windows XP. One of the problems I forgot to mention is this one:
I can't remember the time that my Windows XP gave me a Blue Screen Of Death (BSOD). On Windows Vista tonight was about my 15th time since I started using Vista RTM. This time I pressed Windows+E, expecting the Windows Explorer. Unfortunatly all applications started closing, but before it completed I got the famous BSOD.
I've made my decision, I'm rolling back to Windows XP.
I've been using Vista on my laptop on which I perform my daily work. Some problems I've come across:
There were some things I liked, like
I have no idea when I'll install Windows XP, but I'm sure going back. Can't live with the shortcomings of Vista.
As I've been pretty busy, it's been a while since my last post in the WCF series. But let's have a look at bindings now. A binding will tell a client what's necessary to connect to the service. In other words, how we connect is described by the binding. As you can see in the image, this is composed from the protocols selected, the chosen encoder and chosen transport.
The image also shows the architecture of WCF. The service-host initiates one or more dispatchers. In configuration you setup the protocols, encoder and transport to use, per endpoint. At the client side you do this as well. When a message is send from client to service, it first goes through the (generated) proxy, through configured protocols, encoder and finally will be send over a transport layer. On the other end, the same happens, but the other way around.
Depending on what you actually want and need, you'd normally decide which binding is best for your situation. Using the decision chart I've shown in this post, you can see what bindings are available and when to choose what. In the following table you can see some abilities and which binding supports them.
First you see interop. If you choose a transport other than HTTP, WCF cannot interop with another platform as these just don't support them. With basicHttpBinding your service can communicate with clients that conform to the WS-Basic Profile. Everyone understanding webservices can communicate with basicHttpBinding. wsHttpBinding can be seen as a basic profile webservice with WSE 3.0 included. So while it's still interoperable, with many more abilities, it's harder for external platforms to setup and communicate with your service, although if those external platforms are conform to the WS-* specs, they should be able to communicate with you. I've already seen this working with ASMX/WSE3.0, Java, etc.
All bindings but one support both transport (T) and message (S) security. We'll get back to that in another post. But it basically means if you choose basicHttpBinding, your only possible option to secure your service is, for example, via SSL, meaning you'll get an HTTPS:// address.
Bindings that have a cross-mark at sessions, support... well, sessions. The same goes for transactions. I'll get back to all this later in the series. Duplex means the service and client can send messages back and forth, for example to give status updates during long running requests.
Of course the above list can be altered by extending WCF. I probably won't go into details, as extending WCF gets a lot of attention all over the internet. An example extension could be creating a new transport-layer to support sending messages over SMTP, FTP or whatever you can think of. Microsoft uses the example to add transport and encoding layers so clients will be able to talk directly to external systems that don't know anything about WCF. But I think it's far more likely that a service-interface will be created on top of these systems, exposing it through WCF using the default and regular bindings.
The great thing about WCF and these bindings is, that in theory you can deploy a service and afterwards add, offer and support other endpoints. For example start with basicHttpBinding and add netTcpBinding later. With the demos used in my previous articles, this is possible without any modification to the code.
Although this article discusses bindings, we'll definitely get back to things like security, transactions, etc. But these are all topics on their own and deserve one or more posts in this WCF series.
[Go to the WCF series article index]
There's been a lot of talk about web 2.0. Personally I see difference between web 1.0 and web 2.0 as the following methods in a console application.
static void Web10()
{
Console.WriteLine("Hello world");
}
static void Web20()
Console.ForegroundColor = ConsoleColor.DarkGreen;
Web20 is as half-empty or as half-full as Web10. They both return void and both output Hello world to my console window. The difference is, in web20 I get a dark green font, instead of the regular color.
Don't get me wrong, I'm not saying I don't like stuff like GMail and YouTube and more of those applications people refer to as Web 2.0. I love them! But 'ordinary people' probably won't notice the difference. They don't know something 'new' is happening before their eyes. As I don't. And I just don't get the fuss about why it's so important to talk about it and let people know what you think makes up Web 2.0. It's not about a new version, it's about a quiet evolution you shouldn't be talking about that much.
And now Martin Fowler shares his thoughts on Web 2.0 as well, after telling us his involvement is limited. How limited is that, you might question yourself. Because I'm not sure what existed before Web 1.0 was born, but Fowler's website at least shows there was something. You don't often see websites with such an outdated interface. ;-) Anyway, he quotes Nicholas Carr : "It involves people creating and sharing stuff online. It's a trend, a phenomenon." About 20 years ago I created and hosted a BBS called AmberDawn** and shared stuff. Everyone with a modem could go online, call my pc and download everything I shared. What a phenomenon.
All the gathering of data from different resources, the lightweight release cycle, etc is just a farce. It has been done since the beginning of the web. Maybe, just maybe WPF can/will launch a web 2.0. People can't get into it quietly, they have to install .NET 3.0 to be able to use it. But perhaps Eric Wise will be right, and WPF will die a silent death. I sure hope it doesn't.
My suggestion for now is to just build these so called web 2.0 applications and services already and quit wasting expensive time by talking about it.
** I think it's great there's still proof around the world that AmberDawn existed. Check this link or some Outlaw Triad links, like here (Google Cache) or here.
So I've been playing around with my new Zune player.
I've listened to a ton of music, converted and watched movies on it and I've shown pictures of my family to grandmothers and other relatives. I love my Zune player, seriously!
Yesterday I was at Patrick Bes who has one of the many different iPod versions. He told me he couldn't just download MP3s from internet and upload them to his iPod. The problem is, he has many MP3s that aren't available at iTunes, like old C64 chiptunes and other stuff that's not commercially sold. Not being able to upload these just plain sucks. I've been able to upload everything I want to my Zune player.
I've also converted some movies I own to my Zune player. Some great pixar videos that are available on the internet, as well as Star Wars Episode III for example. The quality is great. You can choose to convert them 19:6 as they're originally, or use pan&scan which results in a full-screen movie, which is highly preferable. And with 30GB on board you can upload all 6 episodes! ;-)The only problem is that the screen just isn't all that to really watch movies on. Someone suggested to use it to watch webcasts or such. I'll have to try and see if those can be converted. It would be a great service by Microsoft if they'd offer them in MP4 Zune format by default!
The device itself is very solid. Besides the movies, the screen is great to show info on the song it's playing including album art. It's also good enough to show photos. The menu is also really easy to understand. However I already miss the menu from before the 1.2 firmware upgrade. The new menu doesn't show all options in a list, but flips between the available options on the same screen with other options. They must've changed it because of the extra push of the button.
Talking about the buttons, there are enough to work with the device. I think it could've used some more buttons just to get more functionality out of the menu. But as iPod doesn't have the extra buttons my Zune has, I can't complain!
Although it's not really large, you'll probably have difficulties dragging it around, especially during the summer while walking or riding a bike. My problem is, there aren't any accessories coming to Europe until the end of 2007. So I can't get a cord for around the neck or something. Also adapters aren't available, I can only charge the battery using a USB port.
It's definitely a keeper for now! I'm happy!
Frans Bouma tagged me. As everyone is joining in on this, I can't stay behind. So here are five things most of you don't know about me.
The 5 people I'm tagging are Alex, Mike, Anko, Pascal, Miguel, Jan, Erwyn and Saber (Saber, it's about time you start blogging again!).
For some reason, a single project I'm working on wouldn't let the debugger attach to my IIS7 on Vista. I was completely clueless on why this was happening. Great thing is, the problem is solved, it now connects. The problem remaining is, that I'm still completely clueless on why and what.
I was browsing through Google and came across ServerSide, as it seems a weblog by some Microsoft Visual Studio bloke. He's got a solution that apparently will make it into the final "Visual Studio 2005 Windows Vista Update" (how's that for a name?). It's a (not managed code) module you'll have to register and include in your web.config and a lot of problems will fade like snow in the sun, or something like that.
It worked for me, so I'm quite happy. Find the solution here.
Happy new year everyone!!!
Of course we wish you all the best for this new year! At the ending of 2006 a lot of new technologies have been released that most of us aren't working with yet. I'm thinking the .NET Framework 3.0, Office System and Vista among others. I hope we'll all get to work with them this year as they're making my life as developer a lot more fun!
Besides that, also the best to everyone in health and with your families!
At Class-A there's happening a lot this year. First of all, Pascal Naber will join us this month. I hope he'll start blogging a bit more here! We also have some cool new trainings to offer you, among others the Windows Communication Training that I'll personally be giving. If you're interested, be sure to sign up for it. ;-)
Again, all the best for this new year!