Programm nur einmal Starten

April 28th, 2008

Hier ein kleiner Snippet, das ich immer wieder brauche.

Um sicher zu gehen, dass ein Programm nur einmal gestartet wird braucht soll man folgenden Code einfügen:

bool createdNew;

System.Threading.Mutex mutex = new System.Threading.Mutex(true, Application.ProductName, out createdNew);
if (createdNew) {
// bitte Form1 ersetzen
Application.Run(new Form1());
// und auch wieder Freigeben besser ist besser
mutex.ReleaseMutex();
} else {
MessageBox.Show(”Programm wurde bereits gestartet!”, “Info”, MessageBoxButtons.OK, MessageBoxIcon.Error);
}

Nokia 6300 ein Review

March 26th, 2008

Seit fast einen halben Jahr besitze ich schon das Nokia 6300. Jetzt werde ich mal Resumé ziehen.

Optik:

Das Handy sieht gut aus und ist schön flach. Ist auch nicht wirklich viel größer als ein iPod nano der 1. oder 2. Generation. Die Verarbeitung ist auch schön robust. Das Gerät hat schon mal bei mir das fliegen gelernt ohne, dass ich irgendwelche Kratzer bekommen habe. Das Display ist angenehm groß und hell.

Technische Ausstattung:

Das Gerät hat laut Packung alles was ein Technik Junkie so (fast) alles braucht. Bluetooth (2.0), Tri-Band, Mp3, Radio, Wecker, Countdown, Spiele, MicroSD Karten Slot, USB Anschluss, Kopfhöreranschluss (2,5″), 2 Megapixel Kamera und Lichteffekte um mal einige wichtige Eigenschaften zu nennen. Ach ja! Telefonieren kann man damit auch.

Der Alltag

Die Verarbeitung ist, wie gesagt sehr gut. Die Tasten sind alle gut erreichbar und man kann auch mit dem großen Daumen alles tippen. Das Menu ist, wenn man mal vom Bluetooth Menu absieht, recht gut gelungen. Die Sprachquallität ist auch ok und der Akku hält für mein empfinden lange genug durch. Grundsätzlich bin ich damit zufrieden, wenn es nicht einige Kritikpunkte gibt. Die Telefonoptionen sind recht gut und der Lautsprecher genial, manchmal wundere ich mich, wie so ein kleines Telefon so ein satten Sound herbringt (ok man kann es nicht vergleich mit richtigen Boxen aber das wäre ja auch unfair). SMS sind schnell geschrieben aber irgendwie sind da manchmal die Tasten so unglücklich belegt, dass ich mich öfters selbst ins Hauptmenü zurück katapultiere. Leider kann man das Wörterbuch nicht nach bearbeiten, so dass ich nicht weiß welchen Mist ich schon mittlerweile darin gespeichert habe.

Bluetooth Menu: Warum will das Gerät immer den Bluetooth im sichtbaren Modus aktivieren? Jedes mal werde ich beim einschalten danach gefragt. Unverständlich. Für was der Menupunkt “Audio-Zubehör suchen” ist weiß ich bis heute nicht. Audio Geräte findet teil auf jeden Fall nicht (hab ein BT-Stereoheadset von Nokia). Um ein neues Gerät koppeln zu können muss man umständlich im Menupunkt “gekoppelte Geräte” und dann unter “Optionen” “Neues Gerät koppeln” ein Gerät suchen. Warum gibt es dafür nicht ein eigenen Menupunkt unter “BT-Menu”?????

BT Zusammenarbeit mit dem Nokia Stereoheadset: Klappt super, sogar wenn ich das ganze mit mein Telefon und mein Computer gekoppelt habe. Geht zwar nicht gleichzeitig aber nacheinander und das ist ok. Der Klang ist auch gut!

BT Zusammenarbeit mit BT Freisprecheinrichtung von Peugeot: Ich frage mich für was es von der BT-Group eine Protokolldefinition gibt? Ich weiß nicht wer murks gebaut hat aber warum kann ich nicht im Telefonbuch einfach durchblättern (mit Sony Ericsson geht das) Die Reaktionszeit vom Wählvorgang zum ersten hören lässt manchmal auch zu wünschen übrig.

Der Musikplayer: Ich weiß welche geistige Umnachtung die Nokia Entwickler dabei gehabt haben aber die muß gewaltig gewesen sein. Hier ist mein größter Kritikpunkt an das Gerät. Sobald der interne Telefonspeicher voll ist stürzt das Teil immer wieder ab. Wenn ich das Gerät einschalte will es mein Telefonbuch immer nach neuen Titeln durchsuchen (das kann schon mal bei einer 2GB Karte gut und gerne 5 Minuten dauern) Dummerweise passiert mir auch oft, wenn ich ein neues Lied hören will. Die Songs werden im Telefon nach Alben, Interpreten, Genres und Komponisten sortiert aber leider nicht nach Interpreden und Alben. Playlisten kann man so gut wie gar keine anlegen, es gibt zwar eine Art Favouriten, nur dort Songs rein zu stellen ist sehr umständlich und das macht auch kein Spaß mehr. Wenn ich dennoch ein Song aus der Bibliothek aufrufe ist dann das Gerät für die nächste Minute komplett eingefroren und es dauert bis ich den Song höre. Also hier hat Nokia viel zu tun.

Kurzum: Ich kann das Gerät nur bedingt empfehlen. Wer ein Handy mit Mp3 sucht sollte doch lieber sich ein anderes aussuchen. Nur fürs Telefonieren ist es gut und schön klein.

Must have Visual Studio 2008 AddIn’s

March 3rd, 2008

Für meine tägliche Arbeit sind folgende Visual Studio 2008 AddIn’s von unschätzbaren Wert.

CopySourceAsHTML
Für alle Blogger ist dieses AddIn interessant. Es kopiert den markeirten Source und wandelt es in HTML um und ich kann es dann für das Web einfügen. Link zur Software

SmartPaster
Der SmartPaster ist ein AddIn mit den man einen Text in Visual Studio 2008 Kopiert. Man hat anders als “CTRL+C” die Wahl, dass das ganze als Kommentar, als String Variable oder als StringBuilder Objekt eingefügt wird. Link zur Software

GhostDoc
Roland Weigelt’s Ghost Doc ist ein kleines Magic Tool. Mit den kann man eine komplette Software innerhalb 5 Minuten Dokumentieren. Einfach den Cursor in einer Funktion legen und dann “CTRL+SHIFT+D” drücken und staunen. Auch wenn manchmal Käse rauskommt ist dieses Tool Gold Wert. Link zur Software

Saugute Idee

February 7th, 2008

Die Idee ist genial und total gut umgesetzt.

Gesehen bei
Thomas goes .NET

Den Autowert beim Insert überschreiben

January 30th, 2008

Um ein Datensatz mit einen eigenen Autowert-Id in eine Tabelle einzufügen muss man im Sql Script folgendes eintragen

1 set identity_insert [tablename] on

2 —- insert statement here

3 set identity_insert [tablename] off

Wichtig ist, dass dieser Schalter nur an einer Tabelle funktioniert.

Vielen Dank Markus E. aus N.

Connection String Platzhalter “|DataDirectory|”

December 6th, 2007

Es ist eine Einstellung, die ich mir eigentlich nie merken kann. Aber dafür ist ja mein Blog da.

In Sql Server 2005 ist es möglich auch eine Datenbankdatei (*.mdf) dynamisch anzubinden. Das ist auch recht gut für Web Anwendungen. Hier sollte sich die Datenbankdatei(en) im “App_Data” Verzeichnis befinden. Im Sql Connection String darauf zu? Einen absoluten Pfad anzugeben ist nicht ratsam. Aber dafür gibt es den platzhalter “‘|DataDirectory|”. Der verweist auf das “App_Data” Verzeichnis und schon ist die Welt wieder in Ordnung

Beispiel:

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|database.mdf; Integrated Security=True;User Instance=True

Generic List Find

December 4th, 2007

Lange hab ich gesucht und dann doch gefunden. Wie die Funktion “<listobject>.FindAll()” wirklich funktioniert.

Ein Blick in die MSDN von Microsoft und ich merke irgendwie ist die Funktion nicht wirklich zu gebrauchen. Eine andere Variante bringt die Funktion in ein anderes Licht, leider ist diese von MS nicht dokumentiert.

 1   // Liste aller countrys erstellen

 2   List<string> countrys = new List<string>();

 3   countrys.Add(“Deutschland”);

 4   countrys.Add(“Frankreich”);

 5   countrys.Add(“Niederlande”);

 6   countrys.Add(“Schweiz”);

 7   

 8   // Suche nach Deutschland Pattern

 9   string searchPattern = “Deutschland”;

10  

11  // Suche durchführen

12  string found = countrys.Find(delegate(string item) { return item.Equals(searchPattern); });

Nun befindet sich in der Variable “found” der Wert “Detuschland”. :-) Sieht doch schon besser aus, als in der Dokumentation.

Debugger in Javascript

November 7th, 2007

Wer wie ich mit Visual Studio arbeitet wird irgendwann mal die Stop-Marker für den Sourcecode lieben. In Javascript funktionieren diese Marker leider in externen Javascript dateien.

 1   <script type=”text/javascript”src=”js/extern.js”>

 2   </script >

Hat man auf der ASPX Seite direkt einen Javascript-Block eingesetzt dann kann man mit Visual Studio kein Stop-Marker mehr setzen.

 1   <script type=”text/javascript”>

 2      

 4      function Foo() {

 5         

 6         debugger;

 7         alert(“Hallo Welt!”);

 8         

 9      }

10   </script >

Abhilfe schafft der befehl “debugger” in ein Javascript.

Beim Ausführen des Befehls “Foo” hält Visual Studio in der Zeile “debugger” an und unterbricht die Ausführung. Jetzt kann man die Vorzüge des Visual Studio Deuggers benutzen. :-)

Ich werd verrückt

October 16th, 2007

Ich werd’ verrückt. Jetzt bringt Mike Oldfield ein neue Album “Music of the spheres” raus und schon möchte ich das haben. Das Dumme ist nur, dass das Album in Deutschland erst im Januar 2008 erscheint. Wie kann ich nur die Zeit überbrücken????

Das interessante ist, dass das Album in der UK als USB Stick angeboten wird. Ich bin mal neugieri, ob das bei uns auch so in der Form angeboten wird. Wäre mal interessant.

Mike Oldfield - Music of the Spheres

Cover gesehen bei www.mikeoldfield.org

Die Tracks:

Part 1
1. Harbinger - 04.08
2. Animus - 03.09
3. Silhouette - 3.19
4. Shabda - 4.00
5. The Tempest - 5.48
6. Harbinger (reprise) - 1.30
7. On My Heart - 2.27 (Featuring Hayley Westenra)

Part 2
8. Aurora - 03.42
9. Prophecy - 02.54
10. On My Heart (reprise) - 01.16
11. Harmonia Mundi - 03.46
12. The Other Side - 01.28
13. Empyrean - 01.37
14. Musica Universalis (Listen) - 06.24

Total running time: 45.30

Visual Studio 2005 F5 debuggen bei ASP.NET Anwendungen beschleunigen

August 23rd, 2007

Lange hab ich mich darüber geärgert. Bei größeren ASP.NET Anwendungen ist das starten des Debuggers (F5) sehr langsam. Ofmals musste ich mehr als eine Minute warten, bis der WebBrowser gestartet wird und ich die Anwendung debuggen kann.

Im KB 936344 wird von Microsoft beschrieben, wie man das Starten verbessern kann.

Lösung 1:

  1. Visual Studio 2005 öffnen
  2. ASP.NET Anwendung öffnen
  3. Menü “Debuggen” öffnen und den Menüpunkt “Alle Haltepunkte löschen” auswählen
  4. Geschwindigkeit prüfen.

Lösung 2:

  1. Visual Studio 2005 öffnen
  2. Menü “Extras” und anschließend “Optionen” auswählen.
  3. Bereich “Debugge” auswählen
  4. “Quelldateien müssen exakt mit der Orginalversion übereinstimmen” deaktivieren

Lösung 3 (nix für Sicherheitsfanatiker):

Das Projektverzeichnis für den Virenscanner aussperren. Somit wird unterdrückt, dass der Sourcecode jedesmal durch den Virenscanner läuft, wenn diese verwendet werden.