Unbeantwortete Themen | Aktive Themen Aktuelle Zeit: So 25. Jun 2017, 21:01



Auf das Thema antworten  [ 9 Beiträge ] 
Umstrukturierung Webseite auf ASP.Net MVC vNext 
Autor Nachricht
OpenFireSource-Team

Registriert: So 28. Okt 2012, 19:19
Beiträge: 1152
Hallo zusammen,

es wurde vor kurzem - relativ spontan - die Überlegung getroffen, die Webseite vom aktuellen ASP .Net MVC 4 (Stand irgendwann 2013) auf das modernere, flexiblere und entschlackte ASP .Net MVC vNext (bzw. kommende Version 5) umzustellen. Dies wird viele Vereinfachungen seitens der Entwicklung mitbringen, aber auch sehr viele Vorteile für den Endanwender, wie z. B. eine deutlich erhöhte Erweiterbarkeit und Flexibilität durch die Verwendung von modernsten Webtechnologien.

In diesem Zusammenhang werden einige Diskussionen und Absprachen notwendig, die gerne auch öffentlich sein dürfen. Hier gibt es nichts zu verbergen und da die Webseite von vielen Benutzern verwendet werden, dient das zugleich dem offenen Austausch.

Nur noch eine kleine Bitte: Alle nicht an diesem kleinen Projekt beteiligten Benutzer mögen sich bitte mit "Zwischenrufen" zurückhalten, damit der Informationsfluss optimal bestehen bleiben kann. Ggf. werdet ihr direkt in separaten Threads angesprochen.

Wir werden mit den Postings starten, wenn wir die anfänglichen Absprachen erledigt haben.

In diesem Sinne,

_________________
Grüße,
chris


Fr 30. Okt 2015, 20:08
Profil
Benutzeravatar

Registriert: Di 22. Sep 2015, 15:02
Beiträge: 115
Hallo,
da ich in der Webseite ein sehr großes Potenzial für die Zukunft sehe, würde ich euch gerne mit dem ein oder anderen Commit unterstützen.

Ich habe mal eine kleine Auflistung der anderen Technologien vorgenommen, welche in GitHub vorgeschlagen wurden:
  • SignalR
    Kurz zusammengefasst ist es ein von Microsoft entwickeltes Framework, mit welchen sich Real-Time Webanwendungen entwickeln lassen. Dies wäre für die Alarmanzeige eine sinvolle Option, da so die Anfrage nach einem neuen Alarm alle 10s entfällt. Außerdem können damit Sachen wie die Änderung des Fahrzeugstatus (entfällt wahrscheinlich beim Digitalfunk) oder die einfache Disposition von Fahrzeugen realisiert werden.
    Das ganze müsste jedoch als extra Plugin für AlarmWorkflow entwickelt werden (mit einem eigenen SignalR-Server), da nur so die Daten auch in Echtzeit zur Verfügung stehen.
  • Bootstrap
    Ein CSS-Framework für die Erstellung responsiver Webseiten. Damit kann eine einheitliche Grundlage für das Design geschaffen werden.

Im Ablauf bzw. bei dem Umfang der Webseite stellen sich mir jetzt noch ein paar Fragen:
  1. Zur Zeit wird auf die Datenbank über den Service zugegriffen. Dies ist eine sehr schöne Möglichkeit, die einzelnen Ebenen zu abstrahieren. Bringt aber auf der anderen Seite auch das Problem mit sich, dass keine flexiblen Veränderungen an der Datenbank möglich sind, ohne den Service zu erweitern bzw. umzuschreiben. Wird dies in Zukunft weiter bestand haben, oder fällt diese Ebene raus (das quasi direkt auf die Datenbank zugegriffen wird)?
  2. Wie ist die Alarmpage in Zukunft geplant? Derzeit ist es ja eine HTML-Datei, welche nach belieben angepasst werden kann. Da aber viele Benutzer HTML und JS nur schlecht bis gar nicht können, wäre es vielleicht eine Überlegung wert, ein Widget-System einzubauen. Diese könnte man auch auf der Seite anzeigen, wenn keine Alarm eingegangen ist (z. B. Wetter, Termine etc.).


Sa 31. Okt 2015, 20:08
Profil
OpenFireSource-Team

Registriert: So 28. Okt 2012, 19:19
Beiträge: 1152
Zu deinen Fragen:

1. Ein direkter Zugriff auf die Datenbank ist nur auf den ersten Blick für den Entwickler bequem. Ich habe in der Praxis in diversen Projekten ausschließlich schlechte Erfahrungen damit gemacht. Jeder DB-Anwender (Service, Webseite) müsste seinen eigenen Zugriff implementieren und das ist gegenläufig zu Clean Code (DRY, KISS etc). So haben wir aktuell einen definierten, verlässlichen Vertrag an Daten, der zu erwarten ist. Zudem abstrahiert unser Datenlayer künftig die Datenbank komplett und es ist transparent für den Code. Dann könnte man auch ganz einfach von MySQL auf ein anderes DMBS wechseln. Für die Zukunft wird EF Code First verwendet, dann geschehen auch Datenbankupdates automatisch. Das, was wir aktuell als Architektur haben, wird weiterhin bestehen bleiben, und damit auch die Trennung. Der Datenbankzugriff bleibt sauber getrennt. Anpassungen an der Datenstruktur gehen dann ganz einfach über PRs und ohne dass SQL geschrieben und manuell ausgeführt werden muss.

Welche notwendigen Erweiterungen an der Datenstruktur siehst du konkret?

2. Gerade mit HTML5, CSS3 und JS ist das Schreiben von Webanwendungen so einfach wie lange nicht mehr. Wenn man Fragen hat, kann man sich an Stackoverflow, w3schools oder google wenden und bekommt in 99% aller Fälle Hilfe. Die Alarmseite besteht aus sehr wenigen relevanten Dateien (3 oder so), die zudem nicht sehr groß sind. Meiner Ansicht nach macht ein Widgetsystem eher mehr Arbeit für uns auf lange Sicht. Ich würde die Seite mit bootstrap und angularjs schreiben, dafür gibt es sehr viel Hilfe und es bleibt gemäß KISS schön einfach.

Bezüglich der Webseite verweise ich dich an Flo, er ist der Maintainer der Webseite und trifft die Entscheidungen und ist der Ansprechpartner für Änderungen.

_________________
Grüße,
chris


So 1. Nov 2015, 11:10
Profil
OpenFireSource-Team
Benutzeravatar

Registriert: So 18. Nov 2012, 21:57
Beiträge: 2639
Hi,

also was DB angeht hat ja Chris schon recht ausführlich einige Punkte erläutert. Da halte ich mich raus :)

Was die Website angeht:
SignalR: Ist eine sehr feine Sache mit der ich selbst auch schon viel gespielt habe. Sinn macht das ganze aber erst richtig wenn man das ganze wirklich nur noch triggert. Sprich entweder man bohrt den Windows Service (Contract) etwas auf oder man überlegt sich hier etwas anders. Hier bin ich total offen für Ideen. Gerne können wir uns hierzu auch mal so austauschen. (Callback erweitern,...)

Bootstrap: Gerne nur zu da halt ich keinen auf :)

Widget-System: Sehe ich sehr ähnlich wieder Chris. Entwicklung von HTML Seiten ist eigentlich sehr einfach. Lieber wäre mir iwie das man einfach mehrere "Code-Snippets" sammelt und die untereinander austauscht.

_________________
Projektleitung
--------
Kein Support via PN!


So 1. Nov 2015, 13:15
Profil
OpenFireSource-Team

Registriert: So 28. Okt 2012, 19:19
Beiträge: 1152
Hallo zusammen,

kleine Klarstellung: SignalR würde nicht mit dem Windows Service interagieren, sondern z. B. mit einem Controller der ASP.NET Webseite.
Dieser Controller würde dann das Event abgreifen und an SignalR exponieren.

_________________
Grüße,
chris


So 1. Nov 2015, 21:08
Profil

Registriert: Mo 14. Dez 2015, 16:49
Beiträge: 6
Hallo Leute,

könnte man nicht im AlarmWorkflow eine REST-API oder ähnliches implementieren?
Dann wäre man bei der Webseite oder auch der Windows UI komplett unabhängig von der verwendeten Technologie.
Außerdem lässt es sich bei Änderungen der Datenbank-Struktur leicht anpassen bzw. versionieren.

Ich hatte nämlich schon überlegt, dass die Webseite mithilfe von Angular.js oder ähnlichem auch sehr schön und schlank aufgebaut werden könnte.
Der Vorteil wäre auch, dass man nicht mehr vom IIS abhängig wäre.
Man könnte dann auch auf Apache oder nginx zurückgreifen oder sogar die HTML-Seite direkt in einem Browser starten.
Die einzige Einstellung hierzu wären natürlich die Verbindungsdaten zum Server, dann könnte man die Daten bequem via Ajax nachladen.

Gruß

Alex


Di 15. Dez 2015, 10:51
Profil
OpenFireSource-Team
Benutzeravatar

Registriert: So 18. Nov 2012, 21:57
Beiträge: 2639
Hi,

Ideen und Vorschläge sind immer gerne willkommen :)
Im Grunde macht die bisherige Website im Hintergrund genau das.
Schau dir mal an was: /Display/Alarm/GetLatestOperation zurück gibt ;)
Eine REST API direkt im Service Implementieren wäre technisch vermtl. sehr wohl machbar das müsste man dann aber mim Christian besprechen.

Komplett Windoof..äh..dows los werden klappt - zur Zeit - nicht. Daher auch bisher die Lösung mim IIS. Vorhandene Mittel halt einfach nutzen ohne große Umwege. ;)

Klar kann man mit einfachen Mitteln über beschriebenen Link optisch ansprechende Seiten gestalten.
AngularJS ist mir sehrwohl ein Begriff & und bei meiner Realisierung in meiner FW auch im Einsatz.
Wenn vNext mal released ist wird sich aber sich ein bisschen was tun. (SignalR und co lassen grüßen)

LG

_________________
Projektleitung
--------
Kein Support via PN!


Di 15. Dez 2015, 11:13
Profil

Registriert: Mo 14. Dez 2015, 16:49
Beiträge: 6
Ah cool das wusste ich noch nicht.
Bin mit diesem ASP.Net-Zeug bisher nicht in Berührung gekommen.
Und vNext/SignalR sagt mir gar nichts :)
Ich komme aus der Richtung PHP.

Kann ich mir das System in deiner Feuerwehr mal anschauen?
Das mit AngularJS würde mich schon mal interessieren. Auch wie ihr das technisch umgesetzt habt.


Di 15. Dez 2015, 16:17
Profil
OpenFireSource-Team

Registriert: So 28. Okt 2012, 19:19
Beiträge: 1152
Dass die Webseite in IIS gehostet wird, ist historisch gewachsen. Damals (2012) gab es keine wirklichen Alternativen, die mit .Net funktionieren.

Ich habe aber bereits Erfahrungen mit self-hosting gemacht und man könnte überlegen, das dann direkt (wieder) in den Service zu integrieren. Dann muss man deutlich weniger aufsetzen und es könnte auch unter Linux funktionieren.

_________________
Grüße,
chris


Mi 16. Dez 2015, 18:29
Profil
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Auf das Thema antworten   [ 9 Beiträge ] 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software for PTF.
Deutsche Übersetzung durch phpBB.de