Laden...
Avatar #avatar-2501.jpg
banzai myCSharp.de - Member
Softwareentwicklung Deutschland / NRW Dabei seit 12.12.2006 57 Beiträge
Benutzerbeschreibung

Forenbeiträge von banzai Ingesamt 57 Beiträge

13.01.2010 - 14:25 Uhr

Habe das Problem gelöst - der ProgressBar zeigt bei IsIndeterminate=True einfach den gesamten Indicator an, d.h. man muss sich um die Animation selber kümmern.
Man setzt einen Property-Trigger auf IsIndeterminate und setzt dort einen animierten Brush. Alternativ lässt sich so auch jegliche andere Animation setzen falls der gewünschte Effekt komplexer wird.

12.01.2010 - 14:22 Uhr

Hallo zusammen

Ich versuche gerade ein Template für den WPF-ProgressBar zu schreiben. Folgendes Template funktioniert solange IsIndeterminate auf False steht:


<ControlTemplate x:Key="DefaultProgressBarTemplate" TargetType="{x:Type ProgressBar}">
        <ControlTemplate.Resources>
            <SolidColorBrush x:Key="SolidBorderBrush" Color="#767676" />
            <LinearGradientBrush x:Key="IndicatorBrush" StartPoint="0,0" EndPoint="1,0">
                <LinearGradientBrush.GradientStops>
                    <GradientStop Color="#BCCF64" Offset="0.5" />
                    <GradientStop Color="#E1FF77" Offset="0.0" />
                </LinearGradientBrush.GradientStops>
            </LinearGradientBrush>
        </ControlTemplate.Resources>
        <Grid MinHeight="14">
            <Border Name="PART_Track" CornerRadius="9" Background="Transparent" BorderBrush="{StaticResource SolidBorderBrush}" BorderThickness="1" SnapsToDevicePixels="True" />
            <Border Name="PART_Indicator" CornerRadius="9" Background="{StaticResource IndicatorBrush}" BorderBrush="{StaticResource SolidBorderBrush}" BorderThickness="1" HorizontalAlignment="Left" SnapsToDevicePixels="True" />
        </Grid>
    </ControlTemplate>

    <Style x:Key="{x:Type ProgressBar}" TargetType="{x:Type ProgressBar}">
        <Setter Property="OverridesDefaultStyle" Value="True" />
        <Setter Property="Template" Value="{StaticResource DefaultProgressBarTemplate}" />
    </Style>

und produziert den als Anhang hochgeladenen ProgressBar. Dabei wird die Indicator-Border von Min bis Max aufgezogen.

Sobald IsIndeterminate auf True gesetzt wird steht die Indicator-Border allerdings auf Max und füllt den ProgressBar komplett aus. Aller Versuche meinerseits hier erstmal irgendein anderes Verhalten zu erzeugen sind bisher fehlgeschlagen.
Was muss ich tun, um hier ein dem Standard-WPF-ProgressBar äquivalentes Verhalten zu erreichen, d.h. der Indicator soll hin-und-her wandern ? Eine Google-Suche hierzu hat auch nicht zu viel geführt.

Ciao und vielen Dank

banzai

31.03.2009 - 16:46 Uhr

Ich denke hier gibt es keine "absolute" Lösung. Wie schon von JAck30lena gesagt, kann Deine Bandbreite in realen Umgebungen nicht nur schwanken, sondern sie wird in den allermeisten Fällen schwanken. Dein Bandbreitentest müsste in regelmässigen Abständen wiederholt und die Sendebandbreite entsprechend angepasst werden.

Ich würde mit einem relativen Wert von x % der momentan zur Verfügung stehenden Bandbreite senden. Und um den geneigten Anwender noch weiter zu beglücken würde ich diesen Wert, u.U. zur Laufzeit, konfigurierbar machen.

Aber wie weit Du das Spielchen treiben willst ist natürlich abhängig vom konkreten Einsatzszenario.

30.03.2009 - 12:08 Uhr

Ich habe Deinen Code mal auf einer ca. 6 Jahre alten Pentium 4 Kiste mit 1 GB RAM und DirectX 9 laufen lassen - kein Problem, animiert wie nichts gutes.

Der Grund liegt vermutlich eher in Deinem konkreten System. Wie oben schon gesagt mal DirectX mit DxDiag überprüfen und die allgemeine Auslastung des Systems anschauen.

27.03.2009 - 13:45 Uhr

Nur falls du die Klassen nicht kennen solltest: Es gibt XamlReader und XamlWriter womit du problemlos die ControlTemplates abspeichern und auslesen könntest. Da muss man nur selber was schreiben falls die oben genannten Klassen was spezielles nicht können.

Genau 😉 - ist im Grunde nur ein Dreizeiler wenn man das ganze Verschönern mit XMLSettings weglässt:



StringBuilder strbuild = new StringBuilder();
// settings ist ein vorher passend initialisiertes XMLWriterSettings-Objekt
XmlWriter xmlwrite = XmlWriter.Create(strbuild, settings);
XamlWriter.Save(ctl.Template, xmlwrite);
// und mit dem StringBuilder kann man sich dann einen schönen Tag machen ...


Aber danke für den Tipp - lieber drei zuviel als einen zu wenig !

27.03.2009 - 10:55 Uhr

Nochmals besten Dank für die Antworten und ganz viel Asche auf mein Haupt !!!

Die richtige Lösung lautet



Assembly a = Assembly.Load("PresentationFramework, Version=3.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35");
Type t = a.GetType("System.Windows.Controls.Button");
Control ctl = (Control) Activator.CreateInstance(t);


Schon 100x gemacht und doch bisweilen zu blöd zum zum ...
Allerdings beschäftige ich mich gerade mit WPF-Skinning und Control-Templates in größeren Anwendungen - das scheint ja nicht gerade gut für die geistige Gesundheit zu sein.

Auf Dinge wie Typsicherheit etc. kommt es bei meinem konkreten Problem nicht an, da es um ein kleines internes Entwicklungstool geht, das einen XAML-Dump des Control-Templates beliebiger WPF-Controls erstellt.
Das Dumpen fand ich jetzt nicht so schwierig, aber ... (schäm)

26.03.2009 - 14:09 Uhr

Gott zum Gruße !!!

Ich bin eben über folgendes Problem gestolpert:


Type t = Type.GetType("System.Int32");
// t enthält jetzt den Typ Int32
Type t1 = Type.GetType("System.Windows.Controls.Button");
// t1 ist null

Oder anders gefragt - wie erzeuge ich aus der Stringrepräsentation den Typ eines WPF-Standardcontrols ? Im weiteren muss dann dynamisch eine Instanz dieses Controls erzeugt werden.

Im Wald stehend und schon mal vielen Dank für die Erleuchtung,

banzai

25.04.2008 - 13:29 Uhr

Gott zum Gruße !!!

Ich habe eine Frage zu folgendem Szenario:

Eine Backend-Reporting-Komponente erstellt ihre Reports als XML mit darin enthaltenen Statistik-Grafiken als CDATA-Sektion (Base64-codierte JPGs). Aus diesen XML-Reports müssen per XSLT HTML-Reports generiert werden.

Ich habe nun folgenden Lösungsansatz. HTML-Erzeugung per XSLT, dabei Extraktion und Base64-Dekodierung der JPGs, dann HTML und JPGs auf HD schreiben. Um die Referenzen auf die JPGs in die HTML-Dateien zu bekommen könnte ich nun zum Transformationszeitpunkt die entsprechenden Links nach einer bestimmten Konvention generieren oder das generierte HTML nachträglich manipulieren.

Persönliche tendiere ich dazu zum Transformationszeitpunkt einen Platzhalter zu erzeugen, der dann später durch die konkreten Links ersetzt wird.
Wie würdet ihr das lösen ? Oder evtl. ganz anders ?

Danke schon mal,

banzai

14.12.2007 - 15:23 Uhr

Gott zum Grusse !!!

Falls Dein ActiveX Control wirklich überhaupt keine Möglichkeiten (Events o.ä.) anbietet, um solche Statusänderungen mitzubekommen, lohnt es sich manchmal ein wenig mit dem Win-API "rumzuspielen". Stichworte wären z.B. "EnumWindows" oder "EnumChildWindows" - Statusänderungen lassen sich manchmal am Erscheinen bzw. Verschwinden bestimmter "Fenster" festmachen. Sollte dies der Fall sein bewegst Du Dich allerdings auf undokumentiertem Terrain was Dein Control angeht - mit den entsprechenden Konsequenzen möglicherweise.

Eine 2. Variante, zugegebenermassen etwas "schmutzig", wäre das Einbauen einer ausreichenden "Warteschleife" wenn 2-3 Sekunden tatsächlich zuverlässig ausreichen. Diese Wartezeit kannst Du dann, wenn nötig, mit einem Dialog ala "Ein Video wird noch abgespielt - tatsächlich beenden ?" kaschieren.
Ich weiss, ich weiss, mit dem Vorschlag bin ich jetzt ungeduscht, geduzt und ausgebuht 😁 ...

Ciao

banzai

11.12.2007 - 13:16 Uhr

AviSynth evtl. ?

Ich kenne mich damit nicht wirklich aus, weiss aber, das es zur on-the-fly Bearbeitung im Streaming- / Media-Bereich eingesetzt wird.

06.12.2007 - 09:27 Uhr

Das darf man nicht so eng sehen. Einer solchen Diskussion im Kontext eines Witze-Threads kann ich durchaus eine humorige Seite abgewinnen ...

30.11.2007 - 11:48 Uhr

net hat mit DOS nichts zu tun. Bei unversteiften Fingern und mit ein wenig detektivischer Tastaturarbeit hätten Dir die Eingaben "net" bzw. "net /help" und dann "net use /help" oder wahlweise "net use /h" oder auch "net use /?" in einer Konsole weitergeholfen 😁 ...

19.10.2007 - 08:50 Uhr

Tja, früher so um 1985 - 1990 rum Percussion / Gesang in einer Punkrockband, wir nannten uns damals Stacheldrahtträume und unser greatest hit war "Ein Männlein steht im Walde*. Wurde zumindest bei jeder Zugabe gefordert 8) ...

Die nächsten zehn Jahre mussten sich vermutlich meine Ohren erstmal wieder erholen und seitdem wieder Percussion. Diesmal aber mit afrikanischen Instrumenten, hauptsächlich Trommeln (Djembe). Für div. Auftritte hat es auch schon gereicht, das Hauptproblem ist das Üben - da werde ich von Kind und Kegel immer auf den Dachboden gemobbt.
Das faszinierende an dieser afrikanischen Musik ist für mich die extrem komplexe Rhythmik, das Spiel mit Takt, Geschwindigkeit etc. Das genaue Gegenteil der europäischen (klassischen) Musik mit ihren komplexen Melodien und der sehr einfachen Rhythmik.

ciao

banzai

11.10.2007 - 16:42 Uhr

Schon mal darüber nachgedacht, welches Fenster wann das aktive ist ?

Dreh doch einfach mal die Anweisungen

SendKeys.Send(Text);
SetForegroundWindow(MainHandle);

um.

11.10.2007 - 11:45 Uhr

Original von Elric
Versuch zu ermitteln, ob zu der Zeit der DBServer-Rechner grundsätzlich erreichbar war.

Sowas mache ich "auf die Schnelle" mit einem "Batch-Ping" (falls im betreffenden Netzwerk erlaubt). Einfach folgende DOS-Kommandos als Batch-Datei laufen lassen:

:do
ping localhost >> c:\Test.txt
if not ERRORLEVEL 1 goto do
pause

Falls der Rechner nicht zu erreichen ist, läuft der Batch in die "pause"-Anweisung und bleibt stehen. Andernfalls zum Abbrechen einfach die DOS-Box schliessen. Die Ping-Ausgaben stehen dann in Test.txt. Grosse Schwankungen in der Netzwerklatenz als Hinweis auf Netzwerkprobleme wie z.B. Timeouts erkennt man dann meist schon beim "Überfliegen" der Datei.

10.10.2007 - 10:25 Uhr

Mit der Schiene "Ausmusterung wg. Krankheit" wäre ich aber etwas vorsichtig. Alles was man bei denen an Krankheiten angibt, ob echt, ein wenig "aufgebläht" oder nur vorgetäuscht, steht auf immer und ewig in den Akten. Und darauf haben später auch Leute Zugriff, an die man erstmal nicht denkt. Vor allen Dingen bei späteren Bewerbungen im öffentlichen Dienst, aber auch bei privaten Kranken- und Berufsunfähigkeitsversicherungen etc. haben sich so schon viele Leute ziemlich ins Knie geschossen.
Ich habe da Fälle im Bekanntenkreis wo die entsprechenden Versicherungen deswegen ausserordentlich kündigen durften bzw. Versicherungen horrende Zahlungen verlangten.
Im Grunde haben (fast) alle öffentlichen Stellen sowie jeder, bei dem man eine Erklärung zur Entbindung von der ärztlichen Schweigepflicht unterschreibt, Zugriff auf diese Daten. Und von den BW-Datenbeständen machen gerade Versicherungen dann gerne Gebrauch, da hier alles schön zentralisiert an einer Stelle abzufragen ist.

09.10.2007 - 10:18 Uhr

Welchen Unsinn ?

*Semantischer Unsinn* lässt sich bis zu einem gewissen Grad über XML-Schemata abfangen, für alles andere bist Du zu Fuß verantwortlich.

Ciao

banzai

05.10.2007 - 12:51 Uhr

Deine Stichwortsuche hört sich nach einer einfachen "Volltextsuche" an. Deshalb würde ich auf jeden Fall noch die Stoppwörter entfernen, d.h. die nicht sinntragenden Wörter, die Deinen Stichwortindex nur unnötig aufblähen. Das wären z.B. im Normalfall alle bestimmten / unbestimmten Artikel oder Konjunktionen.

Nur mal als Vorschlag

banzai

28.09.2007 - 14:50 Uhr

Vielen Dank für Deine Einschätzung !
Und an Deinem Artikel wäre ich auch SEHR interessiert !!!

Ich denke, ich werde den Einsatz von PostSharp / LAOS befürworten, da ich Deine Einschätzung teile und keine grösseren Bugs oder Einschränkungen entdecken konnte.

Weitere Kandidaten sind für mich noch der Enhancer des Mono-Projekts sowie das Projekt von MS Research gewesen. Bei dem störte die fehlende Einbindung in die Windows / VS Infrastruktur doch sehr, bei dem anderen war der Ansatz für meine Zwecke zu akademisch.

Wochend´ und Sonnenschein,

banzai

27.09.2007 - 17:39 Uhr

Gott zum Grusse !!!

Ich bin im Moment mit der Evaluation einiger Enhancer / AOP Frameworks beschäftigt. Am besten gefällt mir bisher die Kombination PostSharp / LAOS. Da aber jede Evaluierung lückenhaft sein muss im Vergleich zum praktischen Einsatz, wäre ich sehr an praktischen Erfahrungen mit dieser Kombination interessiert. Habt Ihr schon Projekte o.ä. mit diesem Gespann umgesetzt ? Wenn ja, wie war Euer Eindruck ? Würdet Ihr es weiterempfehlen ?
Konkret würden PostSharp / LAOS für den Anfang bei Aspekten zu den Bereichen Tracing und Feldvalidierung zum Einsatz kommen. Es geht hier um bestehende Applikationen, deren Source möglichst minimalinvasiv erweitert werden soll.

An jeder Erfahrung / Meinung sehr interessiert,

banzai

18.09.2007 - 09:56 Uhr

Original von Rainbird
Was habt Ihr für Erfahrungen mit Vista?

Installiert, ehrfürchtig gestaunt ob der vielen kleinen Fehlerchen an allen Ecken und Enden sowie der Gemächlichkeit auf einem Dual Core System mit 4 GB RAM und dann genauso schnell wieder deinstalliert.

Ich brauche meine Rechner zum Arbeiten und kann und will mich nicht ohne Not mit den technischen Unzulänglichkeiten des OS beschäftigen, deshalb werde ich einen Wechsel von XP zu Vista erstmal nicht in Betracht ziehen.

11.09.2007 - 14:31 Uhr

Original von Programmierhans
Die bekanntesten Emulationen:

Virtual PC 2007 gratis erhältlich bei Microsoft
>

VMWare erhältlich gegen Kohle bei VMWare
>

Nachtrag: Installier mal BeOS oder ZETA dann siehst Du wie schnell ein PC starten könnte 🙂

Nochmal ein kleiner Nachtrag - VMWare in der freien Version "VMWare Server" ist unter dem angegebenen Link zu bekommen. Gegenüber der kostenpflichtigen Workstation Version ist eigentlich nur das Anlegen verketteter Snapshots abgeklemmt. Dafür lassen sich VMs übers Netz anlegen und administrieren. Ausserdem wird im Gegensatz zu dem MS-Produkt USB und SCSI unterstützt.

24.08.2007 - 16:37 Uhr

Ganz allgemein wurde die Existenz intelligenten Lebens im Universum noch nicht nachgewiesen - das verkündet Euch Swami banzai und wo der hingrübelt wächst bekanntlich kein Gras mehr !!!

23.08.2007 - 13:47 Uhr

Gott zum Grusse !!!

DISP_E_EXCEPTION ist eine generische Fehlermeldung des COM-Systems, definiert in winerror.h und hat so ungefähr die Aussagekraft von "Da ist wohl was schiefgegangen ...".
Ich persönlich habe diesen Fehler schon erlebt bei einem COM-Versionskonflikt in Bezug auf scrrun.dll (MS Scripting) und einer fehlgeschlagenen DB-Anmeldung per ODBC (kein Scherz - das Passwort stimmte nicht).
Wenn ich raten müsste, würde ich auf einen Versionskonflikt tippen. Im Laufe der Win-Versionen / SPs / sonstiger Patches hat MS sehr oft am Scripting Host rumgeschraubt. Falls das der Grund ist, sollte Erzeugung per Late Binding helfen.

Frickelistas venceremos !!!

23.08.2007 - 10:25 Uhr

Nur so ein Gedanke:

Hängt das evtl. mit den allgemeinen Formatregeln für Quellcode zusammen ? Ich habe gerade kein VS zur Hand um nachzuschauen. Ich meine damit die Quellcodeformatierung im Sinne von geschweifte Klammern auf der gleichen oder aber einer neuen Zeile etc.
Da gab es auch eine Regel, ob geklammerte Ausdrücke durch ein Blank von den Klammern getrennt sein sollen. Vielleicht wendet VS diese Regeln auch auf CSS an - einen Versuch ist es u.U. Wert.

15.06.2007 - 14:03 Uhr

Z.B. mit


Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

oder


Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

Je nachdem was Du brauchst.

09.05.2007 - 13:06 Uhr

Ok - Näheres findest Du hier: BAK Berechnung.

Ein allgemein anerkanntes Verfahren existiert nicht wirklich, da scheiden sich die Geister der geneigten Experten.
Zumindest ein "offiziell" verwendetes Verfahren funktioniert folgendermaßen:

  1. Berechnung des Gesamtkörperwassers (GKW), für Männer nach Watson, für Frauen nach Watson modifiziert von Eicker
  2. Einsetzen des GKW in die Widmark-Formel und Berechnung der max. Blutalkoholkonzentration (BAK)
  3. Abzug eines Resorptionsdefizits und Zeitfaktors ergibt tatsächliche BAK

Das wäre so in etwa die Vorgehensweise für ein Partyprogramm, das kannst Du natürlich noch weiter treiben wenn gewollt - s. Link.

--

Original von LukeGee
...

//edit: Habe gelesen, dass der Abbau erst nach zwei Stunden beginnt. Von daher ist das dann doch nicht soo extrem wichtig, finde ich. Aber mal schauen.

...

Das stimmt so nicht. Die zwei Stunden sind ein juristisches Konstrukt, es wird angenommen, das zwei Stunden nach "Trinkende" die Resorption abgeschlossen ist, d.h. die Alkoholaufnahme beendet ist. Ab diesem Zeitpunkt kann eine rechtlich relevante Berechnung der BAK für einen bestimmten Zeitpunkt erfolgen.
Der physiologische Abbau beginnt natürlich sozusagen mit dem 1. Tröpfchen, das aufgenommen wurde.

--

Original von LukeGee
Habe die Ergebnisse von meinem Rechner mit ein paar Onlien-Rechnern verglichen und die Ergebnisse sind eigentlich recht ähnlich.

Hmmm, Dein Programm kommt für mich bei 1 angenommenem Liter mit 10 Vol% auf 1,207 Promille. Mit den identischen Ausgangswerten kommt ein zufällig ausgewählter Onlinerechner (mit Zeitfaktor) auf nicht mehr als 0,786 Promille - egal wie ich den Zeitfakor variiere. Von einer "gewissen" Abweichung würde ich da schon sprechen ...

EDIT(by Talla): Es gibt ne schöne Beitrag Editier Funktion um was an seine Beiträge anzuhängen 😉
Bitte nicht 3 Posts hintereinander

@Talla
Wären wir alle perfekt bräuchten wir keine Moderatoren - und das fände ich ehrlich sehr schade 😉. Ich gelobe Besserung !!!

09.05.2007 - 12:38 Uhr

Netter Gimmick !!!

Aber wie Ernst zu nehmen ist der errechnete Wert ? Damit meine ich nach welcher Formel errechnet - Widmark oder Watson oder der Kombination aus beiden ? Wird ein Resorptionsdefizit berücksichtigt ?
Auf jeden Fall fehlt noch ein Zeitfaktor - selbst ich trinke meinen Rotwein nicht immer auf ex ...

Das alles ist jetzt nicht als gepflegte Klugscheisserei gemeint, sondern ggf. als Verbesserungsvorschlag. Ansonsten weiss man nach der Berechnung nur wieviel Promille man garantiert nicht hat 😉 ...

08.05.2007 - 15:01 Uhr

Da schließe ich mich Borg an.
Ich würde aber keine Message Boxen verwenden, sondern einen eigenen Fehlerdialog. In diesem lassen sich die "Fehler" deutlich besser darstellen - z.B. im oberen Bereich ein Label mit allgemeinen Fehlerinformationen und evtl. Behebungsmöglichkeiten. Darunter ein "Details ..."-Button, der ein Textfeld mit dem Stacktrace ausklappt (Resize des Dialogs). Vielleicht noch ein "In die Zwischenablage übernehmen"-Button oder ein "Als Mail versenden"-Button oder oder oder.
Ich würde auf jeden Fall einen normalen Anwender nicht mit einem Stacktrace oder ähnlichen technischen Details belästigen, sowas interessiert ihn nicht und verstehen tut er es auch nicht. Solche Informationen sollten m.E. nur auf Anforderung dargestellt werden.

03.05.2007 - 17:25 Uhr

Oder einen Paging-Mechanismus einbauen. Damit kannst Du dann Deine PictureBoxen / Usercontrols auf ein sinnvolles Mass reduzieren.
Über Sinn oder Unsinn will ich mich hier nicht auslassen. Ist halt die 2. Möglichkeit und was Sinn macht entscheidet sowieso der Anwender 😁 ...

03.05.2007 - 09:50 Uhr

Grundsätzlich zur Laufzeit konfigurierbares Logging mit zumindest den Stufen Unerwartete Fehler, Warnung, Info. Wobei er dann in der Stufe Info natürlich echte ASCII-Wüsten produzieren sollte.

Dazu kommen automatische Benachrichtigungen per Mail incl. aller relevanter Informationen wie z.B. Stacktraces.

Und, wie schon herbivore schrieb, ganz wichtig die Auge-Optik-Methodik im direkten Kontakt mit Kunden. Viele "unerklärliche Fehler" lassen sich so mit minimalem Aufwand beheben. Mir fällt da spontan als Beispiel der Win-Service ein, der übers LAN auf ein Verzeichnis zugreifen musste. Der Admin hatte dazu ein Share eingerichtet und den Service entsprechend konfiguriert. Leiderdessen hatte der Admin nicht berücksichtigt, das der Service unter dem Network-Service-Konto lief und es ein klitzkleines Berechtigungsproblem gab ...

Mit Logging per AOP wäre ich persönlich auch vorsichtig, warum sollte ausgerechnet der entsprechende Weaver die weltweit einzige fehlerfreie Software sein ? Dazu kommen die schon angesprochenen Seiteneffekte, die per Test ausgeschlossen werden müssten.

Das alles hilft Dir jetzt vermutlich auch nicht viel weiter, aber mir war halt gerade nach Meinungsäußerung zumute 😉.

27.04.2007 - 09:40 Uhr

Hallo Peter

Danke für die prompte Antwort !!!
Du hast Recht, kaum kann er lesen funktioniert´s auch schon 👍 !
Ich hatte die Doku da wohl ein wenig missverstanden ...

Ciao

banzai

26.04.2007 - 13:19 Uhr

Gott zum Gruße !!!

Folgendes Problem stellt sich für mich - trotz Suche - momentan als recht unlösbar dar:

Ein ASP GridView enthält eine Spalte vom Typ ImageField, dessen DataImageURLField an eine Tabellenspalte (SQL Server) vom Typ Varchar gebunden ist. Diese Tabellenspalte enthält die absoluten Pfade zu den anzuzeigenden Bildern, die in einem Unterordner von App_Data liegen. Beim Aufruf der Seite wird jedoch in der entsprechenden GridView-Spalte rein gar nichts angezeigt, kein Fehlertext nichts. Alle anderen Werte aus der DB werden korrekt angezeigt, auch testhalber die absoluten Pfade in einer Textspalte.
Und ja, die Graphiken sind vorhanden und können mit den angezeigten Pfaden im Explorer geöffnet werden.
Ich habe in der DB testhalber die Pfade in file:// - URLs umgewandelt, die von Firefox und IE auch angezeigt werden, nur eben nicht von meinem GridView.

Was übersehe ich ???

Vermutlich wieder die Sache mit dem Wald und den Bäumen 🙂 ...

Vielen Dank und ciao

banzai

26.04.2007 - 11:37 Uhr

Ich würde das ganze so formulieren, das ist wohl mehr im Sinne des Erfinders:

private bool IsSimpleNode(XmlNode theXmlNode)
{
   if(theXmlNode.HasChildNodes)
   {
      foreach(XmlNode aNode in theXmlNode.ChildNodes)
     {
        if(aNode.NodeType == System.Xml.XmlNodeType.Text)
          return true;
     }
        return false;
   }
   return true;
}

Vielleicht solltest Du mal testen, was die Methode bei folgendem XML zurückliefert 😉 :

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Data>
  <Root>
    <element1>text1<!-- Ein ganz miesepofeliger Kommentar --></element1>
    <element2>text2</element2>
    <element3>
    <element31>text31</element31>
    <element32>text32</element32>
    <element33>text33</element33>
    </element3>
    <element4>text4</element4>
    <element5>
    <element51>text51</element51>
    <element52>text52</element52>
    </element5>
    <element6>text6</element6>
    <element7>
    <element71>text71</element71>
    </element7>
  </Root>
</Data>

Ich weiß ja nicht was lt. DTD oder Schema in Deinem XML so alles vorkommen könnte - oder anders gesagt, von den jeweiligen DTDs bzw. Schemata sind die notwendigen Überprüfungen abhängig.

I.a. macht es aber immer Sinn auf Kommentare im XML zu testen, hier liegt meiner Erfahrung nach eine der beliebtesten Fehlerquellen während der XML-Verarbeitung. Recht häufig sind z.B. Testdaten ohne Kommentare, aber operative Daten mit hier und da eingestreuten Kommentaren.

26.04.2007 - 11:06 Uhr

Wenn Dein XML wirklich so simpel ist, könntest Du auch überlegen auf Attribute umzusteigen. Soll heißen aus <element1>text1</element1> wird <element1 attr="text1" />. Bis auf evtl. Kommentare im XML interessiert Dich der Node-Typ dann nicht mehr.
Das soll jetzt keine Empfehlung meinerseits sein, aus einem so generischen Beispiel-XML lässt sich die nicht ableiten. Aber eine Überlegung ist es allemal wert.

26.04.2007 - 10:42 Uhr

Das ist schon so korrekt, Du befindest Dich in einem DOM und der gesamte Inhalt Deines XML muss ja durch Knoten / Elemente in diesem Baum repräsentiert werden.
Lediglich Elemente der Form <MyNode /> haben also keine Unterknoten - normalerweise wird der Typ eines Knotens, z.B. eben Text oder auch Comment, über das NodeType-Property ermittelt.

20.04.2007 - 15:29 Uhr

Original von talla
... Mal nen bissle weitergesponnen: Wenn es jetzt die nächsten Jahrzehnte so weitergeht und immer mehr englische und anderssprachige Elemente in die deutsche Sprache kommen, dann haben wir irgendwann die Situation das ein deutsch sprechender englisch bissle verstehen kann, obwohl er vielleicht nie explizit englisch gelernt hat. Das seh ich als riesen Vorteil gegenüber jemanden der auf Teufel komm raus eigensprachliche Konstrukte verwendet. ...

Wobei auch das nicht unbedingt etwas Neues wäre. Nordwestdeutsche Dialekte (Platt) sind z.T. dem Englischen so ähnlich, das ein Sprecher in der Lage ist, gesprochenes Englisch zu verstehen.

20.04.2007 - 10:15 Uhr

Original von mitti
Tolle Diskussion!!!

Naja - Smalltalk eben ...
Aber wesentlich interessanter als Nine Inch Nails - das ist jetzt natürlich nur meine höchstpersönliche Meinung 😉.

27.03.2007 - 16:26 Uhr

Original von steffen_dec
Hallo,

die Prioritäten sind doch da um diese zu nutzen, warum also nicht??

Tja, weil´s halt nicht deterministisch ist - s.o.
In einer komplexeren Applikation (= viele Threads) können hoch-priore Threads auch zu interessanten Seiteneffekten, wie z.B. "Blockaden", führen. Und die dann aufzuklären - viel Spaß !

19.03.2007 - 14:36 Uhr

Ich hatte mal ein ähnliches Problem - ich brauchte ein globales Kontextmenue mit variablen Items, die auch z.T. im Hauptmenue auftauchen.

Die einzige Lösung, die ich gefunden habe, war folgende:

  1. Jedes Control bekommt ein Contextmenue mit einem Dummy-Item (wird nie angezeigt).
  2. MenuItems werden dynamisch zur Laufzeit erzeugt und in einem Dictionary über entsprechende Keys verwaltet.
  3. Im OnOpening-Event wird Items.Clear() auf gerufen und dann die benötigten Items aus dem Dictionary hinzugefügt.
  4. Scheinbar können MenuItems nur einem übergeordneten Item zugeordnet sein - wenn ich sie einem 2. Item zugeordnet habe, "verschwanden" sie aus dem 1. Außerdem scheint ein Kontextmenu immer min. ein untergeordnetes Item haben zu müssen, ansonsten wird es nicht angezeigt, auch wenn ich später dynamisch Items hinzugefügt habe. Alle Experimente mit Invalidate etc. haben da nicht weitergeholfen. Deshalb das Dummy-Item.

Funktioniert jetzt wunderbar, aber eine elegante Lösung wär´ schon schön ...

19.03.2007 - 12:58 Uhr

Original von Quallo

Original von banzai
Hardware für solcherlei Produktivsysteme liegt jenseits unseres Hardwarehorizonts.

Da muss ich dich wohl leider enttäuschen! Wir haben Produktivsysteme auf ESX-Hosts laufen... Ist lustig, so ein virtualisierter X86-Server hat dann 20 Ghz und 16 Gb Ram, die es zu verteilen gilt. Mal von den 10 Gigabit Netzwerkports(physisch, nicht virtualisiert(!!!)) abgsehen 😉
Sind schon tolle Kisten!

Ist ja auch ein Paravirtualisierer 😉 ...

16.03.2007 - 16:52 Uhr

Original von Quallo
2GB Ram sind ja definitiv eingeplant!

I/O Leistung ist bei Notebook-Platten sicherlich nie so hoch, aber der core 2 duo chipsatz und der ddr2 speicher mit 667 mhz sollten da schon ausreichend sein, um mal ein linux laufen zu lassen und da ein wenig zu programmieren. Ist ja größtenteils für den Test und kleinere Arbeiten, nicht für ein Serversystem im Produktivbetrieb 😉

Ich rede auch nur von SW-Entwicklung mit Hostsystem und 1-2 VMs ...
Ich entwickele SW u.a. auf solchen Plattformen und falls Du viel mit VMs machen möchtest, heisst es bei der HW aufzupassen. Mit VMs kriegst Du problemlos jeden "normalen" Rechner so in die Knie, das ein jeder mit dem "Adler-Such-System" den Tastaturpuffer vollgetippt kriegt.
Für das, was Du beschreibst, sollte das Notebook reichen, aber viel mehr wirst Du nicht erwarten können.

Hardware für solcherlei Produktivsysteme liegt jenseits unseres Hardwarehorizonts.

So, und nun halte ich einfach mal meine besserwisserischen Fingerchen still und wünsche allerseits ein wunderschönes Wochenende !!!

16.03.2007 - 16:33 Uhr

Original von FZelle
Ich habe aktuell 2 NB hier vor mir stehen, beides IBM Thinkpad R60.

Eines mit Shared eines mit dedizierter GK.
Der unterschied ist ziemlich gravierend.

Wenn sich die CPU und die GK den Speicher teilen müssen,
geht das ganz gehörig auf kosten der performance.

Und die VM-Ware benötigt eine gute Speicherbandbreite.

Aber bitteschön, wenn Du es nicht glauben willst, probier es aus, aber nicht nachher weinen 😉

Yep - wenn Du virtualisieren willst sind 4 Dinge wichtig. RAM, RAM, RAM und I/O-Leistung allgemein. Dazu gehört nicht nur der Speicherbus, sondern z.B. auch die HD. Ein paar GHz (was die CPU angeht) mehr oder weniger merkst Du im Vergleich dazu überhaupt nicht. Hier wirken sich nur mehrere CPUs bzw. Kerne aus.
Wenn Du solche Sachen wie virtuelle Netzwerke zwischen VM(s) und Host basteln und darin dann ernsthaft arbeiten willst, läuft unter 2 GB RAM eigentlich nichts außer vielleicht der Nase.

16.03.2007 - 13:38 Uhr

Ich habe schon des öfteren in der Designer.cs direkt editiert - Controls hinzugefügt, gelöscht etc. Bisher hatte ich damit keinerlei Probleme, Du musst Dich bloß exakt an die vom Designer verwendete "Syntax" und "Art und Weise" halten, wie der Designer Code erzeugt. Meist kannst Du Dir das schon direkt in der Designer.cs abschauen. Wenn nicht - einfach den Designer das entsprechende generieren lassen und schon weißt Du wie es aussehen muss. Das generierte "Beispiel" dann natürlich wieder löschen oder gleich in einem kleinen Testprojekt machen.
Auch Vererbung und Konsorten waren bisher kein Problem dabei.

Ich weiss, ich weiss - ganz großes PFUI, aber manchmal geht es eben nicht anders ...

16.03.2007 - 11:07 Uhr

Wenn Du nichts sehen willst, dann nimm BrightView ...

Mal im Ernst, die Dinger sehen gut / cool aus, sind aber nur bei nicht zu grosser Helligkeit und möglichst diffusem Lichteinfall zu gebrauchen.
Ich muss manchmal ein Pool-Notebook mit einem solchen Display verwenden (Präsentationen etc.) - ernsthaftes Arbeiten damit würde ich als besondere Form des Masochismus empfinden, so von wegen "Spieglein, Spieglein an der Wand ...".

09.03.2007 - 16:50 Uhr

Na ja - bin auch ein Studierter, aber von einer anderen Fakultät. Vom Abschluss her Molekularbiologie und Humangenetik (Diplom) und dann später Wirtschaftsinformatik (FH).
Ich habe in meinen 10 Jahren SW-Entwicklung schon genug studierte Informatiker erleiden müssen, die ihr Diplom offensichtlich günstig bei irgendeiner Tombola erworben haben, als das ich heutzutage noch an diesen Uni-Mythos glauben würde.
Nicht das ich jetzt von den anwesenden Informatikern gesteinigt werde, die Mehrheit war / ist schon richtig gut.
Ein Studium hilft sicherlich beim Erlernen gewisser grundlegender Fähigkeiten, wie z.B. analytisches Denken etc., aber das sehe ich eher unabhängig vom konkreten Studiengang. Fehlende theoretische Kenntnisse lernt man dann später sozusagen zwangsweise in den Bereichen, in denen man sie braucht.
Ansonsten sehe ich es wie bei jedem anderen, x-beliebigen Beruf - wenn man richtig gut werden / sein will, muss der Beruf ein gutes Stück weit Berufung sein.

07.03.2007 - 10:35 Uhr

Ohne Vorerfahrungen würde ich mit einer Konsolenanwendung anfangen, ansonsten Win Forms.
Eine nette Anwendung zum Lernen wäre auch ein Bildbetrachter mit Thumbnail-Vorschau. Den kann man dann auch nach Belieben um zusätzliche Features erweitern.

Ich persönlich verdiene meine Brötchen seit 10 Jahren mit SW-Entwicklung - Java, VB 6, C/C++ - und habe daher die nötigen Vorerfahrungen. Ausserdem ist da eher die Devise Learning by Doing, Lernen im klassischen Sinn ist, sagen wir mal, nicht so gefragt ...

C# verwende ich seit ca. 3 Monaten, als Sprache fand ich es persönlich unspektakulär, die Probleme lagen/liegen im Framework. Aber da gibt es ja wirklich sehr gute Foren wie dieses hier !!!

01.03.2007 - 15:18 Uhr

Kleiner Nachtrag noch für die, die es interessiert - ich war auf der Suche nach folgendem:
Komponente für Dateisuche

Kann ich nur weiterempfehlen - sehr gute Komponente !!! Sie deckt alle meine Anforderungen ab.

@DarkRoot
Das war doch nur ein Beispiel - wildeste, zur Laufzeit durch Anwendereingaben parametrisierte RAs ist mir dann doch ein wenig zu fehleranfällig 😉 ...

28.02.2007 - 11:29 Uhr

Fast getroffen, aber nicht ganz. Das Problem sind die Suchmuster - in meinem Fall z.B. alle Dateien vom Typ "jpg" und "txt" und "tif", die in ihrem Dateinamen den Bestandteil "xyz" enthalten.
Ich weiss, keine, sagen wir mal, anspuchsvolle Aufgabe das selber zu basteln, aber dafür wurde hier mal eine Lösung vorgestellt. Und warum das Rad ein 2. Mal erfinden ?

28.02.2007 - 10:56 Uhr

Einen wunderschönen verregneten Mittwoch !!!

Ich habe gerade das Problem, innerhalb eines Verzeichnisbaums alle Dateien finden zu müssen, die 1-n Suchmustern entsprechen. Mit Directory.GetFiles geht das ja nicht ohne weiteres, aber ich kann mich erinnern, das hier schon einmal eine entsprechende "Klasse" vorgestellt wurde.
Und genau diese "Klasse" (oder vielleicht war es auch ein Projekt) finde ich absolut nicht wieder. Jaja, ich weiss, der eine entscheidende Suchbegriff usw. - aber der ist leider gerade aushäusig ...

Wenn mir also einer der anwesenden Mnemoniker auf die Sprünge helfen könnte, wäre ich ausser mir vor Freude ! Ganz ehrlich !!!