Ähm am Rande: Ich nutze zusammen mit meinen Kommilitonen einfach nen SVN. Das löst alle Eure Probleme, bis auf den SVN Server :-) Und ist auch noch Offline betriesfähig falls man mal kein i-net hat.
Naja das Plugin ist ja nur das Endprodukt, das wirklich wichtige sind ja die Schnittstellen. Ich finde es im Einzelfall wichtiger ein Beispiel für ein bestimmtes Programm zu haben.
Es wäre interessanter, eine Art Artikel zu den verschiedenen Möglichkeiten. Also wie gestalte ich sinnvoll eine Schnittstelle zwischen GUI und Plugin oder wie schafft man es möglichst übersichtlich und klar die verschiedenen Möglichkeiten zu trennen. Das muss ja nicht in einer spezifischen Sprache sein, sondern ist eher als Konzept/Leitfaden zu betrachten.
manchmal ist es ja wichtig, gewissen Dinge hervor zu heben. Ich erlebe das öfters weil der Kunde vor lauter Bäumen den Wald nicht mehr erkennt.
Vielleicht könntest Du noch irgendwie Stifte in verschiedenen farben einbauen.
ich wollte Euch mal ein paar News aus diesem projekt mitteilen:
Offline Modus für Unterwegs
Dieser Modus ermöglicht es Kundentermine mit Laptop zu erledigen und die Daten die man dort benötigt aus der produktiv Datenbank zu kopieren und später wieder einzufügen.
Dazu checkt man die Projekte aus, diese werden in eine kleine lokale SQL Compact Datenbank kopiert und später checkt man wieder ein. Man kann wählen ob die Daten für diese Zeit gesperrt sind oder ob der andere User eine Nachricht bekommt, das diese Datei ausgechekt wurde.
Dieses Feature ist nur in verbindung mit einer SQL Datenbank möglich, weil es sonst ja herzlich wenig Sinn macht. Ein Bild des Auschecken ist im Anhang.
Dateianlagen
PDFs und andere Dateien können z.B. an Rechnungen angehängt werden. So kann man im Nachhinein verfolgen wer wann was erstellt hat und was der Kunden vor sich hat.
Um Dein Profil zu schärfen, sei mir der kleine Hinweis erlaubt, das "KIT" Das Karlsruher Institut für Technologie ist. Und ein Zusammenschluss der Elite Uni Karlsruhe und des Forschungszentrums darstellt.
Auch von mir viel Erfolg dabei - ich bin gespannt!
[ Update vom 10.02.2009 version 1.0.4 ]
Hallo Leute,
es hat sich wieder viel getan. Ich hab manche Änderungen leider schon wieder vergessen^^ Aber es gibt doch einige wichtige Sachen:
Automatisches Login - Damit kann sich ein Benutzer eine Datei im Verzeichnis ablegen und wird dann damit automatisch eingeloggt. besonders interessant für Ein-Mann-Betriebe.
SQL 2005 Server Unterstützung
Automatisches Datenbank generieren - Wählt man z.B. eine SQL 2005 Datenbank aus und klickt auf Erstellen, dann wird die Datenbankstruktur automatisch erstellt und mit den nötigen Informationen versorgt.
PDF Rechnungs - Ich habe die PDF Engine umgestellt, da diese neue sehr viel mehr Möglichkeiten bietet! Schaut es Euch an
Plugin Verwaltung - Darüber können Plugins bequem Installier/Deinstalliert und Aktiviert/Deaktiviert werden. Sollten die Plugins Dabei Einstellungen in der DB speichern, werden diese entweder erstellt oder gelöscht um die DB sauber zu halten.
Unternehmensprofile - In den System Einstellungen können Logo und viele andere Daten eingepflegt werden. Diese werden dann z.B. bei der PDF Rechnung verwendet.
Bug Tracking - Ich habe ein Bug Tracking System aufgesetzt, indas Ihr ohne Registrieren einfach so, schnell das Problem eintragen könnt. Der Link befindet sich unter "? -> Fehlerbericht senden"
Das wars erstmal für diese Version
Ich will noch einmal darauf Hinweisen, das ich keine Datenübernahme garantieren kann momentan. Es existiert mittlerweile eine Export/Import Funktion im DatabaseManager. Bitte testen und gegebenenfalls Probleme mitteilen.
verwendetes Datenbanksystem: SQL Compact und SQL 2005
Hallo Community,
ich hab ein kleines Problem bei Linq to SQL. Ich habe das Mapping per Attribute gemacht, selber ohne Designer - aber der Designer macht das selbe.
Mein Problem ist, dass wenn ich die Relationen selber auf Cascade Delete stelle, das es dann auch in der DB funktioniert. Allerdings wenn ich jetzt diesen DataContext.CreateDatabase() Befehl nutze wird zwar alles generiert. Die Associations, jedoch haben "No Action" als Delete und Update rule.
Woran kann das liegen? Ansonsten funktioniert alles...
Ich hab noch ne andere Frage:
Warum gibt es bei den Attributen nicht auch sowas wie UpdateRule="CASCADE"?
hab mal gestartet und es hat erstmal auf anhieb funktioniert.
Ich hab es auf meinen zweiten Monitor geschoben und es rechts angedockt - aber er hat es auf dem ersten Monitor angedockt, das wäre super wenns gehen würde :-)
ich habe es mehrere Minuten versucht zu starten... Ohne Erfolg... Ich hatte mehrere Probleme. Ich hab die Wichtig.txt gelesen - ohne Erfolg.
Achja des Startpfad bekommt man z.B. per Application.StartupPath (oder so ähnlich) raus.
Danke! Mir is zwar noch nicht ganz klar wie ich das machen soll, aber ich werde es versuchen. Falls ich mal einen Installer mache, sollte der das eigentlich überprüfen.
Ich will Euch etwas über die Neuerungen in der nächsten Version erzählen:
Ich habe alle IDs in der Datenbank auf GUIDs umgestellt, dass hat einige Vorteile.
Des weiteren implementiere ich eine kleine Abrechnungsverwaltung. Also Rechnung erstellen für die ganzen erfassten Zeiten und Ausgabe auf PDF.
Des weiteren habe ich Rechnungs-, Kunden-, Projektnummern eingeführt, welche automatisch generiert werden. Allerdings kann man das Format frei bestimmen. Somit kann man es (hoffentlich) in bestehende Nummernkreise übernehmen.
Um es Benutzerfreundlicher zu gestallten, existieren Tooltips, welche der Benutzer aber auch ausschalten kann (für Fortgeschrittene). Ich hatte mal Dateninkonsistenz Probleme, welche ich jetzt komplett gelöst habe.
Da sich der Datenbank Manager mit der SQL Server unterstützung noch deutlich verändern wird, war eigentlich garnicht gedacht den mit zu releasen
Deine Punkte werden in der nächsten Version übernommen sein.
genauso ist das gedacht! Die Screenshots sind etwas älter, mittlerweile gibt es ne deutsche Übersetzung.
So eine abrechnungssache wird definitiv eingebaut, da ich es auch selber benötige. Das wird dann per Plugin realisiert, wenn die Basis steh und nicht mehr erweitert werden muss.
Vielleicht schaust Du Dir das Programm mal genauer an, ob Dir noch was auffällt, was Du brauchen könntest! Änderungen sind momentan noch relativ einfach zu realisieren.
ich möchte Euch heute mein mittlerweile fortgeschrittenes Projekt "TimeCollect" vorstellen. Es ist im Grunde eine Zeiterfassungsapplikation mit Hinblick auf Einfachkeit und Flexibilität.
Dazu einige Features:
Benutzerverwaltung
Kundenverwaltung
Projektverwaltung
Zeiterfassung mit div. Möglichkeiten
Aufgaben nach Projekt und Mitarbeiter
Pluginfähig
Mehrsprachig durch XML
Abrechnung erstellen ausgabe per PDFs
Das sind die momentanen Möglichkeiten. Da ich mich noch in einem frühen Status befinde bitte ich um Eure Meinung!
Ich werde zwar vorerst nicht von meinem JDownloader lassen, aber wenn schon container dann die CryptLoad Container, die sind zwar verschlüsselt, allerdings ist diese Verschlüsselung geknackt! Anleitungen dazu sind üppig im Netz vorhanden.
Warum machst du eigentlich einen eigenen RS Downloader?
Interessant - Ich warte schon auf einen eigenen test ;-)
Bis dahin eine Frage:
Zeichnest du die progressBar selber oder bassiert die auf dem OS?
Und könnte man darüber einen Text/Label oder so machen? Das könnte ja für z.B. Downloadmanager interessant sein (1MB/100MB @ 2.5MB/s)
Warum machst Du dir nicht einfach ne Methode, welches eben mehrere Elemente mit der selben ID merged? Dann hast Du auch volle Kontrolle über die Konflikbehandlung!
ich habe mal wieder eine Frage:
Ich arbeiter derzeit an einem kleinen Tool zur Zeiterfassung. Ich bin ganz stolz, das ich es (fast) Datenbank unabhängig geschaft habe mit Linq-to-SQL.
Allerdings wirft das auch meine Frage auf, was passiert wenn ich Änderungen an der Datenbank vornehme. Sprich neue Tabelle, neue Spalte usw...
Wenn ich das Tool jetzt so raus gebe und dann irgend welche Änderungen am Schema machen muss? Gibt es da irgend welche "Best Practice"?
Wenn Du dabei noch was lernen willst, kannste meiner Meinung nach auch noch gleich Linq-to-SQL oder Entity Framework testen. Reine SQL Queries gehören damit ja der Vergangenheit an. Geht natürlich auch ohne, aber is nicht so schwer wie man sich das vielleicht erst denkt ;-)