[Open Source] ExceptionBase.NET 2.0 - Exceptions abfangen und in ein übersichtliches Webinterface eintragen

    • Release

    Es gibt 67 Antworten in diesem Thema. Der letzte Beitrag () ist von Fury.

      [Open Source] ExceptionBase.NET 2.0 - Exceptions abfangen und in ein übersichtliches Webinterface eintragen

      ExceptionBase.NET 2.0
      Beschreibung:
      ExceptionBase.NET ist eine Library, die es dem Entwickler ermöglicht, Exceptions in einem Programm abzufangen, sie dem Benutzer übersichtlich zu zeigen, und danach in das ExceptionBase.NET - Webinterface einzutragen, sodass man sie als Entwickler so schnell wie möglich beheben kann. ExceptionBase.NET ist komplett Open Source, der Quellcode kann auf github.com/leolabs/ExceptionBase.NET eingesehen werden. Mehr Informationen gibt es auf exceptionbase.net/.

      Screenshot(s):

      VB.NET Modul


      PHP Webinterface



      Verwendete Programmiersprachen
      Visual Basic .NET für das Modul
      PHP für das Webinterface

      Systemanforderungen:
      .NET Framework 2.0
      Für das Webinterface einen Server mit PHP und MySQL-Unterstützung

      Download:
      Neuste Version

      Anleitungen:
      Installation des Webinterfaces auf dem Server
      Einbinden des Moduls in Euer Programm

      Test des Webinterfaces:
      test.exceptionbase.net | User: tester, Passwort: test

      Lizenz/Weitergabe:
      Das gesamte Projekt ist Open Source, der Code darf verändert, angepasst und in Programme eingebettet werden.
      Ein Verweis auf diese Bibliothek (ExceptionBase.NET) sollte jedoch im Programm enthalten sein. Der gesamte code unterliegt der Creative Commons BY-NC-SA 3.0 Lizenz

      Falls Ihr noch Vorschläge oder Fragen habt, postet diese einfach hier im Thread. Btw, alle Posts bis zur und einschließlich der zweiten Seite gehören noch zur Version 1.0 von ExceptionBase.NET

      Viele Grüße
      leolabs

      Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „leolabs“ ()

      Zuerst einmal, eine wirklich gute und hilfreiche Idee,
      Daraufhin, hätte ich jedoch noch ein paar Fragen:
      • Ich habe mir das ganze nicht ganz genau angesehen, jedoch werden auch Informationen über Betriebssystem, Adminrechte und Framework weitergegeben? Bzw. Hilfreich wäre noch Prorammversion.
      • Oben in dem Screenshot ist die Farbe neben der Exception Rot, was zeigt dies an?
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gather“ ()

      Mal wieder eine sehr schöne Idee :)
      Wie wäre es dem Benutzer einfach nur die Methoden zu überlassen, ohne eine GUI bereitzustellen?
      Das würde in Projekten mit Metrodesign oder DevComponents (nein, ich nutze soetwas nicht) mehr Individualität
      schaffen. So ala

      VB.NET-Quellcode

      1. Dim exp As New ExceptionBase.Exception
      2. exp.Head = "Invalid operation ""10 + Hallo"""
      3. exp.Details = "More Details"
      4. exp.UserExperience = "Userinformation"
      5. exp.Send


      Grüße
      "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

      Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nikx“ ()

      Hallo zusammen,
      vielen Dank für das positive Feedback und die Verbesserungsvorschläge :)

      @Gather es werden das installierte Betriebssystem, die installierte Programmversion und das installierte .NET Framework an das ExceptionBase-Webinterface übertragen. Die Programmversion kann beim Initialisieren des ExceptionBase-Moduls selbst festgelegt werden. Das kleine rote Kästchen in der Tabelle zeigt, ob der Fehler schon behoben wurde oder nicht. Wenn man auf das Kästchen klickt, wird der Fehler als erledigt markiert.

      @Nikx das ist eine gute Idee, werde ich in der nächsten Version noch mit einbauen, dass man selbst entscheiden kann, ob man sich eine eigene GUI erstellen möchte oder die vorgefertigte verwenden will.

      Viele Grüße
      leolabs
      echt nice. Danke :D
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Hallo zusammen,

      Nikx schrieb:

      Wie wäre es dem Benutzer einfach nur die Methoden zu überlassen, ohne eine GUI bereitzustellen?
      Ich habe eine neue Version des .NET Moduls hochgeladen, in dem die Schritte in einzelne Methoden aufgeteilt sind, sodass man z.B. auch sein eigenes GUI benutzen kann. Der Commit kann auf GitHub eingesehen werden. In VB.NET könnte der Code, wenn man ein eigenes GUI verwenden möchte, so aussehen:

      VB.NET-Quellcode

      1. Private Sub sendCustomError(ByVal ex As Exception)
      2. ExBase.GatherInformation(ex) 'Sammelt Informationen über den Fehler, das .NET Framework und das Betriebssystem
      3. With ExBase.Exception 'Einzelne Informationen können nachträglich noch verändert werden
      4. .Inner = "Die Informationen können beliebig angepasst werden..."
      5. .UserDescription = InputBox("Bitte geben Sie eine Beschreibung ein:", "Fehler:", "Nicht angegeben") 'Hier könnte die ShowDialog() Funktion des eigenen GUIs stehen
      6. End With
      7. ExBase.Send() 'Schickt den Fehlerreport an die ExceptionBase.NET Datenbank
      8. End Sub

      Der Code befindet sich auch im Testprogramm und kann dort direkt ausprobiert werden. Die Möglichkeit, die Track(ex) Funktion zu verwenden, besteht weiterhin.

      Viele Grüße und guten Rutsch ;)
      leolabs

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „leolabs“ ()

      Danke, und das sogar noch recht schnell. Respekt für das Projekt.
      Wird MySQL Serverseitig bearbeitet? Bin zu faul mir das näher anzusehn :D
      "Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero

      Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
      Sehr nice.

      Das einzige was mir noch fehlen würde, ist das speichern in einer lokalen Datenbank, aber das lässt sich ja leicht implementieren. :)

      Noch ne Frage:
      Lege dir nun für jedes Programm, dessen Fehler du tracken möchtest, einen Eintrag an.

      Ist das zwingend notwendig oder könnte man dies dynamisch erledigen? (bin nicht so gut in php :) )
      SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

      Weil einfach, einfach zu einfach ist! :D
      Hallo BiedermannS,

      BiedermannS schrieb:

      Das einzige was mir noch fehlen würde, ist das speichern in einer lokalen Datenbank, aber das lässt sich ja leicht implementieren.
      Mit lokalen Datenbanken kenne ich mich leider nicht wirklich aus, das würde doch auch vorraussetzen, dass der Benutzer einen lokalen Datenbankserver installiert hat, oder?

      BiedermannS schrieb:

      Ist das zwingend notwendig oder könnte man dies dynamisch erledigen? (bin nicht so gut in php)
      Es wäre möglich in jeder Exception den Programmnamen zu speichern, anstatt einer ID, allerdings wäre es dann sehr ineffizient, wenn man zum Auflisten der Programme jeden Eintrag durchgehen müsste um zu überprüfen, welche Programme in der Datenbank getrackt werden. Ich werde auf jeden Fall dafür noch ein kleines Formular im Webinterface anlegen, damit man nicht jedes mal die Adresse im Installationsverzeichnis aufrufen muss, wenn man ein neues Programm zur Datenbank hinzufügen möchte. Vielleicht gibt es auch noch eine andere Möglichkeit, das ganze dynamisch zu regeln, das wäre ja praktischer, mir fällt da aber gerade leider nichts ein.

      Viele Grüße
      leolabs
      Guck dir mal die GUID-Eigenschaft für Anwendungen an - die sind einzigartig und können problemlos zurückverfolgt werden.


      zu den lokalen Datenbanken: nein, nicht zwingend. Was du nutzen kannst: SQLite, SqlCe, XML, JSON, YAML, CSV

      //Hab mir deinen Code mal etwas angesehen und bemerkt, dass du die "normale" Variante von der MySQL-Verbindung verwendest.
      Sieh dir mal PDO an. Damit kannst du einfach zwischen SQLite und MySQL (und weiteren) Datenbank-Varianten wechseln.
      Außerdem ist es um einiges sicherer, da du dich nicht um Escaping kümmern musst.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „AliveDevil“ ()

      Ich hab ein paar Probleme mit dem Interface. Ich hab die Dateien heruntergeladen und testweise einen Apache installiert.

      Aber bei der "adduser.php" kommt ein Fehler wenn ich einen user anlegen will:
      Notice: Undefined variable: crypto in C:\xampp\htdocs\installation\createUser.php on line 7

      Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\installation\createUser.php on line 13
      Request failed: No database selected


      bei der login.php steht mittendrin der Fehler:
      Notice: Undefined index: login in C:\xampp\htdocs\login.php on line 164


      Woran könnte das liegen?



      Es wäre möglich in jeder Exception den Programmnamen zu speichern, anstatt einer ID,

      Ich meinte damit nur, dass der Eintrag evtl. automatisch angelegt wird, falls nicht vorhanden.

      Ich werde auf jeden Fall dafür noch ein kleines Formular im Webinterface anlegen, damit man nicht jedes mal die Adresse im Installationsverzeichnis aufrufen muss, wenn man ein neues Programm zur Datenbank hinzufügen möchte

      Das wäre sicher nicht schlecht. Und auf jeden fall ein Admin-User der mit der createDatabaseStructure.sql gleich mit angelegt ist. So dass man nur mit diesem User neue user hinzufügen kann.

      Was auch möglich wäre, wäre eine install.php zu erstellen, die die Ersteinrichtung der DB übernimmt, welche man zum schluss einfach löscht.
      SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

      Weil einfach, einfach zu einfach ist! :D

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BiedermannS“ ()

      @AliveDevil:

      In "/Installation" gibt es nur 3 Dateien.

      createApp.php
      createDatabaseStructure.sql
      createUser.php

      createDatabaseStructure.sql kann nicht importiert werden, da bei der Tabelle "Users" in der .sql-Datei, die Angabe des Primary-Keys fehlt: PRIMARY KEY (`ID`)

      Aber auch wenn der Fehler behoben ist, kann ich keine User hinzufügen...
      SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

      Weil einfach, einfach zu einfach ist! :D
      Ne, steht drinnen.

      Hab den Fehler aber schon gefunden. Die database.php beginnt mit

      Quellcode

      1. <?
      sollte aber mit

      PHP-Quellcode

      1. <?php
      beginnen.

      Das Problem beim Login ist aber trotzdem noch da:
      Notice: Undefined index: login in C:\xampp\htdocs\login.php on line 164


      Edit:
      Noch was, nach dem Einloggen, steht oben in der Titelleiste
      (<? include("incs/unfixedErrorCount.php"); ?>) ExceptionBase.NET


      Bei verfügbare Programme steht über dem Testprogramm:
      Notice: Undefined index: appid in C:\xampp\htdocs\incs\listAppTable.php on line 12


      und darunter:
      Notice: Undefined index: appid in C:\xampp\htdocs\incs\listAppTable.php on line 14



      Unter "Ungelöste Fehler" steht:
      Zurück | (" ?>&fixed=&sort=0">Unsortiert" ?> | " ?>&fixed=&sort=1">Sortiert" ?>) | (" ?>&sort=&fixed=0">Ungelöst" ?> | " ?>&sort=&fixed=1">Gelöst" ?>) &fixed=&sort=">Zurück | Fehler - Detailansicht

      wobei

      &fixed=&sort=0">Unsortiert
      &fixed=&sort=1">Sortiert
      &sort=&fixed=0">Ungelöst
      &sort=&fixed=1">Gelöst
      &fixed=&sort=">Zurück

      HyperLinks sind. Und die Verweisen alle auf "index.php?appid=<? echo $_GET["
      SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

      Weil einfach, einfach zu einfach ist! :D

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BiedermannS“ ()