Re: How to share objects in an ASP.NET application
From: HenkeBenke (hejo_kicks_ass_at_hotmail.com)
Date: 10/19/04
- Next message: Tony Fonager: "Re: How to share objects in an ASP.NET application ???"
- Previous message: rodchar: "Re: design advice"
- In reply to: Tony Fonager: "How to share objects in an ASP.NET application"
- Next in thread: Tony Fonager: "Re: How to share objects in an ASP.NET application"
- Reply: Tony Fonager: "Re: How to share objects in an ASP.NET application"
- Reply: Tony Fonager: "Re: How to share objects in an ASP.NET application"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 19 Oct 2004 23:30:56 +0200
Hello Tony!
If you make your class a Singleton and declare yout collection i
global.asax?
The Singleton design pattern lets you use tha class without instanciating it
first, it keeps a private member of it's own type and uses that instance if
it is instanciated.
to use a Singleton class in code, just use it like this:
mynamespace.myclass.Instance.myMethod()
Instance is a public function.
Example code:
Class myClass
Public Shared moMyClass As myClass = Nothing
Private Sub new()
'private constructor disallowing other to create object directly
End Sub
Friend Shared Function Instance() As myClass
If moMyClass = Nothing Then
'First instance
'return a new object
moMyClass = New myClass()
Return moMyClass
Else
Return moMyClass
End If
End Function
Public Function myMethod()
'do something clever
End Function
End Class
Hope it helps!
"Tony Fonager" <tony@dontspamthisemailadress_fonager.dk> skrev i meddelandet
news:#rzUuDitEHA.1336@tk2msftngp13.phx.gbl...
> I am currently developing a statistics system in ASP.NET, and need to
share
> information about the customers websites, in this application.
>
> (I have simplified my code, to make my project easier to explain.)
>
> The simple version of the system is like this : A customer inserts HTML
code
> on his webpage, which contacts my statistics server each time the
customers
> website recieves a hit - like a classic "register website traffic" system.
>
> When the customers hit reaches my web application, I need to maintain info
> and state about the customers website - therefore I have a "website"
class,
> which hold information about the customer website (raw hits, unique hits,
> website name, hit today ect).
>
> So the first time a customer hits my servers, I need to instantiate an
> instance of the website class, and update the information in this class.
> Next time I recieve a request for the same customer, I only need to update
> the websites information in the instance of that class.
>
> So, here is a picture of how it works today, when the first hit comes in
:
>
> 1. Customer #100 sends a request to my statistics application.
> 2. I have no information about customer #100, so I instantiate a new
> instance of the "website" class.
> 3. I update information, and sets the "unique hits" variable to 1 (as this
> is the first hit).
>
> After this, all hits coming after the first hit, only updates information
in
> the "website" class (ie. adds 1 to the "unique hits" variabel) - like in
> step 3.
>
> I think (and hope) all the above is readable and understandable.
>
> My problem now, is how I share these website classes in the global
> application ????
>
> Today I have a shared collection, which hold each instance of the website
> class - like this :
>
> public shared websites as new sortedlist
>
> This shared collection can be accessed from all classes in my application,
> and actually this works fine.
>
> But, when my collection of websites reaches a certain limit (about 2500
> "website" classes), the application starts to become VERY slow, and after
> 10-15 minutes it totally slows down and becomes useless.
>
> And listen to me - we are talking VERY SLOW here - it runs on dual xeon HP
> server, so hardware is enough for testcase ...
>
> My question is now, if I am doing this the right way ??? How are you guys
> shared objects among pages in an ASP.NET application ???
>
> Is there are correct way to share objects globally in an ASP.NET
application
> ?
>
>
> -
> Regards,
> Tony Fonager, Denmark
>
>
- Next message: Tony Fonager: "Re: How to share objects in an ASP.NET application ???"
- Previous message: rodchar: "Re: design advice"
- In reply to: Tony Fonager: "How to share objects in an ASP.NET application"
- Next in thread: Tony Fonager: "Re: How to share objects in an ASP.NET application"
- Reply: Tony Fonager: "Re: How to share objects in an ASP.NET application"
- Reply: Tony Fonager: "Re: How to share objects in an ASP.NET application"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|