Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDevelopment and...Development and...Getting StartedGetting StartedUsing Shared or New Instance MethodsUsing Shared or New Instance Methods
Previous
 
Next
New Post
6/3/2011 7:49 PM
 

After reading this article : http://www.willstrohl.com/Blog/EntryId/440/Shared-or-Static-Methods-versus-Singleton-Methods  

and reviewing where Shared versus Singleton methods have been used throughout DNN Controllers and DAL, I now find myself totally confused.

For example: the Survey Module uses Shared methods in its controller whereas the HTML module using Singleton methods in its implementation.
Surveylist = SurveyController.GetSurveys(ModuleId)  versus  grdVersions.DataSource = objHTML.GetAllHtmlText(ModuleId)

In looking at other core controllers methods, PortalController, FolderPermissionController, TabController.GetPortalTabs, FillUserCollection & FillUserInfo, RoleController, EventLogController and others, some are Shared and others are defined as Singleton, requiring you to declare a new instance of a class. Example:

                Dim ctlCustomer As New CustomerController
                Dim intCustomerId As Integer = ctlCustomer.GetCustomerIdByName('John Doe')

                -- OR SOMETIMES SHORTCUT TO:
                Dim intCustomerId As Integer = (New CustomerController).GetCustomerIdByName('John Doe')

How should we be creating and accessing custom module controller method, Shared or Singleton and what are the performance/memory ramifications for each?   For example; if I am looping through a large array of items and can calling a query (via DAL) for each item, does that dictate that I use one over the other?

If I implement my controller to utilize the DNN "cached object" DAL methods, does that make a difference as to where Shared or an Instance methods should be used?

Any guidance as to when to use each of the different methods is much appreciated.

 
Previous
 
Next
HomeHomeDevelopment and...Development and...Getting StartedGetting StartedUsing Shared or New Instance MethodsUsing Shared or New Instance Methods


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out