"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 :-)

Resharper 4.0

by admin 16. February 2008 10:58

Darauf habe ich die letzten 2 Monate sehnsüchtig gewartet, ein Resharper das die neuen .NET 3.5 Spach-Features unterstützt. Seit dem 15.2 gibt es die ersten „ReSharper 4.0 Nightly Builds“. Die Installation und Benutzung ist soweit reibungslos, bei Stefan Lieser ebenfalls. Viel Spass damit :-)

Reduktion auf das Wesentliche

by admin 12. February 2008 06:21

Folgender Aufruf zeigt, dass es voran geht und wir von schnöder Entwicklungstätigkeit langsam zu den wesentlichen Dingen der Welt vordringen. Hoffentlich ist und hat die Methode keinen Bug :-)

Eclipse Benutzer mehr Hilfebedürftig als VS Anwender

by admin 20. November 2007 03:18

Untiges Bild zeigt deutlich, dass Eclipse Benutzer mehr Hilfe durch Google in Anspruch nehmen müssen und einen höheren Informationsbedarf haben als die Visual Studio Anwendergemeinde. Die Recherche belegt dies imposant. Eclipse Entwickler sind offensichtlich auch beeinflusst von astronomischen Ereignissen. Ihr Hilfebedarf wächst mit Mond und Sonnenfinsternissen maßlos. Die Frage für IT-Entscheider muss also lauten, ob Sie sich im harten Projektalltag auf Entwicklerteams verlassen möchten, die derartig Bedingungsfühlig sind.

UnitTesting: Mocking vs. Datenerzeugung

by admin 22. October 2007 00:05

Eines der größten Themen wenn es um Unit-Testing geht, ist das Mocken von Objekten. Die Grundidee beim Mocken ist fein granuliertes Testen zu ermöglichen, in dem Stellvertreter Objekte erzeugt werden, die die Bedürfnisse des Testfalls befriedigen. Hierfür gibt es in der .NET Welt eine Reihe von Frameworks die dies ermöglichen. Die bekanntesten sind wohl NMock, RhinoMocks und das Mächtige TypeMock.NET. Seit mehreren Jahren bin ich nun Test Infected, was mein Entwicklerleben deutlich einfacher macht. Im Schnitt liegt mein Test-Coverage für die Businessschicht bei über 80%. Trotz dessen sind Mocking Frameworks noch nicht wirklich in meinem Toolset gelandet. Stattdessen arbeite ich mit Setup Erzeuger Klassen, die die Businessschicht verwenden um einen definierten Zustand zu erzeugen: Ein Nebenprodukt dieser Erzeuger Klassen ist, dass sie bei der Entwicklung verwendet werden können um Testdaten zu erzeugen, wieder und wieder. Ein weiterer Pluspunkt ist, dass die API von Businessobjekten durch vermehrte Verwendung „Benutzerfreundlicher“ wird. Natürlich hat dieser Ansatz Grenzen. Testfälle müssen schnell sein, sonst werden sie nicht regelmäßig aufgerufen. (Nicht nur) Entwickler warten nicht gerne. Die Verwendung von externen Ressourcen für Testfälle fällt also flach. (Es sei denn die Unit-Test Umgebung soll auch für Integrationstest herhalten). Da externe Resourcen sowieso mit einem Proxy versehen gehören, ist das Erzeugen von Mocks (auch wieder ohne MockFramework) leicht. Hier sind IoC Container großartige Helfer. Der Gebrauch von Datenbanken sollte für das Erzeugen eines definierten Zustands unbedenklich sein. Eine Entwicklerdatenbank sollte mehr als 1000 CRUD Operation in der Sekunde verdauen können, was auch das Erstellen von komplizierten Testfällen nicht behindern sollte. Und wenn die Laufzeit der Test auf über 3sec ansteigt, kann man diese auch gruppieren und nur eine Teilmenge der Tests ausführen. Was aber frühestens bei 100 Tests, eher deutlich später eintreffen sollte.

About Oliver

shades-of-orange.com code blog logo I build web applications using ASP.NET and have a passion for javascript. Enjoy MVC 4 and Orchard CMS, and I do TDD whenever I can. I like clean code. Love to spend time with my wife and our 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.