Artikel-Schlagworte: „Backup Service Home 4“

Einfach offen! backup@home wird Open Source

Sonntag, 12. Dezember 2010

Es ist nun soweit. Am dritten Advent wird der Nachfolger von Backup Service Home 3 mit dem Codenamen backup@home 4 zu einer quelloffenen Software unter der LGPL. Einen ausführlichen Artikel haben ich unter http://www.alexosoft.de/de/produkte/backup-service-home/open-source.aspx für euch geschrieben.

Ich bin gespannt, wie sich das ganze entwickeln wird und ob sich Interessierte melden, mitzuhelfen.


Vorschläge zur Verbesserung der Benutzeroberfläche gesucht

Dienstag, 24. August 2010

Ich möchte gerne wissen, wie man die Benutzeroberfläche von Backup Service Home 3 verbessern kann, um die Vorschläge in Version 4 umzusetzen. Da ich derzeit nur ein Entwurf entwickelt habe, aber noch nichts umgesetzt habe, wäre ich froh, wenn einige Ideen zusammen kämen. Da noch nichts implementiert wurde, können auch viele andere Ideen noch in den Entwicklungsprozess einfließen.

Da ich derzeit voll im Klausurstress stehe, dachte ich mir, vorher schon Ideen zu suchen, um danach wieder an Version 4 weiterzuarbeiten. Bis auf ein paar Korrekturen, habe ich noch nicht wieder weitergearbeitet (auch wegen Bugs in Version 3). Das Datenbankproblem besteht also immer noch und auch sonst ist keinerlei neues hinzugekommen.


Entwicklerneuigkeiten zu BSH4

Dienstag, 20. April 2010

Ich arbeite schon seit Monaten an der neuen Version von Backup Service Home 4. Was bislang nicht bekannt gegeben wurde ist, dass ich aber auch seit Monaten an einem Problem gearbeitet habe: Performance. Es ist für die Entwicklung von BSH 4 entscheidend, dass BSH 4 noch besser sein soll, so auch die Performance. Doch bislang lag diese sogar noch hinter der alten Version. Doch nun habe ich – eigentlich ein trivialer Fehler – gefunden und nun rennt es :-).

Dank Multithreading werden während des Sicherungsprozesses mehrere Aktionen gleichzeitig durchgeführt, z.B. die Datenbankaktionen und Kopieraktionen. Insgesamt macht die gesamte neue Architektur es wesentlich einfacher – dank kluger Überlegungen vorher 😉 – neue Funktionen zu implementieren.

Aufgrund dieses größeren Problems gab es in den letzten Monaten keinerlei große Fortschritte, da dies meiner Meinung nach eine Grundkomponente ist, die fehlerfrei und rund sein muss. Nun kann ich mich also wieder auf die Entwicklung und die neuen Funktionen konzentrieren.

Noch einige Neuigkeiten für die Tech-Freaks

Mit der neuen Version 4 wird die gesamte GUI entwickelt und da nutze ich die Gelegenheit auf WPF umzusteigen. Man darf also auf eine noch einfachere GUI gespannt sein, die vielleicht den ein oder anderen Effekt haben wird.

Wie bereits mehrfach erwähnt, werden Benutzeroberfläche und die einzelnen Sicherungsaktionen strikt getrennt werden. Mittels eines Windows Service werden die Sicherungsaktionen durchgeführt. Damit können auch Sicherungen durchgeführt werden, wenn niemand am Computer angemeldet ist. Ebenso ist eine bessere Speicherverwaltung möglich.


Coding: Backup Service Home 4 und .NET Remoting

Freitag, 11. September 2009

Der erste Blogeintrag zu Backup Service Home 4 und es geht gleich ins eingemachte: .NET Remoting.

In Backup Service Home 4 sollen alle Aktionen in einem Windows Dienst gekapselt werden, um vor allem Ressourcen zu sparen, denn das UserInterface soll nicht ständig im Hintergrund offen sein (und Backup Service Home soll endlich seinem Namen gerecht werden 😉 ). Doch wie muss die Kommunikation von Dienst und Anwendung realisiert werden? Natürlich mit .NET Remoting (ja ich weiß es gibt auch WCF).

Da .NET Remoting für mich totales Neuland ist, muss natürlich viel gelesen und ausprobiert werden. Aber nach einem langen Weg und unzähligen Stunden: es gibt noch Hoffnung. Soeben habe ich die finalen Routinen eingebaut, die die Kommunikation zwischen Dienst und Anwendung bewerkstelligen. Remote Prozeduraufruf mit Rückgabewerten, Remote Objekte mit komplexen Klassen und (das war am kompliziertesten) Ereignisse.

.NET Remoting selbst ist an sich nicht kompliziert, doch wenn man extra Wünsche hat (wie ich), dann gibt es einiges, was im verborgenen liegt. So will ich, dass die Anwendung völlig geschlossen wird, wenn keinerlei Fenster etc. angezeigt wird und wenn ich Sie wieder öffne, dann sollen bitte alle Statusinformationen weiterhin über Ereignisse live angezeigt werden. Das ist vor allem deshalb so tricky, da die Verbindung zwischen Server und Anwendung geschlossen wird und alle Remoteobjekte verloren gehen. Alles in allem funktioniert es nun tatsächlich.

Eigentlich funktionierte es schon vor ein paar Tagen, wenn nicht der Name der Eigenschaft port von TCPChannel, bei IPCChannel portName hieße. Denn das war der Auslöser für Probleme mit Ereignissen. Ich hatte immer den falschen Eigenschaftenname drin (wegen fehlender Typisierung) und deshalb wurde der Clientrückkanal zum Server nie richtig registriert.

Und noch eine Premiere feiere ich: Backup Service Home 4 wird nun in C# programmiert – für mich ebenfalls totales Neuland (auch wenn die Java-Kenntnisse den ein oder anderen Hinweis gaben).


Erste gute Nachrichten von Backup Service Home 4

Mittwoch, 15. Juli 2009

Bereits im Vorfeld wurde im Forum immer angekündigt: BSH 4 wird besser, Feature wird dort enthalten sein usw. Damit aus den Versprechungen auch Wirklichkeit wird, musste ich zunächst das gesamte Grundgerüst neu bauen, um es damit auch flexibler zu gestalten.

Einige Probleme mit dem neuen Kern von BSH 4 sind noch offen und müssen noch gelöst werden, aber einige große Probleme wurden schon gelöst:

So stellte sich die Umstellung der Datenbank auf eine Klassenbasierte als größeres Problem heraus. Transaktionen und Queries wurden nicht so ausgeführt wie ich erwartet hatte. Zwischenspeichern (so wie das ADO.NET normalerweise tut) brachte mein gesamtes Konzept durcheinander, was schließlich dazu führte, dass ich die komplette Datenbanklogik selbst schreiben musste.

Ebenso kniffelig stellte sich die Backupmedienverwaltung als objektorientierte Klasse heraus. Wie die Medienverwaltung die Dateien auf dem Backupmedium abspeichert sollte dem Backupprozess egal sein und wie speichert man das ganze, wenn die Medienverwaltung die Datenbank nicht kennen soll. Für dieses Problem setze ich derzeit stark auf den ZIP-Container, wo ich komplette Dateistrukturen erzeugen kann. Doch wie es auf einem FTP-Server aussehen soll, ist mir noch nicht klar, denn wenn alles in einen Container kommt, dann klappen die schönen Funktionen “Schnellvorschau”, “Einzeldateiwiederherstellung” etc. nicht mehr.

Wie immer gibt es noch einiges zu tun. Ich hätte euch schon einen Screenshot gepostet, wenn es was zum sehen gäbe, doch derzeit gibt’s nur Sourcecode im Projekt.