January 2007 - Posts
- Karl Seguin does some testing on his blog about the fastest way to convert a string to an integer.
- Via Jason Haley I found an article on URL Rewriting in IIS7. I wanted to write an article as I've been busy with it in Vista, but it seems there's no need anymore with this article. I'm still figuring out in my head though, if I got it working in the default IIS7 app pool, but I can't remember. Maybe I'll have to look into it again myself.
- My colleague Alex Thissen has tried to bitslap me again. I will fight back once I find the time. Lousy excuse, but I'm really busy right now.
- Of course we all know that ASP.NET 2.0 Ajax 1.0 was released, so I won't provide a link! ;-)
- Via ISerializable I came across many cheat sheets for .NET. Check them out, they'll probably do you good!
.NET 3.0 Framework
- WPF : No idea who wrote it, as I can't find a name. But here's a list of differences between XBAP and WPF.
- WPF : Xceed has got a DataGrid for all your WPF needs and I absolutely LOVE it! Be sure to check out the validation tab under editing mode and try to enter something incorrect. Now that shows just a little bit of the power of WPF, notifying users very clearly without screwing up the interface!
- If anyone has cool WPF XBAP demos, let me know! I'd love to see them!
- Something I really have to get my hands on when I find the time, the SQL Server Hosting Toolkit (links to ScottGu). Makes it much more easy to get your live database in sync with what you've developed. Be carefull with this in important scenarios (like a production environment at work) but it's still cool to play with.
- Anko Duizer is writing a few articles on SQL Server 2005 Peer-2-Peer replication. I'm at the same client and it's really cool stuff to see working. It requires a pretty strict procedure however from everyone, because when you screw up the database, you don't want to be around. Once the replication thinks it can't go on, it stops althogether. Which is reasonable, because if it would continue, it could mess up your database even more.
- Through Sahil Malik I found a plugin for Internet Explorer that replaces the regular search with a searchbar like FireFox has. As I despise the popup that IE normally shows me, I've installed this one immediately. Get it here. Screenshot.
- Recently Nintendo posted on its Virtual Console webpage that MSX games will be available for Wii's Virtual Console Emulator. Cool!
- Windows Powershell is something I really want to get my hands on. Unfortunatly, not released for Vista yet. For all others, check out the Powershell blog, it has some awesome commandlets as well as explanations on why something works the way it does. Like this 2 + 2 equals "Monday" post.
- I'm running Windows XP again and it amazes me how fast it is, compared to Vista. In the meanwhile, if you're an Ultimate user, check out the addons that were just released. Just press CTRL+ESC and type "Ultimate" in the start menu.
- Two funny sites:
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.
Technorati tags: Windows
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:
- Visual Studio 2005 doesn't behave as I want it to, for example extreme slow startups
- It's very hard to debug IIS examples from internet as they're all IIS6 and Vista uses IIS7
- All kinds of program lock up randomly, blocking other applications
- Windows Explorer shows random behavior (like multi-selection of files doesn't work anymore)
- Multiple applications that don't seem to work anymore. Most have though.
- The sidebar I've never ever used. It's useless up until now. Especially because going to the desktop means the sidebar will hide as well.
There were some things I liked, like
- Search inside start menu. I'll have to replace it by Slickrun or so.
- The address bar in Windows Explorer where folders have been split up and clickable.
- The new graphics. I loved it in the beginning, now I don't notice it anymore.
- The new system-tray icons. Connecting to a VPN connection, setting up sound and power plan was very handy.
- IIS7 and WAS. It's a shame I can't do WCF WAS demos in WinXP! :)
I have no idea when I'll install Windows XP, but I'm sure going back. Can't live with the shortcomings of Vista.
Technorati tags: Windows
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.
These can be anything, but some of the default delivered with WCF are, for example, reliable messaging or transactions. When the message should be encrypted, it's done in this layer.
This is text/xml for HTTP bindings, but binary xml for the TCP binding.
This can be HTTP or TCP, NamedPipes or MSMQ.
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()
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!
Technorati tags: Zune
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.
- As Frans, I started back on an MSX at the age of 10. My parents had spend almost Fl. 3000,= (about $1500) for a VG8020 (image) and according to the salesman it was the future. I started coding in MSX-BASIC and got totally hooked on it. At the same age, 10 years old, I knew I wanted to become a developer. My MSX was later upgraded to a MSX-2 8245 (image) with a memory upgrade to 256Kb. Later I also bought a second-hand MSX-2 8280 (image) with video editing capabilities and two disk-drives. I upgraded it to 512Kb for a lot of money. My first encounter with a disk-drive was the option "Format" in a tool called "Ease". I had no idea what it did and when my MSX asked me if I really wanted to do that, I thought the computer was stupid, because I just told it so. ;-)
- When I got my pc, one of the first demos I saw was Second Reality and again I was hooked. My first demoparty was X'96 (Ik vergeet nooit 'Chop' die je Windows trepaneerde) and after that I went TakeOver (picture), Wired in southern Belgium and Bizarre. I loved going there as you could talk to people who you had been chatting to on #nlcoders and #coders, two irc channels dedicated to the demoscene. It was the geekiest time of my life.
- I hate (or at least have a hard time) reading books on technology. Although I really force myself to read, I hardly ever completely finish a book, even though I really want to. I much rather read articles on MSDN that go into detail really fast. Most books (and articles as well) tend to stay really superficial and don't get to the point, which I rather hate. Unfortunately I have the same disability so this post is already getting way too long. ;-)
- I've never been on a plane and/or at a large conference. Although I've been to DevDays regularly, I've never been to TechEd or PDC for example. I really hope to be able to go to the PDC this year, for both the plane and the conference will be my first time.
- I like to laugh, a lot. Problem is, when I laugh, it's really, really loud. When I had an apartment I used to watch Friends and everyone living around us knew when it was on, because they could hear me laughing. So if you're at the PDC and you hear someone laughing really loud, try to look me up. ;-)
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!