[AccessD] Where to publish stuff

Jim Lawrence accessd at shaw.ca
Sat Jul 14 22:11:53 CDT 2012


Hi Shamil:

The original site was DNN 5.x which had been migrated from 4.x a year or so
ago. There were a number of third-party apps installed with their own custom
skins/features. Looking back we should have known or suspected that an
upgrade to 6.x was going to be a problem.

Unfortunately, if the upgrade was just a mater of backing up the application
or maybe just clearing out the old application, all together, it would have
been easy to isolate the problems. The program though is tightly integrated
with the MS SQL server for not only its data but also its entire layout and
control.

It turns out that many of the third-party extensions were not compatible, no
longer worked the same, some cost a fair amount to upgrade and had
integrated themselves directly in with the DNN's MS SQL source control data.
They caused all sorts of errors and issues. Additionally, many features,
stored within the data are location dependant and do not easily migrate.

Looking back we should have just set up a new independent server, with the
new MS SQL, installed the latest DNN and slowly added in feature by feature.
When all things were running perfectly then we should have gone on line. My
friend probably rushed ahead as all that he had read, said that the upgrade
would be trivial. 

Maybe this time will be easy as we are starting from an absolutely clean
install.

Jim 


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Salakhetdinov
Shamil
Sent: Saturday, July 14, 2012 2:14 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Where to publish stuff

Hi Jim --

What DNN version did you use there?
AFAIS current DNN version (6.2.1), which is installed with default 'Typical'
setup option runs on my sample site is running much quicker than DNN v.5.x
and especially DNN v. 4.x and  is producing smaller/cleaner HTML output. 

Upgrading DNN web site should never be done without first making full backup
of the current setup.

I'd not try to tune DNN by cleaning its sources - I suppose DNN currently
runs very well by default.
DNN also has caching feature, which can be used to cache static and rarely
changing dynamic content etc.

We can immediately test sample DNN site response time by attacking it form
our PCs by using a C# script I'm posting in P.S. of this message. That C#
script can be run from LINQPad (linqpad.net) - free version:

Here are the test results I have got by running the test C# script from my
PC:

Started at: 15.07.2012 0:48:27
Completed at: 15.07.2012 0:48:37, elapsed time = 9.621s
Completed tasks count = 50
Downloaded html total length = 1141600
Downloaded html pages count = 50
Download speed: 5.197 pages/s, 118662.651 bytes/s

We can set the "time X" to run this script from our systems to try to put
sample DNN web site down, or I can write a simple WinForms utility program,
which can be run from our systems "attacking" sample site in the same UTC
moments and sending stats to a web service...

When we will get that test results then we will see is there any need to
tune default DNN 6.2.x setup or it's running well enough even on a shared
virtual hosting located somewhere in Moscow, Russia...

What about this first step plan?

Thank you.

-- Shamil

P.S. Sample web site "attacking" C# script - quick & dirty:

/ /* using statements should be commented in LINQPad and
/ /* additional namespeaces (F4) set instead
//using System.Threading.Tasks
//using System.Net
void Main()
{
 const int CYCLES_COUNT = 10;
 
 DateTime startTime = DateTime.Now; 
 System.Console.WriteLine("Started at: {0}", startTime);
int completedTasksCount = 0;
 PageDownloader.DownloadedHtmlTotalLength = 0;
 PageDownloader.DownloadedPagesCount = 0;
 
 foreach (int i in Enumerable.Range(1, CYCLES_COUNT))
 {
 Parallel.Invoke ( 
 () => Interlocked.Add(ref completedTasksCount, new
PageDownloader("GettingStarted.aspx").Run())
 ,() => Interlocked.Add(ref completedTasksCount, new
PageDownloader("Home.aspx").Run()) 
 ,() => Interlocked.Add(ref completedTasksCount, new
PageDownloader("AboutUs.aspx").Run())
 ,() => Interlocked.Add(ref completedTasksCount, new
PageDownloader("OurServices.aspx").Run()) 
 ,() => Interlocked.Add(ref completedTasksCount, new
PageDownloader("NewsPromotions.aspx").Run())
 );
 }
 
 while (completedTasksCount < 5) System.Threading.Thread.Sleep(500);
 
 DateTime endTime = DateTime.Now; 
 decimal elapsedTimeInSeconds = (decimal) (endTime -
startTime).TotalSeconds;
System.Console.WriteLine("Completed at: {0}, elapsed time = {1:#0.000}s",
endTime, elapsedTimeInSeconds); 
 
 System.Console.WriteLine("Completed tasks count = {0}",
completedTasksCount); 
 System.Console.WriteLine("Downloaded html total length = {0}",
PageDownloader.DownloadedHtmlTotalLength); 
 System.Console.WriteLine("Downloaded html pages count = {0}",
PageDownloader.DownloadedPagesCount); 
 
 System.Console.WriteLine("Download speed: {0:#0.000} pages/s, {1:#0.000}
bytes/s", 
 PageDownloader.DownloadedPagesCount/elapsedTimeInSeconds,
 PageDownloader.DownloadedHtmlTotalLength/elapsedTimeInSeconds); 
 
 
}
public class PageDownloader
{
 public static int DownloadedHtmlTotalLength;
 public static int DownloadedPagesCount;
private string _pageUrl;
 public PageDownloader(string pageFileName)
 {
 string httpPrefix = "http://shamils-42.hosting.parking.ru/";
 _pageUrl = httpPrefix + pageFileName; 
 }
 
 public int Run()
 {
 try
 {
 string html = new WebClient().DownloadString(_pageUrl);
 
 Interlocked.Add(ref PageDownloader.DownloadedHtmlTotalLength, html.Length);
 Interlocked.Increment(ref PageDownloader.DownloadedPagesCount); 
 
 }
 catch (Exception ex)
 {
 System.Console.WriteLine("Downloading failed for '{0}'", _pageUrl); 
 }
 
 return 1;
 }
}



Sat, 14 Jul 2012 11:10:32 -0700 от "Jim Lawrence" <accessd at shaw.ca>:
 
  
  
Hi Gustav/Shamil:

There are none. It is running off a friend's servers and I am allowed
everything I would like... We have IIS but may be going for the Ingnx server
just for speed. I think we have MS SQL server 8.

I would like to do something with the DNN FE as it is the ultimate resource
pig. Get a few hundred instances going and you can bring any server and
database to its knees as there is no other package that does more round
trips.

My experiences with NDD have been fairly frustrating. This same friend
updated his version of NDD and SQL version and all his websites shut-down.
It took us over a month to get the site running again after I had deleted
thousand of lines of what I thought were convoluted useless code...classes
calling classes calling classes (I.e. 758 lines with resource files, were
replaced with 8 lines of code). That type of job should have taken an
afternoon to get it working, tops. It stores everything in the database! The
site is still has little issues and needs another week or two to completely
clean up but the pages loads in a tenth of the time and now it run
rock-solid.

That said maybe NDD should be used to get a demonstration package
boiler-plated together and up and running.

Jim 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock
Sent: Saturday, July 14, 2012 7:51 AM
To: accessd at databaseadvisors.com
Subject: Re: [AccessD] Where to publish stuff

Hi Shamil

To me that certainly looks like a route to follow. And why abandon DNN
because it runs on Microsoft software? That would not be logical to me.

But what about hosting costs? We have very little resources, and I would
prefer not to be bothered with adds.

/gustav

<<< snip >>>
-- 
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com




More information about the AccessD mailing list