Looks like it enables import and live preview of RAW files in Vista without any further third-party tool. Can be downloaded at [1].

[1] http://www.olympus.co.jp/...

Posted at Friday, December 28, 2007 11:41:50 AM (W. Europe Standard Time, UTC+01:00) 
Comments [0] #      | 

Sometimes, simple things end up as epic battles. If you try to MSN Search and Google for the nasty "You have create a Service" page for IIS hosted WCF services, you will and up with a lot of pre-release information and noise in the search results. Actually, you might spend days in finding some relevant information.

You have created a service.

Yesterday, I was finally pointed to the right place in the MSDN documentation [1] where you can find this specific information:

<serviceDebug httpHelpPageEnabled="Boolean"
    httpHelpPageUrl="Uri"
    httpsHelpPageEnabled="Boolean"
    httpsHelpPageUrl="Uri"
    includeExceptionDetailInFaults="Boolean" />

With the serviceDebug tag it should be possible to get rid of the page. It is easy to find as long as you know you have to search for HTML help page.

[1] http://msdn2.microsoft.com/en-us/library/ms788993.aspx

Posted at Friday, December 21, 2007 9:18:05 AM (W. Europe Standard Time, UTC+01:00) 
Comments [1] #      | 
XLINQ Summary
Posted in .NET | Coding

I just found this nice LINQ to XML summary [1] on The Code Project.

[1] http://www.codeproject.com/KB/vista/LINQ_3.aspx#LoadingXML

Posted at Sunday, December 09, 2007 11:58:39 PM (W. Europe Standard Time, UTC+01:00) 
Comments [1] #      | 

The new Web Programming Model [1] of WCF and the .NET Framework brings some very useful features such as the WebGet and the WebInvoke Attribute and the capability to deal directly with HTTP requests. But how do we access the HTTP request in these methods? Dealing with HTTP requests and responses using the System.Net namespace is quite straight forward. Therefore, we have a look in sending and receiving a simple HTTP request:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(myUrl);
byte[] a_dataBytes = Encoding.UTF8.GetBytes(data);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = a_dataBytes.Length;

Stream requestStream = request.GetRequestStream();
requestStream.Write(a_dataBytes, 0, a_dataBytes.Length);

WebResponse
response = request.GetResponse(); StreamReader responseReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
var content = responseReader.ReadToEnd();

Now we want to access the HTTP context within a operation with the following signature:

[OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "{uri}")]
bool Put(string uri);

Accessing the context of the incoming request is straightforward using the WebOperationContext class.

IncomingWebRequestContext context =
    WebOperationContext.Current.IncomingRequest;

var length = context.ContentLength;
var type = context.ContentType;
var headers = context.Headers;

Since the documentation does not provide many example code, and the ORCAS samples do not cover this yet, I had to figure out how to access the content of the incoming request. After spending hours on MSN Search, Google and the MSDN Library I finally tried out something. In some general examples, either a Message or a Stream is passed over as single parameter to the operation. Hence, I changed the contract as follows:

[OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "{uri}")]
bool Put(string uri, Stream stream);

Reading the content then is easy:

var reader = new StreamReader(stream);
string content = reader.ReadToEnd();

This solution however comes up with one major drawback: If you try to access your foo.svc via browser you will end up some error telling you "For request in operation Post to be a stream the operation must have a single parameter whose type is Stream.". Also calling foo.svc?wsdl will end up in some exception in the WSDL export extension.

 

[1] http://msdn2.microsoft.com/en-us/library/bb412169(VS.90).aspx

Posted at Sunday, December 09, 2007 9:22:53 AM (W. Europe Standard Time, UTC+01:00) 
Comments [0] #      | 
XML Notepad
Posted in Tools

Just because I use it more often than once and it is under the Ms-PL: XML Notepad is located here [1] and available for download here [2].

XML Notepad at CodePlex

[1] http://www.codeplex.com/xmlnotepad/
[2] http://www.microsoft.com/downloads/...

Posted at Monday, December 03, 2007 10:41:18 PM (W. Europe Standard Time, UTC+01:00) 
Comments [0] #      | 
Plaxo
Posted in Web 2.0

Just singed up for another Web-based  social network, lifetime address book application [1].

Plaxo

[1] http://pulse.plaxo.com/pulse/

Posted at Tuesday, November 27, 2007 8:51:55 AM (W. Europe Standard Time, UTC+01:00) 
Comments [0] #      | 
Facebook
Posted in Web 2.0

After I got several requests, I decided finally to join Facebook [1]. I am looking forward to investigating how to hook up information from Facebook within other (Web 2.0) applications.

[1] http://www.facebook.com/...

Posted at Sunday, November 25, 2007 1:29:37 PM (W. Europe Standard Time, UTC+01:00) 
Comments [0] #      | 

If you are going to un-install Visual Studio 2008 beta 2 due to the installation of  the final version, you should have a look at [1] to make sure you haven't missed anything during this procedure.

[1] http://blogs.msdn.com/buckh/archive/2007/11/20/how-to-uninstall-vs-2008-beta-2-before-installing-the-final-version-of-vs-2008.aspx

Posted at Wednesday, November 21, 2007 8:43:48 AM (W. Europe Standard Time, UTC+01:00) 
Comments [0] #      | 

After switching from WEP to WPA2 (shame on my it took so long), of course I had to update several XP and Vista machines. However, the 360 made most trouble since I used a D-Link 700AP before which was configured as a wireless bridge. Since I run a Linksys WRT54GS as gateway, it seemed to be the easiest way to get a second device of the same kind to be set up as wireless bridge being flashed with an alternative firmware. However, I realized that there is a endless number of devices in this series [1]. After getting the device I had to figure out, the new device is version 7. Due to an change in the manufacturer firmware, the ROM size of the device was continuously reduced. At this time I thought about the fact, getting a WRT54G (which is the old hardware factor and Linux based) might have been the better choice. Now I simply replaced the existing device with version 4 with the new one. and the old one providing 4 MB of RAM became the wireless gateway.

There are a couple of alternative firmware projects for the WRT54GS. After reading though a couple of posts in various forums, it seemed that OpenWrt [2] is the best choice. In addition, X-Wrt [3] seemed to be suitable for easy setup. During the setup of OpenWrt I encountered several problems ending up in my router being bricked. So I had to recover the device using TFTP [4] and the original firmware [5].

After several failures and digging a bit more I found more and much better documentation on DD-WRT [6] including documentation for setting up wireless bridges [7]. While v23 does only support WPA2-mixed mode, I switched over to v24 RC4 which finally supports WAP2 Personal.

 

[1] http://en.wikipedia.org/wiki/Wrt54g
[2] http://openwrt.org/
[3] http://x-wrt.org/
[4] http://www.dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash
[5] http://www-de.linksys.com/...
[6] http://www.dd-wrt.com/
[7] http://www.dd-wrt.com/wiki/index.php/Wireless_Bridge#WPA-Personal

Posted at Sunday, November 18, 2007 12:39:14 PM (W. Europe Standard Time, UTC+01:00) 
Comments [0] #      | 
LINQ to XML
Posted in Coding

One of the features I was looking for, is the LINQ to XML capability of the .NET Framework 3.5. In [1] you find an overall introduction it this topic.

[1] http://msdn2.microsoft.com/en-us/library/bb308960.aspx

Posted at Wednesday, November 14, 2007 9:15:46 PM (W. Europe Standard Time, UTC+01:00) 
Comments [0] #      | 
Copyright © 1995-2009 by Andreas Heil. aheil is a registered trademark of Andreas Heil. All rights reserved.
The opinions expressed herein are my own personal opinions and do not represent my employers' views in any way. Content and thoughts expressed on these pages and the weblog are subject to be changed. Out of date posts should not be considererd as my current thoughts and opinions.