Laden...

Forenbeiträge von RaphaelH Ingesamt 65 Beiträge

04.02.2012 - 15:44 Uhr

Hallo zusammen,

C++ ist denke ich ja schneller als C# da unmanaged und so..

Aber ich frage mich, wäre es immernoch schneller einige Sachen in C++ zu machen und dies per C# aufzurufen?

Also z.b. SQL Abfragen über C++ Dll auszuführen.

29.12.2011 - 08:44 Uhr

Hey,

Meine Frage ist, wie kann man unbekannten Datentyp auslesen und verwerten?

Z.b. Spiele, diese haben ja meistens irgendwelche Dateien, .dat, .aup, .wasauchimmer

Wenn man diese öffnet z.b. Notepad kommen da ja nur kryptisches Zeug raus 😃

Meine Frage, wie kann man so etwas deserialisieren, ohne zu wissen was es eigentlich ist.. Ich habe schon öfter gesehen, dass manche Leute für gewisse Spiele eine art Daten-Extractor programmiert haben. Jedoch kann ich mir nicht vorstellen wie man da vorgeht?

Gruß,

Raphael

28.12.2011 - 14:45 Uhr

Ich liebe solche konstruktiven Moderatoren.

Wenn du nichts konstruktives zu sagen hast, dann lass es.

28.12.2011 - 11:49 Uhr

Sagt wer? Schonmal was von SSD gehört? HDD war gestern 😉

28.12.2011 - 08:14 Uhr

Wie wäre es, mit einer WCF Architektur

Server - 32 Bit -> Bei Aufruf liest der gewisse Tabellen und schreibt diese in Dateien.

Client - 64 Bit -> Ruft Server auf und wartet bis Server fertig und bekommt als Antwort den Datei-Namen der Tabelle um diesen einlesen zu können..

Aber dann würd man immernoch serialisieren.. Da kommt man wohl nicht rum oder?

27.12.2011 - 17:21 Uhr

Wäre da eine WCF Client-Server Architektur von Vorteil? Denn das wäre ja relativ schnell realisiert.

Als Binding netNamedPipeBinding, da es wahrscheinlich auf dem gleichen Rechner läuft und als TransferMode Streamed?

Aber Streamed wäre ja nur nützlich sofern man auch einen Stream hat..

Jedoch ODBC macht ja keinen Stream... 😕 Ne Idee? 😃

27.12.2011 - 16:24 Uhr
  1. Ich lade nicht die komplete Datenbank in den Speicher.
  2. Ich denke diese Diskussion läuft jetzt in die falsche Richtung und da es in nichts konstruktivem endet, bitte ich den Thread zu schließen.

Danke trotzdem 😃

27.12.2011 - 15:54 Uhr

Naja bei einer 64 Bit Anwendung wären die Grenzen des Speichers ja hoch genug.

26.12.2011 - 20:08 Uhr

Nein, ich möchte nicht eine eigene Datenbank schreiben. Ich möchte lediglich die Daten verarbeiten. Mit Ihnen rechnen. Und dazu ist die vorhandene Datenbank einfach veraltet und auch nicht gerade die performanteste..

Und natürlich kann ich alles durch den ODBC Treiber jagen, dennoch bin ich eben auf 32 Bit auch beim Programm eingeschränkt und somit wenn mir der ODBC Treiber mehrere Gigabyte in mein Programm jagt, dann jagt mein Programm gegen die nächste OutOfMemoryException 😃

26.12.2011 - 11:27 Uhr

Also ein Beispiel

Ich habe:

Tabelle X
-ID
-Status
-Saison
-WertX

Tabelle Y
-ID
-WertY

Das Programm soll dann mit diesen Tabelle "rechnen"

Zum Beispiel, Average über X.WertX wo X.Saison = 2011Q1/2 und Y.WertY > 100

Natürlich könnte man dies über SQL in der Datenbank machen. Jedoch kann diese Datenbank nicht gerade sehr viel und außerdem brauche ich gewisse Tabellen öfter (5-10x) dadurch denke ich temporäres speichern wäre sinnvoll.

Die "roh" Daten kommen aus einer Datenbank (Progress OpenEdge - SQL-92, leider wie gesagt nur 32Bit ODBC)

26.12.2011 - 09:33 Uhr

Ich brauche wirkliche alle Daten, da Sie öfter als 1 mal gebraucht werden. Und Sie jedesmal erneut zu laden, würde nur mehr Zeit kosten!

25.12.2011 - 19:39 Uhr

Hallo zusammen,

Ich hab ein Problem. Und zwar muss ich größere Datenmengen (mehrere Gigabyte) verarbeiten..

Das Problem, ich habe nur einen 32 Bit ODBC Treiber zur Verfügung. Somit werd ich OutOfMemoryException schnell begegnen..

Ich habe mir gedacht, zur Verarbeitung könnte ich ein 64 Bit Applikation erstellen und zur Datenbeschaffung ein 32 Bit Applikation..

Jedoch würde ich dann trotzdem das Problem noch haben, wenn ich eine Tabelle lese, die eine gewisse größe hat.. Natürlich könnte man diese dann "splitten". Aber das müsste man dann ja irgendwo definieren, da das Programm nicht weiß, ist die Tabelle jetzt zu groß? Jedoch definieren, wann er was splitten soll, ist auch nicht grad die tollste Methode! Und das Programm gegen ne Exception laufen lassen und dann zu splitten bis zur nächsten Exception etc, wäre ja absolut Performance-schädigend..

Noch ne andere Idee, wäre über irgendeine Schnittstelle zwischen den Programme, einfach vom 32 Bit ins 64 Bit die Rows zu schieben..

Vielleicht hattet ihr damit schonmal Probleme und irgendwelche Lösungsvorschläge! 😃

Gruß,

Raphael

23.12.2011 - 17:16 Uhr

Kannst du nicht einfach Rechte vergeben auf deinem NAS? z.b. Ordern XY darf Computer1\UserA dran ? 😃

22.12.2011 - 20:14 Uhr

Router 1 -> 192.168.2.X

Router 2 -> 192.168.3.X

Dann einfach bei Router 2 mit in Router 1 stecken und Internet halt auf Router 1 leiten.

Denke ist nich so kompliziert oder denke ich jetzt zu einfach?

21.12.2011 - 20:14 Uhr

Ich wollte auch nicht eine Antwort, denn das wäre wie zu fragen, was ist der Sinn des Lebens 😃

Jedoch Links, Meinungen, Sonstiges seh ich gern! 😃

21.12.2011 - 19:51 Uhr

Hey! 😃

Ich glaub sowas passt am besten in Smalltalk, ist ja eher eine Grundsatz Frage
statt eine technische Frage! 😃

Ich habe momentan nen kleinen WCF Service mit rund ~ 100 Operationen.. Nichts großes!

Anfangs dachte ich mir bringt der Callback etwas, somit kann man zu Usern reden, man hat die Macht, sie zu disconnecten oder sonstiges! Doch wie das Leben so ist, Meinungen ändern sich.. Heute seh ich ein, ich brauch keine Callbacks!

Daher kommt nun mal so ne Frage die ich einfach in den Raum schmeiße auf Hoffnung mit Pro und Contra's!

Webapp (HTML&Ajax&PHP) + WCF Service

vs.

.Net App (Winform/WPF) + WCF Service

Für mich gibt es folgene Pro und Contra's:

.Net App
Pro:
+Performance
+größere Datenmengen
+Kompatibler (DataContracts versteht ein .Net App natürlich einfacher)

Cons:
-Man benötigt das .Net App
-Bei neuer Version (Neu Kompilierung und ersetzen alter Version)

Webapp
Pro:
+Überall erreichbar (So ziemlich jedes Endgerät besitzt einen Browser)
+Neue Version, kein Stress wegen Kompilierung oder ersetzen alter Versionen

Cons:
-Performance (? Wahrscheinlich nicht ganz so performant wie ein .Net App sein würde)
-WebServer dazwischen
-Nicht so kompatibel (DataContracts eventuell etwas komplizierter)
-Datenmengen (Gehört aber auch zum Punkt Performance)

Gruß,

Raphael

16.12.2011 - 15:40 Uhr

Hallo zusammen,

Um große Dateien mit WCF hochzuladen wäre es wie ich jetzt herausgefunden habe, besser transferMode Streamed zu benutzen, damit er nach und nach hochlädt, statt wie bei Buffered alles zuerst buffert und dann in einem hochlädt..

Jedoch, da ich Message security benutze, funktioniert hier nicht Streamed... Jetzt hänge ich auf diesem Buffered fest!

Habt ihr eine Idee wie ich nun größere Dateien (100MB, 1GB, 10GB) hochladen kann, ohne das mir das ding abschmiert?

Habe schon alle Einschränkungen in app.config auf 2147483647....

Ich habe mir gedacht, eventuell die Datei zu prüfen auf größe, diese dann in Stücke aufzuteilen, und im WCF dannach wieder zusammenzufügen.. Aber das ist meiner Meinung nach doch etwas unschön.

Gruß,

Raphaelh

14.12.2011 - 19:22 Uhr

Aber wie verhält sich das denn?

Also angenommen:

Ich hab nen synchronen Service mit folgendem:

Methode1 : Macht DB-Query welches 2 Minuten dauert.
Methode2 : Macht DB-Query welches 2 Sekunden dauert.

Ich hab nen asynchronen Client der Methode1 und dannach direkt Methode2 gleichzeitig aufruft.

Der Service verhält sich dann doch so
Start Thread für Methode1
Start Thread für Methode2
Delay 2 Sekunden
Zurückgeben Ergebnis Methode2
Delay restliche Zeit bis Methode1 fertig
Zurückgeben Ergebnis Methode1

Oder?

Von daher würd es doch keinen Sinn ergeben Service asynchron zu gestalten?

01.12.2011 - 09:23 Uhr

Mein Contract hat folgende Attribute:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession, ConcurrencyMode = ConcurrencyMode.Multiple)]

Somit, wird ja nur für jeden Client eine Instanz erstellt, was auch so sein soll.

Eine normale Anfrage wird wie vorhin erwähnt schon in einem eigenen Thread abgearbeitet. Ob hier eine asynchrone Server-Methode notwendig ist od. nicht, hängt davon ab was gemacht werden soll.
Wenn die Methode "in sich geschlossen" arbeitet so bringt es keinen Mehrwert, eher Nachteile, da wiederum ein Thread verwendet wird usw.
Ruft die Methode jedoch im Gegensatzt zum Vorigen einen anderen Service auf, eine (asynchrone) Datenbankabfrage od. sonst etwas das länger dauern kann, dann macht es Sinn diese Service-Methode asynchron zu gestalten. Denn es wird der WCF-Anfragen-Ausführungsthread nicht blockiert und erst dann wieder aktiv, wenn die andere längere Operatoin fertig ist um die End-Methode aufzurufen.

Naja, ich habe Operationen welche Datenbankabfragen macht und auch etwas länger dauern kann.. Aber kann ich dur ConcurrencyMode.Multiple nicht 2 Operationen gleichzeitig aufrufen?

Gruß,

Raphael

30.11.2011 - 08:50 Uhr

Hey,

Ist es sinnvoll Operationen direkt serverseitig asynchron zu gestalten?

Ich sehe da keinen Grund zu, denn ich habe ConcurrencyMode.Multiple damit ist ja gewährleistet dass ich meine Operationen so oft gleichzeitig aufrufen kann, bis ich die Resourcen ausgeschöpft habe! Daher weiss ich jetzt nicht genau ob es trotzdem Sinn macht die Operationen asynchron zu gestalten..

Auf der Client Seite, habe ich mir aber dennoch die Operationen asynchron generieren lassen, da ich nicht auf eine Operation warten möchte, bzw. nicht selbst jedes mal einen Thread erstellen will.


void client_HelloCompleted(object sender, HelloCompletedEventArgs e)
{
    if (e.Error != null)
    {
        // Exception handling?
    }
    else
    {
        // do something with result?
    }
}

Wie würde man am schlausten hier die Exception behandeln?

Wie prüft man am besten ob die Verbindung unterbrochen wurde und Faulted State hat? Wie baut man sie wieder auf?

Gruß,

Raphael

04.11.2011 - 15:31 Uhr

Dazu sollte ich vielleicht sagen, dass einige Funktionen des WCF-Services einige Sekunden brauchen bis sie antworten, daher wollte ich auf Funktionen mit Return wert verzichten, da hier die GUI einfrieren würde. Also einfach in nem Thread die Funktion aufrufen und das Event registrieren und dann wenn Daten empfangen, verarbeiten.

04.11.2011 - 09:01 Uhr
  • Ich brauch keine Basisklasse für einen Proxy diesen erstellt mir Visual Studio automatisch.

  • Authentifizierung an sich funktioniert ja.

  • Es geht mir mehr ums Design.. MVP schön und gut.. Jedoch mit meiner Channel Klasse, erstelle ich ja viele Events, muss man dies? Oder könnte man das auch anders umgehen dynamisch machen oder sonst was?

03.11.2011 - 15:16 Uhr

War es nicht so, dass dies extra bei Silverlight so ist, damit man den Browser GUI Thread nicht blockiert?

03.11.2011 - 15:05 Uhr

Hallo zusammen 😃

Ich möchte einen WinForm Client erstellen dieser besitzt:

LoginForm, MenuForm, und weitere Unterformen welche in der MenuForm auswählbar sind..

Dazu habe ich eine Channel Klasse erstellt, diese verwaltet die Verbindung und Aufruf aller Methoden des WCF-Service, hier ein kleines Beispiel:


namespace Client
{
   public delegate void LoginSuccessEventHandler();
   public delegate void ErrorEventHandler(Exception ex);

   public class Channel : Contract.IContractCallback
   {
      private Contract.ContractClient _channel;
      private string _userName;
      private string _password;
      public event LoginSuccessEventHandler OnLoggedIn;
      public event ErrorEventHandler OnError;
      protected virtual void LoggedIn()
      {
         LoginSuccessEventHandler onLoggedIn = OnLoggedIn;
         if (onLoggedIn != null)
            onLoggedIn();
      }
      protected virtual void Error(Exception ex)
      {
         ErrorEventHandler onError = OnError;
         if (onError != null)
            onError(ex);
      }
      public void Authenticate(string userName, string password)
      {
         if (UserName.Length <= 0)
            throw new Exception("Bitte geben Sie einen Benutzernamen ein");
         if (Password.Length <= 0)
            throw new Exception("Bitte geben Sie ein Passwort ein");
         _userName = userName;
         _password = password;
         Connect();
      }
      private void Connect()
      {
         try
         {
            _client = new Contract.ContractClient(new InstanceContext(this));
            _client.ClientCredentials.UserName.UserName = _UserName;
            _client.ClientCredentials.UserName.Password = _Password;
            _client.ClientCredentials.ServiceCertificate. Authentication.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;
            _client.Open();
            LoggedIn();
         }
         catch (Exception ex)
         {
            Error(ex);  
         }
      }
   }
}

Hier kommt die erste Frage, wäre es so richtig? Bzw. ist dies schön? Denn so werden etliche delegates, events, voids entstehen je mehr Funktionen mein WCF-Service hat.. Denn für jede Funktion mit Rückgabe wert brauche ich ein Event.

Ich habe gedacht, da ich viele Forms habe, könnte ich eine art FormHandler-Klasse erstellen.

Dann kommt die nächste Frage, soll dieser FormHandler diese Channel Klasse verwalten? Also der FormHandler registriert die Events und gibt gegebenenfalls die Werte an die Forms weiter, oder soll der FormHandler den Forms die Channel Instanz bei der initialisierung weitergeben und diese registriere selbst die Events?

Dazu kommt wie genau könnte man so einen FormHandler erstellen, soll dieser bei jeder neuen Form das Closing Event abfangen und dann diese Form nur Verstecken und z.b. zurück zur vorherigen Form gehen (Menu / Login)?

03.11.2011 - 09:37 Uhr

Okay,

Ich habe es gelöst bekommen..

Musste eigenen ServiceCredentials Type erstellen, welcher nen eigenen ServiceCredentialsSecurityTokenManager aufruft, dieser erstellt nen eigenen UserNameSecurityTokenAuthenticator, dieser erstellt meinen eigenen UserNamePasswordValidator wo ich ne eigene Methode mit meinem Rückgabewert erstellt habe.

Alles in eine eigene AuthorizationPolicy und voila! 😃

Danke trotzdem!

02.11.2011 - 14:45 Uhr

Probleme :

-Username ist bei mir nicht eindeutig (Da dieser öfter als einmal vorkommen kann)
-OperationContext wird erst später initialisiert
-UserNamePasswordValidator ist der einzige Ort wo ich das Passwort habe und der User erst damit wirklich eindeutig ist!

02.11.2011 - 11:22 Uhr

Ich denke so kann man das nicht umsetzen..

Gibt es eine Möglichkeit den Verlauf der WCF Authentication/Authorization nachzuvollziehen? Irgendwie mit Decompiler? Sodass ich eventuell einige Methoden überschreibe und es eventuell so hinbekomme?

31.10.2011 - 13:23 Uhr

Wie du sagst, ich habe in meiner static Klasse Authentication ein Dictionary erstelle <string, Authenticationlevel>

Dann würde ich im UserNamePasswordValidator einen Eintrag hinzufügen. Jedoch Da gibt er mir die Exception > Fehlermeldung:

Object reference not set to an instance of an object . Wahrscheinlich weil OperationContext nicht initialisiert worden ist..

31.10.2011 - 13:01 Uhr

Vielleicht reden wir aneinander vorbei 😕.. Ich versuch nochmal etwas von vorn..

Also,

-Client verbindet
-Credentials werden überprüft -> daraus erhalte ich einen Wert
-Diesen Wert muss pro Session irgendwo speichern
-Diesen Wert muss ich dann wenn IPrincipal.IsInRole ausgeführt wird, wieder abrufen können.

Problem dabei, ich kann soviele public Felder in meinem Contract machen wie ich möchte, jedoch wird dieser Contract per Client initialisiert, heißt nicht static, wie soll ich nun diesen Wert ändern können? Gleiche gilt für IPrincipal..

Gibt es nicht Etwas wie OperationContext.Current, woraus ich weiss welcher Client es ist oder soetwas in die Richtung?

31.10.2011 - 12:54 Uhr

Richtig, ich kann innerhalb der Service-Klasse zugreifen.

Jedoch wie soll ich diese Variable von außerhalb setzen, bzw. auslesen?

UserNamePasswordValidator ist ja nicht in der Service-Klasse und IPrincipal.IsInRole(string role) wo ich dann die AuthenticationLevel Variable brauche, ist auch nicht in der Service-Klasse.

31.10.2011 - 12:46 Uhr

Ich benutze Sessions 😃

Jedoch, wie kann ich auf diesen Context aus UserNamePasswordValidator zugreifen?

31.10.2011 - 12:15 Uhr

Mit Thread klappt dies überhaupt nicht..

Wenn ich eine Identity im Thread initialisiere, gibts diese Identity nachher im Evaluate (Wo das AuthenticationLevel gesetzte wird) nicht mehr.. '(Wahrscheinlich anderer Thread)

Guid kann ich generieren, kann ich ebenfalls in ein Dictionary schreiben mit AuthenticationLevel und Username.. Jedoch wie kann ich dem Client diese Guid aus dem CustomValidator senden?

Trotzdessen, finde ich diese Methode etwas unschön.. Schöner wäre ein Context der vom Client direkt am Anfang initialisiert wird und auf diesen ich überall zugreifen kann pro Client.

31.10.2011 - 07:05 Uhr

Man könnte diese Variable die ich benötige ein static Dictionary schreiben und verknüpfen an irgendeine ID (Gibt es zu diesem Zeitpunkt eine eindeutige ID?) und dann später über die ID auf die Variable zurückgreifen..

Aber ich weiss nicht ob dies die schönste Möglichkeit ist..

28.10.2011 - 10:44 Uhr

Hallo zusammen,

Ich hätte da mal ne Frage.. Ich komm einfach nicht drauf..

Also ich habe einen WCF Service mit net.Tcp Binding mit Message/UserName Security welche einen eigenen UserNamePasswordValidator besitzt.

Wenn ich die Verbindung aus Client aufbaue, wird ja die Methode Validate ausgeführt. Diese soll dann über meine andere static Klasse Authentication die authentifizierung übernehmen. Soweit so gut.

Meine Authentication Klasse hat die public Methode Authenticate, diese gibt ein enum Wert zurück, dies dient dazu, da ich 2 Stellen haben wo gegen ich die Authentifizierung mache, um zu wissen wo er sich denn dann authentifizieren konnte. (In diesem Falle Active Directory und eine andere Software)

Diesen Enum Wert würde ich dann gerne in Thread.CurrentPrincipal.Identity speichern, dazu habe ich ein CustomIdentity erstellt mit Variable Level ( darin soll gespeichert werden ob Active Directory, Software oder beides). Dies brauche ich dafür um später die Rollen richtig zuzuordnen, da ich das Passwort nicht dauerhaft mir irgendwo im Speicher ablegen möchte! (Auch Sicherheitstechnisch unschön)

Hier mal der Code wo dann mir die Exception geworfen wird (Die Zeile mit Kommentar):


public override void Validate(string userName, string password)
{
    CustomIdentity identity = Thread.CurrentPrincipal.Identity as CustomIdentity;
    try
    {
        identity.Level = Authentication.Authenticate(userName, password); //Hier wird die Exception geworfen
    }
    catch (BadLoginException)
    {
        throw new FaultException("Falscher Benutzername oder Password");
    }
}

Im WCF-Trace steht dann > Fehlermeldung:

Object reference not set to an instance of an object. Ich denke dies rührt daher, da in diesem Moment, die Identity im Thread noch nicht initialisiert worden ist.

Aber ich kann diese ja nicht auf CustomIdentity initialsieren, da dies ja eine interface ist..

Ich komm einfach nicht drauf.. 😕

Danke euch schonmal! 😃

Wenn noch Fragen offen sind, einfach rein hier!

07.10.2011 - 09:09 Uhr

Mal probiert CollectionDataContractAttribute zu erweitern?

So:


public sealed class CollectionDataContractAttribute : Attribute
{
  public string Name { get; set; }
  public string Namespace { get; set; }
  public string ItemName { get; set; }
  public string ISBN { get; set; }
}

05.10.2011 - 15:34 Uhr

Tach auch! 😃

Also ich hab mich mal tieeef in die Geschichte überall reingelesen und gestöbert. Ich bin jetzt über son paar Dinger gestoßen, anscheinend kann man nen WCF Service über JavaScript ansprechen und auch Callbacks zurück bekommen. Habe nämlich ne Art Chat Beispiel gefunden, welches auch gut funktioniert 😃

Wenn ich da mal durchgestiegen bin, was wo wie warum funktioniert schreib ich vielleicht nen Artikel dazu, kann nämlich richtig interesant sein! 😃

Edit:

Okay, für die Leute die es interessiert.. Es ist kein eigentlicher Callback sondern etwas anders gelöst. Der Html Client schickt per Ajax ne Anfrage zum WCF Server ob neue Nachrichten vorliegen, wenn welche vorliegen bekommt er ne Response, ansonsten wartet er bis Timeout und schickt wieder eine Anfrage (Dauerhaft). Für nen Chat reicht das vollkommen, jedoch ist das so gesehen kein Callback. Also man kann nicht den connected Clients etwas senden da hier keine offene Verbindung steht.

Schade ! 😄

16.09.2011 - 08:09 Uhr

Ich denke aber nicht das das das Ziel ist....

Richtig wäre 'dass das das Ziel ist'.

Kann man nicht eine Client-Server Architektur mit WCF erstellen, wobei der Client an den Server seinen Stream sendet und der Server an die anderen Clients den Stream zurückschickt und der Server je nachdem wenn 2 Leute aufeinmal reden die Streams "übereinander" legt? Ich denke schwierig ist es auch mit der Geschwindigkeit und die Verzögerung niedrig zu halten..

15.09.2011 - 11:26 Uhr

Kann man nicht einfach nen Stream zwischen den zwei Clients machen und alles darüber senden?

Die Idee mit Aufnehmen, Datei, hochladen, runterladen, abspielen, hört sich so an wie wenn ich ne Mail schreib, die wird ausgedruckt per Post verschickt, eingescannt und kann dann gelesen werden.

12.09.2011 - 07:58 Uhr

Hallo zusammen 😃

Momentan habe ich einen WCF Service mit einem C# Client. Ich würde gerne den Client mit einer Weboberfläche ersetzen, da ich aber Callbacks benutze geht dies soweit ich weiss nicht mit WCF, denn WCF erlaubt ja keinen Callback Contract bei HttpBinding.

Die Frage ist nun, geht dies überhaupt? Gibt es eine Möglichkeit mit PHP/JavaScript einen Client - Server zu machen welche mit Callbacks umgehen kann? Wenn ja, wie? Vielleicht habt ihr Anregungen für mich!

Danke 😃

03.08.2011 - 11:54 Uhr

SELECT SUM(Zugriffe) as Zugriffe
FROM (
SELECT Zugriffe FROM ... WHERE id = 1
UNION
SELECT Zugriffe FROM ... WHERE id = 2
UNION
SELECT Zugriffe FROM ... WHERE id = 3
) as SUB
UNION ALL
SELECT SUM(Zugriffe) as Zugriffe
FROM (
SELECT Zugriffe FROM ... WHERE id = 4
UNION
SELECT Zugriffe FROM ... WHERE id = 5
UNION
SELECT Zugriffe FROM ... WHERE id = 5
) as SUB

Dies habe ich in MySQL getestet, aber ich denke das müsste auch in anderen Datenbanken funktionieren.. Schonmal als Ansatz!

03.06.2011 - 08:20 Uhr

Ich würde immer nur eine laden lassen und den Client nicht wissen wieviel Seiten es gibt.

Und dann so vorgehen dass der Server dem Client 21 Einträge sendet wenn es eine neue Seite dannach gibt und somit Paging zur nächsten Seite aktivieren bis er auf der letzten Seite ist. Dies wäre denke ich am perfomantesten bei größerer Datenmenge, da weder Client noch Server alle Einträge holt sondern nur in "Häppchen" 😃

31.05.2011 - 16:24 Uhr

Ich hab vorerst basicHttpBinding rausgenommen, da dies eine geringere Priorität hat. Habe nun mein Callback etc. wieder geschrieben.

Nun hänge ich etwas. Wie macht man es am elegantesten eine Art SessionManager, sodass ich einen "Admin" Client mache, welcher eine Liste der aktiven Sessions bekommt und diese über deren Callback anspricht?

Ich kann zwar bei der Initialisierung einer Session einen Eintrag in eine static List hinzufügen. Aber ist dies eine gute Lösung? Und außerdem habe ich ein Problem, ich registriere bei der initialisierung ein Event auf OperationContext.Current.Channel.Closed / Faulted damit ich den Eintrag aus der Liste wieder herrausnehme, jedoch wird dieses Event nie aufgerufen.

Zudem habe ich in der Liste einen string welcher den Username (den man zur Authentifizierung benutzt) beinhalten soll, diesen nehme ich aus ServiceSecurityContext.Current.PrimaryIdentity.Name. Komischerweise ist dieser leer?

Edit :

Tut mir leid dass ich nicht für alles immer neuen Thread aufmachen will... Demnächst werd ich dies tun!

31.05.2011 - 09:20 Uhr

Hallo zusammen,

Ich habe momentan einen WCF Service welcher 2 Endpoints hat, einmal netTcpBinding und basicHttpBinding mit Zertifikat.

Ich hatte vorher nur netTcpBinding mit Callback, jedoch hatte er gemeckert als ich dann basicHttpBinding mit reingenommen hab dass dieser keine Sessions kann und mit Callback nicht geht..

Kann ich beide Endpoints beibehalten und nur für die netTcp Verbindung einen Callback einrichten und basicHttpBinding ohne? Für Callbacks brauche ich ja für jede Verbindung am besten eine Session, welche von basicHttpBinding ja nicht unterstüzt werden.

Habt ihr ne Idee?

26.05.2011 - 17:30 Uhr

Hallo zusammen,

Folgende Situation, ich habe eine GUI und eine Klasse. In der Klasse habe ich mehrere Methoden diese benötigen auch Parameter. Folgendes Probleme, da ich ja nicht will dass mein GUI einfriert, lager ich den Methodne Aufruf in einen eigenen Thread aus. Will ich nun aber die Methode aufrufen aus meiner Klasse und rufe sie zum Beispiel wie folgt auf:

Method(TextBox1.Text);

Greife ich ja nun auf ein Control der GUI aus dem erstellten Thread zu. Nun bekomm man natürlich Fehlermeldung wegen cross-threading.

Man könnte natürlich den Thread mit Parameter starten, jedoch wenn ich das recht in Erinnerung habe kann der Thread nur 1 object als Parameter haben.

Nun habe ich es so gelöst, ich habe public Variablen in der Klasse, welche ich befülle bevor ich meinen Thread und folgend die methode starten. Die Methode in der Klasse benutzt dann einfach diese public Variable. Aber diese Lösung finde ich selbst etwas unschön!

Ihr wisst ganz sicher wie man dies viel eleganter lösen kann! 😃

24.05.2011 - 07:10 Uhr

Hallo zusammen 😃

Ich bin gerade an einem WCF Projekt, bisher habe ich der einfachheit wegen alle Funktionen etc. direkt in die WinForm mitreingepackt! Jedoch frage ich mich jetzt ob dies nicht die Performanz der WinForm einschränkt? Z.b. wenn eine Funktion mal etwas länger braucht (1sek+) dann hängt natürlich die Form. Wäre es daher ne bessere Idee dies in eine eigene Klasse auszulagern und vll mit eigenen Events zu arbeiten welche dann die WinForm erhält? Oder habt ihr vielleicht noh ne andere Idee..

18.05.2011 - 07:12 Uhr

Siehst du dort irgendwo einen Treiber für eine Progress Datenbank?

Oracle ODBC Driver
SQL Server ODBC Driver
DB2 ODBC Driver
Sybase ODBC Driver
MySQL ODBC Driver
Greenplum ODBC Driver
Informix ODBC Driver
PostgreSQL ODBC Driver
Teradata ODBC Driver

Kein Progress.. Und außerdem ist die hier eingesetzte Version eine etwas ältere..

17.05.2011 - 15:28 Uhr

Gibt es vielleicht eine Odbc Bridge?

Also

Applikation -> Odbc Bridge 64 bit -> Progress odbc 32 Bit

?

17.05.2011 - 14:39 Uhr

In meiner Situation gibt es keine Operation die keine PrincipalPermission hat, aber ansonsten lass ich es nun so, sollte noch irgendjemand eine Idee haben gerne her damit!