Klar, aber... wenn ich im Singleton der static Variable ein Objekt zuweiße
muss dieses ja auch in einem Context laufen und das ist dann wohl
Application?


-----Ursprüngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im
Auftrag von kosmi
Gesendet: Donnerstag, 23. Juni 2005 16:36
An: [email protected]
Betreff: Re: AW: [Asp.net] static, Application oder Session

static hat nichts mit deiner Webanwendung zu tun.
Static heisst nur das diese Klasse/Methode/Variable nicht Instanziiert 
werden muss und allse anderen Objekte Sozusagen direkt auf dieses eine
"Objekt" zugreifen.

Session und Application meint den Context in dem du Daten innerhalb 
deiner Webanwendung ablegen kannst.
Session bedeutet das in diesen Context gelegte Objekte nur dem einem 
User zur Verfügung stehen, der sie auch in diese Session gelegt hat.

Application bedeutet das jeder Benutzer auf diese Objekt zugreifen kann.
Es wird also von einem Benutzer oder der Anwendung  in den Application 
Context gelegt und dann kann jeder Darauf zugreifen.
Darin kannst du zum Beispiel Datenbankabfragen Cachen die jeder Benutzer 
sonst machen müsste.

http://www.microsoft.com/germany/msdn/library/net/aspnet/EineFrageDesKontext
es.mspx

Grüsse Daniel


Andreas Rudischhauser wrote:
> Hm, also du hast es richtig verstanden, aber weiter komme ich dadurch noch
> nicht. Wie würde ich des denn bauen wenn ich es nicht static sondern
session
> mäßig mache? Quasi anstatt das Objekt in der internen static Variable in
> einer Session ablegen? 
> 
> 2te Frage: Ist dann "static" prinzipiell das Gleiche wie "application"
(bis
> auf Syncronisation)
> 
> -----Ursprüngliche Nachricht-----
> Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im
> Auftrag von kosmi
> Gesendet: Donnerstag, 23. Juni 2005 16:15
> An: [email protected]
> Betreff: Re: [Asp.net] static, Application oder Session
> 
> Was bedeutet deine Datenbankklasse ist ein Singleton?
> Für mich hört sich das mehr nach static an.
> Normalerweise  baust du einen Singleton indem du einfach eine
> Variable in die Klasse packst die vom Typ deiner Klasse ist.
> Dann machst du den Konstruktor private
> und baust eine static Methode GetInstance() die dir dein Object
> instanziiert und auf die Variable legt. Diese wird dann zurückgegeben.
> Du musst in einer Multiuseranwendung allerdings auf die Synchronisation 
> achten.
> 
> 
> public class Xy{
> 
> private static Xy objSingleton= null;
> 
> 
> private Xy(){
> 
> }
> 
> public static Xy GetInstance()
> {
>       if (objSingleton == null)
>       return new Xy ();
>       else
>       return objSingleton;
> }
> 
> }
> 
> Ob du nun jeweils eine Instanz der Klasse in die Session hängst
> oder bestimmte Sachen als Singelton löst hängt vom Sinn der Klassen ab.
> 
> Wenn die Klasse Userdaten transportiert(Navigationsstatus) hängst du
> sie in die Session.
> Übernimmt sie  aber allgemeingültige Aufgaben (z.b. Propertie Handling)
> kannst du einen Singleton bauen.
> 
> Mit hoffentlich alles richtig geschriebenen Grüßen
> Daniel Wasser
> 
> 
> Andreas Rudischhauser wrote:
> 
>>Ich versuche gerade eines meiner etwas größeren Projekte zu verbessern.
>>Dabei bin ich wieder mal auf konzeptionelle Probleme gestoßen. Es gibt
>>mehrere Klassen welche ich nur einmal brauche. Hier zum Beispiel die
>>Datenbanklasse welche mir den Zugriff zur DB kapselt.
>>
>>Diese Klasse ist vom Prinzip her ein Singleton. D.h. ich habe daraus eins
>>gemacht und hole mir die Referenz auf die DB via Database.Current.
>>
>>Nun stellt sich mir die Frage wie ich den Singleton machen soll.
> 
> Prinzipiell
> 
>>geht das ja über eine interne "static" Variable. In Asp.NET habe ich
> 
> jedoch
> 
>>auch noch "Application" und "Session".
>>
>>Ein ähnliches Problem stellt sich beim Navigationspfad des Benutzers.
> 
> Diesen
> 
>>habe ich bis jetzt in einer globalen Session Variable belassen. Wenn ich
> 
> das
> 
>>richtig in eine Klasse umbaue, dann muss das auch ein Singleton sein, wo
> 
> ich
> 
>>mit z.B. NavPath.Current drauf zugreife. Wie programmiere ich das hier?
>>
>>Ich kann hier nun schlecht "static" verwenden, da es ja im Session Scope
>>laufen muss.
>>
>>Irgendwelche Comments?
>>
>>_______________________________________________
>>Asp.net Mailingliste, Postings senden an:
>>[email protected]
>>An-/Abmeldung und Suchfunktion unter:
>>http://www.glengamoi.com/mailman/listinfo/asp.net
>>
>>
> 
> _______________________________________________
> Asp.net Mailingliste, Postings senden an:
> [email protected]
> An-/Abmeldung und Suchfunktion unter:
> http://www.glengamoi.com/mailman/listinfo/asp.net
> 
> _______________________________________________
> Asp.net Mailingliste, Postings senden an:
> [email protected]
> An-/Abmeldung und Suchfunktion unter:
> http://www.glengamoi.com/mailman/listinfo/asp.net
> 
> 
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

_______________________________________________
Asp.net Mailingliste, Postings senden an:
[email protected]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an