Laden...

Forenbeiträge von Tarion Ingesamt 381 Beiträge

30.07.2010 - 11:15 Uhr

Zum Gateway dürfte auch bei Multicast nur ein Paket gehen, der Gateway teilt das dann auf. Wie weiß ich leider nicht. Aber mindestens eins Pro Client der es bekommen soll.

Hier steht noch was über MAC Adressen: http://de.wikipedia.org/wiki/Multicast

29.07.2010 - 22:05 Uhr

nutzt du das nur lokal? Denn im Internet könnte das Probleme geben mit dem Multicast.

Mehrere Ports sollten keinen Einfluß haben, ich denke eher das das Netz evtl ausgelastet ist. Hast du den Traffic mal berechnen / Gemessen?

29.07.2010 - 21:09 Uhr

In der Objektorientieren und Typsicheren Welt, sollte man meiner Meinung nach nicht zu sehr versuchen alle Typen implizit erkennen zu lassen.
Man kommt da oft an solche Grenzen wie du, wenn man versucht die Typsichere Umgebung mit allgemeinen Funktionen & evtl Reflection zu umgehen.
Das geht alles, aber mach es irgendwann auch nicht mehr besser.

29.07.2010 - 09:37 Uhr

Ich denke man nutzt immer das, was man am einfachsten implementieren kann. In ganz seltenen Fällen geht es um Dinge wie Performanche: Stack bei Rekursion, evtl. Geschwindigkeit bei einer Lösung.

Rekursion ist grade am Anfang schwerer zu "Durchdenken". Daher würde ich in dem Fall Iterativ anfangen und wenn der Code den Anschein macht zu lang werden, kann man ja doch nochmal rechtzeitig über Rekursion nachdenken.

Das sollte ein natürlich nicht davon abhalten vorher mal nach ähnlichen Problemen zu googeln um vll schon vorher eine Lösung zu finden.

28.07.2010 - 17:28 Uhr

Erstmal kannst du redundanten Code in Funktionen packen. Dann hast du ein Problem weniger. Wenn dir die Datei zu groß wird, kannst du mit Partiellen klassen oder neuen Klassen arbeiten um den Code pro Datei übersichtlicher zu gestallten, dann hast du eine Gliederung.
Und dann kann man denke ich besser beurteilen, ob sich ein OOPattern lohnt, oder ob es durch Aufteilung der If-Abfragen in Funktionen schon übersichtlich genug wird. Bei mehreren Tausend Zeilen Code musst du eh sehr viel Arbeit da rein stecken.

27.07.2010 - 21:17 Uhr

Klingt auch so, als könne man beim Refactoring viel kaputt machen. Eventuell vorher Tests schreiben und/oder beim Refactoring vorher mal ne kleine Statetable oder nen Ablaufdiagramm zeichnen um den Überblick zu wahren.

Denn aus dem Codehaufen durch Transformation etwas besseres zu machen ist eventuell schwerer, als sich die eigentliche Logik klar zu machen und dann richtig um zu setzten. (musst du einschätzen nachdem du dir die Pattern angesehen hast)

Ich fand das State Pattern in der Realität übrigens nie wirklich gut.

27.07.2010 - 21:00 Uhr

Ich weiß, auch nicht die Beste Lösung, aber damals hab ich so etwas mal per Reflection gelößt. Ich hatte ein Objekt mit vielen Properties in einer Bibliothek und konnte es nicht ändern, wollte aber eine Kopie ohne jede Property einzeln kopieren zu müssen, da hat sie die Reflection (auch um an private member zu kommen) bewährt. Das konnte ich auch soweit steuern, dass ich einige nicht kopierbare Teile die auch ein BinaryFormatter nicht nimmt (Sockets und so...) manuell auslassen konnte.

Also im groben, mit Reflection ein Objekt auseinander und die Werte in nem neuen Objekt setzten. Alles von außen ohne das zu kopierende Objekt zu ändern.

Ansonsten kann man noch an bestimmten Stellen überlegen Structs zu benutzten. Hab mir dein Beispiel jetzt nicht genau genug angesehen um zu beurteilen ob es dir hilft.

27.07.2010 - 20:50 Uhr

Du kannst in deinem Interrupt das dequeue in einem eigenen Thread starten, die Queue kann dann auch Locks setzten ohne das die Interrupt Methode gebremst wird.

Kommt natürlich etwas auf deinen genauen Fall an, am in den meisten Fällte sollte das doch gehen, oder?

Edit: Vll besser den ThreadPool nutzen 😃

27.07.2010 - 20:44 Uhr

Mit dem Reflector kann man so etwas immer super suchen.
Zudem kommen ja neue Protokolle hinzu, gibt es gute Gründe, das Enum nicht einfach selbst an zu legen?

27.07.2010 - 16:59 Uhr

Ja super Leistung mit dem Umzug, sieht bisher alles sehr schön aus.

26.07.2010 - 11:39 Uhr

Mal wieder ein Feature Request 😃

Wenn ich ein neues Update erstelle wäre es super wenn die Version des letzten Updates voreingestellt ist. Dann muss man nicht immer die ganze Version eingeben.
Ansonsten vielleicht die Version eines Updates änderbar machen, hab schon ab und an welche mit ner falschen Nummer ausgestattet und musste die dann komplett neu erstellen.

26.07.2010 - 00:34 Uhr

Ich hab jetzt meinen ganzen PC mit der Windowssuche nach dateinamen mit "Microsoft.VisualStudio.TextTemplating" durchsucht. Hast du die dll und vielleicht ein Hinweis wo ich manuell nochmal suchen könnte. Bin da etwas ratlos, auch wenn ich einsehe, dass VS die dll irgendwie nutzt.

25.07.2010 - 17:00 Uhr

Ich würde auch gerne dies nutzen: Processing Text Templates by using a Custom Host
Jedoch habe ich die assemblies nicht. Sind die erst bei VS2010 bei oder gibt es irgend ein Servicepack. Wo kann man die Microsoft.VisualStudio.TextTemplating.10.0.dll her bekommen?

25.07.2010 - 16:50 Uhr

Generating Files with the TextTransform Utility ist super.
Bisher habe ich es noch nicht geschafft, dem TextTransform noch Daten mit zu geben, die in die Templates eingebunden werden.

Edit:

Im Template:

<#@ assembly name="System.dll" #>

geht, aber wo müsste eine eigene assembly liegen wenn ich einen relativen Pfad angebe?

Edit2: Absoulute pfadangebe geht zumindest schonmal 😃

25.07.2010 - 15:20 Uhr

Sehe ich das richtig, dass ich für T4 VS2010 benötige. Gibt es keine Wege das in mein 2008 Team System zu integrieren?

25.07.2010 - 15:05 Uhr

Hi,
ich habe jetzt eine weile gesucht aber bin noch auf nichts passendes gestoßen. Ich möchte aus einer Datenquelle (z.B. csv Datei) Daten in ein Template schleusen.
Einfache Variablen Ersetzung ist schnell selbst programmiert, jedoch hätte ich auch gerne etwas Kontrolllogik. Mindestens if und nach Möglichkeit auch noch schleifen.
Im Prinzip könnte man das in php sofort schreiben.

Gibt es Bibliotheken oder freie Programme die sich so zur Codegeneriung gut eigenen? Eine Bibliothek die ich in meinem Programm nutzen kann wäre mir da das liebste. Von mir aus auch etwas, was php code in c# direkt ausführt^^

Also:
Variablen -> Template engine -> Text

Gruß, Tarion

25.07.2010 - 14:40 Uhr

Super Sache.

Auf der Website wäre das Releasedatum bei den Downloads noch ganz interessant. Hab ich irgendwie vermisst.

Gruß, Tarion

25.07.2010 - 12:24 Uhr

returnDataset != ReturnDataset

Du solltest immer die rechte Variante nutzen.

Fehlt:

class FormCreator : IBusinessLogic

Oder wieso hat FormCreator auch die Funktion ReturnDataset?

Das sieht doch sonst ganz solide aus.

Falls du später ein 2. DataSet brauchst, musst du returnDataset(); refactoren. Daher wäre ReturnFileHosterAssignDataset() oder noch besser GetFileHosterAssignDataset() eine bessere Namenswahl.

24.07.2010 - 14:49 Uhr

Da Speicher viel vorhanden und schnell ist, und die Festplatte langsam ist, würde ich in jedem Fall vom häufigen serialisieren abraten.
Singleton ist an der Stelle auch nicht unbedingt das Mittel zur Wahl, dennoch etwas besser als Static.

FZelle hat alles nötige gesagt. Das führt auch dazu, dass man ab und an nochmal nachdenkt ob es irgendwo wirklich benötigt wird bevor man den Constuctor erweitert.

21.07.2010 - 23:32 Uhr

Etwas ähnliches hat mich auch mal von Remoting ab gehalten.

Remoting kannst du dir als Webservice vorstellen, du rufst auf einem Server funktionen auf. Dafür baut der Client die Verbindung zum Server auf und der Server braucht dem entsprechend eine Portfreigabe.

Der Server kann überhaupt keinen Code auf dem Client ausführen, er dient nur als Service und stellt Funktionen bereit.
Natürlich kann jetzt der Client ebenfalls Remotinganfragen über abgesprochene Ports vom Server empfangen, für die Firewall müssen dann aber entsprechende Verbindungen auch zugelassen werden.

21.07.2010 - 23:24 Uhr

Du kannst keine Asynchronen GUI-Zugriffe machen, also auch die GUI nicht aus 2 Threads aktualisieren ohne beim eigentlichen GUI Zugriff (dem aktualisieren) wieder zu synchronisieren (BeginInvoke).

Dein vorhaben klingt komplexer als es sein müsste. Normal sieht es etwa so aus:

Thread1: Stellt Daten bereit und ruft von der GUI AddData() auf.
Thread2: Stellt Daten bereit und ruft von der GUI AddData() auf.

In der GUI ruft die AddData() Funktion dann (falls nötig) BeginInvoke auf und wird so mit dem GUI Thread synchronisiert.

Genaueres siehe herbivore Verweis.

21.07.2010 - 23:16 Uhr

Cookies laufen ab, irgendwann wird er ungültig.
Cookies können verschlüsselt sein, d.h. du kannst die Session nach Ablauf nicht verlängern und enthaltene Daten nicht manipulieren.

Wenn du nun in einen Cookie noch die IP schriebst, kannst du auch die abgleichen. Das Kopieren auf einen anderen, oder der Login bis über den nächsten IP Wechsel hinaus wäre dann nicht mehr möglich. Die meisten Internetseiten kann man aber auch nach einem IP wechsel noch mit vorhandenen Cookies betreten.

20.07.2010 - 19:18 Uhr

Hast du mal nach Eclipse Plugins gesucht?

Das ganze Thema ist aber recht komplex und ich habe bisher wenig gute Lösungen gesehen, vor allem unter den freien. Eigentlich noch keine die mir so gut gefällt das ich sie zur CodeGenerierung nutze.
Auch das VS Teil kann doch nur Klassen & Funktionen erstellen.

Ich halte das Theme auch für Enduser zu komplex. Ich denke du wirst kein so gutes Tool finden, das enduser mit wenig Aufwand Programmteile zusammenbauen können. Da wird es eher auch eine eigene Lösung hinnaus laufen.
Wir haben mal Code aus Excel Tabellen generiert, die können auch Enduser ausfüllen OB das bei dir geht, ist abhängig von der Komplexität. (Bei uns waren das Monstertabellen für ein Spiel)

Gruß, Tarion

20.07.2010 - 03:33 Uhr

*verwirrt ist*
Hast du da jetzt Ringabhängigkeiten? Die kann man meist durch etwas Umstrukturierung auflösen. Das Henne/Ei Problem hättest du dir dann selbst gebaut obwohl es zu verhindern wäre.

Kenne mich mit MEF leider nicht so sehr aus. Aber in deiner Frage fehlt mir das Fragezeichen. Du beschriebst eine funktionierende Lösung die konsequent auf IoC basiert.

Vielleicht liegt dein Problem auch an deiner Art der Kupplung von IoC und MEF.

19.07.2010 - 20:48 Uhr

Debug mal was in der variable folgenden steht:


this.InvokeRequired

19.07.2010 - 20:44 Uhr

main_form sieht böse aus. Besser: MainForm
Klassen werden groß geschrieben am Anfang, Unterstriche sind eher ungewöhnlich.

In deinem Fall:


partial class main_form {

//...

// constuctor: (für den designer solltest du den haben)
public void main_form() {
InitializeComponent();
this.file_hook.Filter = "default file name";

// Falls nur für den designer, kannst du sowas bauen:
if (!this.DisignMode) {
throw new InvalidOperationException("This constuctor is only for the designer.");
}
}

// Constuctor mit Filter parameter:
public void main_form(string fileName) {
InitializeComponent();
this.file_hook.Filter = fileName;
}

// Oder besser, fitler parameter aus passenden Datenklassen ziehen, erspart oft das erweitern des constuctors auf viele Parameter
public void main_form(MyConfig config) {
InitializeComponent();
this.file_hook.Filter = config.FileName;

// Vielleicht ist es für dich auch sinnvoll die Application config zu nutzen, die kann auch per Databinding an die Property gehängt werden, dafür aber nochmal separat recherchieren.
}
}

Code aus dem Stegreif geschrieben

Hoffe das hilft dir ein wenig.

19.07.2010 - 19:28 Uhr

Mal wieder eine Verbesserdungsidee.

Ich weiß nicht genau wonach die Forensuche geht, aber oft findet man die besten Beiträge erst auf der 2. Seite oder es gibt einfach viele Themen zu einem Problem und man liest sich durch viele Threads.
Mein Vorschlag wäre eine Art Bewertung der gefundenen Posts. Zum Beispiel ein kleiner Link neben "Antwort erstellen" der sagt "Hilfreicher Thread". Die Umsetzung soll erst mal offen sein, es kann auch ne Sternchenskala mit 0-5 Sternchen sein.

Sinn dahinter sollte sein, dass man Beiträge die wirklich weiter helfen auch schnell im Suchergebnis erkennt, oder gut bewertete Beiträge einfach weiter nach oben rutschen.
Man kann schneller einfache Anfängerfragen von ausführlichen und hilfreichen Diskussionen unterscheiden.

Es sollte auf jeden Fall auf Threadebene bewertet werden und nicht für einzelne Posts. Das ganze muss so platziert sein, dass es auch gesehen / genutzt wird und möglichst einfach zu bedienen sein (ajax?), also z.B. keine aufwändigen Page reloads nach sich ziehen.

Ist vielleicht nicht ganz einfach zu realisieren, Datenbankanpassung, suchquerrys, etc., erst mal würde mich nur die Meinung dazu im allgemeinen Interessieren. Ob man so etwas zur Verbesserung der Suche und Übersicht der vielen Themen einführen könnte.

19.07.2010 - 19:02 Uhr

Die Posts hier stauben alle ein, ich hab keine Überblick was das Projekt mal werden sollte, oder was es im Moment ist.
Ein kleines Update wäre super, immerhin gibt es dieses Forum und die letzten Threads sind 4 Jahre alt.

Ich hätte durchaus Lust an einem C# basiertem Forum mit zu arbeiten.

19.07.2010 - 17:05 Uhr

Freut mich das die Tore für neue Ideen wieder geöffnet werden ich hoffe das Projekt wird noch viele Früchte tragen.
Alles Gute dem alten und dem Neuen Betreiber 😃

Gruß, Tarion

18.07.2010 - 17:38 Uhr

Dein Problem scheint doch recht speziell zu sein und dein Beispielcode nicht hinreichend um es zu erkennen. Ich denke die Grundsätze sind klar geworden.
Mir ist jedoch nicht klar was du eigentlich erreichen willst und wieso etwas in deinem Fall nicht funktioniert. Du kannst gerne nochmal original code posten (Falls rechtlich möglich), oder auch per PN schicken. Interessieren würde mich das schon.

Ansonsten ist eine Exception alleine ja auch kein Problem -> Try-Catch

Gruß, Tarion

18.07.2010 - 14:43 Uhr

Ruft man nun die TestA-Klasse auf, so erhält man eine NullReferenceException auf TestB.

Warum? Das ist doch ein merkmal der Klasse TestA. Von außen kann man doch gar nicht urteilen ob eine Exception kommt, oder ob die Klasse TestA ein sinnvolleres Verhalten zeigt (was zu bevorzugen wäre). Somit liegt das Problem doch noch immer im Konzept deiner Initialisierung und nicht beim IoC.
Mit IoC würde jetzt per DI die Refferenz auf TestB in der Klasse TestA vorliegen. Weil alles richtig konfiguriert war.
Jetzt ist Klasse TestA einfach schlecht konzipiert, wenn sie erlaubt das sie ohne Refferenz auf TestB erstellt werden kann und die angesprochene Exception wirft. Das kann man aber durchaus auch ohne IoC besser machen.

Gruß, Tarion

18.07.2010 - 12:38 Uhr

Ich denke es ist sinnvoll einmal ein kleines Projekt damit zu bauen, kann ja ein kleiner Taschenrechner sein o.ä. nur um das Prinzip und die Funktionen des Frameworks zu verstehen. Man kann es sich stark erleichtern wenn man vorher viel liest und wie hier fragt, aber die Praxis ist der bester Lehrer und die sollte man haben bevor man ein Konzept erstellt. Dabei hilft es den ein oder anderen Fehler schon einmal slebst begangen zu haben.

Aber zu deiner Frage:
Generell muss man sich überlegen wie weit man IoC einsetzt. Dann muss auch in jeder assembly die IoC assembly (z.B. lightCore, kann ich emphelen) refferenziert sein.

Wird DI in jedem Layer (Business/Service/Presentation/DA) verwendet? D.h. wird in jedem Layer ein Verweis auf das entsprechende Framework gesetzt?

Also Ja, in jedem Layer der etwas registrieren will und den Zugang zum IoC Framework benötigt.

Dann die Frage:
Hast du Dynamische Teile die du gerne per XML Konfigurieren willst, oder reicht es alles per Code zu initialisieren.
Gerade bei der XML Methode wird es schwerer zu überblicken was nun im Container ist und was nicht und man sollte sich klare Grenzen schaffen was nun über den Container geladen wird und was direkt initialisiert wird. Wenn du Controller hast sollten z.B. alle Controller auch im Container sein und nicht einzelne gesondert behandelt werden.

Und ganz besonders, wie lege ich fest welche Objekte über den Container geladen werden und welche direkt instanziert werden? Hab das so verstanden, wenn ich mir sicher bin, dass ein entsprechendes Objekt nie wieder geändert werden muss, kann es direkt instanziert werden, ansonsten über DI! Lieg ich da richtig?

Entweder alles in die Container, oder bestimmte Gruppen von Klassen oder Namespaces ausschließen. Ich denke es wird unübersichtlich wenn man für jede einzelne Klasse die man braucht in die Doku gucken muss wo man die nun her bekommt.

18.07.2010 - 11:45 Uhr

List<Person> persons = testC.TestA.TestB.DataService.LoadPersons();

Sieh die mal folgendes an: Law of Demeter
http://www.clean-code-developer.de/wiki/CcdGruenerGrad#LawofDemeter

Daher würde ich bei deinem Beispielcode nicht schauen wo das IoC / DI Prinzip seine Schwächen hat, sondern eher wie ich Refactoring auf den Code anwenden kann, um diese Struktur zu vereinfachen.
Du suchst die Probleme an der Falschen stelle und dein Beispielcode zeigt das ebenfalls.

17.07.2010 - 16:41 Uhr

Bei der Größe darf man noch nicht an Performance denken, daran kannst du denken wenn es langsam wird. Dann gibt es auch ganz andere Ansätze das zu Lösen. (Indizierung, Bin. Suchbäume, ...)

Die Parent Property ist dennoch nicht verkehrt in Bäumen und macht vieles einfacher. Also durchaus sinnvoll.

17.07.2010 - 16:36 Uhr

class Program {

static void Main() {
  container.Register<IA, A>();
  container.Register<IB, B>();
  container.Register<IC, C>();
}
}

class A {
}

class B {
private IA _a;
public B(IA a) {
_a = a;
}
}

class C {
private IB _b;
public C(IB b) {
_b = b;
}
}

Interfaces implizit vorhanden, genauso wie sonstige Member und Funktionen der Klassen

Klasse C hat keine Abhängigkeit zu A
Klasse C hat keine Abhängigkeit zu B, nur zu IB
Alles ist lose gekoppelt. Dank IoC und DI

Ob es jetzt eine Klasse D gibt die nicht im Container ist (Ob eigene oder aus dem Framework) und irgendwo irgendwann mit new erstellt wird, weil es einfach einfacher ist (YAGNI & KISS) ist doch völlig unabhängig.
Klar du kannst sagen Klasse D muss jetzt in den Container aber ist es wirklich nötig? Ist es so wichtig so Konsistent zu sein und IoC überall zu 100% durch zu ziehen? Ich würde dabei immer an KISS und YAGNI denken und es nicht übertreiben.

Es könnte eine externe Lib sein du du mit nutzt, dann müsstest du vll 100 Interfaces bauen um dein IoC Container für diese Lib gut verwenden zu können. Das klingt nach mehr Arbeit als nötig.

Zudem gibt es Stucts bei denen du noch new verwendest.

Ich halte wenig von dem Krampfhaften festhalten an irgendwelchen Prinzipien.

13.07.2010 - 13:12 Uhr

Ich würde hier das Factory Pattern bevorzugen.
CCD geht auch an einigen Stellen darauf ein:
http://www.clean-code-developer.de/wiki/CcdGruenerGrad
-> Open Closed Principle

Das mit Func<int> ist ebenfalls keine schlechte Idee.

Zitat Wikipedia: http://en.wikipedia.org/wiki/Strategy_pattern


using System;
using System.Linq;
 
class Program
{
    static void Main(string[] args)
    {
        var context = new Context<int>();
 
        // Delegate
        Func<int, int, int> concreteStrategy1 = PerformLogicalBitwiseOr;
 
        // Anonymous Delegate
        Func<int, int, int> concreteStrategy2 = delegate(int op1, int op2) { return op1 & op2; };
 
        // Lambda Expressions
        Func<int, int, int> concreteStrategy3 = (op1, op2) => op1 >> op2;
        Func<int, int, int> concreteStrategy4 = (op1, op2) => op1 << op2;
 
        context.Strategy = concreteStrategy1;
        var result1 = context.Execute(8, 9);
        context.Strategy = concreteStrategy2;
        var result2 = context.Execute(8, 9);
        context.Strategy = concreteStrategy3;
        var result3 = context.Execute(8, 1);
        context.Strategy = concreteStrategy4;
        var result4 = context.Execute(8, 1);
    }
 
    static int PerformLogicalBitwiseOr(int op1, int op2)
    {
        return op1 | op2;
    }
 
    class Context<T>
    {
        public Func<T, T, T> Strategy { get; set; }
 
        public T Execute(T operand1, T operand2)
        {
            return this.Strategy != null
                ? this.Strategy(operand1, operand2)
                : default(T);
        }
    }
}

Dennoch sollte dabei KISS und YAGNI beachtet werden und nicht mit Kanonen auf Spatzen geschossen werden 😉

12.07.2010 - 21:11 Uhr

Ich fange gerade an mich mit Unit Tests zu beschäftigen. Nun erstellt mir VS alle Tests zu meinem Projekt automatisch, aber alle im Hauptverzeichnis vom Testprojekt.
Kann man es automatisieren, dass die Tests in Ordnern angelegt werden die den Namespaces der eigentlichen Klassen entsprechen, oder ist es besser alle Testklassen im Hauptverzeichnis zu lassen.

Was ist da best practice?
Ich finde es etwas unübersichtlich und würde jetzt die Tests die ich ausgefüllt habe in Unterordner kopieren oder ist davon ab zu raten?

Gruß, Tarion

11.07.2010 - 22:08 Uhr

Senden vor dem Disconnect sollte gehen und müsste ankommen. Mehr kann man dazu nur sagen wenn du etwas Beispielcode hast. Irgendwo scheint dein Server die Verbindung vor dem Senden der Disconnect Nachricht zu schließen.
Mach aber lieber einen neuen Thread mit genauer Problembeschreibung auf, dein problem hat nichts mehr mit polling oder keepalive zu tun.

26.06.2010 - 11:18 Uhr

Und beim Testen ist uns noch eine kleinigkeit aufgefallen. Wenn man Restart Application einstellt und der Updater fertig ist, dann steht da das man den Updater nun schließen soll, dass die Anwendung danach neu gestartet wird ist in dem Moment nicht ersichtlich. Vielleicht den Button umbenennen oder sogar das Restarten optional machen.

25.06.2010 - 10:58 Uhr

private string GetHash(Image image)
        {
            SHA256Managed sha = new SHA256Managed();

            MemoryStream ms = new MemoryStream();

            image.Save(ms, ImageFormat.Jpeg);
            byte[] imageBytes = ms.ToArray();

            byte[] checksum = sha.ComputeHash(imageBytes);
            //return Convert.ToBase64String(checksum);
            return BitConverter.ToString(checksum).Replace("-", String.Empty);

        }

Geht, man sollte aber auf das ImageFormat achten. Mit Bm geht es bei mir z.B. nocht mehr.

25.06.2010 - 10:56 Uhr

Hi,
ich vershcicke Bilder übers Netzwerk. Ab und an geht mal eins kaputt. Ursachenforschung wäre sicher besser, aber erstmal möchte ich nur eine Checksum die mir sagt ob beide Bilder gleich sind.

Wie erzeuge ich die für ein Image am besten?

21.06.2010 - 23:19 Uhr

Kleiner Bug:

Wenn man im Wizard für das Erstellen eines php servers zurück und wieder vor geht, bleiben alle Daten erhalten, bis auf der Datenbankserver, der wird wieder auf localhost gesetzt.

Ist nicht sonderlich schlimm, nur die Fehlermeldung bei angabe eines falschen sql servers (bei mir ist er eben nicht localhost) führt zu einer verwirrenden Fehlermeldung.
Irgendwas mit Zeichen 2 in Zeile 2 oder so.

Und als kleines Feature könnte er sich die FTP Daten bis auf das Passwort merken. Würde die Projekterstellung noch angenehmer machen.

Dann ist das exportieren der Daten in die Zwischenablage ja super. Aber ich konfiguriere alles im code. Wäre toll wenn man das auch in einem FOrmat für dne Quellcode exportieren könnte. Kann sich ja alles auf die variable "updater" oder so beziehen.

Gruß, Tarion

18.06.2010 - 18:38 Uhr

Ich habe ein Schlüsselpaar als XML vorliegen und möchte dieses nur in eine pem datei für andere Anwendungen convertieren.
Gibt es da eine einfache Möglichkeit?

Bisher hab ich nur Funktionen gesehen die pem dateien laden.

18.06.2010 - 17:33 Uhr

Kannst du den Text nicht bei der Übergabe an das Label filtern?

17.06.2010 - 23:00 Uhr

Oder erstelle dir ein Datenobjekt was die Events und Properties hat die du brauchst.
Dann bekommt jedes UserControl eine Refferenz auf dieses Datenobjekt. Das Kannst du ja z.:B in der Form erstellen.
Die UserControls bekommen das Objekt dann auch am besten über properties, da es sonst oft Probleme mit dem Designer gibt wenn man UserControl Parameter im Konstuktor mit gibt.
Das geht dann schon in Richtung Trennung von Gui und Daten was generell kein schlechter Ansatz ist.

17.06.2010 - 22:43 Uhr

Aus deiner Roadmap:

Die Programmversion in der Registry kann nun bei einem Update automatisch auf die neueste Version gesetzt werden.

Im Moment nehme ich als Verison die Version der Hauptassembly, das hat natürlich nachteile, da diese bei jedem Update ersetzt werden muss.
Wo speicherst du die aktuelle Programmversion? Tatsächlich in der Registry? Dann ist man aber sehr von einem automatischen Installer abhängig, einfach mal einzelne ersetzten geht dann nicht.
Eine extra config Datei mit liefern welche die Programmversion enthält wäre auch noch eine Möglichkeit. Die lässt sich leicht mit updaten und ist im Notfall auch einfach von hand zu überprüfen / ändern.

Was sind da so deine bevorzugten Lösungen?
Wie ist das neue Feature mit der Registry realisiert?

P.s.: Nochmal dickes Lob, echt ein super Programm.

10.06.2010 - 22:21 Uhr

Moin,
ich bin dabei aus einem Cache Daten aus zu lasen, dieser Cache wird jedoch von einem anderen programm verwaltet und so kommt es ab und an vor das es eine Exception gibt, das diese Datei von einem anderen Prozess verwendet wird.

Ich brauche nur lesenden Zugriff. Wie warte ich am besten auf die Freigabe der Datei?
Geht das elegant als zu pollen?

07.06.2010 - 20:45 Uhr

Ja das ist im moment wohl das Problem, das die assembly die ich signieren müsste keinen strong name hat.

07.06.2010 - 20:24 Uhr

Hi,
kennt jemand ein Gui tool zum signieren von anderen assemblies? Ich habe ein signiertes Projekt und muss nun ja auch alle verlinkten assemblies signieren und würdem ir gerne den weg über die Wiondowsconsole sparen.

02.06.2010 - 21:51 Uhr

Guten Abend,
ich habe hier grade mit jpg2000 Dateien zu tun.
Spezieller mit dem Header, ich finde einfach keine Informationen wie der aufgebaut ist.
600 Byte sollte er groß sein.

Ich bin mir auch nicht sicher ob es noch einen Unterschied zwischen .jp2 und .j2c Dateien gibt. Weil eigentlich habe ich mit j2c Dateien zu tun.

Das verwirrt mich alles etwas und die Informationen die ich gefunden habe sind nicht sehr hilfreich.
Wäre für jeden Tipp über die Dateiformate bezüglich JPG2000 dankbar.

Gruß, Tarion