Laden...

Forenbeiträge von jaensen Ingesamt 2.760 Beiträge

10.12.2009 - 13:23 Uhr

Diese Frage ist mir ein bisschen zu allgemein. Klingt in etwa so wie "Kann jemand Code dafür posten und mir sagen wo ich den einbauen muss?".

Seit dem .Net Framework 2.0 gibt es den FtpWebRequest mit dem du recht einfach auf FTP-Server zugreifen kannst.

Beispiele solltest du bei Codeproject zu genüge finden.

10.12.2009 - 11:06 Uhr

Für einen O/R Mapper? Da bietet sich doch ein Codegenerator an der aus deinen Metadaten (Mapping XML/DB-Schema/etc...) den entsprechenden Code erzeugt. Der kann den Code dann mit den eingesetzten Typen erzeugen. Für jeden Typen ein Aufruf, das ganze ist dann natürlich auch compilergeprüft. Das war jetzt allerdings nur ein Schuss ins blaue.

10.12.2009 - 11:00 Uhr

Ich würde das Programm als Dienst realisieren. Einen guten Schedular gibt es dann beispielsweise hier: Quartz.NET damit kannst du dann die Ausführung von Aktionen steuern.

09.12.2009 - 18:59 Uhr

Ein Ansatz: Size=\d*;

09.12.2009 - 18:50 Uhr

Das kannst du durch überschreiben der ProcessCmdKey Methode einbauen.

09.12.2009 - 18:11 Uhr

Nope, sorry. Mit dem DataGridView habe ich solche Spielereien noch nicht gemacht. Das könnte allerdings schwierig werden (habe bei codeproject nichts gefunden 😉.

09.12.2009 - 14:04 Uhr

Du kannst versuchen die OnPaintBackground Methode zu überschreiben und dort deinen Farbverlauf ebenfalls zu zeichnen. Echte Transparenz wirst du wohl nicht hinbekommen.

08.12.2009 - 16:58 Uhr

Aber vielleicht habe ich bei meinem Konzept ja was übersehen, was früher oder später zu Problemen führen könnte

Ohne jetzt alles gelesen zu haben (den ganzen Thread) ist mir sofort was ins Auge gesprungen was früher oder später zu Problemen führt zumindest wenn mal ein bisschen mehr Last auf dem System ist:

anhand des gesagten Typs per Reflection

Problem ist das Reflection lahm ist und wenn du viele Objekte darüber instanzierst das deine ganze Anwendung in den Keller zieht.

08.12.2009 - 16:08 Uhr

Da ist die Frage was A,B,C etc.. denn für Programme sind. Wenns deine eigenen sind dann sollte das ja mit der Taste kein Problem sein. Für den Rest kannst du Mutexe verwenden.
Ansonsten bräuchts noch n paar mehr infos.

08.12.2009 - 14:37 Uhr

oder fuer die

<seat kID="">value</seat>

ne extra klasse schreiben muss die mir das jedes mal serialisiert und die in der schleife aufrufen wo jetzt aktuell dieses kauderwelsch drinsteht richtig? 😉

Hmm... also eigentlich brauchst du einfach für jedes Tag eine Klasse. z.B. für "<Vote>" eine Klasse "Vote" und für "<Seat>" eine Klasse "Seat".
Wenn du die so nennst dann brauchst du auch nicht großartig mit Attributen rumzuhantieren. Foo und Bar waren wohl eher als Beispiel und nicht zum direkten Übernehmen gedacht. Das macht es ein bisschen komplizierter sich in den Thread einzulesen wenn man nicht den kompletten Thread lesen möchte.

Vote bekommt dann ein Array-Property vom Typ Seat[] so das es als Containter für eben diese fungiert. Seat bekommt ein KID-Property vom Typ int und gut ist.
Deine Objekthierarchie erzeugst du dann ganz einfach wie gewohnt im Code uns serialisierst einfach das Root-Objekt (Vote) womit automatisch alle Seat-Objekte mitserialisiert werden.

Mit den genannten Infos kannst du aber auch gleich eine XSD bauen und daraus den Code generieren:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="Votes">
      <xs:complexType>
         <xs:sequence>
            <xs:element maxOccurs="unbounded" name="Seat">
               <xs:complexType>
                  <xs:simpleContent>
                     <xs:extension base="xs:unsignedLong">
                        <xs:attribute name="KID" type="xs:unsignedLong" use="required" />
                     </xs:extension>
                  </xs:simpleContent>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema>
08.12.2009 - 14:09 Uhr

Ein weiterer Weg ist hier beschrieben: Beispiel für Lesen und Schreiben eines XML mit XSD als "Schablone"

Meines erachtens einfacher. Und noch einfacher wirds mit diesem Tool: Web Services Contract First

13.11.2009 - 14:49 Uhr

Er redet wohl über das DataGridView. Du kannst das Property überschreiben (entweder override wenns virtual ist, ansonsten new verwnden) und dann im Setter Debugger.Break() verwenden.

12.11.2009 - 20:49 Uhr

Danach kann ich auf meine Variable timeStamp in den unterschiedlichen Methoden zugreifen

Wenn du nur innerhalb der Form darauf zugreifen möchtest kannst/solltest du das static weglassen. Wenn du von außerhalb darauf zugreifen möchtest und eine Instanz der Form zur Verfügung hast dann benutze ein Property.

09.11.2009 - 16:07 Uhr

Das Hat aber mehr mit Projektmanagement als mit Coding zu tun.

Nein, das ist Coding Styles Horror 😉

09.11.2009 - 14:55 Uhr

Oh, das schaut cool aus. Werd das heut Abend gleich mal ausprobieren.

06.11.2009 - 16:10 Uhr

WPF und 3D? Für welchen Anwendungsfall ist das gedacht? Hüpsche Effekte für Icons oder mehr?

Mehr 😉
WPF Moon Lander
Modelviewer

On-Topic: Drawing a cube in WPF
Noch ein WPF Würfel

03.11.2009 - 13:33 Uhr

ist doch korrekt nach IEEE-754

Aber nicht korrekt nach DIN_1333 😉

03.11.2009 - 01:08 Uhr

liegt vieleicht daran, dass ich sämtliche visuelle Hilfen in VS ignoriere

Das mag geschmackssache sein, ich für meinen Teil mag Syntax highlighting und code completion etc. und möchte nicht mehr darauf verzichten. Das soll allerdings nicht Gegenstand der Diskussion werden. Geschmäcker sind verschieden.

Ein viel größeres Potenzial sehe ich darin das man die Sprache, die verwendet werden soll, so gut wie möglich der Zielgruppe anpasst die sie nachher tatsächlich verwenden soll/muss. Da stellt sich natürlich die Frage was deine Zielgruppe ist?
Manche (z.B. Designer) mögen i.d.R. lieber den deklarativen Ansatz via XML etc. wobei man das eigentlich auch nicht wirklich pauschalisieren kann, andere wollen lieber programmieren (Logik irgendwo unterbringen).
Wenn dir die Trennung wichtig ist dann solltest du sicherlich am besten den deklarativen Ansatz verwenden um die GUI zu definieren und dann auf irgendeine Backend-Sprache zurückgreifen um die Logik für die GUI zu implementieren.
Das kann man ohne weiteres unter zu Hilfe nahme von Namen tun (siehe HTML und JS sowie XAML) wie z.B. einem Button der ein Event triggern kann und den Handler dafür den man per Namen in einem Attribut referenziert.
Ein Beispiel wäre z.B. eine auf XML basierende domain specific language um das UI zu definieren:


<Assistent>
   <Pages>
      <Page Name="Welcome" />
      <Page Name="Ask_Connection_Settings" />
      <Page Name="Show_Configuration_Progress" />
      <Page Name="Finish" />
   </Pages>
   <Page Name="Welcome">
      <Label Caption="Willkommen bei Bla bla..." X="5" Y="5" Font="Arial 16px" />
      <Seperator />
      <ListLayout>
         <Label Caption="Text text text...." Font="Arial 12px" />
            <FlowLayout>
               <Input Type="trigger" text="Abbrechen" Function="Quit()" />
               <Input Type="trigger" text="Weiter" Function="Next()" />
            </FlowLayout>
         </ListLayout>
   </Page>
   <Page>
      <Label Caption="Bitte geben Sie ihre Verbindungsdaten ein" X="5" Y="5" Font="Arial 16px" />
      <Seperator />
      <ListLayout>
          <Label Caption="Computer name:" Font="Arial 12px" />
          <Input Type="text" name="Host" />
          <Label Caption="Port:" Font="Arial 12px" />
          <Input Type="text" name="Port" />
          <Label Caption="Database:" Font="Arial 12px" />
          <Input Type="dropdown" name="Host" values="GetDatabases($Host, $Port)" />
          <FlowLayout>
             <Input Type="trigger" text="Abbrechen" Function="Quit()" />
             <Input Type="trigger" text="Verbindung einrichten" Function="SetDbConnection($Host, $Port, $Database)" />
         </FlowLayout>
      </ListLayout>
   </Page>
   .
   .
   .
</Assistent>

Die eigentlich Logik liegt dabei in irgeneiner Form im Backend vor und führt die eigentlichen Aktionen aus die "getriggert" werden. Du kannst aus dem UI Variablen einlesen und setzen und das war's dann eigentlich auch schon. Trigger im UI stoßen Funktionen an und diese können widerum variablen im UI setzen und in diesem Falle nach erfolgreicher Ausführung die nächste aktive "Page" setzen.
Das wäre jetzt nur ein Assistent aber dieses Prinzip ließe sich auch für die Pflege von Artikeln etc. verwenden und wäre in meinen Augen zumindest für den Anwender recht simpel. Man könnte sogar mit ein bisschen mehr Aufwand einen einfachen WYSIWYG Designer dafür entwickeln.

Konstrukte wie

// #if(permission=modulename.addgroup)

sind bei diesem Ansatz allerdings zu vermeiden. Du musst vorher schon Sorge tragen das nur derjenige den Dialog zu sehen bekommt der auch die benötigten Rechte dafür hat sonst wird die Logik und die GUI (wenn auch nur in geringem, allerdings nicht unerheblichem Maße) wieder vermischt.

Mit einer dazu passenden XSD kann man dafür im VS und auch in anderen Edioren auch eine IntelliSene unterstützung anbieten was die (Schreib)Arbeit weiter verringert.

[EDIT 3] Da sieht man mal was passiert wen man eine IDE gewöhnt ist und dann nur in ein simples Textfeld schreibt 😉

02.11.2009 - 17:22 Uhr

Ich findes es interessant, dass du das nicht gut lesbar findest, unterscheidet sich doch die Syntax kaum von C#.

Den Winforms Designer-Code des VS finde ich auch nicht lesbarer und das ist C# 😉 XAML hingegen ist da schon besser.

da hast du schnell mal doppelt und dreifach so viele Zeichen 😃

Deswegen ja auch der Verweis auf "etablierte" XML-Sprachen die ich eingentlich recht simpel und funktionell finde.

02.11.2009 - 16:28 Uhr

Hmm.. finde ich jetzt nicht ganz so lesbar (kann aber auch daran liegen das ich Javascript nicht mag;)

Ich fände eine XML-Sprache schon gar nicht so abwegig. Die kann (und sollte dann auch) ja wesentlich spezialisierter sein z.B. für Assistenten.

Du kannst dir ja mal das XML-Format für Wix-Formulare (Windows Installer XML) reinziehen. Das ist recht simpel. Oder XForms.
Für letzteres findest du mit ein bisschen Glück sogar libraries. Ansonsten finde ich folgendes Joomla-Projekt ganz cool: JForms ist aber noch nicht ausgereift und sicherlich ein gutes Stück arbeit sowas zu bauen.

02.11.2009 - 12:41 Uhr

Dann reicht es auch dicke nur die Vertikalen oder Horizontalen "Linien" zu zeichnen wenn es alles gleichmäßige Abstände hat. Das sollte der schnellste Weg sein.

02.11.2009 - 12:25 Uhr

Klar, eins würde reichen. Das müsste dann gecached werden und nur wenn sich das Gitter ändert neu erzeugt werden.
Wahrscheinlich ist es allerdings ganz ohne das Bitmap (zumindest bei einem großen Raster) doch noch ein ganzes Stück schneller bzw. speichersparender.

02.11.2009 - 10:57 Uhr

Nun er möchte ja auch kein Gitter sondern ein gepunktetes Raster.

30.10.2009 - 14:35 Uhr

Hmm... hat der FF bei mir anstandslos geöffnet. Aber der Benutzername ist "download". Passwort gibts keins.

Allerdings ist das mit der Dateifreigabe und im Netzwerk dann so eine Sache und Frage wegen der Sicherheit 😕

Tja, das ist so ne Sache. Aber für die CE-Db wirste nichts anderes machen können außer dann evtl. einen Service drumherum zu bauen und den zu benutzen. Die CE-Engine geht nunmal auf das File.

30.10.2009 - 14:14 Uhr

Du wirst eine Dateifreigebe einrichten müssen. Habe da folgendes gefunden: Datefreigabe unter Windows CE 5.0

28.10.2009 - 10:41 Uhr

ja den link hab ich mir schon angeguckt.
Aber da sind nur verschiedene links.

Hast du noch nie ein Google Suchergebnis gesehen?

Für den Fall das du es nicht gemerkt hast war damit gemeint das es extrem viel Lektüre zu Webservices gibt und sich daraus auch erschließt wo ein Webservice zu liegen hat und das du diese Lektüre erstmal lesen solltest bevor du weiter sachen fragst die wir als selbstverständlich voraussetzen.

Siehe: [Hinweis] Wie poste ich richtig? 1.1 und 1.1.1

27.10.2009 - 13:37 Uhr

ich brauche es , damit ich mich mit dem programmieren in diesem Bereich verdraut machen kann.
Also zum üben

Dann installiere eine Datenbank. Das ist sowieso viel angenehmer da die
Reaktionszeiten viel schneller sind.

27.10.2009 - 13:36 Uhr

Da gibt es MySql Datenbanken. Aber wofür brauchst du das denn? Es ist nämlich wirklich nicht schick die Datenbank so ins Netz zu hängen (auch wenn es, wie man sieht, natürlich möglich ist und auch gemacht wird).

22.10.2009 - 10:08 Uhr

Das Anliegen klingt nach einem klassischen SourceControl System.
Sieh dir mal Subversion (SVN), CVS, Git oder auf der MS Schiene den SourceSafe (nur Versionsverwaltung) oder den TeamServer (Gut viel mehr als Versionsverwaltung aber auch gut teuer) an.
Die erstgenannten sind alle Open Source, letztere von MS und kostenpflichtig.

[EDIT] Gehostet (i.d.R für OpenSource Projekte) bekommst du das auch auf Sourceforge, Googlecode, BerliOS etc...
[EDIT2] Mist! Codeplex vergessen, da bekommst du den MS Team Foundation Server gehostet.

22.10.2009 - 09:51 Uhr

Hmm.. empfehlen könnte ich den Profiler von RedGate (ist ganz schick) der kostet aber. Ansonsten: Open Source .Net Profiler

22.10.2009 - 09:44 Uhr

Hast du eine Anwendung für WinCE (Smartphone oder PocketPC etc..) entwickelt? Wenn nein kannst du diese Tools gleich wieder von der Platte hauen da mit Device ein eben solches Gerät gemeint ist und du mit einer normalen Windows-Anwendung damit nicht besonders viel anfangen kannst.

22.10.2009 - 09:19 Uhr

Urgh! Bau das mal raus:


            while (!completed)
            {
                Thread.Sleep(50);
            }

und schau ob es dann funktioniert. Thread.Sleep() ist in GUI-Anwendungen immer falsch da du damit die gesamte Message-Loop des Fensters (und damit eventuell noch viel mehr als du beabsichtigt hast) anhältst.

[EDIT]
Hmm.. sehe es erst jetzt gerade:
Du versuchst einen prozeduralen Ansatz in einer eventgesteuerten Anwendung. Alles was du nach dem setzen des completed-Flags tun möchtest solltest du mal probehalber in den Eventhandler packen.

22.10.2009 - 02:18 Uhr

So richtig interessant dürfte der HAL bei MS für NT ab 4 gewesen sein:
PowerPC, ALPHA, x86, MIPS

Big/Little-Endian, Single/Multiprozessor , SCSI, ATA etc..

Und eventuell mal einen Blick in die ReactOS-Sourcen riskieren.

19.10.2009 - 18:22 Uhr

Das ist schon konkreter 😉

19.10.2009 - 18:07 Uhr

die Datei per Wordpad oder ähnliches zu ändern/bearbeiten

*Würg* Probier mal einen anständigen Texteditor aus. Wordpad und XML ist ja nicht so das Dream-Team 😉

Mal eine kleine Auswahl:

19.10.2009 - 17:52 Uhr

Speichere das Xml mit einem XmlTextWriter und initialisiere ihn mit einer Instanz der XmlWriterSettings-Klasse dort kannst du Indent etc.. einstellen und bekommst so formatiertes Xml.
Wenn es dir nur um die bessere Lesbarkeit beim debuggen etc. geht dann kannst du in deinen SQL-Queries auch einfach den Texttypen (inwiefern du VARCHAR oder so zum speichern von XML nutzt) als XML casten und das SSMS formatiert es dir anständig:


SELECT CAST(psc.Param2 AS XML) FROM OBJ_Pro...

19.10.2009 - 17:11 Uhr

Nope, geht nicht. Eventuell kannst du es ganz umständlich per OwnerDrawing machen (würde ich nicht tun).
Alternativ: http://www.codeplex.com/sourcegrid/

19.10.2009 - 16:35 Uhr

Unless you need reference type semantics, a class that is smaller than 16 bytes may be more efficiently handled by the system as a struct.

Interpretiere ich jetzt allerdings eher so das man Klassen unter 16 byte meiden sollte aber eher nicht so das structs über 16 byte langsamer wären.

may be more efficiently

Und dann noch diese Ungewissheit 😉 Da wird nur ein Test gewissheit bringen...

19.10.2009 - 14:33 Uhr

Das kannst du mit den Entsprechenden RegexOptions machen

19.10.2009 - 14:25 Uhr

@snowy:
Du kannst es auch mit einer DataTable probieren, die dürfte zwar mehr overhead haben als eine Liste aber dafür ist das Abfragen auf deine Kriterien sehr einfach.


DataTable table = new DataTable();
table.Columns.Add("Name");
table.Columns.Add("Position");
table.Columns.Add("Code");

DataRow row = table.NewRow();
row["Name"] = "Hallo Welt";
row["Position"] = "Nirvana";
row["Code"] = "123";

table.Rows.Add(row);

DataRow[] found = table.Select("Name = 'Hallo Welt' AND Position = 'Nirvana'");

19.10.2009 - 14:16 Uhr

Den Operator => kannte ich auch nicht bisher.

Das sind Lambda Expressions:
[Artikel] Delegaten, anonyme Methoden, Lambda-Ausdrücke & Co.

In dem struct müssen aber 2 strings übereinstimmen, damit es als Treffer gilt.

Bsp: ((d.Name1) && (d.Name2))

Die Syntax ist ja auch falsch (EDIT: würde nur bei boolschen Typen gehen).
Wenn die strings gleich srein müssen dann wäre wohl eher == angebracht. (das aber bitte noch mal damit -> 🛈 vertiefen)

19.10.2009 - 13:53 Uhr

Noch als kurze Anmerkung:
\ ist nur wegen C# nötig (nur in string-literalen) alternativ kannst du ein @ benutzen:
@".(/*(.)*/).*"

19.10.2009 - 13:17 Uhr

Na da steht doch schon fast alles da. Musst du nur noch auf dein konkretes Problem ummünzen.

19.10.2009 - 13:12 Uhr

.(/*(.)*/).*

19.10.2009 - 12:50 Uhr

Noch nicht ganz. Da ja noch nicht klar ist was du matchen möchtest.
Das Kommetar als ganzes?
Den Text des Kommentars?
Die PHP-Tags?

19.10.2009 - 12:47 Uhr

Den treeview manuell füllen und jedem Node als tag eine page zuweisen

Noch besser wirds wenn du dir eine eigene Node ableitest und dieser ein Page-Property einpflanzt. Der Tag ist ja vom Typ 'object' und das alleine ist schon nicht schön. Unschöner wirds dann meistens noch wenn ein Struct oder ein anderes komplexes Objekt im Tag landet... irgendwann verliert man die Übersicht und es schleichen sich Fehler ein.

Ergänzend dazu:
[FAQ] Mit Forms eine Art Frameset einer Website nachbauen? (Navigation, Wizard, Assistent)

und eventuell auch interessant:
TreeView mit Nodes die Events unterstützen

19.10.2009 - 12:42 Uhr

Nein, jedes UserControl sollte seine eigene Timer-Instanz besitzen. Vermutlich läuft irgendwas anderes Schief.
Was macht denn das UserControl bzw. bist du dir sicher das alle Timer deaktiviert werden (Debugger)?

19.10.2009 - 12:39 Uhr

Wär auch gut wenn du noch schreiben würdest was du matchen willst. Denn ein "funktioniert nicht" ohne Beispiel lässt doch sehr viel interpretationsspielraum.
\d ≤ funktioniert beispielsweise wunderbar.