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

HomeHomeOur CommunityOur CommunityGeneral Discuss...General Discuss...DotNetNuke PerformanceDotNetNuke Performance
Previous
 
Next
New Post
8/6/2006 7:47 PM
 
Hi Tomas -- you brought up a good idea & point. I'm not sure if there are any database "specialists" working on DNN. Just by looking at how user profiles are done, you can see that this is the opposite of normalized. You also need to look into a team who really knows ADO.NET, that's what connects the website to the database. The very nature of the DNN Data Provider slows performance by making too many roundtrips, but as a module developer you don't need to use it. I'm not slamming DNN. It's just that performance takes a backseat to customizable features and flexibility.

Jason Honingford - Web & Software Developer
www.PortVista.com
 
New Post
8/6/2006 8:42 PM
 

 

Just for the record.  Overly normalizing a database will degrade performance, not increase it.  One way to optimize a database for the web is to "flatten out" tables so there are less joins.  I'm not saying this in relation (no pun intended) to DNN, but just to state a point.

I do agree that DNN often goes for flexibility before speed and that the two are inversely proportional to each other.


DotNetNuke Modules from Snapsis.com
 
New Post
8/6/2006 9:14 PM
 

Thomas,

to correct the statement of another poster, I can tell you, that all data design in the core is made by developers with great insight and experience, especially the new user profiles, which needed to combine security, flexibility, maintainability and speed - aims that are struggling with each other.

Though normalized tables are usually preferable, there are issues, that might recommend another solution - due to speed (using redundant data) or flexibility (using a serialized storage format as UserDefinedTable and Profile Editor). And as far as I see, most of the overhead in DotNetNuke comes from the need, to fullfil many different needs, providing more and more options, that needs to be handled with additonal code - but as far as I read demands in these forums, most of these options are due to demand of the users, so they cannot be removed. Another source of additional code is code design with clearly separated layers, abstraction levels and provider integration. this leads into additional calls, but allows easier testing and encreases code quality.

As a conclusion: If you want a flexible, secure system for multi purposes, you well need to accept some performance loosings. If your main goal is performance, write an application, that is designed for a single special purposes.

My 2 cents.


Cheers from Germany,
Sebastian Leupold

dnnWerk - The DotNetNuke Experts   German Spoken DotNetNuke User Group

Speed up your DNN Websites with TurboDNN
 
New Post
8/6/2006 9:35 PM
 
That's a good point -- it's very hard to create an app that works for every single imaginable web designer's need.

I'm a little concerned with the idea that features cannot be removed once they are included. Talk about spaghetti! My thoughts are features should be separated enough to give us the ability to turn them off or not install them, like modules. I don't like how a lot of recent 4.3.X functionality is being put into the Admin, where it could be done or is already being done through modules.

The problem is once it's in the Admin, indeed it would be hard to remove it -- and then you have more and more features that don't make any sense in certain types of websites.

And, that's right with over normalization, you end up having to use a lot of joins, but over flattening is worse and can turn into a programming nightmare.

Jason Honingford - Web & Software Developer
www.PortVista.com
 
New Post
8/6/2006 10:20 PM
 

Speaking of integrated features that you can't turn off.  The biggest hit on performance that I have been able to track down is Localization.
Every time a language resouce file is loaded it is put into and XMLDocument (slow), then converted to a hashtable and cached.
One moderate caching performance setting, it will stay in cache for 1 hour, 2 hours for heavy caching.

Sebastian won't like this much, but some of us would rather choose to just turn of localization instead of taking that performance hit, especially if we are running on an Intranet.  Unfortunately that is next to impossible, since a lot of the core uses the language resource files by default.

I do have an idea brewing that I think will get us the performance back from Localization, and keeping the flexability that it has now by allowing language packs to be built and uploaded seperately.

Basically, what we need to do is build a process that will collect all language files for a language and put them into one static file, then load it into cache with an XMLDatareader(fast) in a way that is optimized for memory and faster lookup. 

Then again, you could get the PageBlaster and get a huge performance boost right now. :~)


DotNetNuke Modules from Snapsis.com
 
Previous
 
Next
HomeHomeOur CommunityOur CommunityGeneral Discuss...General Discuss...DotNetNuke PerformanceDotNetNuke Performance


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