Today I run into a strange error: In an .NET Windows Form I’m referencing a ConnectionString from Application Settings.
At 12:00 it worked.
Changed a line of code; recompiled; started over at 12:01.

The app came up with an error: “Unrecognized configuration settings UserSettings“, the debugger pointed me to the settings file.
Tried a lot. Searched the internet. Found the only working solution:

Navigate to your user’s application data folder, and delete all the config-files belonging to your app.

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

As a .NET Developer:
Ever tried to find out more information about your computer’s system?
Ever needed a list of connected USB-Devices, available Serial Ports or Printers?
Ever heard of WMI?
Did you know, it’s also supported by Mono?

There’s a free tool from Microsoft, which is of great help navigating through namespaces, classes and their properties called “WMI Code Creator“.
This tool offers the possibility to create C#, VB.Net & VBScript code.

WMICodeCreator

download here (it’s free!)

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Jump List: contains recently used files, if the app has a associated file type (e.g. Notepad)
notepad_tray_recentfiles_HOW

Thumbnail Previews: thumbnails of running apps; can be extended by e.g. buttons
preview

The new Taskbar may also be extended by Tasks. In former times, these commands where added as context-menu to the notifyicon in system tray.

The best thing: you can use these new API-functions directly in .NET 3.5 by downloading the Windows API Code Pack.

For more demos have a look at the following sites:
Microsoft
DeveloperFusion

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Das man in Windows 7 Fenster links und rechts auf den Bildschirm docken kann ist ja nichts neues,i ch habe aber bis jetzt immer mit zwei Bildschirmen gearbeitet und bis jetzt nur geschafft ganz links und ganz rechts zu docken (d.h. Fenster 1 auf dem linken Bildschirm links und Fenster 2 auf dem rechten Bildschirm rechts)

Doch heute bin ich per Zufall über etwas lustiges gestolpert,… das Docking kann man nicht nur per Maus steuern!

Mit der Tastenkombination Windows + Left bzw. Windows + Right kann man, beim aktiven Fenster zwischen linksdocken, normal und rechtsdocken  wechseln,… auch Windows + Up (Maximieren), Windows + Down (Normal).

Vermutlich kennen das schon alle,… für mich wars neu. Hoffe es findet sich jemand den das weiterhilft. ;)

English:

It not new that Windows 7 allows to dock dialogs on the left and right side of the screen, but I usually use two screens and since now I only managed to dock a dialog either on the left side of the left screen or on the right side of the right screen.

Today I found something by chance,… the docking feature can also be done by keyboard!

With the shortcut Windows + Left or Windows + Right you can toggle between docking left, normal dialog and docking right,… also Windows + Up (maximizes), Windows + Down (normal dialog).

I assume everybody knows this already,… but its new for me,… hopefully this helps at least some people. ;)

dialogDocking

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Ich hatte bei einem Kunden das Problem, dass eine Windows .Net Applikation bei jeden Start ca. 30 Sekunden benötigt hat, bis die Applikation geladen war.
Eine ebenso dort installierte ASP.Net Applikation benötigte ca. 4 Minuten (!), bis dass der Browser die erste Seite geöffnet hatte (danach gings normal weiter, solange die Web-App nicht gestoppt wurde…).

Man konnte mit dem Prozess-Explorer förmlich sehen, wie eine dll nach der anderen mit grossen Zeitabstand in den Speicher geladen wurde… Irgend etwas schien die Ladezeit stark zu verzögern (Virenscanner?).

Erst nach langer Zeit und Suche bin ich im Google endlich fündig geworden – folgenden Eintrag muss man in einer Config-Datei (app od. web.config) machen (rot hervorgehoben):

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
     <generatePublisherEvidence enabled="false"/>
  </runtime>
</configuration>

Mit dieser Änderung geht das Starten plötzlich wieder im “normalen” Tempo…

Hier die Begründung von Microsoft (http://msdn.microsoft.com/de-de/library/bb629393.aspx):

Die Common Language Runtime (CLR) versucht, die Authenticode-Signatur zur Ladezeit zu überprüfen, damit der Publisher-Beweis für die Assembly erstellt wird. Standardmäßig benötigen die meisten Anwendungen jedoch keinen Publisher-Beweis. Die Standard-CAS-Richtlinie ist nicht auf PublisherMembershipCondition angewiesen. Vermeiden Sie die unnötigen Startkosten, die mit der Prüfung der Herausgebersignatur zusammenhängen, es sei denn, die Anwendung wird auf einem Computer mit benutzerdefinierter CAS-Richtlinie ausgeführt oder muss den Anforderungen von PublisherIdentityPermission in einer nur teilweise vertrauenswürdigen Umgebung genügen. (Forderungen nach Identitätsberechtigungen haben in einer vollständig vertrauenswürdigen Umgebung immer Erfolg.)

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Ich bin beim stoebern auf eine interessante Seite  gestossen. Dort werden Regular expressions gut erklaert und auch Beispiele angegeben.

Hervorheben moechte ich das RegEx nicht nur fuer Programmierer ist, so unterstuetzten auch manche Texteditoren  regular expressions. Und es gibt Search&Replace Tools die RegEx unterstuetzen. (z.B. im VisualStudio).

Gern genommen ist z.B. die e-mail Validierung.

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg

Natürlich gibt es sowas wie Autocompletion für TextBoxen als auch ComboBoxen, doch kann es manchmal von Nöten sein, ein eigenes custom filtering einzubauen. Dies war der Fall in einem meiner letzten Projekte. Dabei ist mir folgendes, fast schon bösartiges Verhalten der ComboBox aufgefallen.

  1. Ok, das seh ich noch ein:
    Wenn man die Liste filtert (dynamisch OnKeyPress oder TextChanged) und die ComboBox ist DroppedDown, dann sollte man vor dem Verlassen (OnLeave) den ItemIndex auf -1 setzen, da es sonst zu Problemen kommt wenn die ComboBox das selektierte Item in der Liste sucht.
  2. Und jetzt kommts:
    Wenn man aus irgend einem Grund direkt von der ComboBox (aufgeklappt und gefiltert) auf eine andere Applikation klickt, sucht die ComboBox zuerst das Selected Item und führt dann erst das OnLeave aus.

Da kommen natürlich unlösbare Probleme auf den Developer zu. Daher meine “derzeitige” Patentlösung. Wenn die Liste leer ist (nach dem filtern) einfache ein leeres Element in die Liste einfügen.

Share and Enjoy:
  • Technorati
  • Digg
  • Facebook
  • del.icio.us
  • Live
  • Google Bookmarks
  • DotNetKicks
  • DZone
  • TwitThis
  • Blogosphere News
  • Blogplay
  • LinkedIn
  • MisterWong
  • MisterWong.DE
  • MSN Reporter
  • MyShare
  • RSS
  • StumbleUpon
  • Suggest to Techmeme via Twitter
  • Tumblr
  • Twitter
  • Webnews.de
  • Yahoo! Bookmarks
  • Yigg