Laden...

Forenbeiträge von jaensen Ingesamt 2.760 Beiträge

17.02.2011 - 18:04 Uhr

Schau dir mal IXmlSerializable an.

15.02.2011 - 23:26 Uhr

es nervt,... weil, wenn ich zB doppelt auf den header klicke (zum sortieren), dann führt er mein event aus (double click auf eine row)...

Dann musst du in deinem Event Handler eben prüfen ob es sich um die richtige Zeile/Zelle handelt und erst dann deine weitere Funktionalität ausführen.

und außerdem sind meine rows in unterschiedlichen farben, zwecks prioritäten....

Setze einfach die SelectionBackColor beim setzen der Farben für deine Prios eben auf die selbe Farbe.

15.02.2011 - 22:55 Uhr

es gibt noch ne methode show(), was ist der untershcied zu SetToolTip?

Kannst du leicht herausfinden:
ToolTip.Show-Methode

15.02.2011 - 22:35 Uhr

Ich glaube nicht das du das selektieren verhindern kannst aber du kannst die Hintergrundfarbe für selektierte Zellen einfach auf deine Hintergrundfarbe setzen.

03.02.2011 - 20:46 Uhr

Ich würde dir da auch eher zu einem embedded DBMS raten. Das kannst du dann mit einem beliebigen kompatiblen O/R Mapper benutzen.

03.02.2011 - 15:44 Uhr

Der gängigste Weg dürfte sein das über Transaktionen zu lösen das unterstützen allerdings nicht alle MySQL-Storage Engines so weit ich weiß.

02.02.2011 - 22:56 Uhr

Per Excel Automation als CSV-Datei in eine temporäre Datei speichern und dann mit einem CSV-Reader von dort wieder einlesen wäre auch eine Option. Außerdem solltest du die Liste mit der benötigten Größe initialisieren da du diese ja kennst.

02.02.2011 - 21:50 Uhr

alle herkömmlichen techniken ala lock oder monitor fallen ja sowieso weg

Ich würde jetzt mal sagen das du genau Locking in deiner Anwendung benötigst. Mit dem lock-Keyword hat das allerdings nichts zu tun.

http://en.wikipedia.org/wiki/Lock_(database)

27.01.2011 - 14:50 Uhr

Jacke wie Hose, man kann damit Access Datenbanken öffnen und genau das wollte der Threadsteller

27.01.2011 - 03:48 Uhr

Falls du mit dem SQL Server arbeitest (bzw. ein Installationsmedium zur Hand hast) dann schau dir mal die SQL Server Intergration Services an. Dort gibt es eine XML Source und SSIS arbeitet in den meisten Fällen ohne zutun parallel.

Falls du eine andere Datenbank nutzt kannst du SSIS trotzdem benutzen da es eine ADO.Net Destination gibt und einen entsprechenden Provider scheinst du ja zu haben wenn du deinen ETL Prozess in .Net realisierst.

27.01.2011 - 03:39 Uhr

Habe mit dem Sync Framework zwar noch nicht gearbeitet aber es scheint die Möglichkeit zu bestehen eigene Provider etc. zu schreiben. So wie es auf der Homepage klingt kann man wenn man nur will wohl so ziemlich alles damit anbinden.

27.01.2011 - 03:35 Uhr

JET gibts jetzt auch in 64 bit: Microsoft Access Database Engine 2010 Redistributable wie gut das funktioniert weiß ich leider nicht.

27.01.2011 - 03:30 Uhr

Der XmlSerializer generiert ein Serialization Assembly um das De/Serialisieren zu beschleunigen: Introducing XML Serialization

Hier (Generating an Xml Serialization assembly as part of my build) hatte jemand das selbe Problem und hat es durch eine Änderung in seinem Build Prozess gelöst ob das der Königsweg ist vermag ich nicht zu sagen evtl. hast du einfach ein Rechteproblem oder der gleichen da ich Probleme dieser Art mit dem XmlSerializer noch nicht hatte.

27.01.2011 - 00:44 Uhr

Das ist ein Anliegen welches sich auch nicht pauschal lösen lässt. Deine Datenbank (oder was auch immer geschützt werden soll) muss da mitspielen.
Ein Beispiel wäre das NTFS Dateisystem welches dazu ACLs nutzt.

Meistens wird man in Anwendungssoftware allerdings ein DBMS verwenden. Hier gibt es unterschiedliche Ansätze je nach dem wie genau man den Zugriff kontrollieren möchte. Beispiele findest du z.B. unter dem Suchbegriff "Implementing row/cell level security" findest du einiges wie etwa diesen Technet Artikel:
Implementing Row- and Cell-Level Security in Classified Databases Using SQL Server 2005

13.01.2011 - 20:26 Uhr

Hier ebenfalls das selbe Ergebnis. Schuld dürfte der ISP haben da hier eigentlich alle Geräte inklusive Infrastruktur IPv6 fähig sind.
Abhilfe wenn man dennoch IPv6 möchte oder selbst Inhalte per IPv6 bereitstellen möchte wäre z.B. ein Tunnel: Sixxs: kostenlose IPv6 Tunnel

Lustig daran ist das das hier ein MNet-Anschluss ist und die auch Tunnel bei sixxs bereitstellen: http://www.sixxs.net/pops/mnet/

07.01.2011 - 18:11 Uhr

Also das value changed event musst du nicht abonieren wenn du eine BindingList verwendest. Das ist ja genau der Clou das du nichts machen musst außer die BindingSource zu setzen.

Ansonsten schaut der von dir gepostete Code unvollständig aus und reicht meiner Meinung nach nicht aus um den Fehler zu finden. Gibt es eine Fehlermeldung?

03.01.2011 - 18:51 Uhr

Ist evtl. einfacher:
URL aus Navision heraus öffnen

Zu deinem anderen Punkt:
Du hast wahrscheinlich irgendwo ein Anführungszeichen vergessen. Das gehört aber ganz klar zu den Grundlagen. Deswegen: [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)

03.01.2011 - 14:44 Uhr

Hallo Gnozo,

eine Forensuche hätte weitergeholfen: .net Dll für Navsion registrieren

21.12.2010 - 21:47 Uhr

Da ist codeproject immer eine gute Anlaufstelle:
Drag and Drop Treeview control

für Multiselect findest du definitiv auch was bei Codeproject und Events für deine Node bekommst du z.B. hiermit: TreeView mit Nodes die Events unterstützen

Irgendwo im Netz wirst du wahrscheinlich auch ein Control finden was das alles schon eingebaut hat. Aber mit dem ganzen Code aus dem Web ist das ganze auch recht schnell selbst zusammengesteckt.

21.12.2010 - 21:39 Uhr

Also so wirkliches Databinding wie es z.B. für das DataGridView und die DataTable angeboten wird gibt es für das TreeView Control nicht.
Du wirst dir eine rekursive Methode zum füllen bauen müssen. Wie das geht findest du zu Hauf im Netz und auch im Forum.

21.12.2010 - 20:18 Uhr

Da ich aber lokal auf meinem Server (ein vServer) keine Probleme mit der Verbindung habe

Ist also eine andere MySQL Installation? Wahrscheinlich ein von vorn herein recht freundlich konfiguriertes xampp oder ähnlich.
In der Regel erlaubt MySQL initial nämlich keine Zugriffe außerhalb von localhost.
Schon mal:


GRANT ALL ON DATENBANK.* TO USER@'DEINE REMOTE CLIENT IP' IDENTIFIED BY 'PASSWORD';

probiert?

Eventuell musst du auch noch die config ändern.

21.12.2010 - 19:56 Uhr

Und zu deiner Datenbank noch:
Baue zwei Stammdatentabellen User und Rights. User enthält die Benutzernamen und Passworthashes (wer hätts gedacht) und Rights eine einfache Auflistung aller verfügbaren Rechte. User und Right verknüpfst du dann in einer UserRights Tabelle o.ä. damit hast du dann mit einem simplen Select-Statement alle Rechte für den User an der Hand.

20.12.2010 - 16:57 Uhr

wie benutze ich DocumentCompleted Event mehrfach?

Du darfst ihn nur ein mal benutzen und musst dann anhand der EventArgs feststellen auf welcher Seite du dich gerade befindest:


webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(completed);

private void completed(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (e.Url.ToString() == "http://www.faz.de") {
               // Nächste Seite
               webBrowser1.Navigate("http://www.mycsharp.de");
            } else if (e.Url.ToString() == "http://www.mycsharp.de") {
               // Nächste Seite
               webBrowser1.Navigate("http://www.de.wikipedia.org");
            }
        }


Ist ungetestet und das die URLs hardcoded sind ist natürlich auch nicht so schön. Sollte aber das Prinzip verdeutlichen.

16.12.2010 - 20:57 Uhr

er müsste entweder in Session 0 (sicherer Desktop) wechseln

Genau das passiert dann auch (schaut zwar scheisse aus aber geht)

16.12.2010 - 19:46 Uhr

was ja wohl heißt, dass es unter Vista/Win7 nicht mehr geht, weshalb es schon unter WinXP keine zukunftsfähige Lösung ist.

Doch da geht das auch noch was jetzt nicht heißen soll das man es so benutzen sollte.

16.12.2010 - 01:27 Uhr

Wenn ich
>
aufrufe, läd mein Browser automatisch folgende Seiten/Frames mit nach...

Schon mal mit Fiddler oder einem ähnlichen Tool nachgesehen was das nachladen auslöst?
Das erste dürfte eine Umleitung auf mycsharp.de/wbb2 sein die anderen Sachen sind Resourcen wie z.B. Bilder, CSS Dateien, Javascript etc..

Die Umleitung fällt noch in den Teil des HTTP-Protokolls (Code 301 Moved Permanently o. 302 Moved Temporarily) währen das nachladen der Resourcen auf HTML Code zurückzuführen ist (Dinge wie: <script src="bla.js"> usw.)

Du siehst schon das du da vergleichsweise tief runter musst. Das WebBrowser Control bietet dir diese LowLevel Schnittstelle allerdings nicht an. Da müsstest du eher mit dem HttpWebRequest oder Sockets ran und das Control nur noch zum Rendern benutzen. Alles in allem ein Aufwand der sich in der Regel nicht lohnt. Evtl. solltest du je nach Anforderung lieber ein Browser-Plugin für z.B. Firefox bauen.

16.12.2010 - 01:03 Uhr

und versuche die in der Liste verwaltete Rechtecke nach obiger Darstellung dementsprechend mitzudrehen.

Wenn ich dich richtig verstanden habe geht es dir weniger um die gedrehte Darstellung der Elemente als um das persistieren der gedrehten Koordinaten.

Die Frage ist ob du wirklich die transformierten Koordinaten speichern musst oder nur den Drehwinkel für jedes Objekt. Geht es dir also nur um die Anzeige oder musst du nachher mit den transformierten Koordinaten weiterarbeiten?

Wenn es dir um letzteres geht dann wäre Rectangle schon mal die falsche Struktur da du damit z.B. kein um 45° gedrehtes Rechteck abbilden kannst. Stattdessen könntest du ein Point[] verwenden und dieses mit Hilfe der Matrix-Klasse transformieren:


   public partial class Form1 : Form {

      Point[] _myRectangle;
      private Bitmap _bmp;

      public Form1() {
         InitializeComponent();
         
         _bmp = new Bitmap(300, 300);

         _myRectangle = new Point[4];
         _myRectangle[0] = new Point(100,100);
         _myRectangle[1] = new Point(200, 100);
         _myRectangle[2] = new Point(200,200);
         _myRectangle[3] = new Point(100,200);

         CreateRectangle();
      }

      private void CreateRectangle() {
         using (Graphics grfx = Graphics.FromImage(_bmp)) {
            grfx.Clear(Color.White);
            grfx.DrawPolygon(Pens.Black, _myRectangle);
         }
         pictureBox.Image = _bmp;
      }

      private void rotate_Click(object sender, EventArgs e) {
         using (Matrix matrix = new Matrix()) {
            matrix.RotateAt(45, new PointF(150, 150));
            matrix.TransformPoints(_myRectangle);
         }

         using (Graphics grfx = Graphics.FromImage(_bmp)) {
            grfx.Clear(Color.White);
            grfx.DrawPolygon(Pens.Black, _myRectangle);
         }
         pictureBox.Image = _bmp;
      }
   }

Dieser Code transformiert die Koordinaten im Point[] und das geht natürlich auch mit einer Liste der Arrays.

12.12.2010 - 02:02 Uhr

Hört sich an als ob du ein HashSet suchst. Da kannst du deine IDs zwischenspeichern und schnell abfragen ob du diese ID schon mal vorliegen hattest. Das char[] solltest du vorher in einen String oder Int konvertieren.

05.12.2010 - 15:29 Uhr

Ich könnte mir höchstens noch vorstellen, dass es irgendwie damit zusammenhängt, dass mein Usercontrol ein Hintergrundbild hat

Mit Hintergrundbildern habe ich auch schon schlechte erfahrungen gemacht was darüber gelegte Controls angeht.

Da kam dann damals sowas raus: Pseudo Button für GUIs mit großen Hintergrundbildern

04.12.2010 - 15:19 Uhr

Zum Beispiel?

Er meint z.B. Programme wie TeamViewer.
Allerdings ist das konzept dort ein völlig anderes da es einen weiteren "Vermittlungs"-Server geht. Wenn du den WCF Dienst direkt anbieten möchtest dann kommst du an einem Port-Forwarding nicht vorbei.

02.12.2010 - 14:04 Uhr

Das passiert momentan nur alle 1000 abgearbeiteten Strahlen. Gibts hierfür eine bessere Lösung? Ich brauch den Fortschrittbalken, den manche Simulation laufen bis zu 3 Tage!

Dann solltest du darüber nachdenken deinen RayTracer Code in einen Service (und fürs debugging in eine Konsolenanwendung) zu packen und die GUI per Remoting etc. den aktuellen Status pollen zu lassen. Dürfte zwar nicht besonders an der Performance Schraube drehen aber würde ich trotzdem für das bessere Vorgehen halten.

01.12.2010 - 23:19 Uhr

Laut Doku sollte es auch true zurückgeben.
XmlReader.ReadToFollowing

[EDIT] Hmm.. wer lesen kann ist klar im Vorteil. Du meinst ja das End-Tag also ignorier den Schmarn den ich da gerade verzapft habe einfach 😉

30.11.2010 - 22:06 Uhr

Habe mal ein bisschen weiter geforscht und einen Crashdump erstellt. Es war ja irgendwie klar das es mit dem drucken zusammenhängen musste (scheint etwas exotisch zu sein aus einem Service drucken zu wollen). Der Druckertreiber (Sharp) scheint an dieser Stelle Mist zu bauen.

Das interessante daran ist allerdings das vor dem Crash alles korrekt gedruckt wird.

Hier mal was das MS Debug Diagnostic Tool so von sich gibt:


Operating System   Windows Vista Service Pack 2 
Number Of Processors   2 
Process ID   5016 
Process Image   c:\Windows\System32\inetsrv\w3wp.exe 
System Up-Time   02:51:05 
Process Up-Time   00:00:36 

Thread 10 - System ID 4648
Entry point   mscorwks!ThreadpoolMgr::intermediateThreadProc 
Create time   30.11.2010 20:31:01 
Time spent in user mode   0 Days 0:0:1.294 
Time spent in kernel mode   0 Days 0:0:0.436 

Function     Arg 1     Arg 2     Arg 3   Source 
kernel32!lstrcpyA+18     00000000     01c14238     00000000    
SN0EGC!scExtSendBandData+92d     01bb4cd8     01c186e8     01cd42e0    
SN0E2DRV!CDrv2KPrintJob::StartDocW+166     ffffffff     105fc566     107d0034    
SN0E2DRV!DisableThreadLibraryCalls+203     107d0000     107d0034     00000008    
gdi32!GdiPrinterThunk+732     00000004     00000000     07110457    


KERNEL32!LSTRCPYA+18In w3wp__PID__5016__Date__11_30_2010__Time_08_31_35PM__797__First Chance WTFException.dmp the assembly instruction at kernel32!lstrcpyA+18 in C:\Windows\System32\kernel32.dll from Microsoft Corporation has caused an access violation exception (0xC0000005) when trying to write to memory location 0x00000000 on thread 10

30.11.2010 - 16:25 Uhr

Servus,

habe gerade ein recht ähnliches (das selbe) Problem allerdings in der Kombination IIS7 + Windows Vista Business als Host + WCF Service in einem AppPool mit erweiterten Berechtigungen (zum Drucken aus dem WCF-Service heraus).

Fehlermeldung (aus Eventlog):

Fehlerhafte Anwendung w3wp.exe, Version 7.0.6001.18000, Zeitstempel 0x47919413, fehlerhaftes Modul mscorwks.dll, Version 2.0.50727.3615, Zeitstempel 0x4be902c7, Ausnahmecode 0xc0000005, Fehleroffset 0x0003d2b6, Prozess-ID 0x%9, Anwendungsstartzeit %10.

mit vorhergehender Meldung:

.NET Runtime version 2.0.50727.3615 - Schwerwiegender Fehler im Ausführungsmodul (6E6D79AE) (80131506).

Meintest du folgenden Patch?
MS10-060 Security Update
Lässt sich bei mir auch nicht installieren.
Konntest du das Problem bereits lösen?

26.11.2010 - 02:15 Uhr

Schon mal die SQL Server Integration Services (SSIS) angeschaut? Damit kannst du solche Szenarien und noch viel mehr leicht umsetzten (ist auch genau für so etwas gedacht).

So wie du dir das vorstellst wird das ansonsten nicht funktionieren. Du kannst dafür entweder wie schon von witte vorgeschlagen Linked Server verwenden oder musst die Daten vorher in den Client laden (z.B. in eine DataTable) und dann mit einer neuen Connection und einem neuen Command in die Zieltabelle schreiben.

Je nach dem mit wie vielen Daten du hantierst sind die letzt genannten Möglichkeiten allerdings ohne mehraufwand zu betreiben nicht besonders performant.

Eine weitere Alternative wäre das Kommandozeilenprogramm BCP.

Für weiteren Lesestoff: Das ganze nennt sich dann ETL-Prozess und lässt sich wie man sieht auf vielfältige Weise umsetzen.

26.11.2010 - 01:28 Uhr

Versuche mal über Assembly.GetType an die Typeninformationen zu kommen und gucke ob dabei evtl. eine Exception fliegt.

29.10.2010 - 23:52 Uhr

Darf du auch machen aber sinnvoll ist es vorher trotzdem einen Mod zu fragen da die verschiedenen Stimmen gleich gezählt und grafisch aufbereitet werden.

28.10.2010 - 14:21 Uhr

Du kannst ja auch nicht mehrere Zeilen in eine Varchar-Variable schreiben. Du musst eine Table-variable deklarieren.


DELCARE @results TABLE (
   RoleName VARCHAR(50)
);

27.10.2010 - 19:48 Uhr

Hallo Rainbird,

danke für die Anregung. Kann man immer mal ganz gut gebrauchen. Habe das ganze ein wenig abgewandelt so dass es den aus z.B. Outlook bekannten Dialog verwendet.

Verwendung ist einfach:
String rein, string raus.

Hier der Code:


      private string CheckSpellingDialog(string text) {
         if (string.IsNullOrEmpty(text))
            return "";

         Type wordType = Type.GetTypeFromProgID("Word.Application");
         Type documentType;

         object wordApp = null;
         object documents = null;
         object document = null;
         
         object optional = Missing.Value;
         object visible = false;

         if (wordType != null) {
            wordApp = Activator.CreateInstance(wordType);
            documents = wordType.InvokeMember("Documents", BindingFlags.GetProperty | BindingFlags.OptionalParamBinding, null, wordApp, new object[0]);
            document = documents.GetType().InvokeMember("Add", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, documents, new object[4] {
               optional,
               optional,
               optional,
               visible
            });
            documentType = document.GetType();

         } else {
            throw new ApplicationException("Microsoft Word ist nicht installiert! Die Rechtschreibprüfung benötigt Microsoft Word.");
         }

         wordType.InvokeMember("Visible", BindingFlags.SetProperty | BindingFlags.OptionalParamBinding, null, wordApp, new object[1] { false });

         object words = documentType.InvokeMember("Words", BindingFlags.GetProperty | BindingFlags.OptionalParamBinding, null, document, new object[0]);
         object first = words.GetType().InvokeMember("First", BindingFlags.GetProperty | BindingFlags.OptionalParamBinding, null, words, new object[0]);

         first.GetType().InvokeMember("InsertBefore", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, first, new object[1] { text });
         documentType.InvokeMember("CheckSpelling", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, document, new object[0]);

         object characters = documentType.InvokeMember("Characters", BindingFlags.GetProperty | BindingFlags.OptionalParamBinding, null, document, new object[0]);
         object count = characters.GetType().InvokeMember("Count", BindingFlags.GetProperty | BindingFlags.OptionalParamBinding, null, characters, new object[0]);

         object firstChar = 0;
         object lastChar = (int)count - 1;

         object range = documentType.InvokeMember("Range", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, document, new object[2] { firstChar, lastChar });
         object correctedString = range.GetType().InvokeMember("Text", BindingFlags.GetProperty | BindingFlags.OptionalParamBinding, null, range, new object[0]);

         wordType.InvokeMember("Quit", BindingFlags.InvokeMethod | BindingFlags.OptionalParamBinding, null, wordApp, new object[1] { false });

         return correctedString as string;
      }

23.09.2010 - 22:17 Uhr

Nimm eine Embedded-Datenbank. Die Struktur der (einzigen?) Tabelle ist ja dann auch nicht weiter kompliziert:
|Wert|Status|Bearbeitet|Änderungsdatum|
Das synchonisieren kann ja ruhig ein kleines bisschen länger dauern deswegen kannst du auf jede Spalte einen Index bauen was das auffinden von geänderten Daten bzw. konkreten Datensätzen schneller macht.

Nach der Synchronisation am Morgen (Der PDA hat den selben Stand wie der Desktop) setzt du das "Bearbeitet"-Flag jedes Datensatzes auf 0 zurück und bei jeder Änderung auf dem mobilen Gerät wird es für den entsprechenden Datensatz auf 1 gesetzt und ein Änderungsdatum geschrieben. Das Änderungsdatum kannst du dann benutzen um bei Kollisionen zu prüfen ob der Datensatz auf dem PC oder auf dem PDA neuer ist.

Speicher und Performance sollten dann eigentlich kein Knackpunkt sein.

Ich würde gern auf eine lokale DB auf dem Gerät verzichten (u.a. aus Zeitdruck). Was fallen euch noch für Ansätze ein, die Informationen in Dateien zu organisieren?

Zu spät gelesen. Die DB-Implementierung solltesogar schneller gehen als die anderen Ansätze (sowohl die benötigte Zeit um eine solche Funktionalität zu programmieren als dann auch zur Laufzeit)

23.09.2010 - 21:24 Uhr

@zommi: Guter Beitrag!

Aber vielleicht will Ralf etwas völlig anderes mit seinen EBC - nur ist mir das dann noch etwas unklar.

Das ist es mir momentan auch noch.

Ich habe noch keinen wirklichen konzeptionellen Unterschied (außer durch die Verwendung anderer technischer Mittel zur Implementierung also: .Net, Delegates, Events etc.) z.B. zu LabVIEW, einigen ausgefeilten Workflow-Engines etc. entdecken können (das Buch "Flow Based Programming" habe ich nicht gelesen).

An dieser Stelle nur soviel: Imperative Programmierung ist eben nicht (!) das Thema von EBC. EBC-Diagramme sollen keine Flowcharts sein. Das ist ja der Trick. Wer beim Modellieren mit EBC an Schleifen und Fallunterscheidungen denkt, ist schon zu tief in der Abstraktion abgestiegen. Damit haben EBC nichts zu tun.

Eines meiner großen ? ist es eben auf welchem Abstraktionsniveau ich EBCs einsetzen sollte. Ich finde solche Ansätzen nämlich in der Regel sehr reizvoll aber nur auf einem Niveau in dem ich möglichst Blackbox-artig Services miteinander "verdrahte" und Nachrichten (in welchem Format auch immer) zwischen den Services austausche.

Der Übergang zwischen Komponenten und Services (brauche ich einen Service auf einer höheren Ebene öfter so wird er dort zur Komponente) ist doch ohnehin fließend je nach dem auf welche Abstraktionsebene man geht. Ob ich jetzt auf einer "Platine" verdrahte oder auf einer "Zeichenfläche" ist unerheblich. Ob mein Graph (was es ja letztendlich ist) interpretiert wird oder erst kompiliert ist auch unerheblich für das Konzept.

Niedrigere Abstraktionen einen solchen Konzepts habe ich bei meinem alten Arbeitgeber schon erlebt und das ist trotz der Unterstützung ausgefeilter grafischer Editoren, in Bezug auf die geplanten Aufwände oft in die Hose gegangen. Deswegen stehe ich EBCs auch etwas kritischer gegenüber.

Die Frage lautet meinerseits also: Welche Arten von Komponenten/Tätern soll ich bauen?
Überspitzt formuliert (allerdings habe ich es bis zu dieser Ebene auch schon erlebt) soll ich eine Komponente mit den Eingangspins "Wert1", "Wert2", "Wert3", ..., "Rechenart" und dem Ausgang "Ergebnis" bauen oder sollte ich mich eher auf dem Level von "Kunde" -> "Kreditantrag" -> "Genehmigung einholen" -> "Kredit vergeben/Kredit ablehnen" bewegen?

Das erste Extrem bewegt sich meiner Ansichtsweise nach schon nah an der prozeduralen Programmierung das letzte ist mit prozeduraler Programmierung nicht zu vergleichen da ein Prozess abgebildet wird (Eine Fallunterscheidung ist da allerdings trotzdem drin).

Fast alles einschließlich und zwischen den beiden genannten Extremen lässt sich gut mit einer breiten Palette an Tools abwickeln (von BizTalk über die WF und vielen anderen proprietären Workflow-Engines bis hin zur Programmierung von Hand auf konventionellem Wege oder evtl. auch EBCs quer durch alle Abstraktionsebenen der funktionalität). Nur ein Problem gibt es bei allen Varianten (dazu zitiere ich einfach mal Wikipedia):

Das Interface der Komponente ist eine verbindliche Schnittstelle (Interface) zum Rest der Software. Die Schnittstelle kann daher mit einem Vertrag zwischen der Komponente und dem Rest der Software verglichen werden.
Durch die explizite Definition der Kontextabhängigkeiten wird deutlich, wie unabhängig eine Komponente tatsächlich von ihrer Umgebung ist.

Womit wir wieder bei der Frage des Abstraktionsgrades wären.

Eine etwas größere Beispielanwendung wie z.B. die von Rainbirds .NET Applikationsserver wäre schön damit man besser erkennen kann wo und wann EBCs eingesetzt werden. Eine solche Anwendung rein mit EBCs implementiert kann ich mir nämlich nicht vorstellen.

Du bist zwar nicht in der Pflicht eine solche Beispielanwendung zu erstellen aber sie würde die Akzeptanz der EBCs wahrscheinlich erhöhen und die Einstiegshürde niedriger setzen was ja eigentlich nur in deinem Interesse sein kann. Evtl. kommt bei deinem Wettbewerb etwas ähnliches raus und nimmt mir eine Hürde mir EBCs in der Praxis mal genau anzusehen.

21.09.2010 - 02:56 Uhr

Servus zusammen,

habe hier ein Dell Precision M2400 mit der Dell Wireless 5530 HSPA Mini Card. Ich habe die aktuellsten Treiber drauf die man von Dell bekommen kann aber werde verfolgt von Bluescreens/Abstrürzen/Hängern im Zusammenhang mit dieser Karte/dem Treiber.

Insbesondere tritt das Problem auf wenn ich den Rechner in den Standby bringen bzw. wieder aufwecken möchte. Oft ist es dann so das die einzige Reaktion des Rechners eine in kurzen Intervallen blinkende HDD-LED ist. Das kann man das auch so stehen lassen so lange man möchte aufwachen tut der Rechner nicht mehr.

Auch wenn die WWAN Verbindung längere Zeit ungenutzt ist raucht diese einfach weg (Windows zeigt "No Network Access" für den Adapter, neu Verbinden bzw. Verbindung trennen nicht möglich).

Ich tippe ja irgendwie auf das Power Management (wegen Standby bzw. längerem Idle).

Ähnlicher Post in einem anderen Foren (alles Lenovo Laptops mit wohl dem gleichen WWAN-Chip):
http://www.thinkpad-forum.de/thinkpad-hardware/x-serie-inkl-tablet/92959-ericsson-f3507g-bluescreen-beim-ausschalten-workaround-gefunden/

Hat hier jemand die gleichen Erfahrungen (evtl. mit dem gleichen Laptop oder einem Latitude (sind baugleich)) gemacht? Kenne jemandem mit nem Latitude der das Problem unter XP (32 bit) nicht hat.

Das kotzt mich langsam richtig an da in diesem Zustand eine sinnvolle Nutzung kaum möglich ist.

06.09.2010 - 22:13 Uhr

Ich vermute Arithmetika meinte "Direct Sound". Das wird allerdings nicht mehr weiter entwickelt. Die neue Sound API ist XAudio 2

03.09.2010 - 21:27 Uhr

Einfacher ist es in diesem Fall allerdings ein DataGridView zu benutzen.

Vorteile:

  • ImageColumn zum anzeigen von Avataren (ein Icon im DetailView des ListView ist wahrscheinlich einfach zu klein)
  • Mit gebundener DataView automatisch sortierbar

Siehe: Vergleich DatagridView - ListView

Allerdings verstehe ich nicht ganz was du damit meinst:

an einem kleinen Chat für ein Blog

Im WinForms-Forum?

31.08.2010 - 18:22 Uhr

Schau dir mal Application.AddMessageFilter() an. Ist aber schon ein merkwürdiges Verhalten. Schon mal beim Infragistics-Support angefragt?

27.08.2010 - 21:54 Uhr

Keine Ahnung was mit dem Bitmap aus den EventArgs noch gemacht wird aber die können ganz schön schwer im Speicher hängen. Einfach mal Dispose() aufrufen um Resourcen wieder freizugeben.

27.08.2010 - 20:39 Uhr

und Excel nur 65536 Zeilen anzeigt und beim abspeichern somit Zeilen verschwinden lassen würde

Diese Limitierung gilt meines Wissens nur bis Excel 2003. Ab 2007 sollten 1 Mio. Zeilen möglich sein (ob das sinnvoll ist sei mal dahingestellt).

Zur Anzeige: VirtualMode (Auf die schnelle gefundenes Codebeispiel)
Zum Wegspeichern: Mit dem RowState arbeiten und nur geänderte Zeilen wieder wegspeichern.

27.08.2010 - 20:31 Uhr

Es gibt keine speziellen Clientversionen der genannten Betriebssysteme, von daher kann er sie nutzen.

Anzumerken ist allerdings das man um Active Directory nutzen zu können die Professional oder Business Edition braucht.

Für ein kleines Netzwerk gibt es speziell dafür zugeschnitten den Small Business Server. Dieser ist auch relativ einfach zu administrieren wobei sich ein Buch schon empfehlen würde.

27.08.2010 - 19:33 Uhr

Bin jetzt auch nicht so der IIS-Fan aber ernste Probleme hatte ich mit dieser Konstellation noch nicht.
Was kann den schief laufen?