Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Projekt-Idee: Backend Tools für Services und Webprojekte.
malignate
myCSharp.de - Member

Avatar #avatar-3206.png


Dabei seit:
Beiträge: 751

Themenstarter:

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

beantworten | zitieren | melden

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.
Attachments
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16146

beantworten | zitieren | melden

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.
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
malignate
myCSharp.de - Member

Avatar #avatar-3206.png


Dabei seit:
Beiträge: 751

Themenstarter:

beantworten | zitieren | melden

Lightchore? Da sehe ich jetzt keine Ähnlichkeit. Das einzig ähnliche Projekt, dass ich kenne, wäre vom Grundaufbau Hangfire.
private Nachricht | Beiträge des Benutzers
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
malignate
myCSharp.de - Member

Avatar #avatar-3206.png


Dabei seit:
Beiträge: 751

Themenstarter:

beantworten | zitieren | melden

Es ist leider extrem schwierig, Open Source Entwickler zu finden :(
private Nachricht | Beiträge des Benutzers