Bei vielen Problemen des Programmieralltags fragt man sich "Das Problem muss doch schon irgendjemand mal gelöst haben.” Leider findet man meist nicht all zu viele Beispiele, welche einen etwas komplexeren Anwendungsfall beschreiben. Ich versuch mal in dem Blogpost ein paar ASP.NET MVC Samples kurz zu benennen ;).
Die Liste ist natürlich nicht vollständig - es gibt da draußen bestimmt noch haufenweise tolle andere ASP.NET MVC Samples. Dies soll nur als kleine Orientierungshilfe dienen.
Nerddinner
Die Nerddinner Anwendung wurde als "DemoProjekt” von Microsoftis erstellt und daher findet man auch recht viel Material im Internet: Hier z.B. das eBook dazu.
Generell ist die Nerddinner Anwendung nicht allzu komlex, allerdings gibt es ein paar Sachen die nett sind:
- Recht einfach gestrickte Unit-Tests. Für Anfänger vielleicht ein guter Einstieg.
- OpenID Support
- Bing Maps
- OData Support
- gekapseltes Entity Framework samt Repository Pattern
Als Enterprise Solution würde ich es allerdings nicht ansehen, aber man kann einen Blick drauf werfen um einen guten Einstieg in ASP.NET MVC (und ein paar anderen Spielerein) zu bekommen.
Hier gehts zum Nerddinner Source.
Sharp Architecture
Eigentlich ist "Sharp Architecture” kein "Sample”, sondern ein "Architektur-Guide”. Es beinhaltet u.a. auch VS Templates. Um mal einen Blick auf eine fertige Anwendung zu werden gibt es ein Northwind Sample. Diese "Sample” umfasst nicht nur ASP.NET MVC, sondern auch diverse andere Technologien, wie WCF und NHibernate. Wobei der NHibernate Part sehr groß ist ;)
Diese Applikation würde ich schon eher "Enterprise ready” bezeichnen. Ein Blick sollte man wohl mal auf diese Komponenten werfen:
- IoC mit Castle Windsor
- Der Einsatz von NHibernate
- UnitTests mit NUnit
- Die Aufsplittung der MVC App in ein "View” Projekt und ein "Controller” Projekt.
- Bestimmt gibt es da noch viele andere clevere Sachen - allerdings bin ich auch erst heute darauf gestoßen ;)
Hier gehts zu den Downloads.
Code Camp Server
Der Code Camp Server zählt auch schon zu den etwas größeren Applikationen. Auch hier ist NHibernate ein Thema, auch AutoMapper und CastleWindsor spielen eine Rolle.
Interessant fande ich die Idee mit dem "Command Pattern” um nicht endlos viele Manager/Service Klassen zu haben. Es gibt wohl auch Powershell-Scripts die (magische) Sachen tun - in einer ruhigen Minute sollte man sich das mal ansehen ;)
Anfänger werden allerdings vermutlich bei diesem Projekt erst mal erschlagen ;)
Hier gehts zur Codeplex Seite.
Shrinkr
Shrinkr ist ein schicker URL Verkürzungsdienst. Im Hintergrund gibt es aber doch recht interessante technische Konzepte und APIs.
Hier ein paar Punkte die mir aufgefallen sind:
- OpenID Unterstützung
- UnitTests
- Sowohl Entity Framework als auch NHibernate werden unterstützt
- Es gibt mehrere ViewEngines (Spark & die normale Engine)
Der Anwendungsfall ist recht einfach und verständlich, daher könnte dies auch für MVC Anfänger interessant sein. Auch wenn man erst mal gar nicht weiß, wo man überhaupt anfangen soll ;)
Auf der Codeplex Seite sind alle wesentlichen Features auch übersichtlich aufgeschrieben.
MVC Time Planner
Die MVC Time Planner App ist hier vielleicht noch die "kleinste” App. Für Anfänger ist diese Anwendung, neben dem Nerddinner, noch am besten zu empfehlen. Auch hier kommt NHibernate zum Einsatz und im Frontend gibt es ein paar jQuery Sachen.
Orchard
Orchard ist ein von Microsoft gebautes CMS, welches in der Liga eines Wordpress angesiedelt sein soll: Leichte Anpassbar, Plugins und auch für den Enduser benutzbar. Das Frontend basiert auf ASP.NET MVC, allerdings ist das Pluginsystem meiner Meinung nach recht interessant. Orchard ist für sich äußerst interessant und als Sample für den fortgeschritten Entwickler als "Architekturidee” IMHO bestens geeignet.
Kennt ihr noch gute Samples?
(Mit "Samples” meine ich ein Stück Software, welches man so auch in irgendeiner Form ausführen kann. Dies brauchen nicht zwangläufig nur ASP.NET MVC Beispiele sein - auch Architekturbeispiele oder ein Projekt mit "guten” Unittests ;) )