November 2006 - Posts
Working with WCF in general is quite nice. No longer are you troubled by the idiosyncrasies of the various communication protocols as they are bundled into the same API. Of course that doesn’t make the different protocols identical and there are still some differences to be handled. One thing is the netMsmqBinding binding and poison messages.
In general it isn’t to hard to handle poison messages. Using Vista you can even reject or move them to a poison queue for later inspection. Not that much luck in Windows XP though. Basically you have two options, either Fault (the default) or Drop the message.
Now dropping the message us not very nice as the information gets lost so faulting and removing and logging the message from a IErrorHandler is a better solution. And in fact an MsmqPoisonMessageException is raised when a poison message is detected. In fact it even contains the MessageLookupId to retrieve the message itself. But how about the queue name? That is missing. And the samples on MSDN show how to do this by adding the queue names twice, once in the WCF configuration and a second time just for the purpose of removing the poison message. Looks like some king of oversight if you ask me. I guess I need to hook into the message pipeline somewhere and watch messages coming in via the queues and record the LookupId and queue used. Only problem is that I haven't found the point to do so yet :-( Any hints are appreciated!
If you are serious about Office and based in the Netherlands the "Nationale Office Dag" Is the thing to go to. Next Thursday, the 30th of November, the next one is held in Ede. And if you are going there come by and say hi as I will be there to present a session on VSTO 2005 SE.
CU there.
SQL Server 2005 introduced some nice shortcuts for working with queries and identity or GUID key columns. These functions are specially useful if you want to write generic functions without worrying about the key names.
Given a table Article with an identity column the following query will retrieve all data and an extra column __pkey__ containing the primary key, whatever the name is.
Select $identity as __pkey__,*FromArticle
Replace $identity with $rowguid if you are using GUID primary keys.
Enjoy!
With the release of the .NET 3.0 framework last week the WF team has also released a large set of samples. All samples, or at least all I have looked at so far, are both in VB and C#, always good to see :-)
Enjoy!
Getting a hot fix has always been a bit of a painful experience. It involved calling MS calling support and lots of people thought they should really be just a simple download.
If you ask me it’s a step in the right direction :-)
So finally back home after a week of Tech-Ed and time to reflect on the week.
Overall it was a great week with very few downsides. The only real downside was the hotel, my own choice, and the fact that La Rambla was pretty much a brothel at night. But not much of a problem and I was pretty busy anyway so it only bothered me a bit on the way back at the end of the day.
On average the sessions I went to where good, some very good, so no complaints there. I would like to see some more in-depth coverage of subjects but then being an MVP probably means I am ahead of the pack and may things are just all that easy. Yea right, had an interesting discussion about deploying a VSTO solution to 150 workstations and that is certainly not easy.
Being on the ATE panel was nice to. Except for the first day we got plenty of questions about a whole range of subjects. Not surprisingly LINQ is a major source of questions, even if it is still a year away. Interestingly wearing the ATE badge even resulted in questions while in the subway, no rest :-)
The food and drink, while plenty full, where not all that good this year. Specially the coffee sucked big time :-( But then the waffles where great :-)
All in all I had a great time and hope to do it again next year!
So the last day of Tech-Ed has started. That is both good and bad. Guess its good because people are getting tired, I know I am, and suffering from information overload. The bad part is that there is so much more I want to hear about, guess I will be waiting for the DVD with recorded sessions to arrive.
Duty at the ATE booth yesterday was interesting again. Lots of people with questions, good thing. Like before a lot of people came with questions about LINQ, guess it’s the kind of thing that excited a lot of developers. And rightly so if you ask me. The most challenging question came from a Dutch student who was working on a managed C++ app that had to pass callback function pointers back into an unmanaged video stream library. Guess being a VB guy doesn't really qualify me to debug C++ issues but as there where no C++ people around at the time I gave it a try. And guess what we remote desktoped into his PC at home and found and fixed the problem. Not bad for someone who hasn't done any C++ for over 10 years :-)
At the moment I am listening to a session about service factories. Nice presentation and interesting subject.
Well that’s it for now, more later.
Another day has started at Tech-Ed. Last night we had the country parties and the effect is visible on the people, they are getting tired and where slow to start this morning. But maybe it's more than just the parties as there is load iof information and people are busy absorbing it.
First session this morning was about LINQ fro SQL by Anders Hejlsberg. He went over a lot of the details of LINQ for SQL. LINQ for entities was mentioned but unfortunately he didn't go into when which would be the most appropriate choice. LINQ for SQL is pretty capable with lots of options for example, you can specify the mapping in attributes or in a mapping file or use tables, views, sproc of table functions as the source of the data. Table functions look specially interesting compared to sprocs, when you select data from a sproc all data is returned to the client and filtered there but in the case of a table function the filtering is actually done in the SQL Server database, much more efficient :-) Like usual another great session by Anders!
I will try to get some more data about when to use LINQ for Entities versus LINQ for SQL and post about that later.
At the moment I am listening to Steve Lasker talking about the smart client offline caching and sync framework. Another interesting session, more later.
So finally some more sessions. Actually got to see two sessions about Windows Workflow Foundation. The first by Matt Winkler. He gave a nice overview session about WF and how to use it. The session included some nice performance charts. Of course the performance statistics are very general and he warned about taking them to literal. Anyway the figures, and a lot more, are soon to be released in a WF performance whitepaper. The room was almost completely full.
At the moment Paul Andrew is explaining how to create custom activities. Another nice session with a packed room. Its clear a lot of people are interested in WF and how to develop using it. Nice to hear, guess that means there will be a lot of people who can benefit, or contribute for that matter, to the Windows Workflow Foundation Wiki.
Well it is said that shoes are a vital part of making a first impression, remember the film Sneakers, so it seems we are getting a new MVP perk in the way of shoes. Karen Young is walking around Tech-Ed in the new prototype.
Cool :-)
Did another ATE booth duty this morning and it was quite interesting. Yesterday there weren’t too many questions but this morning we where quite busy with all the people stopping by. Maybe the fact that we added beer to the list of possible questions answered helped but the questions where still all about .NET. Unfortunately we couldn’t help everyone, some questions about compiler errors using C++ where a bit hard as there was none around with C++ skills, fortunately Karen Liu from Microsoft was there and she is going to make sure the product team follow up. Other than that we where able to help most people which is a nice thing :-)
One thing that came up a lot was LINQ. People like it and want it :-) The only problem with LINQ is that it will be another year before we can start to use it for real :-(
So I didn't get to see any complete sessions this morning but just now when to Steve Laskers session about SQL Everywhere, oops that should be SQLCE. It was an interesting session where he demoed some of the new sync capabilities that they are working on.
Before the ATE duty started I did get a chance to see the first half of Aaron Skonnard's session about BizTalk. He did a nice job and the first half was pretty interesting, to bad I had to leave half way through but that is a session I will repeat on the DVD for certain.
Well time for a drink and another session to go to :-)
At the moment I am watching Anders Hejlsberg talking on LINQ. As you may have noticed before I am fascinated by LINQ and the power it offers. Searching in any collection will be a lot easier but specially database and even more XML queries will become so much easier to do. Based on the details given in the session its hard to believe that it will be still be another year before we can actually start to use this for real. But that is just the way it is, it's part of Orcas and Visual Studio 2007 something that will be released at the end of next year. Too bad, I could use it :-)
Great session!
More Posts
Next page »