Laden...

Projekt-Idee: Backend Tools für Services und Webprojekte.

Erstellt von malignate vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.827 Views
malignate Themenstarter:in
742 Beiträge seit 2005
vor 8 Jahren
Projekt-Idee: Backend Tools für Services und Webprojekte.

Ich arbeite an einem mittelgroßen Webprojekt. Dabei sind wir sehr agil vorgegangen und haben im Laufe der Zeit viele Veränderungen vorgenommen. Dabei hatten wir unter anderem folgende Erkenntnisse:

  1. Als Enwickler wollen wir möglichst wenig mit der Content Pflege der Webseite genervt werden.
  2. Als Entwickler wollen wir grafische Insights über unsere Services haben, z.B. Caching usw.
  3. Die Anzahl der Anwendungen und Services wächst kontinuierlich und diese müssen verwaltet werden.

Wir brauchen also für diese ganzen Services und Webseiten Verwaltungstools. Das ist nicht besonders neu, aber ich denke unser Ansatz ist ganz interessant.

Wir haben ein kleines Mini Web Framework für Owin geschrieben und stellen eine Basis bereit, mit der Module für dieses Framework geschrieben werden können. Diese Module bestehen aus API's und einer Angular App und werden als einzelne Assemblies bereitgestellt. Wenn wir einen neuen Web Service, Windows Service oder Webseite schreiben, binden wir dieses Owin System ein (dass sonst nur noch Abhängigkeiten zu JSON.NET) hat und für jede Componente die wir noch verwenden, das passende Administrationsmodul. Durch Owin sind diese Module praktisch überall einsetzbar.

Das ganz kann wie folgt konfiguriert werden:


app.UseDashboard(config =>
{
    config.ManageCaching();
    config.ManagePerformanceTracing();
    config.ManageConsole(
        UnityContainer.Resolve<IEventLog>(),
        UnityContainer.Resolve<IEventSender>());
    config.ManageGlobalization(
        UnityContainer.Resolve<ILocalizationManager>());
               ...
});

Im Laufe der Zeit haben sich so eine ganze Menge von Teils auch einfachen Modulen ergeben:

  1. Globalizaion (Texte verwalten)
  2. Content (mehrsprachige Texte im WYSIWYG Editor)
  3. Configuration
  4. Caching
  5. Logging (Logging Viewer, z.B. für Azure Tables)
  6. Extensions (Viewer für ein Plugin System)
  7. Performance (Performance Übersicht)
  8. BackgroundWorker (sowas wie http://hangfire.io/)
  9. Console (für Operationen für die man zu Faul ist eine eigene UI zu schreiben)
  10. Identity: UI für ASP.NET Identity Framework
  11. Blog (Mini Blog, sehr primitiv)

Jedes Module besteht dabei aus mindestens 3 Assemblies, z.B. wie hier:

GP.Components.Configuration
GP.Components.Configuration.Mongo
GP.Administration.Caching

Das heißt, ich kann mich individuell entscheiden, was ich verwenden will.

Ich finde, dass Entwicklung selbst mit ASP.NET MVC noch zu aufwendig ist, da ich solche Basis Aufgaben wie oben immer wieder selbst enwickeln muss und mir den Aufwand mache, Backend Tools zu schreiben. Ein CMS kann Teile dieser Aufgabe abnehmen, zwängt aber einen extrem ein und ist für SPA's und WebAPI's natürlich völlig ungeeignet.

Ich überlege gerade, ob ich das neu auf ASP.NET Core aufbaue und Open Source mache. In diesem Prozess würde ich auch einige Kinderkrankheiten beseiten und eher ein Agent basiertes System bauen, damit ich alle Microservices über eine URL verwalten kann, wenn ich das möchte. Dabei ist es natürlich sehr spannend, wie nützlich ihr ein solches System findet und vielleicht hat jemand ja Lust mitzuwirken.

16.827 Beiträge seit 2008
vor 8 Jahren

Erinnert mich ein wenig als http://lightcore.ch von Peter Bucher.
Jürgen Gutsch hat das mit der Version 2.0 auch noch weitergedacht, was wahrscheinlich in Deine Richtung gehen soll.

malignate Themenstarter:in
742 Beiträge seit 2005
vor 8 Jahren

Lightchore? Da sehe ich jetzt keine Ähnlichkeit. Das einzig ähnliche Projekt, dass ich kenne, wäre vom Grundaufbau Hangfire.

A
350 Beiträge seit 2010
vor 8 Jahren

Ich finde die Idee Klasse !
Und wenn du es Open Source machst, hättest du denke ich auch genug "Manpower" um das Projekt zu einem erfolgreichem zu machen.

malignate Themenstarter:in
742 Beiträge seit 2005
vor 8 Jahren

Es ist leider extrem schwierig, Open Source Entwickler zu finden 😦