Laden...
J
jogibear9988 myCSharp.de - Member
Programmierer Offenau Dabei seit 17.07.2007 641 Beiträge
Benutzerbeschreibung

Forenbeiträge von jogibear9988 Ingesamt 641 Beiträge

20.06.2012 - 11:29 Uhr

Jo, nicht wirklich viel... Dafür sind es über 50 Spalten...

Wie kann Ich den am geschicktesten die DataTable mit den neuen Daten befüllen und die alten rauslöschen? (Ok, kann manuell meine ID Spalte vergleichen, aber vielleicht gibts da ja was eleganteres)?

20.06.2012 - 10:17 Uhr

Hallo.

Ich habe eine Business Software in der Ich mir imemr die letzten 30 datensätze darstellen lassen will. Hab das im Moment so gelöst, das mein VM alle 10s eine Abfrage an die DB schickt, eine DataTable zurück bekommt, und diese einer öffentlichen Property zuweist.
An diese Property ist mein DataGrid gebunden, und aktualisiert sich, wenn Ich eine neue DataTable zuweise. Jedoch ist das recht langsam und man spürt wie die UI verzögert!

Wie kann ich das den schöner lösen? Was gibts da für gute Ideen?

(Ich denke die Verzögerung kommt daher, das durch das neue zuweisen immer die ganze DataTable neu gezeichnet wird, da sich ja das Quellobjekt komplett ändert! Hab aber im Moment keine gute Idee wie Ich das einfach lösen kann!)

22.04.2012 - 07:24 Uhr

verwendetes Datenbanksystem: MSSQL

Hallo, wir haben eine Business Applikatin mit einem eigenen Datenlayer, als kein EntityFaremworke, Nhibernate oder ähnliches.

Wir nutzen in SL aber die DomainDataSource für den Datenzugriff. Das Control unterstützt ja LoadSize und PageSize. Nur ist das Problem, das dies ja keine auswirkung auf unsere Datenschucht hat, d.h. es werden in unserem Business Layer immer alle Datensätze aus der DB gelesen, gepaged wird erst in der RIA Brücke.

Wie können wir denn das Pageing in unseren Datenlayer bringen?

27.02.2012 - 15:46 Uhr

Beschreibung:

Ich habe mir einen TCP Wrapper geschrieben, da Ich des öfteren TCP Funktionen in einem Programm brauche.

Was bietet die Komponente:

  • Kapsselung Egal ob Aktiv oder Passiv eine Verbindung aufgebaut wird.
  • Events wenn Verbunden/Getrennt/Neue daten Vorhanden
  • Socket bassierte KeepAlive Telegramme
  • Automatischer Reconnect
  • Anagabe eines SynchronisationContext, in dem die Events ausgeführt werden (optional)
  • Warten bis eine bestimmte Anzahl an Bytes empfangen wurde (optional)

Verwenden kann man das ganze z.B. so:



 tcpConnector = new TCPWrapper(null, IPAddress.Parse("192.168.1.200"), 2000, true);
            tcpConnector.AutoReConnect = true;
            tcpConnector.UseKeepAlive = true;
            tcpConnector.DataRecieved += tcpConnector_DataRecieved;
            tcpConnector.Start();

Falls Jemand Verbesserungsvorschläge, Bugfixes oder Feature Requests hat, nur her damit.

Tcp, Keepalive, TcpClient, TcpServer, Socket

15.02.2012 - 08:31 Uhr

verwendetes Datenbanksystem: MSSQL

Wir haben eine Silverlight Oberfläche auf welcher über RIA Daten nach oben geholt werden.

Für direkten Zugriff auf die Datenbank nehmen wir das Entiy Framework, dort gibt es dann auch Support das nur die Menge an daten abgerufen wird welche per RIA Call übertragen werden, etc...

Nun ist aber das Problem, das wir zusammengesetzte Objekte haben, welche sich aus mehreren Abfragen im Code zusammensetzen. Wenn diese dann über einen RIA Call geladen werden, werden immer alle daten aus der Datenbank abgefragt, und alle Objekte erzeugt, auch wenn in Silverlight bei der Domaindatasource eine LoadSize angeggeben ist, und nur ein Teil geladen werden sollte.
Hat einer ne Idee wie man das gut lösen kann?

03.02.2012 - 14:54 Uhr

Habe in eine projektmappe mehrere SL4 Assemblys.

Darin sind auch 2 von einander unabhänige Projekte. Beide haben ein Verweis auf System.Windows, jedoch lässt sich das eine Projekt compilieren, das andere nicht und bricht immer mit folgenden Fehler ab:

Die Datei oder Assembly "System.Windows, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

Auch neu hinzufügen des Verweisen bringt nichts. (Im der csproj datei wird ja sowieso kein pfad zu der System.Windows.dll gespeichert!).

Auch existiert die System.Windows.Dll definitiv an dem Pfad der in VS2010 in den Eigenschaften des Verweises steht!

Einer ne Idee???

03.01.2012 - 09:43 Uhr

Wenn du das File als STream öffnest, kannst du die Position ja beliebig setzen (Postion=) und über read Bytes dann deine Bytes lesen. Wozu brauchst du da String Split?

03.01.2012 - 08:40 Uhr

Wenn die Felder alle eine Fixe größe haben könntest du mit Structs arbeiten und diese direkt befüllen. (wie hier gemacht: http://www.codeproject.com/KB/bugs/LoadDBF.aspx)

19.12.2011 - 10:03 Uhr

Ich habe ein Problem. Wir haben in Silverlight ein Custom Control in einer Dataform verwendet. Dieses besteht aus einer Textbox und einem Button. Wenn nun der Eintrag durch die dataform Disabled wird, da AutoEdit auf False steht, werden bei der TextBox auch die Scrollbars ausgegraut (Ich denke es wird der Disabled VisualState aktiviert). Wie kann ich das verhindern? Also Ich hätte gerne das der zustand readOnly aktiv wird!

Einer ne gute Idee??

11.12.2011 - 19:23 Uhr

Meine Klassen habe Ich ja schon, die werden nicht automatisch erzeugt. Und so ähnlich wie du es gerade geschrieben hast hab Ichs im Moment in meinem Projekt drin, möchte das aber vermeiden. Die DTOs sollen möglichst ohne Code auskommen und eigentlich nur Properties beinhalten.

11.12.2011 - 14:19 Uhr

Guid.empty kann ich nicht speichern, da die Felder in der Tabelle foreign key beziehungen zu anderen feldern haben!

Ne andere Möglichkeit als Trigger gibts nich? Irgend ein umwandlungscallback bevor in die db geschrieben wird? Welcher auch mein list string problem lösen könnte?

10.12.2011 - 09:37 Uhr

verwendetes Datenbanksystem: mssql

Gibt es eine Möglichkeit linq to sql zu sagen das guid.empty in der datenbank als null gespeichert wird, und wenn es gelesen wird, wieder als guid.empty in die Guid eingetragen wird?

Hintergrund, ich habe eine bestehende sw mit datenbank schicht, welche das so macht. Es gibt diverse dto objekte, welche aber keine nullableguid sondern eine normale verwenden. Und die dtos zu verändern wäre zu aufwendig!

Desweiteren ist in der db schicht auch noch was implementiert, das wenn der ziel typ im dto eine list<string> ist, der datenbankwert dementsprechend ausgewertet wird! Kann man sowas irgendwie in den linq zugriff einbauen?

01.11.2011 - 14:49 Uhr

ich habe mir nun eigende Dependencypropertys erzeugt die Ich animiere. In denn ValueChanged Callbacks von diesen weise Ich nun immer den e.NewValue meinem ScaleTransform zu. Nicht so wie ichs wollte, aber es funktioniert!

30.10.2011 - 18:08 Uhr

Hab jetzt nochmals alles mögliche versucht.... und es nicht geschaft!
(Über einen Timer die DP auslesen => Enthält nicht den animierten Wert.)
(An das Property Changed hängen => Enthält nicht den animierten Wert.)

Hatt den keiner ne Idee, ob das möglich ist...

28.10.2011 - 11:34 Uhr

Hallo.

Kann ich den eine Entity auch in einer Service Assebly definieren, diese dann über einen WCF Service zum WEB Part des Projektes schicken, und von dort wie über RIA zu Silverlight?

Wenn Ich diese im WEB Part des Projektes habe funktioniert das ja alles Problemlos, jedoch geht das auch mit nochmals einem WCF Service dazwischen?

27.10.2011 - 19:32 Uhr

Mhmm...

Machs doch so:

var ev=new EdgeVisualization();
this.Canvas.Children.Add(ev);
ev.Edge = ed;

dann ist wenn Edge zugewiesen wird, Parent bekannt...

26.10.2011 - 16:31 Uhr

Hallo, wie kann ich in Silverlight den Aktualwert einer Double Animation bekommen.

Bin zwar schon über mehrer Tips im Internet gestolpert, aber nichts hilft wirklich.

Habs mit dem easing wie hier (Silverlight on Windows Phone 7- get current value of DoubleAnimation) schon probiert hat aber nicht funktioniert.

Ich will ein ScaleTransform animieren, und bräuchte aber zwischendrinn den aktuellen Wert.

26.10.2011 - 16:28 Uhr

Mein VS läuft als Admin, meine Prozess auch. Wenn Ich Ihn als normaler user starte, dann gehen andere dinge im Programm gar nicht, also des es als Admin läuft ist sicher!

Probiers nun mit "." und siehe da es funktioniert....

26.10.2011 - 14:34 Uhr

Kleinbuchstaben hab Ich probiert ==> Kein Erfolg.

Berechtigung hab Ich. Wenn Ich die Computerverwaltung öffne, kann ich welche anlegen. Auch wenn Ich die Computerverwaltung als Administrator öffne kann ich welche anlegen. Mein Prozess läuft als Administrator!

26.10.2011 - 14:05 Uhr

Habe folgenden Code:


var queuePath = "localhost\\Transport_Transport";
if (!MessageQueue.Exists(queuePath))
{
    var queue = MessageQueue.Create(queuePath); 
}

doch beim ausführen bekomme Ich folgende Exception:> Fehlermeldung:

System.Messaging.MessageQueueException (0x80004005): Der Objektbesitzer war ungültig. Fehler bei 'MQCreateQueue', da z. B. ein Queue Manager-Objekt ungültig ist.

17.10.2011 - 22:35 Uhr

Schade....
Mit MSQM Binding kann kein TwoWay Binding realisiert werden, die ist aber nötig (da Ich nicht den ganzen Code umbauen kann). Was gibts denn dann noch für möglichkeiten?
Ich könnte natürlich eine Proxy Klasse erstellen, und für jeden Service Call eine zwischenschicht mit speicherung in datenbank einbauen, aber Ich suche einen generischen weg, wo ich nicht jede funktion anpacken muss....

16.10.2011 - 10:21 Uhr

Sicherung: Was ich zur sicherung meine ist, wenn ich z.b: den Rechner neu starte, und noch nachrichten im que waren, das diese an den entsprechnden service noch zugestellt werden (Nach einem neustart der services).

16.10.2011 - 03:39 Uhr

Das hört sich interessant an, eingentlich genau das was ich suche, jetzt müsste man nur noch den que sichern können... Geht das???

15.10.2011 - 19:57 Uhr

Hallo, Ich hätte mal eine Frage wie Ich sowas Grundlegend realisiere.

Wir haben eine Anwendung, welche in mehrere Services aufgeteilt ist. Jetzt können die einzelen Services untereinander Funktionen aufrufen, jedoch kann auch jeder Service für sich neu gestartet werden (und das starten, bzw stoppen kann schon etwas dauern.)

Nun sagen wie Service1 muss auf Service2 eine Funktion aufrufen, jedoch läuft Service2 gerade nicht, von daher schlägt der Aufruf der Funktion fehl, und Ich muss Ihn irgendwie Puffern. Erst mal ne Frage wie Ich das am geschicktesten mache.

Nun wird es aber noch besser. Es kann sein das nun auch Service1 neu gestartet wird (bevor er seinen Aufruf an Service2 absetzen konnte). Nun muss Ich diesen Aufruf in einer Datenbank sichern (Ich hab von jedem Service Zugriff auf die Datenschicht), und beim Starten von Service1 erneut versuchen den Call an Service2 abzusetzen, bis es funktioniert.

Ich will das aber irgendwie generisch für alle Service Calls realisieren. Jemand Ideen wie Ich das am geschicktesten mache? (Proxy, etc,...)

08.10.2011 - 20:36 Uhr

das händische Umsetzen der using-Direktive hilft ja eben nicht, weder noch...
Es gibt im Menüpunkt "erstellen" Unterpunkte "...bereinigen" und ich hatte gehofft, dass hier irgendwelche im Projekt versteckte Konfigurationen aufgelöst werden. Das bleibt aber wirkungslos.

Andere Änderungen im Code lassen sich machen. (zb. System.Console.WriteLine(...);

Er hat ja auch nicht gesagt die using direktive ändern, sondern schau in deine verschobene Klassen, die haben immer noch den alten Namespace, der verschiebt sich nicht automatisch! (Ich mach das immer mit Resharper!)

03.10.2011 - 22:49 Uhr

Du machst aus Preferences im PreferencesWindow einfach net get only Property, welche dann mainwindow.Preferences zurückggibt.

dann kannst du einfach an Preferences.Anzahl binden, und Source im Binding einfach weglassen!

29.09.2011 - 20:22 Uhr

Also nach weiteren Tests ergibt sich nun, das eine Silverlight RIA Anwendung sich nicht compilieren lässt wenn Sie in mehrere Assemblys aufgeteilt ist.

Aber in VS2010 bevor SP1 gehts...

22.09.2011 - 11:30 Uhr

Gibt es eine möglichkeit einen String in einem Resourcefile über einen string auszulesen?

Beispiel wie Ichs gern hätte



string entry="strerr001";

string wert = ResourceFile[entry];

Es ist eine RESX Datei, keine XAML Resource!

01.09.2011 - 15:21 Uhr

Ich denke System.Convert.ToBoolean wird bei null von value eine Exception schmeissen!

25.08.2011 - 09:27 Uhr

Sorry, konnte bzw. kann es nicht genauer beschreiben, ist nicht mein Code, und muss da erst mal durchsteigen.

Denke auch irgendwie das es ein Ring-Verweis ist. Habs aber nun am laufen, indem Ich meine Antwort via Task.Factory.StartNew() absetze!

24.08.2011 - 14:51 Uhr

Ich habe einen WCF Service über 2 Assemblys.

Der WCF Service in Assembly 1 ruft eine Methode in Assembly 2 über ein Interface welches Assembly 2 implementiert über WCF auf. Nun ruft Assembly 2 in dieser Funktion eine in Assembly 1 über WCF auf. Doch da gehts dann nicht weiter! Geht das nicht ? Was mach Ich falsch? Oder brauchts noch mehr Infos?

23.08.2011 - 08:25 Uhr

Sorry, alle Ruder zurück.

Hab nur falsch geschaut. Das DomainContext Objekt enthält die Daten! Hab einfach zu früh nachgesehen, bevor die Daten da waren!

23.08.2011 - 08:16 Uhr

Hab jetzt noch was gesehen.

CommonController.Instance.CurrentCommonContext ist ja ein DomainContext und OperationModeDTOs meine auflistung darin.

Wenn Ich eine Abfrage über eine DomainDataSource mache wird die auflistung im DomainContext gefüllt (und Ich könnte mich an diese Binden), aber wenn Ich eine ENtinityQuery nutze nicht! Gibts möglichkeiten dies trotzdem zu bewerkstelligen?

23.08.2011 - 08:07 Uhr

Hallo, Ich habe eine Silverlight/Ria Applikation, welche Ihre daten über eine EninityQuery holt:


EntityQuery<OperationModeDTO> qry = CommonController.Instance.CurrentCommonContext.GetAllOperationModeQuery(CommonController.Instance.CurrentClientID);
            CommonController.Instance.CurrentCommonContext.Load(qry, loadOperation =>
            {
                if (loadOperation.HasError)
                {
                    loadOperation.MarkErrorAsHandled();
                    ErrorWindow.CreateNew(loadOperation.Error);
                    return;
                }
                OperationModes = new ObservableCollection<OperationModeDTO>(loadOperation.Entities);
            }, null);

Das Funktioniert auch. Nun möchte Ich Daten hinzufügen.

Soweit Ich weis geht das so:


CommonController.Instance.CurrentCommonContext.OperationModeDTOs.Add(....)
CommonController.Instance.CurrentCommonContext.SubmitChanges();

mein Problem ist nun, Ich will zwar Daten hinzufügen, aber wenn Ich RejectChanges ausführe, sollen die hinzugefügten Daten wieder rückgänig gemacht werden, das geht aber nicht da Sie ja schon submittet wurden!

Wenn Ich aber das Submit nicht ausführe bekomme Ich die Daten ja nicht in meine Auflistung.

Ich weis, Ich kan meine geladen Daten auch in eine List<T> umwandeln, und dann könnte Ich SIe da anfügen, dann muss Ich aber eine 2te Liste pflegen, In der die von mir neu hinzugefügten Datensätze sind.

Gibts da ne saubere Lösung?

15.08.2011 - 15:02 Uhr

Habs jetzt herausgefunden:

Wenn Ich die Eingabeaufforderung als Administrator starte, hab Ich auch keinen Zugriff auf das Netzlaufwerk!

Es scheint so, als wenn der Explorer irgendwie einen Workaround hat, das er trotzdem das er als Administrator läuft auf das Netzlaufwerk zugreifen kann.

Und da mein VS2010 auch als Administrator läuft, habe Ich auch keinen Zugriff!

Hat jemand ne Idee ob man das irgendwie auch wie der Explorer machen kann?

15.08.2011 - 14:57 Uhr

Ja, lokal gehts.
Daher blick Ich ja auch nicht warum es nicht geht!

Wie gesagt, mit Explorer oder DosBox hab Ich zugriff.

Das Programm soll später als Windows Dienst laufen, aber im Moment läuft es normal unter dem Benutzer! (Also nicht als Dienst!)

Und Ist es normal das wenn Ich jetzt kein Zugriff drauf hätte das dein eine DirectoryNotFound Exception kommt?

15.08.2011 - 11:30 Uhr

Ich hab VS zwar als Administrator gestartet, wenn Ich das mit dem Explorer mache, habe Ich aber auch zugriff auf das Netzlaufwerk.

Falls das noch weiterhilft. Ich bin Mitglied einer domäne!

15.08.2011 - 11:13 Uhr

Hallo, Ich habe unter Windows ein Netzlaufwerk Z:\ auf das Ich vollen Zugriff habe (kann Dateien anlegen, löschen, schreiben, etc.)

Wenn Ich nun jedoch mit der StreamWriter Klasse dort eine Datei anlegen, und reinschreiben will, bekomme Ich immer eine DiretoryNotFoundException.

Auch System.IO.File.Exists(myConfig.Textfile) gibt false zurück, auch wenn die Datei existiert!

Einer ne Idee?

10.08.2011 - 13:43 Uhr

Also wenn Ich es so mache ist die Property trotzdem leer!

10.08.2011 - 09:42 Uhr

Hallo, Ich versuche eine Assembly in eine neue AppDomain zu laden, und zu suchen welche Klassen von Page abgeleitet sind.

Jedoch funktioniert es nicht.

Hier mal etwas Code.


public ModulClassDefinition[] GetModulClassDefinitions(string assemblyName)
        {
            _asmBase = System.IO.Path.GetDirectoryName(assemblyName);

            var appDomainSetup = new AppDomainSetup {ApplicationBase = _asmBase};

            _mydomain = AppDomain.CreateDomain("AssemblyLoader", null, appDomainSetup);
            AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
            
            System.Reflection.Assembly asm = _mydomain.Load(System.IO.File.ReadAllBytes(assemblyName));

            List<ModulClassDefinition> retVal = new List<ModulClassDefinition>();            
            foreach (Type t in asm.GetTypes())
            {
                if (t.BaseType == typeof (VisualStyleElement.Page))
                {
                    retVal.Add(new ModulClassDefinition() {Name = t.ToString(), ModulClass = t.ToString()});
                }
            }

            AppDomain.CurrentDomain.AssemblyResolve -= new ResolveEventHandler(CurrentDomain_AssemblyResolve);
            AppDomain.Unload(_mydomain);

            return retVal.ToArray();
        }

desweiteren gibts dann noch den EventHandler welcher aufgerufen wird wenn eine weiter Assemblie noch geladen werden muss:


private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
        {          
            //Retrieve the list of referenced assemblies in an array of AssemblyName.
            Assembly MyAssembly, objExecutingAssemblies;
            string strTempAssmbPath = "";
            objExecutingAssemblies = args.RequestingAssembly;
            AssemblyName[] arrReferencedAssmbNames = objExecutingAssemblies.GetReferencedAssemblies();

            //Loop through the array of referenced assembly names.
            foreach (AssemblyName strAssmbName in arrReferencedAssmbNames)
            {
                //Check for the assembly names that have raised the "AssemblyResolve" event.
                if (strAssmbName.FullName.Substring(0, strAssmbName.FullName.IndexOf(",")) == args.Name.Substring(0, args.Name.IndexOf(",")))
                {
                    //Build the path of the assembly from where it has to be loaded.                
                    strTempAssmbPath = _asmBase + "\\" + args.Name.Substring(0, args.Name.IndexOf(",")) + ".dll";
                    break;
                }

            }
            //Load the assembly from the specified path.                    
            MyAssembly = Assembly.LoadFrom(strTempAssmbPath);

            //Return the loaded assembly.
            return MyAssembly;
        }

jedoch ist args.RequestingAssembly in dem Event immer null...

Kann mir einer sagen was Ich falsch mache?

09.08.2011 - 06:48 Uhr

Sitzt denn dein DataContext vom MainWindow?

Anstonsten schreib mal ganz an den Anfang in den Konstruktor des MainWindow:

this.DataContext=this;

08.08.2011 - 21:08 Uhr

Das Ich das beim Compilieren machen kann weiss Ich, es geht um ein Program welches ich habe (nur als exe), aber unter 64bit nicht läuft!

08.08.2011 - 20:48 Uhr

Ist es möglich ein DotNet Programm welches mit AnyCpu kompiliert wurde unter 64 Bit Windows als 32 Bit Programm auszuführen?

06.08.2011 - 15:27 Uhr

Jo das hat geholfen!

Der Haken bei Silverlight war nicht gesetzt. Was mich nur wundert, das Projekt kommt direkt vom TFS Server, und bei meinen Kollegen sitzt der Haken, und das Debbuging funzt!

04.08.2011 - 10:44 Uhr

Ich kann bei mir keine Silverlight 4 Anwendungen debuggen.

In VS wird bei einem Haltepunkt nur gezeigt: "Haltepunkt wird nicht erreicht, für dieses Dokument sind keine Symbole geladen"

Nutze VS2010, IE9, Win7 64 Bit!

02.08.2011 - 11:03 Uhr

Ich habe eine Silverlight/RIA Anwendung die auf verschiedene Klassen aufbaut.

Nun lässt sich die Klasse mit dem Domain Service compilieren, wenn Ich jedoch die Silverlight Anwendung compilieren will, bekomme Ich folgende Fehlermeldung : > Fehlermeldung:

Fehler 3 Der komplexe Typ "bla bla bla" ist bereits in einer anderen Assembly vorhanden. Komplexe Typen können nicht in mehreren Assemblys definiert werden.

Das Problem ist, bei meinen Kollegen welche VS2010 ohne SP1 einsetzen, lässt sich das Projekt ohne Probleme compilieren!

23.07.2011 - 10:04 Uhr

Durchläufst du diesen code immer wieder, oder nur 1 mal?

Wahrscheinlich hat dein datatable noch keine zeilen wenn du das durchläufst, oder es dauert bis diese in der Combobox angelegt wurden, und du bist dann schon durch deinen Code durch.

Schau dir das mal an: Xamly determine if a ListBox.Items.Count > 0