May 162014
 

I created the dynamic webservice. So far so good. Solved some hard to find problems (at least, Microsoft doesn’t tell you that these problems will arise). Now for the big finale. WCF in all its wisdom caches WSDL requests. Let us repeat that all together now: WCF caches WSDL requests. And there is no way to tell WCF to not do that, or for that matter to empty the cache. The only way to do that, is to recycle the application pool the service is running in, or (of course) to recycle IIS. It’s that bad.

I tried several methods: messageinterceptors, creating extra instances of the service, etc etc but there’s no way to work around the cache. Once requested, the WSDL is written in stone.

We serve web services that have a customerbased configuration. A customer gives us a data file, which will be the source for their endpoint. In our application is defined which columns are served to the respective methods. But all clients have the same set of methods (web operations). So the wsdl generator looks at the user that is logged in (custom servicebehavior), fetches the relevant column names from the database, and modifies the wsdl accordingly. Every customer is served its own data with its own choice of columns. Works perfectly. Until you change the set of columns and don’t restart the service. No problem on my development laptop or on the test machine, but a big problem if we want this in live in production.

At a dead end with this now. Looking for an alternative. But so far, none of what I find actually works.

Apr 042014
 

First things first: my trial period is over, so since this month I’m a “real” employee of Olbico ;-)

I’ve created dynamic web services. Turned out to be a bit more difficult then I expected, since the requirements were quite strict: secure communication, but no client-installs, and the response had to be dynamic, specific for the user that logged in.

First problem was that the default serializing of dynamic objects in WCF doesn’t quite work like you would expect (you can’t deserialize the XML to a proper object anymore), so a custom serializer for the dynamic objects (to be used in the response).

To further complicate things, the WSDL needed to be user-specific. A users logs in and request his/her WSDL. This turned out to be not too difficult, except for the “logs in” part. We didn’t want to work with client certificates, but we had decided to create some security by communicating over HTTPS. To do that with WCF, I needed to create a custom user-authenticator that supports a username/password digest in the request-headers. Google is your friend!

So customers now have (well: will have, it’s not in production yet) their own WSDL, and they can create strong-typed clients on their side, and all data is transferred over in an encrypted way. YEAH!

From our point of view, we only have to maintain one web service/endpoint. All configuration is done in the database. So a new customer gets a login, we define what can be requested (that’s a subscription/payment thing), and the web service now does the rest. No reconfiguration needed. Double YEAH!!

Mar 072014
 

The new job is very nice. I’ve been put in charge of a part of their (I should say “our” now) software, and the task is to renew it. It’s a web services based piece of software, and the services need rewriting. They must be dynamic, and so does the contract (WSDL). That was more of a challenge than I anticipated, but today I got it both to work. Serializing dynamic objects in a proper way (not string arrays of keys combined with string arrays of values), and when the WSDL is requested the same dynamic magic takes place to give each user a customized contract.

All done in C# (WCF) running in IIS.

This week I installed the trial version of ReSharper in Visual Studio. That’s a big enhancement, and speed increaser. Some things are possible in vanilla Visual Studio as well, but not as well thought out and automatic. So maybe I’ll ask for it to be bought. Another 3+ weeks to try it out more.

Friday is hamburger day at work. One of my colleagues took on the task to bake burgers on our toaster/grill. Every Friday. So that’s a treat every week, since he’s very good at it. It was a quiet Friday, but productive. Must be because of the burgers ;-)

Jul 122013
 

The solution I’m creating for the client is based on Google Maps, so when I showed them some results, they joked that they wouldn’t be able to sell their product to Microsoft, since it’s not based on Bing Maps.

Replacing the basis with Bing Maps is no problem however. But since the map in this solution is used as an entry to filter the data (you draw the region you want to query), I need a (free form) drawing library of some sort. There is no drawing support in Bing Maps what so ever. The only thing present is the Shape Toolbox module someone created back in 2012, and never maintained/updated. Why is there no support for drawing on the map?

To make things worse, if I wanted to create something myself (I learned a thing or two playing with Google Maps) the mouse event returns X and Y values of the screen, not the coordinates on the map where the mouse event took place, so if I want to create something myself, I need to be recalculate the X and Y values to mapcoordinates every single time. There’s a function for it, but it’s a stupid decision to implement it this way. It should be the other way around, because how often would you really need the X and Y values of the screen?

That was my rant. Grrrr….

Apr 082013
 

Starting today, Microsoft will terminate the services for its messenger MSN or Messenger Live. We will all have to use Skype from now on. Almost the same you would say, although Skype doesn’t have personalized statuses, it doesn’t understand the typed smileys, and it’s a big program to start with. You loose the groups you created. And in a lot of countries Skype just doesn’t work. The MSN king is dead, long live the new king Skype.

BARF!

Jun 182012
 

On a side note, my desktop PC no longer runs Linux (OpenSuSE). I’ve had it with it. There’s always something that doesn’t work. Or that keeps crashing. Or that suddenly stops working until a reboot. Sound support sucks. After every kernel update I had to do a manual install of the NVidia drivers to get X running. Always waiting for the X64 versions, since the Linux community still thinks we all run 32-bit computers (same on Windows, but at least that let’s me run 32-bit programs without problems).

I bought a new videocard (a Sapphire HD7970 to be exact), bought an SSD (OCZ Vertex4 128GB) and switched to Windows 7. Everything works. Period. And I can now use Adobe software, so I bought Adobe Photoshop Lightroom to finally being able to organize my pictures (lastest count: over 26000) the way I like it (F-spot and Picasa are nice, but not more than that).

Main reason for the videocard was gaming of course. Racing in the first place, FPS as a close second. Bought Deus Ex Human Revolution (FPS-ish) today, more to follow.

Mar 062007
 

Today I updated my Outlook Unsafe Attachment Unlocker utility. For some reason I noticed the select-all checkmark did not toggle. It only did a Select-All, but not an Unselect-All. Now it does. And the context-menu now points to the correct address of this weblog. Get it here.

Click to enlarge

When I get my hands on an Office 2007, I’ll see whether the utility can be made Office 2007 compatible.

Apr 122005
 

I still get a lot of search hits from people looking for a way to change the extensions that cannot be viewed in Outlook, because Microsoft decided in all her wisdom to mark a lot of extensions as “unsafe”. In Outlook Express there is a nice dialog to change this behaviour, in Outlook there is not. You can do it by editing the registry by hand, but a lot of people are afraid to do so.

For that reason, I created ouau.exe, or “Outlook Unsafe Attachments Unblocker”. It detects your Office version (which you can override) and lists the extension so you can block/unblock them. There’s a handy “select all” radiobutton that will save you some clicking.

Here is a screenshot.

Click here to download the program. It’s in WinRAR format, so you need to extract it first.

Apr 202004
 

OUAU should now work for all Office versions, and you can select the Office version (if for some reason you have partial Office installations) and it will reread and write the appropriate registry-entry.

Changes

  • Ability to change Office version by using the radiobuttons
  • Added link to this blog in context-menu

To do

  • Close the application when unsupported Office version is detected (detection and errormessage is already in place)