© best_vector/Shutterstock.com
Diese Frameworks bzw. Tools dürfen in Ihren Projekten nicht fehlen

Top-5-Frameworks in ASP.NET MVC


In Anbetracht der Vielzahl an Projekten, die ich in den letzten Jahren implementiert habe, sind stabile und performante Frameworks eine willkommene Erleichterung für einen erfolgreichen Projektabschluss. Mittlerweile ist das Entwickeln ohne Frameworks in einigen Bereichen, wie z. B. in JavaScript, undenkbar, doch zum Teil auch sehr kurzlebig und in der Qualität nicht immer hervorragend. Aus der Menge unzähliger Frameworks haben sich für mich fünf herauskristallisiert, die ich im ASP.NET-MVC-Umfeld einsetze und als essenzielle Komponenten in meine Softwarearchitektur integriere.

Komplexe Enterprise-Softwarelösungen sollten auf einer soliden Architektur aufgebaut sein, damit Qualitätsmerkmale wie Funktionalität, Zuverlässigkeit oder Änderbarkeit in hohem Maß gewährleistet werden können. Unter Softwarearchitekten ist es oft sehr schwierig, einen Konsens zu finden, weil jeder seine eigenen Erfahrungen und Vorlieben hat. Mein Favorit ist beispielsweise das Domain-driven Design von Eric Evans. Die Gemeinsamkeit aller architektonischen Konzepte in ASP.NET MVC ist die Verwendung von so genannten Data Transfer Objects (DTO), manchmal fälschlicherweise Plain Old Class Objects (POCO) genannt. Ohne in die Tiefe gehen zu wollen, ein kleines Beispiel: Angenommen wir haben eine Klasse Role und eine weitere Klasse RoleDto, die wie in Listing 1 implementiert sind.

Listing 1

public class Role {  //Relations public virtual ICollection<User> Users { get; set; }  //Properties public string Id { get; set; } public string Name { get; set; } } public class RoleDto {  //Relations public List<string> Users { get; set; }  //Properties public string Id { get; set; } public string Name { get; set; } }

Nehmen wir weiter an, dass wir aus der Datenbank Role-Objekte ermittelt haben, die in RoleDto-Objekte übertragen werden sollen. Im Worst Case würde das wie in Listing 2 aussehen.

Listing 2

var listOfRoleDto = new List<RoleDto>(); foreach (Role role in listOfRoles) { listOfRoleDto.Add( new RoleDto() { Id = role.Id, Name = role.Name, Users = role.Users.Select(x => x.Name).ToList() }); }

Wir müssten also manuell alle Eigenschaften von Role zu RoleDto zuweisen. In Anbetracht realer Szenarien mit etlichen Klassen und sehr viel mehr Eigenschaften, kostet eine so primitive Aktion enorm Zeit. Das veranschaulichte Problem führt uns zu meinem Lieblingsframework AutoMapper [1].

AutoMapper

Das Framework AutoMapper ist ein einfach zu verwendender Object-to-object Mapper. Im Grunde werden die Attr...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang