Configuration mit configSource auslagern - Copy always

by Oliver 5. September 2009 10:01

Eine kleine Notiz für die Zukunft: Wenn man eine Configuration-Section aus einer *.config-Datei in eine eigene Datei auslagert, so wie neulich geschehen für die NHibernate-Konfiguration, dann sollte man die "Copy to Output Directory"-Option auf "Copy Always" setzen: <!-- Lokal eine passende NH.config anlegen --> <hibernate-configuration configSource="NH.config" /> Ansonsten bekommt man nämlich eine der folgenden ähnliche Fehlermeldung: System.Configuration.ConfigurationErrorsException: Die configSource-Datei "NH.config" kann nicht geöffnet werden. (G:\Projects\Camping.Info\Tests\bin\Debug\Tests.dll.config line 12) Oliver

Projekt Versionierung und Buildmanagement

by robert 1. August 2009 13:54

Für unsere Projekte verwenden wir eine Versionierungsstrategie, in der es darum geht die Versionskontrolsystem-Revision (in unserem Fall SVN) zuzuordnen: Beispiel www.camping.info: Interessant für uns, ist nur der hintere Teil: 2013.214. 2013: ist die SVN Revision von www.camping.info 214: ist die SVN Revision von Speak-Lib, einer Hilfs-Bibliothek Die Version wird vor jedem deployment in die Assembly.Info.cs geschrieben, noch händisch, und so wieder ausgelesen: Assembly assembly = Assembly.GetExecutingAssembly(); ltVersion.Text = assembly.GetName().Version.ToString();   Für das Build-Mangement verwenden wir Target-Process, wobei der Buildname auch die Revision beinhaltet: Hier lässt sich sehen, dass die aktuelle Camping.Info Version (x.x.2013.214) am 30 Juil deployed wurde und zur Iteration 4.7 gehört. Noch mehr Informationen finden sich den Build-Details: Die Build-Details beinhalten alle in der Version durchgeführten Änderungen. Diese Informationen können als Info an den Kunden direkt weitergegeben werden. Mit Erwin Oberascher von www.camping.Info haben wir jedoch den Ideal-Fall, in dem der Kunde Zugriff und Interesse an solchen Projekt-Artefakten hat.

Standard-Email Programm öffnen c# & mailto:

by robert 4. June 2009 13:21

Folgender Code öffnet den “Default-Email-Client”: System.Diagnostics.Process.Start( String.Format("mailto:{0}?subject={1}&body={2}", "demo@mail.de", "Nachricht von test@test.de", "Hallo %0aNachricht %0aGrußformel"));   “%0a” erzeugt einen Zeilenumbruch.     Attachments werden nicht konsistent interpretiert und sind Email-Client Versions und Patch abhängig. “Attach” wird von Outlook 2007 aus Sicherheitsgründen nicht weiter unterstützt. Werden Attachments verbindlich benötigt ist man mit dem direkten Versand der Email auf der sicheren Seite.

Ids verketten mit CHAR-Delimiter

by Oliver 10. April 2009 18:55

Ein kleiner Fallstrick im alltäglichen Programmierleben: Wir benötigen eine Liste von Int's als String, um flexibel zu sein mit veränderbarem Trennzeichen, bevorzugt ein char. Das Ergebnis überrascht:   Natürlich muss es wie folgt heißen:   Gruß, Oliver P.S. Screenshots made by Greenshot (ein funktionsreiches Open-Source-Screenshot-Tool: http://sourceforge.net/projects/greenshot/). UPDATE: Natürlich das noch  d e u t l i c h  einfacher:   Danke, .NET :-)

"Was lernen?",

by robert 8. October 2008 03:30

fragt Ralph Westphal in seinem sehr lesenswerten Post : "Die Aschenputtel-Strategie - Ein 80:20-Kriterium für neue Technologien und Konzepte".) Unsere Antwort auf "Was lernen?" - "Kontinuierlich, alles was begeistert, " :-) [quelle] Lernen und Entwicklung ist bei uns einfach Teil der Arbeit. Ca 20% widmen wir der Optimierung unserer Arbeits- und Vorgehensweisen. Verbessert wird was am meisten drückt oder vielleicht einfach nur Spaß macht ist. Neues können auch unbekannte Design Patterns sein oder eine alternative Projektstrutktur, ein neues Werkzeug oder das Einrichten von Mailinglisten für Projekte - alles was hilft! Bei uns gerade spannend: automatische Deployment für Endbenutzer (per NANT) Continous Integration (zum Teil damit Verbunden) Code generation (immer wieder :-) bessere utility und Basisklassen Davor war es IoC, davor ORM, davor MVC (was wir dann auch wieder verworfen haben), davor Design Patterns und Unit Testing, davor ... ... und die Auswahl der Themen ist hoffentlich immer pragmatisch, da nur laufenden Software glücklich macht, hat aber auch deswegen viel mit Geschmack und Vorlieben zu tun. Einen Kernteil der Strategie könnte man so zusammenfassen: Wir lassen uns davon leiten was uns begeistert und gehen davon aus, das das was uns begeistert und auch das Beste für unsere Kunden ist. Es ist großer Luxus nur das zu machen was Spaß macht oder es ist großartig daran Spaß zu haben was wir machen müssen, ..., ich freue mich jedenfalls auf das arbeiten mit nDepend, Boo, auf CodeGeneration, c# 4., die erste eigene LINQ enabled API zu schreiben und soviel mehr :-) Anwendungs-Entwicklung rockt!

Tagging

by Stefan 29. September 2008 03:54

Ich habe gerade im IRC mit jemandem gesprochen, der ein gutes Programm zum Verwalten von Bildern suchte. Der letze der mich nach sowas fragte war mein Vater vor einigen Jahren, noch bevor es Google Picasa gab. Ich erinnerte mich an das Programm, dass ich damals geschrieben hatte. Leider wurde es nie ganz fertig - zum einfachen Verwalten und Betrachten taugte es aber und ich benutzte es sogar selber, da es im Gegensatz zur Betriebssystemeigenen Bildvorschau von XP prima mit vielen Dateien umgehen konnte.Während ich soeben feststellte dass meine alte Backup-DVD korrupt ist fiel mir was ein: Wir arbeiten doch gerade unter anderem an Tagging! Wie konnte ich das nur vergessen? All die Stunden die ich damals verbracht habe, um herauszufinden, was an gewöhnlichem Tagging besonders bei großen Datenmengen so nervig ist.. Sobald ich kann, werde ich unsere Tagging-Bibliothek fertigschreiben - mit all den Lösungen, die ich mir damals ausgedacht habe. Seid also gespannt ;-)

Projektstruktur, Thirdparty .dlls

by admin 24. April 2008 12:07

Ich kann mich nicht erinnern an einem Projekt gerabeitet zu haben das nicht Komponenten Dritter verwendet hat. Bei uns sind Zurzeit eigentlich immer dabei: NUnit, NHibernate, Log4Net, gelegentlich kommen Charting Komponenten, das AJAX Toolkit, PDF Werkzeuge und andere dazu. Damit eine Anwendung sich nach dem Ausschecken auch direkt bauen lässt, müssen diese dlls nun irgendwo abgelegt werden. Hier nun eine Reihe von Vorschlägen für den Ordnernamen, in dem sich dlls dritter finden lassen könnten. _libs (MojoPortal) lib (u.a. NHibernate, StoryVerse, NetBpm, Flex-Wiki, Cuyahoga) 3rdParty (Watin, dotNetKicks) Dependencies (Subtext, EComerce Web 2.0.1) Bin (SharForge) References (Screwturn) SharedLibs (RhinoMcoks) (in Klammern stehen OSS Projekte, die diesen Ordernamen verwenden). Bei Gelegenheit wird es auch noch eine kurzen Vergleich der Projektstrukturen geben :-)

PowerCommands for VS 2008

by admin 5. March 2008 03:36

Viele schöne Ergänzungen für Visual Studio 2008, Beispiel:   Überblick über die Features Download

VS 2008, Partial Class, Gruppieren

by admin 21. February 2008 05:35

Damit partielle Klassen im Solution Explorer gruppiert dargestellt werden, bedarf es einer kleinen Anpassung in der Projektdatei. Hinzugefügt werden muß das Element "DependentUpon" und schon fügt sich zueinander, was sich fügen soll :-)

Log4Net Konfiguration

by admin 17. February 2008 12:13

Nun habe ich schon x- Mal vergessen, dass log4net die Konfiguration aus einer „app.config“ oder „web.config“ nur dann liest, wenn die Assembly das entsprechende Attribut bekommt: [assembly: log4net.Config.XmlConfigurator(Watch = true)] Und bei einer schnellen Suche in der Dokumentation habe ich diesen Teil, auch schon des öfteren überlesen. Hier nochmal in bunt :-)   (Hoffentlich ist es nun in die grauen Zellen eingebrannt :-)

About Oliver

shades-of-orange.com code blog logo I build web applications using ASP.NET and have a passion for javascript. Enjoy MVC and Orchard CMS, and I do TDD whenever I can. I like clean code. Love to spend time with my wife and our three children. My profile on Stack Exchange, a network of free, community-driven Q&A sites

About Anton

shades-of-orange.com code blog logo I'm a software developer at teamaton. I code in C# and work with MVC, Orchard, SpecFlow, Coypu and NHibernate. I enjoy beach volleyball, board games and Coke.