SolutionBackup - Projektbackup "On The Fly"

    • VB.NET
    • .NET (FX) 4.5–4.8

    Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von EaranMaleasi.

      SolutionBackup - Projektbackup "On The Fly"




      Eine Aufgabe eines jeden Programmierers ist das fortwährende Backup der aktuellen, soweit funktionierenden Lösung (jeder Gamer weiss: Save Early, Save Often).
      Das muss unkompliziert und schnell, am liebsten aus der Entwicklungsumgebung heraus, möglich sein.
      Es existieren natürlich vielfälzige, hochprofessionelle Lösungen, zumeist in Verbindung mit ausgefeilten Versionskontrollsystemen (z.B. Github). Deren Einrichtung und Verwendung ist jedoch nicht immer unkompliziert und/oder kostenfrei. Häufig wird auch eine Onlineverbindung benötigt. Diese Überlegungen waren für mich der Anlaß, SolutionBackup zu entwickeln.

      Meine Anforderungen:
      • aus der Entwicklungsumgebung VS heraus einfachst zu bedienen
      • lokales speichern (ja, ich bin paranoid)
      • Standardformat der Dateien

      @ErfinderDesRades hat schon 2011 ein Backup/Cloning-Tool vorgestellt: SolutionExplorer, das bis auf die Integration ins Visual Studio all' diese Anforderungen erfüllt. Wegen der Einfachheit der Bedienung verwende ich das Tool seit etlichen Jahren.

      Was also fehlte, war die Integration ins VS2015. Ich hatte früher bereits mit der Entwicklung von VisualStudio-Erweiterungen experimentiert, bin auch zu anfänglichen Erfolgen gelangt. Dann wurde das ganze Thema aber so komplex, das ich es aus Zeitgründen zunächst zurückgestellt habe.

      Vor wenigen Tagen dann wurde ich auf einen Artikel auf Codeproject aufmerksam: Visual Studio Extensibility (Day 1): Creating your first Visual Studio VSIX package.
      Das war genau das was ich gesucht hatte: Eine wunderschönes HowTo mit Step-by-Step Anleitung zur Erstellung einer .vsix Erweiterung. Mit den dort aufgeführten Links war dann die Lernkurve ziemlich steil, sodass das Gerüst der Erweiterung nach kurzer Zeit erstellt war.

      Was nun blieb, war die Integration des Codes aus dem SolutionExplorer von @ErfinderDesRades
      Die dortige, eigentliche Backup-Lösung verbirgt sich in, wie ich finde, innovativen Codeteilen unter Verwendung eines DataSets zur Zwischenspeicherung der aufbereiteten Backupdaten.

      Verwendung fand auch hier wieder die Helpers.dll. Ich wollte jedoch im .vsix keine zweite DLL mitliefern, daher habe ich aus der Helpers.dll die Funktionalität herausgezogen, die für SolutionBackup benötigt wird.

      Den Code hier im Einzelnen darzustellen, sprengt bei Weitem den verfügbaren Platz. Ich füge das Projekt als SolutionBackup00.zip-Datei bei, die im Übrigen mit SolutionBackup erstellt wurde.
      Weiterhin füge ich die SolutionBackup.vsix bei, die sofort ausgeführt werden kann.

      Danach sind in der Oberfläche des Visual Studio zwei neue Einträge vorhanden:
      Einmal im Menü: Extras. Dort sollte als erster Eintrag oben SolutionBackup vorhanden sein.
      Dann ein dynamischer Eintrag: Wenn im Projektmappenexplorer der Projektmappenname markiert ist, erschein im Toolbar des Projektmappen-Explorers das Icon von SolutionBackup.



      Viel Vergnügen damit, ich freue mich auf Rückäusserungen.

      Edit://
      Ich sehe gerade, das die Uploadfunktion des Forums die Dateiendung .vsix nicht als gültig erkennt. Bitte Daher nach dem Doenload die Datei SolutionBackupvsix.jpg in SolutionBackup.vsix umbenennen.
      Dateien

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

      @us4711 Warum nimmst Du nicht gleich eine ordentliche Versionsverwaltung mit nem PlugIn für das Studio?
      Für SVN hab ich das mal hier vorgestellt.
      Möglicherweise gibt es hier auch ein GIT-Tutorial.
      Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
      Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
      Ein guter .NET-Snippetkonverter (der ist verfügbar).
      Programmierfragen über PN / Konversation werden ignoriert!

      RodFromGermany schrieb:

      ordentliche Versionsverwaltung mit nem PlugIn für das Studio?
      Weil man dafür ein SVN braucht (Git kommt für manche z.B nicht in Frage, da man entweder für das private Repository was zahlen muss oder man keinen Zugriff wegen lahmer Leitung oder schlicht keiner INet Verbindung hat). Edit: Ist mir jetzt peinlich :(

      Ich z.B. finde das mit dem SolutionBackup eine sinnvolle Alternative. Klar hat man kein "Auf-den-Stand-von-Gestern-aus-VS-zurückstellen" Funktionalität wie mit Git/TortoiseSVN/... aber wer das nicht braucht, muss ich so nicht an ein neues Tool gewöhnen. (Ich weiß, dass sich diese Aussage naiv anhört - besonders von einem Anwendungsentwickler - aber gerade Einsteiger braucht man nicht noch zusätzlich mich Git (-befehlen) belasten.
      (Das oben ist absolut IMHO!!)

      Lg Radinator
      In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

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

      RodFromGermany schrieb:

      Warum nimmst Du nicht gleich eine ordentliche Versionsverwaltung mit nem PlugIn für das Studio?
      Weil ich das nicht brauche, und weil ich das nicht wollte = KISS-Prinzip, kennst Du doch.
      Hi @us4711, finde Deine Lösung echt super, hatte auch schon darüber nachgedacht, das zu integrieren weil ich den SolutionExplorer ständig nutze. Ich hatte es bisher über Extras-Externe Tools gelöst, aber ein richtiges Plugin ist natürlich handlicher...
      Ich habs jetzt noch nicht zur gänze getestet, daher erstmal nur dieses Feedback.... ich teste es aber noch ausgiebig....
      Danke Dir... :thumbsup:
      "Hier könnte Ihre Werbung stehen..."

      Radinator schrieb:

      Weil man dafür ein SVN braucht (Git kommt für manche z.B nicht in Frage, da man entweder für das private Repository was zahlen muss oder man keinen Zugriff wegen lahmer Leitung oder schlicht keiner INet Verbindung hat).
      WTF? Man brauch doch nicht unbedingt Dienste wie GitHub/GitLab/BitBucket etc. um Git nutzen zu können. Du kannst genauso gut auch rein lokale Git Repositories erstellen und da deine Backups drin machen. Siehe git-scm.com/docs/git-init.

      Selbst in Visual Studio direkt, kann man ein Git Repo erstellen und so über die integrierte Git Funktionalität Backups erstellen und laden.


      Grüße
      Väinämö

      Radinator schrieb:

      Aber gerade Einsteiger braucht man nicht noch zusätzlich mich Git (-befehlen) belasten.
      GitKraken mal ansehen. Dafür brauchste exakt 0 Git-Befehle lernen. Installieren, lokales Repository auswählen und Spaß haben. Setzt vorraus, dass man das Häkchen, welches @Vainamo V erwähnt hat, setzt.