Yesterday night I was pretty excited to see that Spin the Bottle was downloaded 10001 time since the launch of Marketplace in October 2009.

SpinTheBottle10001-Banner

It all started with a joke on Teched EMEA 2008 in Barcelona. By the end of the evening, Rizo got so enthusiastic about it that he stayed awake and delivered the first release already in the morning.  Consequently we were able to show Spin the Bottle to the World in the very last panel discussion at the event.
When Marketplace got in place last October we decided to put it on to gain experience with the application store and certification process, so we would have experience for consulting our customers.
We know the graphics of our app could be nicer – yet we never imagined it would be so successful. The development was done more or less in spare time, on the positive side the “lean” graphics make it work also on OMAP 200 based devices like the HTC Wizard.
Windows Marketplace was a little rough around the edges when it came out! Nevertheless I have to admit it got quite mature rather fast.
During the certification process the feedback from the marketplace authority about issues in our software when failing the test where precise and always to the point. This is a clear indication that enough manpower is involved in the testing and as a result the quality of the customer experience is kept high. As a consumer I like the way the application store works – nevertheless the IPhone’s software distribution has a still a little edge because it informs proactively about software updates. Because it can leverage a Push mechanism.
From my inside-the-industry  position the only thing that’s strange is that companies who don’t have their HQ in one of the Windows Mobile Marketplace markets are banned from publishing software!

Eine gute bzw. die einzige vernünftige Möglichkeit MissingMethodExceptions und TypeLoadExceptions einer .NET Compact Framework Anwendung zu identifzieren ist das Loader Log. Dieses kann mittels der Registry aktiviert werden: Dazu sind folgende Schritte nötig:

1. CLR Logging aktivieren. Folgenden Wert auf 1 setzen:
HKLM\Software\Microsoft\.NETCompactFramework\Diagnostics\Logging\Enabled

2.Loader Log aktivieren. Folgenden Wert auf 1 setzen:
HKLM\Software\Microsoft\.NETCompactFramework\Diagnostics\Logging\Loader\Enabled

Im Prinzip reicht da schon aus. Das Logfile wird im Verzeichnis der Anwendung erstellt und heißt netcf_loader.log.
Empfehlenswert sind noch folgende zusätzlichen Einstellungen:

3.Anwendungsnamen im Logfile Namen (z.B.: netcf_myApp_loader.log. Nützlich wenn mehrere Anwendungen im gleichen Verzeichnis sind. Folgenden Wert auf 1 setzen:
HKLM\Software\Microsoft\.NETCompactFramework\Diagnostics\Logging\UseApp

4.Prozess Id im Logfile Namen. Folgenden Wert auf 1 setzen:
HKLM\Software\Microsoft\.NETCompactFramework\Diagnostics\Logging\UsePid

5. Log immer sofort schreiben. Nützlich wenn die Anwendung abstürtzt. Achtung, wirkt sich negativ auf die Performance aus. Folgenden Wert auf 1 setzen:
HKLM\Software\Microsoft\.NETCompactFramework\Diagnostics\Logging\Flush

Falls die genannten Registry Einträge noch nicht exisitieren, kann man diese einfach erstellen. Alle Werte sind vom Typ DWORD.

Mehr Informationen gibts im Blog von  Steven Pratschner und Dawid Kline.

More Information and an englisch description are posted on the blogs of Steven Pratschner and Dawid Kline.

Vor längerer zeit habe ich mal einen Hopper Test gestartet um Spin the Bottle zu testen.

Da ich in letzter Zeit mehr Anfragen bezüglich dieses  Tests bekomme, hier die Links die ich zur Recherche herangezogen habe:

http://managedfocusapp.codeplex.com/

http://msdn.microsoft.com/en-us/library/bb158517.aspx

http://www.microsoft.com/downloads/details.aspx?FamilyID=2A1E5C97-AEDE-4234-BC73-345475310942&displaylang=en

Hoffe es hilft ;)

Today I ran into Issues when I wanted to Deploy an old Application on our latest Webserver! Switching the Application Pool to enable 32 Bit Solved the Problem.

image

See this excellent Blog Post “Could not load file or assembly ‘name’ or one of its dependencies”.

In my Case the trouble was caused by an Third Party .dll compiled for x86, that was referenced by my webapplication.

Bei einem unserer Kunden, wurden bis jetzt Dateien auf der DB (Sql Server 2005) als XML abgespeichert:

<Document>

<FileName></FileName>
<FileType></FileType>
<CreatedAt></CreatedAt>
<Data></Data>

</Document>

Das <Data> Feld wurde natürlich mit base64 encoded damit man schön XML reinschreiben und auslesen konnten.

Da der Vortschritt aber auch hier einzug gehalten hat, gibt es jetzt auch hier eine eigene Tabelle mit einem Blob für <Data>. Dabei stellte sich nur die Frage wie man jetzt am besten von base64 auf Blob migriert. Folgenden netten XQuery befehl habe ich hierfür gefunden:

Documents.value(‘xs:base64Binary(/*:Documents[1]/*:Document[1]/*:Data[1])’, ‘varbinary(MAX)’)

English:

One of our customer used XML to save files inside there DB (Sql Server 2005):

<Document>

<FileName></FileName>
<FileType></FileType>
<CreatedAt></CreatedAt>
<Data></Data>

</Document>

The <Data> field was of course base64 encoded to make it easy to read and write XML files form it.

After some progress they managed to save the data into a new table with an Blob field for <Data>, but the tricky part was: how to get the base64 data into the Blob field,… during some research I found the following XQuery command.

Documents.value(‘xs:base64Binary(/*:Documents[1]/*:Document[1]/*:Data[1])’, ‘varbinary(MAX)’)

On my last vacation I used 2 digicams, but had one set to a wrong timezone accidently. That’s why I cannot copy the pictures of both cameras to one single folder, sort by date and rename. In short terms: I cannot join the pictures.

Searched the internet, but found tools, which can set the date to a specific date only, but cannot correct the timezone (e.g. add 6 hours to the file’s existing modification date).

So I had to write my own solution. Find the download links below, and feel free to modify the sources. This is a MS VS2008 project, built for .NET Framework 2.0

Hint: Please note, that usage of this tool is your own responsibility!

Ich hatte im Urlaub 2 Digitalkameras mit, wobei eine noch irrtümlich die Zeitzone vom vorangegangenen Urlaub gesetzt hatte. Resultat: ich kann nun nicht mehr einfach die Bilder der beiden Kameras in ein Verzeichnis kopieren, sie nach Datum sortieren, und umbenennen. Kurz: ich kann sie nicht korrekt zusammenfügen.

Zuerst müßte ich das ModificationDate von Kamera A um 6 Stunden (sprich: die Zeitzone) korrigieren.

Im Internet fand ich nur Tools, die das Datum auf einen vorgegebenen Wert setzen, daher habe ich das selbst in die Hand genommen. Die Download Links sind unten zu finden, die Sourcen dürfen frei modifiziert werden. Es handelt sich um ein MS VS2008 Projekt, und kompiliert für .NET Framework 2.0.

Hinweis: die Verwendung erfolgt auf eigenes Risiko!

Download:

Binary
Sources

Screenshot:

ScreenShot