Tipps: Nützliche Community-Projekte aus dem .NET-Umfeld

In diesem Beitrag möchte ich mal einige Community-Projekte vorstellen. Gerade in den letzten Jahren ist die Open Source Community rasant gewachsen. Das zeigt sich auch schon an den diversen Plattformen: Angefangen beim Klassiker SourceForge über CodePlex von Microsoft bis hin zu GitHub. Auf jeder einzelnen Plattform sind tausende Projekte gehostet und da kann eine Suche schon recht schwierig werden. Ich möchte hier jetzt mal einen kleinen Überblick über Projekte aus dem .NET-Umfeld geben (diese Liste hat keinen Anspruch auf Vollständigkeit und wird kontinuierlich aktualisiert).

WPF / UI

Gerade im Umfeld von WPF gibt es sehr viele Community-Projekte. Gibt man z.B. auf Github den Suchbegriff „WPF“ ein erhält man aktuell über 8.000 Ergebnisse (siehe hier: https://github.com/search?utf8=%E2%9C%93&q=wpf)! Daher nun mal einige ausgewählte WPF Community-Projekte, die man sich unbedingt einmal näher anschauen sollte.

MahApps.Metro

MahApps.Metro ist ein Projekt um WPF-Anwendungen auf einfache Art und Weise den Metro-Style zu verpassen. Das Projekt wurde ursprünglich von Paul Jenkins (http://vikingco.de/) im Jahr 2011 ins Leben gerufen und wird seither kontinuierlich von der Community weiter entwickelt. Neben dem eigentlichen Styling gibt es noch diverses zusätzliche Controls wie z.B. Flyouts, FlipView, ProgressRing usw. All diese Controls kann man sich in der Demo-Anwendung auch in Aktion anschauen:

MahApps.Metro Main Demo Window

MahApps.Metro Main Demo Window

Homepage: http://mahapps.com/
GitHub-Repository: https://github.com/MahApps/MahApps.Metro
NuGet-Package: https://www.nuget.org/packages/MahApps.Metro/

Modern UI for WPF (MUI)

Ein weiteres sehr schönes Styling-Projekt ist Modern UI for WPF (MUI). Dieses Projekt bringt ebenfalls Controls und Styles mit um der eigenen WPF-Anwendung ein modernes Aussehen zu verleihen. Hier mal ein Screenshot:

Modern UI for WPF Demo Window

Modern UI for WPF Demo Window

Auf der Projektseite gibt es weitere Screenshots zu sehen: https://github.com/firstfloorsoftware/mui/wiki/Screenshots

Neben den Controls und Styles gibt es auch vordefinierte Layouts. Diese werden hier etwas näher beschrieben: https://github.com/firstfloorsoftware/mui/wiki/Predefined-page-layouts

GitHub-Repository: https://github.com/firstfloorsoftware/mui
NuGet-Package: https://www.nuget.org/packages/ModernUI.WPF/

Material Design in XAML Toolkit

Dieses Projekt portiert das von Google Inc. entwickelte Material Design auf die Windows-Plattform. Material Design ist eine vom Unternehmen Google Inc. entwickelte Designsprache und wurde zuerst bei Google Now verwendet. Das Design basiert auf kartenähnlichen Flächen und wird mittlerweile in vielen Apps verwendet. Das Projekt stammt von James Willock (https://twitter.com/James_Willock) und harmoniert perfekt mit MahApps.Metro und Dragablz. Hier mal ein Screenshot der Demo-Anwendung:

Material Design In XAML Toolkit Demo

Material Design In XAML Toolkit Demo

GitHub-Repository: https://github.com/ButchersBoy/MaterialDesignInXamlToolkit

WPFLocalizationExtension

Die WPFLocalizationExtension erlaubt es eine WPF-Anwendung mit klassischen .resx-Dateien zu lokalisieren. Darüber hinaus gibt es eine Markup-Erweiterung, die es erlaubt Control-Properties direkt im XAML-Code an die lokalisierte Ressource zu binden. Das sieht dann in etwas so aus:

Hier ist die Dokumentation (auf der alten Projektseite) zu finden: https://wpflocalizeextension.codeplex.com/documentation

GitHub-Repository: https://github.com/SeriousM/WPFLocalizationExtension
NuGet-Package: https://www.nuget.org/packages/WpfLocalizeExtension/

ResX Resource Manager

Zum Editieren von .resx-Dateien bietet sich der ResX Resource Manager an. Dieses Tool bietet einen zentralen Zugriff auf alle ResX basierten String-Ressourcen innerhalb des Solution. Dabei werden alle Ressourcen (auch die unterschiedlichen Sprachen) in einem einheitlichen DataGrid angezeigt. Somit kann man schnell durch die Ressourcen-Dateien navigieren und findet schnell die entsprechenden Zeichenfolgen. Dies macht die Suche nach noch nicht übersetzten oder verwaisten Einträgen zum Kinderspiel. Und das Beste: Die .resx-Dateien lassen sich direkt im DataGrid editieren und speichern (man muss also nicht mehr zwischen den einzelnen Ressourcendateien für die unterschiedlichen Sprachen hin und her switchen). Darüber hinaus steht ein Excel Im- bzw. Export bereit, um die Übersetzungen auch außerhalb von Visual Studio bearbeiten zu können. Hier mal ein Screenshot der Visual Studio Erweiterung:

ResX Manager Visual Studio Erweiterung

ResX Manager Visual Studio Erweiterung

Visual Studio Erweiterung: https://visualstudiogallery.msdn.microsoft.com/3b64e04c-e8de-4b97-8358-06c73a97cc68
CodePlex: http://resxresourcemanager.codeplex.com/

Extended WPF Toolkit™ Community Edition

In manchen Anwendungen stößt man mit Standard WPF-Controls schnell an die Grenzen. In diesem Fall könnte sich ein Blick auf Extended WPF Toolkit™ Community Edition lohnen. Bei Extended WPF Toolkit™ Community Edition handelt es sich um eine Sammlung von insgesamt 46 WPF-Controls (darunter auch AvalonDock, ein Docking Window Control). Mit AvalonDock ist es z.B. möglich ein UI ähnlich Visual Studio zu erstellen:

AvalonDock

AvalonDock

CodePlex: http://wpftoolkit.codeplex.com/

Anwendungsframeworks

PRISM

Prism ist ein Framework für den Aufbau von lose gekoppelten, wart- und testbaren XAML-Anwendungen in WPF, Windows-10 UWP und Xamarin Forms. Dafür gibt es für jede Entwicklungsplattform eine eigene Version, die unabhängig voneinander entwickelt werden. Prism stellt dabei eine Sammlung von Entwurfsmustern zur Verfügung, die dabei helfen gut strukturierte und wartbare XAML-Anwendungen zu implementieren. Zu diesen Entwurfsmustern zählen DependencyInjection, MVVM, Commands, EventAggregator und andere. Prism 6 ist vollständig Open Source und wurde ursprünglich vom Microsoft Patterns & Practices Team entwickelt. Die Mitglieder des aktuellen Kernteams waren alle Teil des Microsoft Patterns & Practices Teams.

Prism lässt sich mit einem Template-Pack (https://visualstudiogallery.msdn.microsoft.com/e7b6bde2-ba59-43dd-9d14-58409940ffa0) vollständig in Visual Studio integrieren. Dieses Template-Pack stellt dem Entwickler Code-Snippets, Templates und Projektvorlagen für die schnelle und effiziente Erstellung/Entwicklung von Prism-Anwendungen zur Verfügung:

Prism Visual Studio Template Pack

Prism Visual Studio Template Pack

GitHub: https://github.com/PrismLibrary/Prism
NuGet: https://www.nuget.org/packages/Prism.Core/
Prism Template-Pack https://visualstudiogallery.msdn.microsoft.com/e7b6bde2-ba59-43dd-9d14-58409940ffa0

Datenbank / OData

Neben dem UI wird in heutigen Anwendungen oftmals auf Datenbanken oder Webservices zugegriffen. Auch hier gibt es nützliche Bibliotheken, die überaus nützlich sein können.

Simple.OData.Client

Der Simple.OData.Client ist ein Multiplattform OData-Client, der .NET 4.x, Silverlight 5, Windows Phone 8, Android und iOS unterstützt. Der große Vorteil dieses OData-Clients besteht darin, dass keine Context- oder Entity-Klassen generiert werden müssen. Im einfachsten Fall sieht ein Zugriff wie folgt aus:

Damit ist der Name hier Programm. Einfacher geht es nicht 😉

GitHub: https://github.com/object/Simple.OData.Client
NuGet: https://www.nuget.org/packages/Simple.OData.Client/
Wiki: https://github.com/object/Simple.OData.Client/wiki

Icons

Wer auf der Suche nach schönen Icons ist sollte sich einmal die folgenden Community-Projekte anschauen:

Modern UI Icons

Modern UI Icons

Modern UI Icons

Homepage: http://modernuiicons.com/

Material Design Icons

Material Design Icons

Material Design Icons

Homepage: https://materialdesignicons.com/

Fork me on GitHub