Latest ASP.NET Podcasts #29 (Atlas talk) and #30 (Minimizing viewstate #2)

As Wally recently pointed out to me, I have been slack and not listed his last 2 shows on my blog. So to appease Sir Wally, below are the links to the latest shows:

ASP.NET Podcast Show #29 - Atlas User Group Talk
Subscribe - The Wally Way to do things.  Cool.  Hip.  Get iTunes or iPodder.
Download – The Not-Wally Way to do things.  Uncool.  Boring.

ASP.NET Podcast Site.
Note: The audio of the questions from the group is lacking.  I have attempted to improve those sections of the audio file, but it still may not sound quite right.

Show Notes:
On November 29, 2005, Wally did a talk to the Knoxville .NET User Group on the subject of Microsoft's Atlas.  The powerpoint slides from the talk.
Scott Forsyth of ORCSWeb is the Database Geek of the Week.

 

ASP.NET Podcast Show #30 - Minimizing the ASP.NET ViewState Part #2
Subscribe - The Wally Way to do things.  Cool.  Hip.  Get iTunes or iPodder.
Download – The Not-Wally Way to do things.  Uncool.  Boring.

Check us out on the ASP.NET Site.
Show Notes:

Scott Allen isn’t the only person that needs more Wally.  We got an email from Bruce Dickinson.  He says “I got a fever, and the only prescription is more Wally!”  He has got to have “more Wally.”  You need to listen to the ASP.NET Podcast.
Correction from the previous podcast.  DnD in Atlas does work, its just not documented well at this moment.  Thanks to Wilco Bauwer.
As we get into the Holiday Season, whether it is Christmas, Hanukah, Kwanza or something else, we need to look at how we act towards each other. 
As some of you know, there has been a lot of public discussion back and forth in the .NET community in South Carolina.  I have had some amount of a little bit of knowledge about this as one of the people involved is a buddy of mine and worked on our ADO.NET book.  As I watched the issues play out, I looked at myself.

Hard for technology people to work with each other.
We strike out at each other.
I’ve done it.
I’ve had it done to me.
How should we act?  We need to be open and honest without being rude to each other.  Learn how to work together.  Learn how to pump people up instead of pushing people down.  There are plenty of people that want to push you down.

SavePageToPersistenceMedium code:

string strViewStateKey = this.CreateFileName();
string FileDir = GetConfigInformation();
CleanUpInfo cui = new CleanUpInfo();
cui.Dir = FileDir;
cui.TimeOut = 60*60;
ThreadPool.GetAvailableThreads(out iMaxWorkerThrds, out iMaxIOThrds);
if (iMaxWorkerThrds > giMinimumThreads)
{
            ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(CleanUpFileDirectory),cui);
            Thread.Sleep(0);
}
RegisterHiddenField("__VIEWSTATE_KEY", strViewStateKey);
RegisterHiddenField("__VIEWSTATE", String.Empty);
strViewStateKey = System.IO.Path.Combine(FileDir, strViewStateKey);
LosFormatter los = new LosFormatter();
StringWriter writer = new StringWriter();

// serialize the view state into a base-64 encoded string
los.Serialize(writer, viewState);

// save the string to disk
StreamWriter sw = File.CreateText(strViewStateKey);
sw.Write(writer.ToString());
sw.Close();      

LoadPageStateFromPersistenceMedium:

string ViewStateFile = System.IO.Path.Combine(Server.MapPath(GetConfigInformation()), Request.Form["__VIEWSTATE_KEY"]);
LosFormatter los = new LosFormatter();
StreamReader reader= File.OpenText(ViewStateFile);
string viewStateString = reader.ReadToEnd();
reader.Close();
obj = los.Deserialize(viewStateString);

Cleanup Routine:

int i = 0;
CleanUpInfo cui = (CleanUpInfo)obj;
string strDir = cui.Dir;
double dblTimeOut = -cui.TimeOut;
DirectoryInfo di = new System.IO.DirectoryInfo(strDir);
FileSystemInfo[] fileInfo;
fileInfo = di.GetFileSystemInfos();
for(i = 0 ; i < fileInfo.Length; i++)
{
            try
            {
                        if ((fileInfo[i].CreationTime < (DateTime.Now.AddSeconds(dblTimeOut))&&
                                    (fileInfo[i].Name != gErrorName)))
                        {
                                    fileInfo[i].Delete();
                        }
            }
            catch(System.UnauthorizedAccessException uaeExc)
            {
                        LogError(uaeExc);
            }
            finally
            {
            }
}

private static void LogError(System.UnauthorizedAccessException uaeExc)
{
            LogError((System.Exception)uaeExc);
}

private static void LogError(System.Exception sysExc)
{
            string FileDir = GetConfigInformation();
            string strErrorLog = gErrorName;
            string strFileName = System.IO.Path.Combine(FileDir, strErrorLog);
            StreamWriter sw = new StreamWriter(strFileName, true);
            sw.WriteLine("Time: " + DateTime.Now.ToString() + ", Exception message: " + sysExc.Message.ToString());
            sw.Close();
            sw = null;
}

No Comments