Re: How to share objects in an ASP.NET application

From: HenkeBenke (hejo_kicks_ass_at_hotmail.com)
Date: 10/19/04


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
>
>



Relevant Pages

  • Re: How to share objects in an ASP.NET application
    ... > The simple version of the system is like this: A customer inserts HTML ... > website recieves a hit - like a classic "register website traffic" system. ... > This shared collection can be accessed from all classes in my application, ...
    (microsoft.public.dotnet.framework.aspnet)
  • How to share objects in an ASP.NET application
    ... I am currently developing a statistics system in ASP.NET, ... The simple version of the system is like this: A customer inserts HTML code ... website recieves a hit - like a classic "register website traffic" system. ...
    (microsoft.public.dotnet.framework.aspnet)
  • How to share objects in an ASP.NET application ???
    ... I am currently developing a statistics system in ASP.NET, ... The simple version of the system is like this: A customer inserts HTML code ... website recieves a hit - like a classic "register website traffic" system. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: How to share objects in an ASP.NET application ???
    ... It is not a memory problem, as my app uses 60 mb, when it totally ... I want to update information about each customers website, ... >> website name, hit today ect). ...
    (microsoft.public.dotnet.framework.aspnet)
  • RE: Pre-Scanning for Marketing
    ... I collected some unencrypted traffic and realized it wasn't my customer. ... offering assistance in closing these vulnerabilities. ... Audit your website security with Acunetix Web Vulnerability Scanner: ... Up to 75% of cyber attacks are launched on shopping carts, ...
    (Pen-Test)