Archive for September, 2009

NHibernate – typisierte Liste in ein DTO wandeln

Montag, September 28th, 2009

Wie kann man ganz einfach eine generische Liste in ein “generisches DTO” wandeln? Diese Frage stellten wir uns letztens in der Arbeit. Nach mehreren Codezeilen um die generische Liste (manuell) zu mappen, waren wir der Meinung, dass es doch einfacher zu handhaben sein muss.
Nach einer längeren Recherche sind wir dann auf Transformers.AliasToBean gestoßen. Anbei ein kleines Beispiel für die Anwendung von Transformers.AliasToBean.

So könnte die Klasse “Auflage” aussehen:

image

Das dazugehörige DTO:

image

Da ich Fluent-NHibernate verwende, wird die Klasse wie folgt gemappt:

   1: public class AuflagenMap : ClassMap<Auflage>

   2: {

   3:     public AuflagenMap(){

   4:         Id(x => x.Id);

   5:         Map(x => x.Datum);

   6:         Map(x => x.Anzahl);

   7:     }

   8: }


Mit Projections.Sum(“Anzahl”).As(“Auflage”) wird bestimmt wohin gemappt werden soll. “Anzahl” kommt aus “Auflage” und wird per Alias (“.As”) in das Property “Auflage gemappt. Das gleiche gilt natürlich auch für die Gruppierung nach Datum.

   1: public IEnumerable<AuflageDto> AuflagenSummierung(){    

   2:     var criteria = m_Session.CreateCriteria(typeof (Auflage))

   3:         .SetProjection(Projections.ProjectionList()

   4:             .Add(Projections.Sum("Anzahl").As("Auflage"))

   5:             .Add(Projections.GroupProperty("Datum").As("Datum")))

   6:         .AddOrder(Order.Asc("Datum"))

   7:         .SetResultTransformer(Transformers.AliasToBean(typeof (AuflageDto)))

   8:         .List<AuflageDto>();

   9:     return criteria;

  10: }

Das Ergebnis sieht dann so aus:

image

Blog-Parade: Die 3 beliebtesten Fachbücher aus dem .NET-Umfeld

Mittwoch, September 16th, 2009

Wolfgang Kluge hat eine neue Blog-Parade gestartet. 
Über seinen Blog sucht er die beliebtesten Fachbücher aus dem .Net-Umfeld. Ich hab hier meine 3 Favoriten zusammengestellt.

1. Agile Principles, Patterns and Practices in C# [Robert C. Martin und Micah Martin]

AgileIn dem Buch geht es um die agile Software-Entwicklung mit verschiedenen Principles (SRP, OCP, LSP, DIP, usw.).
Des weiteren werden die Vorteile von agilen Arbeitstechniken, z.B. Pair-Programming, beschrieben.
Alle Beispiele in C# sind strukturiert und werden dem Leser einfach übermittelt.

 

2. Clean Code [Robert C. Martin]

CleanCodeRefactoring, Patterns, Testen und Techniken für sauberen Code in einem gut und ausführlich geschriebenen Buch.  Ein muss für jeden Clean-Code-Developer.

 

 

 

3. Refactoring [Martin Fowler]

Refactoring

Verbessern Sie Ihren Code! – so die Einleitung von Martin Fowler. Refactoring ist schon lang nicht mehr nur für “Refactoring-Experten” gedacht, sondern jeder Entwickler muss dazu angehalten werden sauberen Code zu hinterlassen.

 

 

 

Das waren meine 3 Bücher, wobei es noch weitere im Repertoire gibt, z.B “DDD” von Eric Evens.

Neuer Mitbewohner

Dienstag, September 15th, 2009

Seit kurzem haben wir einen neuen Mitbewohner zu Hause. :-)

20090828_782Das ist das erste Bild unserer kleinen Katze (ca. 14 Wochen). Noch ist sie sehr schüchtern.

 

 

 

 

20090830_793Da Katzen immer ein begehrtes Motiv sind, wird es demnächst hoffentlich wieder mehr Bilder zu sehen geben.

 

 

 

Übrigens: ihr Name ist Amy-Lou.