Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von 1nf1n1ty
Thema: Wie kann ich aus .NET Core via COM-Call eine .NET Framework Assembly aufrufen, die Reports erzeugt?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Die ReportEngine ist die (gute) alte Crystal Reports Engine.

Ich habe in der Tat deinen Vorschlag (eigene Applikation) umgesetzt. .NET Core bietet zwar den Ansatz auf COM zuzugreifen, aber es hatte bei meinen Tests (und ich habe wirklich noch viel versucht) nicht funktioniert. Das COM nun aber absolut tot sein soll war mir so nicht bewusst, da ja erst die Unterstützung dafür in .NET Core Einzug erhalten hatte. Ich habe in der Vergangenheit schon einiges mit COM gemacht und das hatte bisher eigentlich immer funktioniert.

Wie dem auch sei: den Aufruf des neuen Tools habe ich nun soweit gekapselt, dass es eine Klasse zur Unterstützung der Ansteuerung des Tools gibt. Sie ruft das Tool im Hintergrund mit entsprechenden Parametern auf. Das Tool muss dann zwar mit ausgeliefert werden, ist dann aber so. Es funktioniert so jedenfalls super und es ist ja nicht als langfristige Lösung geplant. Für die Übergangsphase reicht das so erstmal.

Vielen Dank für eure Impulse.

Thema: Wie kann ich aus .NET Core via COM-Call eine .NET Framework Assembly aufrufen, die Reports erzeugt?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo T-Virus,

ja, mit dem COM-Ansatz erkauft man sich die Abhängigkeit zum .NET Framework, das ist richtig. Es existiert jedoch bereits eine .NET Core Anwendung, die als Rahmen fungiert. Es ging nun lediglich darum damit auch Reports zu erzeugen. Da es schon einige sind erschien der Ansatz das über COM zu wrappen als einfacherere/schnellere Lösung um zumindest kurzfristig zu starten ohne an den Grundlagen der Reports zuviel rumzubasteln (und ggf. etwas kaputt zu machen).

Mittelfristig wäre der Weg eher den alten Kram abzulösen und auf neue Füße zu stellen, das wiederum ist aber dann ein größeres Projekt.

Viele Grüße

Thema: Wie kann ich aus .NET Core via COM-Call eine .NET Framework Assembly aufrufen, die Reports erzeugt?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Moin zusammen,

ich hoffe der Titel und das Forum passen, sonst bitte verschieben. Ich habe eine .NET Core 3 Anwendung, die von einer .NET Framework 4.5 Anwendung portiert wird. Ursprünglich wurde da eine Reporting-Engine verwendet, die es unter .NET Core nun nicht mehr gibt. Es handelt sich aber um sehr viele Reports, die nach Möglichkeit nicht alle neu erstellt werden sollen.

Mein Erster Ansatz war mit dem Windows Compatibility Pack zu arbeiten. Den musste ich leider canceln, weil die Reportkomponente Verweise auf System.Windows.Forms und System.Web enthält. Diese kann ich in einem .NET Core-Projekt leider nicht hinzufügen.

Meine Idee war nun den Zugriff über COM möglich zu machen. D.h. .NET Core macht einen COM-Call auf eine .NET Framework Assembly, welche wiederum den Report erzeugt und ein PDF in ein Verzeichnis legt und ein Ergebnis zurückmeldet. Mein Problem befindet sich beim Aufrufen des .NET Frameworks.

Ich habe die Assembly sichtbar gemacht (ComVisible(true)), alles mit GUIDs und ProgID versehen wie man das eben macht. Anschließend habe ich die Assembly referenziert. Der Aufruf der Methode klappt auch, allerdings bekomme ich dann eine FileNotFoundException. Verwiesen wird in dieser auf System.Configuration.ConfigurationManager aus dem .NET Framework.

Und da hänge ich jetzt fest. Ich brauche nun eine Idee warum die Assemblies nicht geladen werden. Muss ich mich in dem Falle selbst darum kümmern? Wenn ja: Wie stelle ich das an? Ich muss ja an jede Abhängigkeit denken.

Vielen Dank für die Hilfe

Thema: [gelöst] Zustand/Arbeitsschritt bzw. Status von Windowsdienst abfragen -> OWIN SelfHosted REST API
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

ich habe bei meiner Recherche nicht das gefunden, was ich gesucht habe. OWIN war bisher bei dem was ich programmiere kein Thema und ich hatte damit immer etwas anderes in Verbindung gebracht. Ich wollte außerdem lieber jemanden fragen, der sich mehr mit sowas auskennt. Einfach drauf los irgendwas zu programmieren, was es vielleicht schon gibt oder am Ende in einer Sackgasse zu landen finde ich nicht so klug.

@Khalid: Danke für das Stichwort OWIN. Das sieht super aus.

Thema: [gelöst] Zustand/Arbeitsschritt bzw. Status von Windowsdienst abfragen -> OWIN SelfHosted REST API
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

danke schonmal für die Antworten. Das der Dienst am besten weiss was er tut ist mir schon klar, ich habe aber nicht genau ausgeführt was ich eigentlich möchte. Die Informationen Start, Pause und Stopped geben mir nicht die Informationen die ich wissen will. Was ich wissen will ist:

- Was tut er derzeit
- letzten 10 Aktionen inkl. Timestamp
- aufgetretene Fehler
- etc.

Über ein Objekt kann ich ja jederzeit Informationen darüber speichern, was er gerade tut bzw. die letzten Aktionen sichern. Mir ging es primär darum wie ich diese dann vom Dienst abrufen kann. Das ganze soll so einfach/billig/wenig Aufwand wie möglich erzeugen. Das der Windowsdienst z.B. mit Hilfe einer REST-Schnittstelle abgerufen werden kann klingt recht interessant und einfach. Ich würde gerne mehr darüber wissen. Könntest du vielleicht ein kleines Beispiel dazu posten? Gibt es dabei bestimmte Dinge zu beachten oder ggf. Einschränkungen?

Abgeholt werden diese Informationen von einem externen Monitoring-System, das diese Informationen zyklisch abfragt und auswertet. Über REST sollte das mit dem Monitoring funktionieren.



Vielen Dank und viele Grüße

Thema: [gelöst] Zustand/Arbeitsschritt bzw. Status von Windowsdienst abfragen -> OWIN SelfHosted REST API
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

ich habe einen Windows-Dienst geschrieben, der verschiedene Operationen durchführt. Dieser Dienst loggt dabei die ganze Zeit mit was er tut und kann dies bei Bedarf in eine Logdatei schreiben. Diesen Dienst würde ich gerne nun an ein Monitoring anschließen und wollte dafür am Dienst etwas bereitstellen, was mir sagt ob:

1. Der Dienst läuft (Das kann man über den Servicestatus ja abfragen)
2. Was er gerade tut.

Letzterer Punkt ist der, von dem ich nicht weiss wie man das realisieren kann. Ist es möglich den Status des Dienstes auf irgendeinerweise abzufragen?

Ich bin für jede Hilfe dankbar.

Viele Grüße

Thema: Import großere Datenmengen + Fehlerbehandlung
Am im Forum: Datentechnologien

Hallo zusammen,

danke schonmal für die Antworten. Es soll schon als C# Programm sein, da ich die Daten ggf. noch anpassen muss (in andere Formate bringen, etc.). Es handelt sich auch um mehrere Dateien, die in bestimmer Reihenfolge importiert werden müssen wegen ggf. vorhandener Referenzen.

Da es hier um nächtlich ein paar Millionen Datensätze geht wäre zu lange sowas wie 12 Stunden. Mit 1-2 Stunden kann ich leben. Wichtig ist mir, dass ich zu jedem Datensatz, der nicht imporitert wurde, eine detailierte Fehlermeldung bekomme. Diese Informationen schreibe ich zusammen mit der Zeile in eine neue Datei. Was auch immer das Problem ist, Contraint verletzt, Daten abgeschnitten, etc.: Ich möchte genau wissen was das Problem war.

Das BulkCopy schaue ich mir mal näher an, das scheint vielversprechend zu sein. Weitere Vorschläge nehme ich auch gerne an.

Vielen Dank schonmal und viele Grüße

Thema: Import großere Datenmengen + Fehlerbehandlung
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQL Server 2008

Hallo zusammen,

ich möchte in mehreren Datenbanktabellen große Datenmengen importieren. Die Daten stehen in CSV-Dateien, die eingelesen werden. Je nachdem ob ein Datensatz vorhanden ist oder nicht möchte ich ein Insert oder Update machen. In einigen Tabellen möchte ich auch nur ein Insert machen und im Fehlerfall dies ggf. in eine Fehlerdatei schreiben mit der genauen Meldung (z.B. Insert wegen Contraint CNST_XY fehlgeschlagen).

Das Ganze wird ein Importlauf, der jede Nacht einmal laufen muss. Wir reden hier von mehreren Millionen Datensätzen. Benutzt werden soll klassisch der SQLClient, also SqlAdapter oder son Kram. Das habe ich bisher nur für wenige Datensätze verwendet, nicht aber für solch riesige Mengen.

Was ist die beste/schnellste Methode Datensätze einzufügen und trotzdem gescheite Fehlermeldungen zu bekommen ohne das das Programm zu lange läuft?

Bin jeden Vorschlag dankbar.

Viele Grüße

Thema: [gelöst] ViewModel + DataTemplate + Animation: Wie an aktuelle Instanz der View kommen?
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

in der Anwendung instanziiere ich eine neue View, indem ich meinem ContentControl als Content ein neues ViewModel zuweise. Die Animation selber sollte garnicht so aufwendig sein, wollte einen Grow oder Slide-Effekt haben. Definiert hatte ich Sie in der View. Folgender Link hat mir weitergeholfen, vielleicht hilft er dem nächsten ja ebenfalls:
http://www.codeproject.com/Articles/136786/Creating-an-Animated-ContentControl

Thema: [gelöst] ViewModel + DataTemplate + Animation: Wie an aktuelle Instanz der View kommen?
Am im Forum: GUI: WPF und XAML

Guten Abend,

ich habe folgedes Szenario und Problem:

Ich habe eine Anwendung, in dessen Fenster sich ein ContentControl befindet. Der Content wird über ein Binding auf ein ViewModel gesetzt. Das funktioniert über die sicher allseitsbekannte Methode mit den DataTemplates, die in den App.Resources gesetzt werden.

Nun ist es so, dass ich dem ContentContol gerne Animationen mitgeben möchte, sprich wenn der Benutzer das ViewModel ändert, dann möchte ich die Änderung visuell animieren. Dazu habe ich bereits in einer abgeleiteten Klasse Animationen definiert, da ich den Übergang an einer zentralen Stelle haben wollte. Leider habe ich nun festgestellt, dass ich über die Content-Eigenschaft des ContentControls garkeine Instanz der View habe, sondern durch das Binding eine Instanz des ViewModels.

Intern muss es dort einen Mechanismus geben, der es schafft durch das Binding im zugewiesenen DataTemplate die passende View zu finden bzw. eine Instanz dafür zu initalisieren.

Genau diese Instanz möchte ich jetzt anhand des ViewModels auf der Content-Eigenschaft haben.

Wie komme ich an diese ran?

Vielen Dank für die Hilfe.

Thema: [gelöst] Crystal Reports: Datensatzzähler nach Gruppenwechsel zurücksetzen
Am im Forum: Datentechnologien

Ok ich habe das Problem nun doch gefunden. Meine Lösung:

Ich habe für die 2. Gruppe einen Unterbericht erstellt und diesem die gleiche Datenquelle gegeben. Probleme hatte ich dabei noch weil Crystal Reports die Datensätze nicht richtig zusammengefasst hat. Crystal Reports hat anscheinend ein Problem damit Daten zusammenzufassen, wenn diese nicht sortiert sind. Nachdem ich entsprechende Gruppen hinzugefügt, die Unterberichtsverknüpfung nochmal geprüft habe und, ganz wichtig, eine Sortierung angegeben habe, ließen sich die Daten auch so wie ich es erwartet habe zusammenfassen. Hierfür musste ich dann lediglich noch die "Laufenden Summen"-Felder benutzen.

Ich danke allen für die Hilfe.

Viele Grüße

Thema: [gelöst] Crystal Reports: Datensatzzähler nach Gruppenwechsel zurücksetzen
Am im Forum: Datentechnologien

Hallo Jamikus,

nach Gruppe 2 würde dann noch eine Zusammenfassung über alles kommen. Danach wäre der Bericht fertig.

Viele Grüße

Thema: [gelöst] Crystal Reports: Datensatzzähler nach Gruppenwechsel zurücksetzen
Am im Forum: Datentechnologien

Hallo t2t,

vielen Dank für deine Antwort. Bezwecken damit will ich das ich eine DataSource im Bericht nehmen kann und die aber mehrfach durchlaufe um Ergebnisse darzustellen. Der obere Teil davon ist quasi eine detailierte Darstellung. Der untere Teil wird aus den selben Daten erzeugt, mit dem Unterschied das diese nicht so detailiert sind, sondern eine andere Gruppierung aufweisen und dadurch auch Summen bilden sollen. In der unteren Tabelle ist in Gruppe 2 von ehemals Kategorie A und B (aus der oberen Tabelle) zusammengefasst und als Summe über die Gruppe aufgeführt.

Ich glaube ohne Unterbericht lässt sich das auch nicht lösen, oder? Ich habe bisher leider zuwenig mit Crystal Reports gemacht und muss mich darin noch etwas einarbeiten.

Thema: [gelöst] Crystal Reports: Datensatzzähler nach Gruppenwechsel zurücksetzen
Am im Forum: Datentechnologien

Crystal Report mit SQL Server als SQL-DataSource

Hallo zusammen,

ich verwende Crystal Reports um einen Bericht zu erstellen. Hierbei habe ich das Problem, dass ich erst eine Gruppierung nach einer Kategorie und dann nach einer Gruppe habe, welcher quasi die Summe der ersten Gruppe abbildet, nur anders gruppiert. Ich versuch es mal zu verdeutlichen:


                                                                   Element
Gruppe 1

Kategorie      Gruppe                 Betrag 1                   Betrag 2
---------------------------------------------------------------------------------------------------
     A            1                      50                        60
                  2                      25                        30 
------------------------------------------------------------------------------------
    SUMME                                75                        90


     B            2                      15                        20
                  3                       5                        55
------------------------------------------------------------------------------------
    SUMME                                20                        75


Gruppe 2

               Gruppe                 Betrag 1                   Betrag 2
----------------------------------------------------------------------------------------------------
                  1                       50                        60
                  2                       40                        50
                  3                        5                        55
----------------------------------------------------------------------------------------------------
    SUMME                                 95                       165

So in etwa soll das Ganze aussehen. Leider habe ich nun das Problem das ich im Gruppenfuß direkt bei der letzten Gruppe bin. Ich meine mich zu erinnern das es da irgendeine Formel oder Einstellung oder sowas gab womit man den RowCounter, also da wo er sich in der Gruppe befindet, irgendwie zurücksetzen konnte, damit er quasi die Datensätze nochmal durchläuft.

Leider komme ich gerade nicht mehr darauf wie das ging. Kann mir hier jemand nachhelfen?

Vielen Dank dafür.

Thema: OpenXML SDK 2.0: Erste Zeile bei Exceldokument einfrieren
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: keins

Hallo zusammen,

ich hoffe ich habe die richtige Kategorie erwischt. Für einen Export in eine Exceldatei verwende ich das OpenXML SDK 2.0 von MS. Ich hätte nun gerne, dass in meinem Export die erste Zeile fixiert ist, wenn ich also scrollen muss, soll die erste Zeile trotzdem immer sichtbar sein. Ich habe bereits über MSDN und google danach gesucht aber leider nichts passendes gefunden :( In Excel sind es eigentlich 2 Klicks, ich hätte aber gern das mein Export das von Haus aus macht.

Jemand eine Ahnung wie man das anstellt?

Viele Grüße

Thema: [gelöst] [SL] neuen Tab öffnen -> Seite aufrufen -> POST Parameter übergeben
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

in meiner Silverlightanwendung möchte ich Reports aufrufen, welche über eine ASPX-Seite generiert werden. Dazu werden beim Aufruf der Seite POST-Parameter übertragen. Diese Seite soll in einem neuen Browsertab geöffnet werden.

Ich habe das in Silverlight nun versucht mit der "HiddenForm"-Methode zu realisieren. Dazu füge ich der ASPX-Seite, die die SL-Anwendung hostet, ein verstecktes FORM-Element hinzu und erstelle darin für jeden Parameter ein Inputfeld, um dieses FORM dann über submit abzusenden.

Leider bekomme ich dabei seit neustem eine Fehlermeldung, die mich nicht so richtig weiterbringt:

InvalidOperationException: Fehler bei Invoke: submit

Folgender Code wurde verwendet. Ich habe diesen bereits etwas modifiziert, da ich dachte vielleicht müsse das Element FORM schon auf der ASPX-Seite vorhanden sein. Leider war dem nicht so:


            HtmlElement hiddenForm = HtmlPage.Document.GetElementById("reportForm");

            //Form Eigenschaften setzen
            hiddenForm.SetProperty("action", reportUrl.ToString()); //eingestellte Report URL
            hiddenForm.SetProperty("method", "post"); //POST Methode verwenden
            hiddenForm.SetProperty("target", "_blank"); //in neuem Tab öffnen
            hiddenForm.SetStyleAttribute("visibility", "collapse"); //unsichtbar für Benutzer

            int i = 1;
            //Inputfelder für Reportparaketer erzeugen
            foreach (ReportParameter param in _paramsList)
            {
                HtmlElement hiddenInput = HtmlPage.Document.CreateElement(string.Format("input{0}", i.ToString()));
                hiddenInput.SetProperty("type", "hidden");
                hiddenInput.SetProperty("name", param.Name);
                hiddenInput.SetProperty("value", param.Value);
                hiddenForm.AppendChild(hiddenInput);
                i++;
            }

            hiddenForm.Invoke("submit");

Hat jemand eine Idee warum dies jetzt nicht mehr geht? Zudem ist die Idee mit der hiddenForm irgendwie... naja. Gibts hier nicht was cooleres?

Viele Grüße

€: Problem war ein Popupblocker, der verhindert hat das ein neues Fenster geöffnet wurde. Nachdem ich eine Ausnahmeregel hinzugefügt habe funktionierte es wie es soll.

Thema: Silverlight Blureffekt => schlechte Performance der Anwendung
Am im Forum: GUI: WPF und XAML

Hi MrSparkle,

sowas ähnliches habe ich mir leider schon gedacht :(

Natürlich, ich kann einen ähnlichen Effekt erhalten, wenn ich stattdessen ein schwarzes, halbtransparentes Rechteck zeichne um den Hintergrund auszublenden und ist dann superschnell. Ich habs derzeit auch erstmal so realisiert, sieht aber leider nicht so cool aus wie ein Bluteffekt.

Viele Grüße.

Thema: Silverlight Blureffekt => schlechte Performance der Anwendung
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

ich habe eine SL Anwendung, bei der es manchmal vorkommen kann, das eine Operation ein wenig dauert. Damit der Benutzer das mitbekommt, wird ein kleines Fenster mit einer unendlich laufenen Progressbar angezeigt (das Fenster hat zudem noch einen DropShadow). Zusätzlich habe ich noch ein Rechteck, welches über die Gesamte ansicht gelegt wird und dafür sorgt, dass man während einer Operation keine Eingaben tätigen kann. Das Ganze ist in einem BusyIndicator Control drin.

Beim Laden der Anwendung wird zunächst einiges an Daten geladen, was unheimlich schnell geht (unter einer Sekunde). Wenn ich nun aber zusätzlich im Hauptgrid der Anwendung einen BlurEffekt hinzupacke, damit die Ansicht leicht verschwimmt und somit der Fokus des Benutzers auf den Ladebalken geht, dauert das Laden deutlich länger (bis zu 10 Sekunden). Laut Fiddler gehen die Daten sehr schnell über das Netz und werden auch genausoschnell verarbeitet. Wenn ich diesen Effekt auskommentiere, dann rennt es wieder wie geschmiert.

Zieht dieser Effekt die Performance wirklich dermaßen nach unten oder muss man hier etwas anders machen? Ich hatte zuerst gedacht, dass man ggf. für das Rechteck zum Verdecken einen BlurEffekt braucht, das hat aber ja nur eine Farbe, deshalb gibt es nichts zu "bluren".

Hat vielleicht jemand eine Idee was ich falsch mache?

So habe ich den Effekt eingebaut. Er bezieht sich auf das Hauptgrid. Der Converter macht nix weiter als Radius bei IsBusy auf 3 sonst auf 0 zu setzen.


<Grid.Effect>
    <BlurEffect Radius="{Binding IsBusy, Converter={StaticResource BlurConverter}}"/>
</Grid.Effect>

Vielen Dank für die Hilfe.

Thema: Silverlight Button Styling: Zeichen mit Path -> Abhängigkeit der Breite wie zu lösen?
Am im Forum: GUI: WPF und XAML

Hallo gfoidl,

Bei änderung der Breite soll der Teil für die Darstellung des Inhalts größer werden. Die Höhe spielt (erstmal) für mich keine Rolle, da diese fest sein wird. Ich habe mal eine Skizze gemacht die verdeutlicht was ich meine.

Das mit der ViewBox hatte ich ganz vergessen. Ich dachte die gibt/gab es nur unter WPF, aber das könnte ich ja dann nochmal ausprobieren.

Vielen Dank schonmal.

Thema: Silverlight Button Styling: Zeichen mit Path -> Abhängigkeit der Breite wie zu lösen?
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

ich brauche einen Button, der die Form eines Pfeils hat (Fünfeck), so wie man es manchmal bei solchen Brotkrumennavigationen findet. Ich habe dies nun mit Hilfe von Styles und eines Pfads gelöst, habe nun aber das Problem dass der Neigungswinkel des Pfeils immer gleich sein soll, die Breite des gesamten Buttons aber wiederum abhängig von der festgelegten Breite sein soll und demnach ein Teil der Path-Elemente ja breiter werden müsste.

Ich kann mir gerade nicht vorstellen, dass das über ein Binding funktionieren kann, da Point von LineSegment hier Koordinaten verlangt.

Folgendes habe ich bereits fertig:


<Path Canvas.Left="0" Canvas.Top="0" Stroke="blue" StrokeLineJoin="Round" StrokeThickness="2" Fill="LightBlue" Opacity="0.5">						
    <Path.Data>
        <PathGeometry>
            <PathFigure StartPoint="0,0" IsClosed="true">
                <LineSegment Point="79,0" />
                <LineSegment Point="90,15"/>
                <LineSegment Point="79,30"/>
                <LineSegment Point="0,30"/>
            </PathFigure>
	</PathGeometry>
    </Path.Data>
</Path>

Die Gesamtbreite des Buttons war beim Entwurf 90 Pixel. Vergrößere ich den Button auf 100 Pixel ist der Button zwar 100 Pixel Breit, gezeichnet werden aber nur die ersten 90.

Wie löst man sowas? Ich bin für Hilfe sehr dankbar.

Viele Grüße
1nf1n1ty

Thema: IIS 7.0 Problem mit & (&amp;)
Am im Forum: Netzwerktechnologien

Hallo zusammen,

ich habe einen Webservice, der verschiedene Daten liefert und speichert.

Auf meinem lokalem Testsystem läuft der Service in einer IIS 7.5 Umgebung und problemlos. Wenn der Service jedoch auf dem Server läuft (IIS 7.0) werden bei Sonderzeichen merkwürdige Dinge gemacht. Aus dem &, was normalerweise wegen SOAP/XML in "&amp;" konvertiert wird, entsteht nun ein "&amp;amp;" Das sorgt dafür, dass jedes Mal wenn Daten gespeichert werden, die ein & enthalten, Datenmüll entsteht.

Ich habe schon diverse Einstellungen in beiden IIS Versionen bezüglich des charsets verglichen. Hier steht eigentlich alles auf UTF-8. Die web.configs sind identisch. Vergleiche ich 2 völlig gleiche Requests im Fiddler (lokal und prod.) lässt sich ebenfalls kein Unterschied feststellen.

Weiss jemand hier was das Problem ist? Für Hilfe wäre ich sehr dankbar.

Viele Grüße
1nf1n1ty

Thema: String mit exponentieller Schreibweise in integer umwandeln?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

ich muss eine Dateieinlesen und verschiendene Werte in eine Datenbank importieren. Dabei kommt es leider vor, dass einige Werte in exponentieller Schreibweise geschrieben sind wie z.B. "9.90E+07". Kann man das mit .NET Hausmitteln irgendwie in einen Integer umwandeln? Ein Convert bringt hier eine FormatException. Was ich mir noch vorstellen könnte ist diese Abzufangen und daraus einen double zu erstellen, der wiederum in einen Integer umgewandelt wird, ist aber irgendwie bisschen hakelig find ich.

Hat jemand da eine andere/bessere Idee?

Vielen Dank für die Hilfe

Thema: [gelöst] [Silverlight] Listbox mit DataTemplate reagiert nicht auf Klicks
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

ich habe eine Listbox auf einer Seite und ein DataTemplate um zu Informationen aus einem Objekt dort anzuzeigen. Über ein DataBinding auf SelectedItem greife ich im ViewModel das aktuell selektierte Element ab. Das funktioniert auch ohne Probleme, jedoch nur wenn ich die Tastatur benutze und z.B. mit Cursor hoch/runter navigiere.

Klicke ich mit der Maus auf der Listbox um ein Element zu markieren passiert nichts. Das SelectionChanged-Event wurde nicht aufgerufen, woraus ich schließe, dass ein Mausklick hier nicht richtig funktioniert.

Hat einer eine Idee wie man das Problem lösen kann?

Vielen Dank für die Hilfe.


€: Ich war gestern wohl blind. Es kann natürlich auch nicht funktionieren, wenn man im DataTemplate noch ein ListBoxItem definiert. Nach entfernen dieses Dings läuft es nun wie es soll.

Thema: Silverlight + WCF Service + BinaryEncoding + Session: unmöglich?
Am im Forum: Netzwerktechnologien

Hallo zusammen,

ich verwende SL 4 mit einem WCF Service und Binary Message Encoding. Ich habe nun das Problem, dass der Service eine ASP.NET Session verwendet und abfragt, ob diese bereits existiert. Normalerweise verwendete mal bei den ASMX Services dafür ja immer den CookieContainer, des man einmal zugewiesen hat und der dann bei jedem Request wieder die mitgesendet wurde. Der WCF Proxy hat zwar auch den CookieContainer, scheinbar funktioniert dieser aber nicht. Wenn ich einen CookieContainer zuweise, dann bekomme ich eine Meldung beim Start:

CookieContainer wird nicht unterstützt, wenn ein browserbasierter HTTP-Stapel verwendet wird. Cookies werden durch den Browser automatisch verwaltet. Wechseln Sie zu einem anderen HTTP-Stapel, beispielsweise unter Verwendung von WebRequest.RegisterPrefix mit WebRequestCreator.ClientHttp, um Cookies manuell zu steuern.

Mache ich hier irgendwas falsch oder ist es nicht möglich das in Kombi mit BinaryMessageEncoding zu verwenden?

Die MSDN Doku sagt diesbezüglich jedenfalls nix (oder ich bin blind -.-). siehe:
http://msdn.microsoft.com/de-de/library/dd560704%28v=vs.95%29.aspx
und http://msdn.microsoft.com/de-de/library/dd540828%28v=vs.95%29.aspx

Weiss jemand Rat?

Vielen Dank für die Hilfe.

Thema: MVVM Architektur Frage -> wird das so gelöst?
Am im Forum: GUI: WPF und XAML

Hi,

Code dazu gibt es noch nicht. Ich habe mir nur beim Entwickeln diese Gedanken gemacht und mich gefragt ob das gut ist. Vorgestellt habe ichs mir etwa so:


//PSeudoCode aufs wesentliche beschränkt

//SubViewModel:

//Liste, gebunden
public Observable<DisplayData> DisplayDataList {get; set;}

//Event, das für die Suche aboniert werden muss
public event RequestSearchEvent;

//Suchmethode, wird von Benutzer über Button angestoßen
public void SearchData() 
{
    //ggf. noch irgendwas machen

    //Event feuern
    if(RequestSearchEvent != null)
        RequestSearchEvent(this, new SearchParameter { Name="meine Suche", Option=1});
}


//MainViewModel:

//Feld des SubViewModels
private SubViewModel subViewModel;

//Ctor
public MainViewModel 
{
    subViewModel.RequestSearchEvent += SubViewModelRequestSearchEvent;
}

//Eventmethode vom SubViewModel
public void SubViewModelRequestSearchEvent(object sender, SearchEventArgs e) 
{
    webserviceClient.GetDataAsync(e.Name, e.Addition);
}

//Completed Handler vom WebService
public void GetDataCompleted(object sender, GetDataEventArgs e)
{
    subViewModel.DisplayData = e.Result;
}


Das war meine Idee. Ich zweifle aber aus oben genannten Gründen immernoch daran, das dies eine gängige/gute Lösung ist.

Thema: MVVM Architektur Frage -> wird das so gelöst?
Am im Forum: GUI: WPF und XAML

Hi und vielen Dank schonmal.

Ich wüsste zunächst mal auch nix anneres. Höchstens, ob es wirklich das SubModel sein muß mit der Suchfunktion, oder ob die nicht ins MainModel gehört. 

In dem Fall muss es wohl so sein. Der eigentliche Serviceaufruf (laden der Daten) ist natürlich im MainViewModel untergebracht, aber die Anforderung dafür gibt der Benutzer (Parameter festlegen und über Button die Anforderung stellen). Meine Idee war hier ein RequestSearchEvent, das als Eventparameter die in der SubView eingestellen Parameter beinhaltet und zur Suche dienen. Diese könnten dann im MainViewModel ausgewertet und an den Service weitergeleitet werden, der dann eine Liste zurückschickt. Diese würde ich dann an das SubViewModel weiterreichen.

Dadurch habe ich aber ja wiederum eine Abhängigkeit drin, bzw. muss mich darauf verlassen, dass der jenige, der die Funktion verwendet das Event 1. aboniert und dann 2. die Daten in die richtige Liste ins SubViewModel packt. Deswegen habe ich mich gefragt ob das so das übliche vorgehen ist oder das hier besser gelöst werden kann.

Viele Grüße

Thema: MVVM Architektur Frage -> wird das so gelöst?
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

ich habe nun mein erstes Projekt mit MVVM und habe diesbezüglich nun ein paar Fragen.

Ich habe eine MainView mit ViewModel, die einige Funktionen enthält (Toolbar, WebService Instanz/Connection) und zwei weitere (ich nenn sie mal) SubViews (ebenfalls mit je einem SubViewModel), die dazu dienen die Daten entsprechend darzustellen. Bei einer der beiden SubViews gibt es eine integrierte Suchfunktion, d.h. da diese SubView die Instanz des WebServices ja nicht kennt, müsste ich nun der MainView mitteilen, dass es Daten benötigt.

1. Frage:
Es ist ja gängige Praxis, dass es ein MainViewModel gibt, dass die SubViewModels kennt. Wäre es dann in Ordnung (oder ist es üblich), wenn ich im MainView Model das Result einer Anfrage direkt in das SubViewModel zu reichen? Durch das DataBinding werden die Daten dann ja sowieso dargestellt. Oder sollte man in MainViewModel ebenfalls eine Liste des gleichen Typ haben und dem SubViewModel quasi nur eine Referenz darauf mitteilen?

2. Frage:
SubViewModel2 hat eine Suchfunktion und fordert von MainViewModel Daten an. Meine erste Idee war es im SubViewModel ein Event anzubieten, welches das MainViewModel aboniert. Dort könnte man dann den Servicerequest machen und die zurückgekommenden Daten so wie in Frage 1 beschrieben an das ViewModel weiterreichen. Ich frage mich nun auch hier ob dies so üblich ist oder ob es einen anderen/besseren Weg hierfür gibt?

Vielen Dank für die Antworten und viele Grüße!

Thema: VS2010 + Netzwerklaufwerk -> Designer findet Resourcen nicht
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich habe eine Problem mit Visual Studio 2010. Ich habe ein Silverlightprojekt, in dem im im XAML diverse Namespaces aus dem Projekt als Resourcen einbinde. Dieses Projekt liegt auf einem Netzwerklaufwerk/Share. Leider ist VS irgendwie nicht in der Lage die Resourcen aufzulösen und zu finden. Ich kann das Projekt jedoch ohne Probleme kompilieren und starten.

Fehlermeldung:

Der resx:MyResource-Typ wurde nicht gefunden. Alle Assemblyverweise müssen vorhanden sein, und alle Assemblys, auf die verwiesen wird, müssen erstellt worden sein.

Ursache hierfür ist, dass es auf dem Netzwerklaufwerk liegt. Eine Kopie auf ein lokales Laufwerk brachte hier keinerlei Fehler mehr und der VS Designer konnte wieder verwendet werden.

Ich wollte deshalb mal Fragen ob es mittlerweile vielleicht eine Lösung dafür gibt. Ich habe hier im Forum schon die CASPOL Einstellungen gefunden. Woanders habe ich eine Einstellung in der "Config" des Studios gefunden, wo man "loadFromRemoteSource" setzen musste, damit Projekte vom Netzwerk geöffnet werden können. Ersteres brachte leider keinen Erfolg. Letzteres erlaubte mir zumindest Projekte vom Share zu öffnen, jedoch mit dem o.g. Problem im Designer.

Weiss jemand was hier getan werden muss, damit es funktioniert?

Vielen Dank und viele Grüße.

Thema: [gelöst] DataGrid Template setzen -> DataGrid hat 0 Columns
Am im Forum: GUI: WPF und XAML

Ich habe nun dort, wo ich zuvor hardcodiert das DataGrid das dargestellt werden soll, ein ContentControl eingefügt. Dem wollte ich nun als DataTemplate das ausgelagerte Datagrid mitgeben, damit er dieses zur Darstellung bekommt. Das wäre prinzipiell genau das, was ich möchte, nämlich das der Benutzer festlegen kann wie der Inhalt dargestellt werden soll. Leider Bleibt die Anzeige hierbei leider komplett leer.

Kann jemand nochmal darüber schauen?

Noch ein paar Hinweise:
QuickSearchControl ist abgeleitet von AutoCompleteBox.
PopupTemplate ist eine DependencyProperty, die ich in QuickSearchControl eingefügt habe und da soll dann das Template für die Darstellung hinterlegt werden.

Im Popuptemplate weise ich dgTest zu, da hier das Template hinterlegt ist.


<DataTemplate x:Key="dgTest" TargetType="sdk:DataGrid">
     <sdk:DataGrid>
         <sdk:DataGrid.Columns>
             <sdk:DataGridTextColumn Header="1" />
             <sdk:DataGridTextColumn Header="2" />
         </sdk:DataGrid.Columns>
     </sdk:DataGrid>
</DataTemplate>


<Style x:Key="QuickSearchTemplate" TargetType="uc:QuickSearchControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="uc:QuickSearchControl">
                <Grid Margin="{TemplateBinding Padding}">
                    <TextBox IsTabStop="True" x:Name="Text" Style="{TemplateBinding TextBoxStyle}" Margin="0"/>
                    <Popup x:Name="Popup">
                        <Border x:Name="PopupBorder" HorizontalAlignment="Stretch" Opacity="0.0" BorderThickness="0" CornerRadius="3" Background="#11000000">
                            <Border.RenderTransform>
                                <TranslateTransform X="2" Y="2"/>
                            </Border.RenderTransform>
                            <Border HorizontalAlignment="Stretch" BorderThickness="0" CornerRadius="3" Background="#11000000">
                                <Border.RenderTransform>
                                    <TransformGroup>
                                        <ScaleTransform/>
                                        <SkewTransform/>
                                        <RotateTransform/>
                                        <TranslateTransform X="-1" Y="-1"/>
                                    </TransformGroup>
                                </Border.RenderTransform>
                                <Border HorizontalAlignment="Stretch" Opacity="1.0" Padding="1" BorderThickness="1" BorderBrush="{TemplateBinding BorderBrush}" CornerRadius="3">
                                    <Border.RenderTransform>
                                        <TransformGroup>
                                            <ScaleTransform/>
                                            <SkewTransform/>
                                            <RotateTransform/>
                                            <TranslateTransform X="-2" Y="-2"/>
                                        </TransformGroup>
                                    </Border.RenderTransform>
                                    <Border.Background>
                                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                            <GradientStop Color="#FFDDDDDD" Offset="0"/>
                                            <GradientStop Color="#AADDDDDD" Offset="1"/>
                                        </LinearGradientBrush>
                                    </Border.Background>
                                                
                                    <!-- Hier war vorher das DataGrid, damit hats hardcodiert geklappt -->
                                    <ContentControl ContentTemplate="{TemplateBinding PopupTemplate}" />
                                                
                                </Border>
                            </Border>
                        </Border>
                    </Popup>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Vielen Dank.

[gelöst]
Ich habe nun nochmal mit Hilfe des Links von dir und ein paar kleinen Änderungen des Problem gelöst. Statt des ContentControls ist nun direkt das DataGrid an der Stelle. Über eine DP mache ich eine Eigenschaft für die Spalten verfügbar, damit ich diese im XAML definieren kann. Über eine Style-Eigenschaft an meinem Control konnte ich diese Definition dann intern zuweisen.

Vielen Dank nochmal für den Link. Der hat mir weitergeholfen und mich in die richtige Richtung gestubst. Nachdem ich nochmal ein paar Grundlagen nachgelesen habe ist mir klar geworden, dass ich da wohl etwas falsch verstanden habe.

Thema: [gelöst] DataGrid Template setzen -> DataGrid hat 0 Columns
Am im Forum: GUI: WPF und XAML

Danke schonmal für den Link.
Ich habe das Ding nun entsprechend umgebaut, jedoch komme ich immernoch nicht richtig weiter. Vermutlich habe ich nicht genau genug geschrieben was ich möchte, deshalb nun etwas konkreter.

Ich benutze eine AutoCompleteBox von Silverlight um mit Hilfe eines Templates aus dieser ein Suchcontrol zu bauen. Prinzipiell möchte ich das Ding so generisch machen, dass der Benutzer einfach ein Template mit den benötigten Spalten generiert (im XAML) und eine Suchmethode von beliebiger Stelle (WCF Service) übergibt. Ersteres ist genau das Problem das ich jetzt habe. Ich habe das ControlTemplate der Autocompletebox überschrieben und dort im Popup nun das DataGrid reingesetzt. Dort möchte ich nun das Template mit den benötigten Spalten zuweisen, weiss aber leider nicht genau wie. Ich habe mit nun wie im Link von dir beschrieben eine DependencyProperty erstellt, die die Spalten entgegen nimmt. Diese werden auch an der richtigen Stelle geladen und erzeugt. Ich weiss nun allerdings nicht genau was gemacht werden muss, damit die Spalten an anderer Stelle gelesen werden können.

Ich könnte mir vorstellen, dass die AutoCompleteBox eine DP, ich nenn sie mal "PopupGridColumnTemplate" benötigt, die die Spalten für das DataGrid intern durchreicht. Diese würden dann mit dem bereits implementieren Teil aus dem Link das Control aufbauen.

Die Definition der Spalten soll dabei über ein (Data?)Template in den Ressourcen erfolgen.

Kurz und knapp: Ich definiere die Spalten und bestimmte die Darstellung meiner Daten. Über die ItemsSource der ACBox bekomme ich ja bereits meine Daten, kann also direkt die benötigten Properties binden.