Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ASP.NET i singleton pattern u odnosu na PHP

[es] :: .NET :: ASP.NET :: ASP.NET i singleton pattern u odnosu na PHP

[ Pregleda: 3228 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.rs.



+2 Profil

icon ASP.NET i singleton pattern u odnosu na PHP08.07.2010. u 18:29 - pre 167 meseci
Postavio sam skoro temu na PHP forumu. Da li ima razlike kako sa singletonom radi ASP.NET i PHP? Kako kontam kod PHP-a singleton je u PHP-u single samo u toku jednog HTTP request-a, da li je tako i u ASP skriptama?
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.adsl-a-4.sezampro.rs.

Sajt: www.articles411.com


+8 Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP08.07.2010. u 19:20 - pre 167 meseci
Šabloni opisuju način za rešavanja odgovarajućeg problema. Da li ćeš ih ti implementirati baš u izvornom obliku, prilagođeno tehnologiji koju koristiš ili potrebama same aplikacije, na tebi je. To bi bio odgovor na pitanje "da li je isto u asp.net-u i php-u".

Zanimljiv detalj kod Singletona je što koristi static instancu objekta (u svom izvornom obliku).
Obzirom da IIS ( i drugi, jeli) rade sa više niti( svaki posetilac će imati nit unutar istog servera) ako implementiraš Singleton doslovno, objekat koji on vraća neće biti na nivou jednog posetioca već na nivou svih posetilaca( jer je instanca static, pa je dostupna svima na nivou aplikacije).
Redak je slučaj kad će ti ovakvo ponašanje biti potrebno u web programiranju.

No, šablon se često prilagođava tako da odgovara onom što tebi treba. Na primer, želiš da ti neki objekat bude dostupan na nivou jednog zahteva( jednog posetioca sajta) ali da svaki posetilac ima zasebnu instancu tog objekta. To možeš uraditi tako što ćeš, umesto da držiš static instancu držati običnu instancu objekta čuvajući je, na primer, u HttpContext-u.

Evo primer gde sam koristio malo izmenjen singleton tako da mi, na nivou zahteva, upravlja LINQ-ovim DataContext-om:

Code:

     public class DataProvider
    {
        private DataProvider()
        {

        }

        public static CmsDataDc CmsDataContext()
        {
            if (HttpContext.Current.Items["cmsData"] == null)
                HttpContext.Current.Items["cmsData"] = new CmsDataDc();
            return (CmsDataDc)HttpContext.Current.Items["cmsData"];
        }

        public static void SubmitChanges()
        {
            CmsDataContext().SubmitChanges();
        }
    }



 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP08.07.2010. u 19:39 - pre 167 meseci
http://www.elitesecurity.org/p2624785
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.adsl-1.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP09.07.2010. u 14:03 - pre 167 meseci
Milane,

Možeš li nešto više reći o worker procesima? Recimo, da li pokretanje novog worker procesa može da naruši stanje u slučaju primera koji sam gore naveo. Deluje mi nelogično da se prekida request na pola puta i prebacuje negde drugde ali šta znam kako li to radi
 
Odgovor na temu

branimir.ts
Beograd

Član broj: 56661
Poruke: 127
*.adsl-3.sezampro.yu.

Sajt: www.geocities.com/brankob..


Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP28.08.2010. u 14:12 - pre 166 meseci
Code:

public class DataProvider
    {
        private DataProvider()
        {

        }

        public static CmsDataDc CmsDataContext()
        {
            if (HttpContext.Current.Items["cmsData"] == null)
                HttpContext.Current.Items["cmsData"] = new CmsDataDc();
            return (CmsDataDc)HttpContext.Current.Items["cmsData"];
        }

        public static void SubmitChanges()
        {
            CmsDataContext().SubmitChanges();
        }
    }

...nije thread -safe, moze se desiti da vise threadova u isto veme pristupi statickoj metodi CmsDataContext klase DataProvider.
Isto tako se ne bih slozio sa tobom da se singleton pathern ne koristi u web aplikacijama = naprotiv;

Singleton pathern za ASP NET bi mogao da izgleda ovako (obrati paznju na staticki konstruktor) :
Code:

public class DataProvider
    {
        // -----------------------------------------------------------------------------------------------
        private static volatile DataProvider minstance;
        private DataProvider()
        {
        }

        static DataProvider()
        {
            minstance = new DataProvider();
        }

        public static DataProvider Instance
        {
            get { return minstance; }
        }

 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP28.08.2010. u 14:25 - pre 166 meseci
Ajd jos jednom procitaj post i o cemu sam ja pisao.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

branimir.ts
Beograd

Član broj: 56661
Poruke: 127
*.adsl-3.sezampro.yu.

Sajt: www.geocities.com/brankob..


Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP28.08.2010. u 14:37 - pre 166 meseci
Ma vazi :)
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.adsl-a-1.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP31.08.2010. u 13:48 - pre 165 meseci
@branimir.ts
Naravno da jeste thead safe. Funkcija jeste statička, ali bitan deo - mesto gde čuvaš ono što želiš da čuvaš kroz ceo page life cycle -je urađen na nivou sesije korisnika, bez ikakvih "static" svojstava.

Drugo, ja sam rekao da singleton može da se koristi na webu, ali u prilagođenoj formi. Kao i svaki pattern što se prilagođava potrebama.
 
Odgovor na temu

branimir.ts
Beograd

Član broj: 56661
Poruke: 127
*.adsl-a-6.sezampro.rs.

Sajt: www.geocities.com/brankob..


Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP31.08.2010. u 19:42 - pre 165 meseci
@Toxy u, pravu si
Citat:
HttpContext.Current.Items["cmsData"] = new CmsDataDc();
... i kada bi dva ili vise thread-a (request-a) ako pricamo o web-u izvrsila ovaj deo, nista se lose ne bi moglo desiti. Opasno bi bilo nesto poput ovog
Citat:
HttpContext.Current.Items["cmsData"] = cmsDataDc (tj referenca na nesto)
. Izvini na misinterpretaciji...

Reci cu nesto za ovo = "Recimo, da li pokretanje novog worker procesa može da naruši stanje u slučaju primera" - ako se dva worker procesa ne preklapaju i ne dele resurse, stanje koje imas u procesu ce ostati isto i request nece biti prekinut (logicno). Ja kapiram da si u stvari pitao sta ce se desiti sa instancom objekta koja se nalazi u http context-u ako se sesija cluster-uje na vise servera - moj odgovor je da se nista lose nece desiti jer app server (a.k.a. proces) zna kako da komunicira sa serverima na kojima se nalazi seansa. Downside ovog nacina konfiguracije okruzenja je performance penalty pri serijalizaciji / deserijalizaciji.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP31.08.2010. u 20:19 - pre 165 meseci
A kakve sve to veze ima sa singletonom? Singleton ne mozete da adaptirate webu jer onda vise nije singleton Al dobro, kad je mogao asp.net mvc da se zove mvc-om, valjda i ova budzevina moze da prodje kao singleton.

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.adsl-3.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP31.08.2010. u 21:30 - pre 165 meseci
Citat:
Al dobro, kad je mogao asp.net mvc da se zove mvc-om, valjda i ova budzevina moze da prodje kao singleton.


Hahaha, baš fino rečeno za asp.net mvc

Citat:
Ja kapiram da si u stvari pitao sta ce se desiti sa instancom objekta koja se nalazi u http context-u ako se sesija cluster-uje na vise servera - moj odgovor je da se nista lose nece desiti jer app server (a.k.a. proces) zna kako da komunicira sa serverima na kojima se nalazi seansa. Downside ovog nacina konfiguracije okruzenja je performance penalty pri serijalizaciji / deserijalizaciji.


'fala na razjašnjenju
 
Odgovor na temu

branimir.ts
Beograd

Član broj: 56661
Poruke: 127
*.adsl-a-6.sezampro.rs.

Sajt: www.geocities.com/brankob..


Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP31.08.2010. u 21:47 - pre 165 meseci
@Toxy nema na cemu.

@Mix -
Citat:
Singleton ne mozete da adaptirate webu jer onda vise nije singleton
- ovo je vecita tema diskusija i svodi se uglavnom na to - sta je starije kokoska ili jaje. Ne znam koliko si upucen u ASP NET MVC ili koliko nisi ali ono sto znam je da - koju god tehnologiju da koristis koristices je verovatno na dobar ili na los nacin.


[Ovu poruku je menjao mmix dana 28.09.2010. u 12:00 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: ASP.NET i singleton pattern u odnosu na PHP28.09.2010. u 11:00 - pre 165 meseci
[mod: iz razdvojene teme]

Kakva crna vecita diskusija Samo zato sto je nesto izaslo iz redmonda ne znaci da ceo svet treba da se prilagodi njihovim terminima.

Singleton je singleton, ako ne ispostujes pravila tog paterna onda to vise nije singleton i to nema nikakve veze sa hardcore linijom i time dal je prvo bila kokoska ili jaje, fakat je da je prvo bio singleton patern i da je on dobio to ime. Da li se iko seca kako su paterni uopste usli u nase zivote? Sustainable, well documented approach to achieving development tasks using recognizable patterns KNOWN TO ALL participants. Ako ti uzmes patern i onda ga izmenis za svoju svrhu to vise nije taj patern. On je mozda patern ako ima neku generalniju primenu i mozda je napredak u odnosu na stari patern ali nije TAJ patern i ne treba ga podmetati pod tim imenom, sto je nesto sto microsoft radi na skoro dnevnoj osnovi i onda imas gomilu MS-only developera koji tvrde da je nesto patern samo zato sto je u MS proizvodu tako nazvano i vodeci se istom logikom pisu kod koji nije patern-based ali ga dokumentuju kao takvog. A to je vec problem.
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: ASP.NET i singleton pattern u odnosu na PHP

[ Pregleda: 3228 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.