Dependency Injection & IoC Container

by admin 7. September 2007 02:52

Guter Einblick in Dependency Injection. Ist zwar für Juice, einem Java Framework aber das Prinzip bleibt das Gleiche. Und ist nicht C# das bessere Java? :-) [Video:] Was ich spannend finde ist, das je klarer die Konzepte werden desto mehr Spass macht es sich damit zu weiter beschäftigen. Die Fragen werden interessanter: Wo sind Gemeinsamkeiten  und Unterschiede zwischen "Service Locator Pattern" u. "Dependency Injection"? Welche Vor und Nachteile habe die jeweiligen Muster? Wo ist der Unterschied zwischen Dependency Injection und Inversion of Control. Und wie kann mir das bei meiner Arbeit helfen. Inversion of Control Container für .NET Castle (Microkernel & Windsor) Spring.NET PicoContainer Object Builder (MS) Structure Map Ninject Unbedingt lesenswert ist der MSDN Artikel von Oren Eini über IoC und Windsor Container.

DSL (Domain Specific Language) und Fluent-Interface

by admin 18. August 2007 02:44

Ich arbeite gerade an Testmethoden und habe mich über folgenden Code gefreut, weil er ein relativ komplexes Thema ziemlich lesbar gestaltet. Der Test ist natürlich grün :-)    (Clicken für Originalgrösse) Das Setup für die Tests ist mir immer noch einen Tick zu lang und ich werde wohl noch refaktorisieren. Auch werde ich gleich noch ein paar mehr Asserts hinzufügen. Erzeugt werden 8 Angebote mit jeweils 4 und 3 Eigenschaften. Sticker haben hier keinen Preis, sind also kein echtes Angebot aber für den Test reicht das komplett. Die Angebote lassen sich mit einem Einzeiler persistieren. Die Flyer und Sticker Klassen Definition und Helper Klassen werden via XML Configurationsfiles generiert, was auch den Sprach-Mix erklärt. Ursprünglich war das nur gedacht um schnell und einfach Tests schreiben zu können, nun ergeben sich aber noch ein paar andere Vorteile. Das Endprodukt läst sich so relativ flexibel befüllen. Für ein paar 10 000 Produkte braucht es nur wenige Zeilen... Komisch, in den letzten 4 1/2 Wochen habe ich 7100 Zeilen Code (oben sieht man 30 Zeilen ;) fürs das Backend unserers Produktes geschrieben. Nach dem ich die letzten Tage ein wenig panisch geworden bin, vor allen Dingen wegen vager Anforderungen und  Unwissenheit über Zielgruppen und Märkte, scheint sich doch noch alles zusammen zu fügen. Trotzdem steht jetzt erstmal Crunch-Time an. Lets Rock'n Roll :-)

Old news is as well news

by admin 10. July 2007 03:13

Alle Webseiten von "microsoft.com" laufen nun auf Windows 2008 Server und IIS 7 (beide noch Beta). Microsoft hosted auf 80 Servern 500 Virtual Roots, 350+ Webapplikationen. Es werden 10 000 Anfragen pro Sekunde und 300 000 Parallel Verbindungen verarbeitet. Nachzulesen via IIS Blogs. Ob alte Neuigkeiten Neuigkeiten bleiben sei dahin gestellt. Ich freue mich jedenfalls schon auf das nächste  Jahr. Orcas und IIS 7 sind sehr vielversprechend auch für ASP.NET 2.0 Anwendungen. Die Migration von 2.0 auf 3.0 scheint nicht annähernd so schmerzlich zu werden, wie es die Migration von 1.1 auf 2.0 war. Orcas wird ASP.NET 2.0 als Entwicklungsumgebung nativ unterstützen, was die meisten Probleme wohl aus der Welt schafft. Von "breaking changes" war bisher nichts zu hören. Offen ist noch das Release Date des eigentlich für die zweite Jahreshälfte 2007 angekündigten neuen Windows Servers. Nun sprechen Gerüchte von Beginn 2008. Interessant wird wohl auch, mit welcher Geschwindigkeit deutsche Hoster Windows 2008 in Ihr Angebot aufnehmen. Schade. IIS 7 wird nicht auf alten Windows 2003 Servern zu installieren sein.

Wie gross ist der .NET Markt

by admin 8. July 2007 21:32

Wesner Moise möchte diesen Monat NStaic, ein vielversprechendes Code Analyse Tool, fertigstellen. Er stellt sich die Frage wie gross der .NET Markt ist und liefert folgende Zahlen:  1 Mio Mal wurde Visual Studio ausgeliefert 15 Mio Mal wurde Visual Studio Express heruntergeladen 200 000 Bücher über c# werden jedes Jahr verkauft 120 000 Bücher über .NET werden jährlich verkauft 100 000 Bücher über VB.NET Vergleichszahlen liefert das Oreilly Radar. Demnach ist Java (Q1 2007 verkaufte Bücher: 63 136) knapp vor c# (Q1 2007 verkaufte Bücher: 52 655) die Nummer eins für Orreily.

enjoyed the post?

Tags:

.NET

Moonlight Hackathon

by admin 21. June 2007 14:05

Miguel de Icaza beschreibt sehr detailiert wie ein kleines Team Silverlight innerhalb von 21 Tagen für Linux portierten. Beeindruckend ist der Arbeits , Schlaf- und Wachrhythmus über die Kontinente verteilt. Schichtarbeit getrieben durch Enthusiasmus:-) Die Problemstellung (Grafik-Engine mit einer Unmenge von Möglichkeiten, viele drum herum z.B. Installer) war mehr als komplex. Für mich als .NET Entwickler ist es eine gute Nachricht wenn ein Team von Alpha-Geeks eine neue Technologie derartig schnell und begeistert aufnimmt. Es schaft Vertrauen, wenn .NET und begleitende Technologien wie WPF aktiv für und auf anderen Platformen, wie Mac, Linux, Mobile Devices entwickelt und gefördert werden. Der Artikel ist hier zu lesen: Implementing Silverlight in 21 Days.

210 Ajax Frameworks

by admin 24. May 2007 00:07

Michael Mahemoff zählt 210 Ajax Frameworks. 79 davon sind pur client-seitig, 131 sind server-seitig. Er zählt erstaunliche 19 Ajax Frameworks für ASP.NET.

enjoyed the post?

Tags:

.NET | ASP.NET | WEB 2.0

Nur die CLR 2.0 und Du

by admin 18. May 2007 17:18

Oren Eini stellt eine interessante Frage."Du hast nur die CLR und must ein komplexe Anwendung bauen. Aus projektpolitischen Gründen ist es nicht erlaubt externe Bibliotheken zu verwenden - egal ob Open Source (OSS) oder von Microsoft. Kannst Du eine Anwendung auf diese Art und Weise bauen?". Oren verneint die Frage rhetorisch. Die Entwicklung eines einfachen IoC schätzt er auf 2 Tage, die Entwicklung einer rudimentären OR/M Schicht auf eine Woche. Ersteres empfinde ich dank Activator.CreateInstance() als einfach. Eine OR/M Schicht dürfte nach einer Woche kritisch zu beurteilen sein. Ob objektrelationales Mapping zwinged erforderlich ist sei dahin gestellt. ADO.NET ist mächtig. Objekte lassen sich mit eine DataReader händisch befüllen. Mit Hilfe einer trivialen Template Engine ist auch auf diese Art und Weise eine beachtliche Entwicklungsgeschwindigkeit bei hoher Codequalität zu erreichen. Inversion of Control sollte nicht für alles verwendet werden. Für mich ist es eher eine mögliche Refaktorisierung, die bei Bedarf durchgeführt werden sollte. Der eigentlich Punkt den Oren heraustellt ist, wie wesentlich Bibliotheken die tägliche Arbeit beeinflussen, verbessern und ermöglichen. Gelobt seien HHibernate, Castle, NUnit, NLog und all die vielen anderen von AJAX.NET bis #ziplib :-)

Dynamic Language Runtime (DLR)

by admin 13. May 2007 02:41

Bisher glaubte ich, dass die einzige wirkliche Sprache des .NET frameworks c# sei. VB.NET war für mich bestenfalls eine Pflichtleistung Microsofts für die Unverbesserlichen. Das Konzept der CLR, eine Ausführumgebung für jede beliebige Sprache zu sein, empfand ich als ausserodentlich gutes Marketing. Natürlich ist die CLR technisch schön. Die Idee ist elegant. Aber für die Praxis? Ich meine, wer benötigt denn IronPython oder die PHP-CLR Phalanger, die populäreren Vertreter der vielen (hundert?) CLR Sprachen. In den letzten vier Jahren mit c# habe ich nur wenig die dynamische Typisierung PHPs vermisst. Die immer wiederkehrende Diskussion, statische Typisierung vs. dynamische Typisierung, wurde auch in der x-ten Version nicht spannender. Ruby, Python oder PHP konnten mich nicht neidisch machen. Ich hatte ja mein mein geliebtes c#. Dazu war Resharper in meinen Werkzeugkasten, ein Produkt das für dynamische Sprache so nicht denkbar wäre? Auch die wirklich grossartigen und einflussreichen Entwickler, meine Stars, waren auf meiner Seite. Ich gebe zu, abundzu hätte ich gerne ein wenig duck typing dürfen. Gelegentlich hätte ich auch gerne beherzt down gecasted - ohne zickigen compiler. Aber das waren bestenfals kleine Schäfchenwolken an meinem Programmiererhimmel. Vielleicht hatte für einen kurzen Moment Ruby on Rails mein Herz erweicht, doch da erschien auch schon MonoRails auf der Bildfläche und die Begehrlichkeiten waren gestillt. Interessant. Auf der MIX 07 wurde die DLR vorgestellt. Eine Erweiterung der CLR die das entwickeln dynamischer Sprachen vereinfacht. Die DLR steht unter der Microsoft Permissive License und ist somit Open Source. Microsoft scheint technologisch nicht nur mitzuschwimmen sondern mit LINQ, Generics der entspannteren Lizenspolitik, IIS 7.0 und vielem, vielem mehr auf der Entwickler Seite alles richtig zu machen.

NHibernate in Deutschland - eine Nische?

by admin 27. April 2007 17:26

Wie viele deutsche Entwickler verwenden NHibernate? Google Trends beantwortet die Frage einfach: „Zu wenig Suchende“ um einein Trend zu ermitteln. Schade! Die Suche im deutschsprachigen Netz nach NHibernate ermittelt 17 600 Treffer. Im Vergleich dazu gibt 276 000 Treffer für Hibernate, um den Faktor 15 Mal mehr. Linq: 81700 NHibernate 17600 iBatis 608 Objectspaces: 596 Unten ist der Vergleich zwischen java und c# (.Net sieht nur marginal besser aus.) via Google Trends zu sehen. Im Prinzip kann das nur heißen, das Java Benutzer einen wesentlich höheren Suchbedarf haben :-) (robert)

GUID - warum, weshalb und wie

by admin 27. April 2007 16:46

Ich war noch nie ein grosser Freund von diesen grossen, global eindeutigen, hässlichen Identifieren. Wie sieht das denn aus: "30dd879c-ee2f-11db-8314-0800200c9a66" ? Und verbraucht das nicht unötig viel mehr Platz (128bit) als ein Auto Increment Feld (32bit)? Wid der Index unserer lieblings Datenbank nicht unnötig aufgebläht. Und sind sie denn wirklich "globally unique"? Kalid Azad hat jedoch ein paar gute Gründe GUIDs einzusetzen und leistet großartige Arbeit GUIDs zu erklären. Sehr lesenswert: The Quick Guide to GUIDs. (robert)

enjoyed the post?

Tags:

.NET

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.