Laden...
Avatar #avatar-3073.png
DavidT myCSharp.de - Member
Student Winterberg Dabei seit 30.05.2007 998 Beiträge
Benutzerbeschreibung

Forenbeiträge von DavidT Ingesamt 998 Beiträge

16.09.2008 - 10:19 Uhr


        [DataSource("System.Data.SqlClient", "Data Source=.;Initial Catalog=DatenbankName;Integrated Security=True;Pooling=False", "NormalizeEventNumber", DataAccessMethod.Sequential), TestMethod()]
        public void TestMethode()
        {
            // Code der für jede Tabellenzeile aufgerufen werden soll
        }

So sieht das ganze aus, mehr ist nicht zu machen. Und ich kann mir so direkt kaum vorstellen, dass es in NUnit so eine elegante Lösung gibt 🙂

Interessant wäre das, das stimmt. Allerdings fehlt mir, wie du schon anmerkst, leider die Zeit für so etwas 🙂

Meine Hoffnung liegt nun auf Sebi, der mir sagt wie man über das MSDNAA die TS bekommt 🙂

Gruß David

15.09.2008 - 20:55 Uhr

Denke das sollte mit Webservices recht elegant zu lösen sein (auch wenn ich bisher wenig damit gemacht habe)

Gruß David

15.09.2008 - 17:30 Uhr

Oh, sehr schöne Controls bei.

Vielen Dank tscherno.

Gruß David

15.09.2008 - 17:23 Uhr

Wo gibts denn in der MSDNAA die TS? Bei uns gibts nur die Prof?

Gruß David

15.09.2008 - 16:47 Uhr

Ich arbeite als Werksstudent und in der Firma wo ich arbeite, sind diese Tools nicht vorgeschrieben (Ganz im Gegenteil, mein Chef bezeichent es als absolute Zeitverschwendung). Ich möchte aber für mich selbst auswerten wie gut meine Tests sind (und wo ich etwas verbessern kann), weil ich diesen Job in erster Linie mache um in Sachen Softwareentwicklung bis zum Ende meines Studiums weiter nach vorne zu kommen als es durch normale Vorlesungen möglich ist.

Gruß David

15.09.2008 - 10:52 Uhr

Ja, also wirklich Sinn würde das nicht machen. Ich habe jetzt um die 350 Tests geschrieben (Teilweise Datenbasierte Tests, also mit Testdaten die aus einer Datenbank geladen werden) und das nun alles auf NUnit umzustellen, wäre nicht wirklich praktikabel 🙂
Davon ab schreibe ich meistens die datenbasierten Tests und jemand anderes füttert dann die Tabellen mit Testfällen. Mir wäre nicht bekannt, dass soetwas mit NUnit ohne größeren Aufwand funktioniert (Bei VS Tests ist sowas eine Sache von 2 Minuten).

Ich habe auch lange die Umstellung von NUnit auf die VS Tests gescheut, aber ich kann nur jedem raten diesen Schritt zu machen, es ist NUnit einfach in fast jedem Schritt überlegen.

Gruß David

14.09.2008 - 19:39 Uhr

Was er meint ist mir schon klar, hatte nur die Problemstellung etwas anders verstanden 🙂

Gruß David

14.09.2008 - 19:21 Uhr

oh, sorry, ich meinte verzögert und nicht periodisch.

So wie ich das verstanden habe, möchte er, das der Thread bereits gestartet ist und dann auf ein Signal wartet, damit er seine "arbeit" aufnehmen soll, oder?

Gruß David

14.09.2008 - 19:14 Uhr

Hmmm, aber er will es doch gar nicht periodisch haben?!?

Gruß David

14.09.2008 - 19:06 Uhr

Du startest einen Thread in der methode X. In der Methode nimmst du eine Schleife und versetzt den Thread zu begin der Schleife in einen Wartezustand. Von Aussen kannst du den Thread nun aus dem Zustand rausholen und er durchläuft die Schleife jedes mal und versetzt sich zu Begin wieder in den Wartezustand.

Warum startest du eigentlich nicht jedes mal den Thread neu wenn nach Daten gesucht werden soll?

Gruß David

14.09.2008 - 18:57 Uhr

Bin jetzt nicht der Threadexperte, aber du könntest einen Thread ddoch in den Wartezustand versetzen und dann vom anderen Thread bei bedarf wieder aktivieren, damit sollte das doch gegessen sein.

Gruß David

14.09.2008 - 18:35 Uhr

Hehe, schau ins OpenBook da ist fast genau dein Problem beschrieben 🙂

Gruß David

13.09.2008 - 18:37 Uhr

Ne, funktioniert leider nicht so. Ist total nervig andauernd die Tests aus der Toolbar oder dem Kontextmenü zu starten.

Gruß David

13.09.2008 - 18:28 Uhr

Hallo,

ich blicke grad bei den VS Tastenkürzeln nicht durch:
Test in aktuellem Kontext ausführen: Strg + R,T
Test im aktuellen Kontext debuggen: Strg + R, STRG + T

Wo ist da der unterschied? Muß ich beim einen R und T gedrückt halten und beim anderen beide nacheinander drücken oder wie? Bekomem das nicht hin...

Gruß David

13.09.2008 - 13:18 Uhr

Also ich habe meinen Akoya nur im mobilen einsatz dabei, also wenn ich grad mal eine Idee hab kann ich es im VS08 schnell runterhacken. Für den wirklich produktiven Einsatz ist es nicht zu empfehlen, da sollte man mindestens zu einem 15" Notebook greifen.

Gruß David

12.09.2008 - 22:10 Uhr

Hey Golo,

ja, die ist für Studenten leider nicht so erschwinglich 🙂 Das doofe ist halt, vorher mit TestDriven.NET war das mit NCover kein problem, nu mit den MS Unittests klappt das leider nicht mehr (zumindest wüßte ich nicht wie ich es starte). Und so ganz ohne Codecoverage ist es auch nicht das wahre.

Gruß David

12.09.2008 - 19:30 Uhr

Gibt es nicht sogar einen eingebauten sax-parser im Framework? (Vermute den meinst du nicht)

Gruß David

12.09.2008 - 16:24 Uhr

Hallo,

da ich nun zum wiederholten Male feststelle das ich nur einen Teil meiner Klassen getestet habe und bestimmte Exceptions nicht ausgelöst habe, bin ich auf der Suche nach einem CodeCoverage-Tool für VisualStudio 2008 Professional (Ich nutze die integrierten Komponententests) was am besten Open Source sein sollte. Fürher habe ich immer NCover aus TestDriven.NET benutzt, aber zum einen ist das nun kommerzielle und unterstützt (meines wissens nach) die MS Unittests nicht.

Habt ihr da schon Erfahrungen gemacht?

Gruß David

12.09.2008 - 15:24 Uhr

Oh Gott... So blöd es klingt aber da hätte ich jetzt noch ne Stunde vorgesessen...

Danke für eure Mühe 🙂

Gruß David

12.09.2008 - 15:09 Uhr

Leider nicht, die Idee hatte ich auch schon.

Gruß David

12.09.2008 - 14:51 Uhr

Ich habe in einem eine KLasse SearcHresult in der u.a. eine Exception gespeichert ist. Nun möchte ich per Assert klären, ob die Exception gesetzt ist und wenn ja die Nachricht ausgeben:


            Assert.IsNull(resu.OccuredException,"Exception aufgetreten: "+resu.OccuredException != null? resu.OccuredException.Message : String.Empty);

Allerdings knallt es jedes mal mit einer NUllReferenceException obwohl Message nur aufgerufen werden sollte, wenn die Exception gesetzt ist... Offenbar bin ich so blind das ich den Fehler nicht sehe...

Gruß David

12.09.2008 - 14:04 Uhr

Google: freeware like one note

Versuchs hier mit: http://www.evernote.com/

Gruß David

12.09.2008 - 10:48 Uhr

Hallo,

ich habe gestern im Bett überlegt (nachdem ich hier einen Post gelesen hatte), wie man den Invoke-Mechanismus der WinForm-Komponenten auch in einer "normalen" Klasse implementieren kann. Ich habe nun länger gegoogelt und gesucht aber finde dazu nichts verwertbares, habt ihr eine Ahnung wie genau das funktioniert? Stichwörter reichen mir schon.

Gruß David

12.09.2008 - 10:33 Uhr

Wollt damit nur sagen das die Restriktionsklausel nach GROUP BY ein HAVING ist 🙂

Gruß David

11.09.2008 - 23:55 Uhr

Dann schau dir entweder bei WinForms ab wie man so einen Invoke-Mechanismus implementiert oder starte in dem CallBack einen weiteren Thread der in deinem Model rumrödelt.

Gruß David

11.09.2008 - 23:24 Uhr

Achso, du meinst mit GUI eine Console, normal ist damit eine WinForm-Oberfläche gemeint. Wie man die Console Invoken kann weiß ich so auch nicht, schau doch mal wie es bei WinForm geregelt ist.

Gruß David

11.09.2008 - 23:15 Uhr

Öh, bin jetzt nicht der SQL-Experte, aber müßte es nicht


SELECT irgendwas
FROM tabelle
WHERE bedingung
GROUP BY gruppierung
HAVING bedingung der gruppen

Also das WHERE vor das GROUP BY... Versuch das mal, evtl ist es das schon.

Gruß David

11.09.2008 - 22:50 Uhr

Ähh, wo ist denn das Problem mit dem Callback? Mach doch direkt in der CallBack-Methode ein Invoke auf den GUI-Thread dann werden doch alle Verarbeitungen in diesem Kontext ausgeführt?!?!

Oder verstehe ich dich falsch?

Gruß David

11.09.2008 - 22:31 Uhr

Ja, deine Frage wird doch dort vorbildlich beantwortet:

Sie können Erweiterungsmethoden verwenden, um eine Klasse oder eine Schnittstelle zu erweitern, jedoch nicht, um sie zu überschreiben. Eine Erweiterungsmethode mit dem gleichen Namen und der gleichen Signatur wie eine Schnittstellen- oder Klassenmethode wird nie aufgerufen. Bei der Kompilierung verfügen Erweiterungsmethoden immer über niedrigere Priorität als im Typ selbst definierte Instanzmethoden. Das heißt, wenn ein Typ eine Methode mit dem Namen Process(int i) hat und Sie über eine Erweiterungsmethode mit der gleichen Signatur verfügen, stellt der Compiler immer eine Bindung mit der Instanzmethode her. Wenn der Compiler einen Methodenaufruf erkennt, sucht er zuerst nach einer Entsprechung in den Instanzmethoden des Typs. Wenn keine Entsprechung gefunden wird, sucht er nach Erweiterungsmethoden, die für den Typ definiert wurden, und stellt eine Bindung mit der ersten gefundenen Erweiterungsmethode her

Gruß David

11.09.2008 - 22:23 Uhr

Eigentlich sollte es doch gar nicht möglich sein Extensionmethods so zu schreiben, das ihre Signatur mit der eines bestehenden Members übereinstimmt, von daher denke ich das nicht.

Gruß David

11.09.2008 - 21:36 Uhr

Es gab ja damals sehr viele Dokus über diese Theorien, fand diese jedoch teilweise etwas an den Haaren herbei gezogen.
Bei den Anschlägen im Pentagon allerdings kommen mir schon zweifel, besonders da ja angeblich keine Teile von Flugzeugen gefunden wurden und das Einschlagsloch für ein so großes Flugzeug zu klein und vor allem kreis rund war.

Gruß David

11.09.2008 - 21:31 Uhr

Ja, erstell dir ein passendes Xml-Schema und erstelle mit dem Programm
>
die entsprechenden Klassen und den XmlSerializer

Ui, sehr schön! Danke 🙂

Gruß David

11.09.2008 - 21:24 Uhr

Jack schon ok, im Prinzip hast du recht, ich halte nur nicht sehr viel von vordefinierten Regelwerken die MS mitlifert. Die Sinnhaftigkeit von FXCop habe ich nie in Frage gestellt.

Gruß David

11.09.2008 - 21:21 Uhr

Warum fragst du Leute nach Ihrer Meinung über etwas und fängst dann an sie zu beleidigen wenn sie nicht deiner Meinung sind?

Damit verabschiede ich mich mal von dieser Diskussion 🙂

Gruß David

11.09.2008 - 21:14 Uhr

Hmmm, ich meine man kann ein TabControl nehmen und die Tabs oben ausblenden. Dann könntest du die bestehende Funktionalität nehmen und durch deinn Outlook-Control steuern.

Gruß David

11.09.2008 - 21:10 Uhr

Ist ja Klasse, dann wirste ja bestimmt in Erfahrung bringen können was ich meine 🙂

Gruß David

11.09.2008 - 21:03 Uhr

Dann geh mal in Finanzwesen, da werden die dir ne andere bedeutung von Account angeben und wahrscheinlich nicht nur eine. Nur weil es für uns IT-ler die Bezeichung für einen Zugang ist, heißt es nicht das du unsere Definition in den allgemeinen Sprachgebrauch ziehen kannst.

Gruß David

11.09.2008 - 20:57 Uhr

Account ist genau so gut ein Bankkonto oder ein Bericht, sag mir mal was daran eindeutig ist!

Gruß David

11.09.2008 - 20:53 Uhr

Ich halt mich da an Babylon:

Account - Vertrag der den Zugriff zum Server oder zum Internet regelt

Wäre auch für der, das oder gar die finde ich nicht gebräuchlich. Der Vergleich mit "Girl" hinkt, da es im Gegensatz zu Account zweifelsfrei übersetzt werden kann und "Girl" den Artikel "die" ja quasi schon beschreibt 🙂

Gruß David

11.09.2008 - 19:40 Uhr

Schau im 🛈 nach dem Kapitel über UserControls wie es geht, danach sollte das kein Problem sein.

Gruß David

11.09.2008 - 18:16 Uhr

Jack ganz ruhig, er wollte wissen wie wir es handhaben und ich habe meine Handlungsweise geschildert. Es muß ja nicht unbedingt deine Meinung sein!

Gruß David

11.09.2008 - 13:25 Uhr
  1. Schau ich selten alle Beiträge durch die ich vor monaten mal geschrieben habe ob noch eien Antwort kam

  2. Ich glaube kaum, das bestimmte sachen die FXCop anmeckert, beim Frameworkdesign unwichtig sind!

  3. Als das Assembly der WCF geschrieben wurde, war C# 2.0 (oder sogar schon 3.0) die entwicklunggsprache und ich frage mich warum microsoft die eigenen richtlinien dann nicht anpasst.

Gruß David

11.09.2008 - 12:02 Uhr

Lass das Tool z.B. mal über das WCF Assembly des .NET-Frameworks laufen, dann siehst du, dass nicht mal Microsoft sich im entferntesten an ihre eigenen Richtlinien halten, also tue ich es auch nicht 🙂

Siehe FxCop und MIcrosoft

Gruß David

11.09.2008 - 11:31 Uhr
  1. Implementier das Abholen der Daten doch asynchron und lock die Daten solange, dann ist dein Thread nicht blockiert.

  2. Das wär eine Fuckellösung meiner Meinung nach und vom Design her ein Alptraum

Gruß David

10.09.2008 - 20:31 Uhr

4 sollte das sein was du suchst. Wie man die Registry bearbeitet steht im 🛈 .

Achja, die IP Einstellunen stehen immer in der Tcpip\Parameters\Interfaces\ und die ID dahinter gibt die das Gerät an (WLAN-Karte, LAN-Karte,...)

Gruß David

10.09.2008 - 18:18 Uhr

Also ich finde Lösungen mit Foreach besser als irgendwelche Frickellösungen, jeder der deinen Quelltext sieht weiß sofort das du mit irgend einer collection elementweise etwas machst.

Wenn du etwas an deinem Programmierstil verbessern willst, solltest du dir Jacks Rat zu herzen nehmen und etwas an deiner Struktur arbeiten. z.B. ist das Ausgeben der Personendaten normal Aufgabe der Personenklasse und nicht die der Main-Methode, am besten in Person ToString() überschreiben. Dadurch hast du z.B. 2 mal denselben Code, das solltest du in Person kapseln.

Gruß David

10.09.2008 - 16:14 Uhr

Das kann eigentlich nicht sein weil die 1.1er in der 2.0er enthalten ist, die Member die durch etwas anderes ersetzt wurden sind dann halt als Obsolete gekennzeichnet.

Gruß David

10.09.2008 - 11:21 Uhr

Oh mist, ich habe nicht gehen das es in der WPF Kategorie gelandet ist, sorry.

Aber zu deiner Frage was passiert wenn das Hauptfenster größer gemacht wird:

Wenn dem so ist, wird das Hauptfenster neu gezeichent (Paint-Event) und mit ihm die Controls die in ihm sind, also auch dein button. Und da du darin dynamisch berechnungen anstellst, "wächst" er mit.

Gruß David

10.09.2008 - 11:07 Uhr

Schau dir zuerst (wenn du es noch nicht kannst) folgende Grundlagen an:1.WinForms 1.GDI+ 1.Timer

Dann abbonierst du das Paint-Event und zeichnest dort deinen Ball an Position (x,y). Dann erstellst du einen Timer der 1/25 sekunde zum elapsen braucht. Jedes mal wenn der Timer fertig ist, verschiebst du die Position deines Balles (x++,y) und zeichnest ihn neu.

Gruß David

10.09.2008 - 11:04 Uhr

Ich glaub von dem Layoutkram wie man ihn in Java nutzt, kannst du dich bei C# getrost verabschieden, da gibt es soetwas ind er form nicht. EInzig was mir da einfallen würde wäre das FlowLayoutPanel, damit kann man so ähnliche Sachen machen wie mir der Layoutlogik in Java.

Zu deinem Problem:
Erstelle einfach ein Usercontrol, packe einen Button rein und stell ihn auf Dock.Fill. Danach zeichnest du auf den Button (Paint-Event des Buttons) deine LED. Da kannst du dann selbst berechnen wie groß die LED sein soll (durch button.Clientzise).

So sollte es gehen.

Gruß David