Ich kenn da auch noch ein paar tote..
Würde mich über die Ergebnisse der Forschungen freuen.

Grüße Daniel

Pessner, Andreas wrote:
Bin auf jeden Fall dafür, dass man das mal testen sollte.

Werde das vielleicht morgen mal tun - jetzt mach ich erstmal Feierabend, bin 
aber schon gespannt auf die Ergebnisse, da ich auch noch ein paar Leichen im 
Keller liegen habe, die davon sicher profitieren würden!

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

Die Frage ist ob der Singleton tatsächlich als Application läuft
oder im page scope.
Dann wäre auch der Singleton direkt tot und eine Lösung wie die von
Andreas wäre denkbar...
Aber schön ist das nicht.
Dann kann man besser in der Global.asax Instanziieren und in den Application Context packen.

Andreas Rudischhauser wrote:

Das wollte ich ungefähr wissen. Danke. Wird mich mal weiter ans testen
machen.

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

Wenn ich das richtig verstanden habe, muss man generell beachten, dass der
Lebenszyklus einer Singleton Klasse in einer Web Applikation nur vom Aufruf
Start - bis Ende dauert.

Somit muss eine Singleton Klasse jeweils bei jedem neuen Aufruf einer
Website neu instanziert werden! Dort kannst Du mit dem Session bzw.
Application Cache ansetzen!

Folgendes wäre denkbar:

public class Xy{

private static Xy objSingleton= null;


private Xy(){

}

public static Xy GetInstance()
{
        if (objSingleton == null)
        {
                // Hole Xy aus dem Session/Application Cache
                HttpContext Context = HttpContext.Current;
                if (Context.Cache[_Cache_String] != null)
                {
                        objSingleton = (Xy)Context.Cache["myXyObject"];
                }
                Else
                        return new Xy ();
        }
        else
        return objSingleton;
}

}

Aber wie gesagt - ich habe damit noch nie gearbeitet - und kann sein das ich
hier Schrott schreibe!

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

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



_______________________________________________
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