Browse by Tags
All Tags »
Tipps und Tricks (
RSS)
Neulich hatten wir das Problem, dass wir sehr schnell eine ASP.NET MVC Anwendung auf einen Testserver bringen mussten. Die Lösung lag direkt vor der Nase: Wir richteten auf dem Buildserver und den Testserver Dropbox ein. Der Buildserver (in unserem Fall ist es Jenkins ) baut (bei jeder Änderung im Source Code Management) die Anwendung und kopiert den Output das entsprechende Dropbox-Verzeichnis. Dropbox synchronisiert nun die Files mit dem Testserver Auf dem Testserver zeigt das Web im IIS direkt auf das entsprechende Dropbox-Verzeichnis und die Web-Anwendung kann direkt aufgerufen und getestet werden. Nachteile: Der User unter dem der Dropbox-Dienst läuft muss auf den Servern angemeldet bleiben. Es kann zu Synchronisationkonflikten kommen,...
Angeregt durch ein aktuelles Projekt, musste ich mir das Entity Framework 4 (Microsofts OR-Mapper) anschauen. Bisher hatte ich es vermieden, da ich der Meinung war, dass ich die nötigen Mappings nur über den Designer mit viel Magie und wildem herumgeklicke herstellen kann. Allerdings halte ich es für wichtig, dass die Entities, die ich in meinen Projekten benötige, nicht autogeneriert sind, bzw. nicht vom OR-Mapper generiert werden, da dadurch unnötige Abhängigkeiten zum OR-Mapper entstehen oder unnötige Objekt-Mappings gemacht werden müssen. Üblicherweise halte ich meine Entities in einem Projekt, das von allen anderen Projekten referenziert wird, die mit diesen Entities arbeiten. Mit NHibernate ist das auch problemlos möglich. BTW: Ich bin...
Ein Bootstrapper erledigt Dinge bei Start einer Anwendung. Oft werde Dinge, die beim Start einer Anwendung ausgeführt werden sollen, direkt in die Anwendung gepackt, mit dem Nachteil, dass erstens der Code an dieser Stelle unübersichtlich wird und zweitens nur schwer wartbar. Ziel ist es beim Starten der Anwendung so wenig Code wie möglich zu haben. Ziel ist es das Prinzip Separation of Concerns (siehe CCD ) einzuhalten. Der folgende Bootstrapper ist fürs Web gedacht, kann aber mit ein paar Änderungen auch für alle anderen Plattformen genutzt werden. Das Original , von dem ich hier abgeschaut habe ist sogar so gestrickt, dass er überall verwendet werden kann. (Abgeschaut habe ich das bei Albert Weinerts Anwendung SpeakerNet ) Man stelle sich...
Eigene Packages für NuPack zu erstellen ist eigentlich recht simpel. Man benötigt lediglich Mercurial um die Sourcen von http://nupackpackages.codeplex.com/ herunter zu laden. Möchte man seine Packages nicht der Allgemeinheit zur Verfügung stellen, sondern Packages für den internen Gebrauch erstellen ist das ebenfalls möglich. Die Packages müssen nicht über das öffentliche RSS Feed publiziert werden, sondern können von einem Lokalen oder einem Netzwerkpfad geladen werden. In den Options (“Tools => Options…”) gibt es einen Konfigurationspunkt für die Bezugsquellen der Packages. Neben dem bereits vorhandenen Feed können hier weitere Feeds oder Verzeichnisse eingetragen werden welche die Packages enthalten. Am Beispiel der LightCore Packages...
Anfang der Woche bin ich auf NuPack gestoßen und habe mich näher damit beschäftigt. Scott Hanselman: NuPack is a package management system for .NET. The goal of NuPack is to make the process of incorporating third party libraries into your solutions as simple as possible. Genauer: NuPack ist eine konsolenanwendung mit einer PowerShell Integration und eine Integration in das Visual Studio 2010 die es ermöglicht externe Libraries als Pakete herunterzuladen und direkt in das eigene Projekt einzubinden. Es muss also nicht mehr manuell heruntergeladen, entpackt und im eigenen Projekt referenziert werden. Updates von Libraries gestaltet sich ebenso einfach. Diese Aufgaben übernimmt NuPack. Das Prinzip ist nicht neu, sonder ist Abgeschaut von Ruby...
In der Vergangenheit habe ich in vielen Projekten, vielen Anwendungen und auch hier im Forum immer wieder die gleichen Fehler bei der Fehlerbehandlung gesehen, was mich dazu veranlasst diesen Beitrag hier zu schreiben. Im Grunde ist es immer folgender Fehler der beim Try&Catch gemacht wird: try { [ do some errors] } Catch (Exception ex) { log.Error(“Meine super duper Fehlermeldung”); throw ex; } Das ist dann keine Fehlerbehandlung, sondern eher Fehler verstecken! Oftmals wird dieses Konstrukt (“Fehlerbehandlung” mochte ich es nicht nennen) in jeder Methode genutzt die aufgerufen wird. Das hat dann den Effekt, dass dieses Konstrukt logisch wie folgt verschachtelt wird: try { try { try { try { [ do some errors] } Catch (Exception ex) { log...
In den vergangen Monaten habe ich einiges theoretisches über Event Based Components (kurz EBCs) gelesen. Das meiste von Ralf Westphal, in seinem Blog oder aus seiner Feder in der dotnetpro . Auch Golo Roden schrieb in seinem Blog über das Thema . Verwirrung Angespornt durch die Beiträge habe ich in den letzten Wochen selber versucht EBCs zu schreiben und zu entwickeln und bin zuerst gescheitert. Sobald ich die ersten Komponenten geschrieben und “zusammengesteckt” hatte, verlor ich relativ schnell den Überblick über die Komponenten und deren Verbindungen. Woran lag das? Golo wies mich auf die fehlerhafte Benennung der Events in Ralf Westphals Beispielen hin, die entgegen dem .NET Framework mit dem Präfix “On” begannen. Ich habe also von vorne...
.NET unterscheidet zwischen Referenz-Typen und Wert-Typen. Was bei vielen Entwicklern, die das nicht wissen oder beachten, zu kleineren Verwirrungen führen kann. Aber zuerst einmal die Definition: Werte-Typen sind zum Beispiel System.Int32 und System.Boolean welche im .NET-Framework vordefiniert sind. Eigene Structs und Enums sind ebenfalls Wertetypen. Strukturen sind auch dann Werte-Typen, wenn sie selber Referenz-Typen beinhalten. Referenz-Typen sind Objekte mit Klassen oder Interfaces deklariert werden. Wichtig: Referenz-Typen halten immer nur einen Zeiger auf die eigentlichen Werte Lektüre: Referenz- und Wertetypen Werttypen im allgemeinen Typsystem Arbeiten mit .NET: Grundlagen: Wertetypen und Verweistypen Referenz- und Wert-Typen: Was...
Eben bin ich auf interessante Neuerungen der System.IO.Directory Klasse im .NET 4.0 gestoßen. Wenn man bisher alle Dateien und/oder alle Ordner eines übergeordneten Ordners erhalten wollte, konnte man das mit den statischen Methoden: Directory.GetFiles() Directory.GetDirectories() Directory.GetFileSystemEntries() Man kann das auch in .NET 4.0 immer noch tun und erhält ein String-Array mit den gewünschten Einträgen. Neu sind unter anderem folgende drei statischen Methoden: Directory.EnumerateFiles() Directory.EnumerateDirectories() Directory.EnumerateFileSystemEntries() Alle drei Methoden und deren Überladungen geben ein generisches IEnumerable vom Typ String zurück. MSDN ( Directory.EnumerateFiles-Methode (String) ) Die EnumerateFiles -Methode...
Kein (ASP).NET Thema, aber eventuell doch für den einen oder anderen interessant: Wer Outlook 2007 unter Windows 7 verwendet, an die Taskbar pinnt und gleichzeitig die Option “Ausblenden, wenn minimiert” eingeschalten hat, hat sicher das gleiche Problem das ich bisher hatte: Jedes Mal wenn ich Outlook über die Taskbar öffne, öffnet sich eine neue Instanz von Outlook. Ein relativ nerviges Feature, da man vor allem beim Schließen von Outlook erst alle Instanzen schließen muss. Ich habe folgende Lösung gefunden: Man muss eine neue Verknüpfung erstellen die auf die outlook.exe verweist. folgenden Parameter anhängen: “/recycle”. (“…\Microsoft Office\Office12\outlook.exe /recycle”) Die vorhandene Verknüpfung kann man von der Taskbar entfernen. Die...
More Posts
Next page »