<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://life.billknaus.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>BKdotNET - Bill Knaus&amp;#39;s Dev Blog</title><link>http://life.billknaus.com/blogs/dotnetnuke/default.aspx</link><description>Better solutions through smarter code.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP2 (Build: 20611.960)</generator><item><title>Blog Re-birth</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2009/01/07/blog-re-birth.aspx</link><pubDate>Wed, 07 Jan 2009 18:06:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:966</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=966</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2009/01/07/blog-re-birth.aspx#comments</comments><description>&lt;p&gt;My blog has gotten... stale.&amp;nbsp; Since my last post, I did a lot of good stuff at JPMorgan Chase programming wise... then moved on to Stanley Associates up in Dumfries for a year which showed promise at first, and then... not-so-much... and now I have my four mile commute back at a young defense contractor called &lt;a class="" title="ACGS" href="http://www.acgsworld.com/" target="_blank"&gt;ACGS&lt;/a&gt;, headquartered here in Fredericksburg.&amp;nbsp; There are a lot of refreshing new challenges here... challenges I look forward to blogging about from a technical perspective.&amp;nbsp; Most of the challenges center around working with GIS, creating/modifying GIS-driven apps, and working with video in a new and innovative way.&amp;nbsp; My hope&amp;nbsp;is that this isn&amp;#39;t the last post you&amp;#39;ll see from me on my geek blog for the next two years, and that this particular blog will start to really take off.&lt;/p&gt;
&lt;p&gt;More soon.&lt;/p&gt;&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=966" width="1" height="1"&gt;</description></item><item><title>Separate your documentation to maintain system autonomy</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/09/08/Separate-your-documentation-to-maintain-system-autonomy.aspx</link><pubDate>Fri, 08 Sep 2006 21:04:05 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:418</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=418</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/09/08/Separate-your-documentation-to-maintain-system-autonomy.aspx#comments</comments><description>Want to really know when everything went horribly wrong and you ended up tightly coupling something that was supposed to be modular or service oriented? Take a look at your documentation. More and more as I have been digging through our team's archives...(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/09/08/Separate-your-documentation-to-maintain-system-autonomy.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=418" width="1" height="1"&gt;</description></item><item><title>Communication is essential</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/30/Communication-is-essential.aspx</link><pubDate>Wed, 30 Aug 2006 20:28:12 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:403</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=403</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/30/Communication-is-essential.aspx#comments</comments><description>We are human beings. What makes us the intelligent creatures of the earth is our ability to not just communicate, but to communicate complex thoughts and ideas. It comes naturally to us to want to communicate and we learn to communicate at a very young...(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/30/Communication-is-essential.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=403" width="1" height="1"&gt;</description></item><item><title>Performance Monitoring ASP.NET apps - the art of the insane</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/21/Performance-Monitoring-ASP.NET-apps-_2D00_-the-art-of-the-insane.aspx</link><pubDate>Tue, 22 Aug 2006 03:57:47 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:394</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=394</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/21/Performance-Monitoring-ASP.NET-apps-_2D00_-the-art-of-the-insane.aspx#comments</comments><description>So Microsoft professes that all these fabulous counters in .NET that are available to the Performance Monitor tool provide a good level of insight... well bah! bah! I say. Consider a multi-tier environment with multiple approaches to remoting (.NET Remoting...(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/21/Performance-Monitoring-ASP.NET-apps-_2D00_-the-art-of-the-insane.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=394" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/.NET+Framework+1.1/default.aspx">.NET Framework 1.1</category></item><item><title>The FBI's Virtual Case File Failure</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/18/The-FBI_2700_s-Virtual-Case-File-Failure.aspx</link><pubDate>Fri, 18 Aug 2006 15:15:36 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:378</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=378</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/18/The-FBI_2700_s-Virtual-Case-File-Failure.aspx#comments</comments><description>Visiting the WashingtonPost.com today, I came across an article titled "The FBI's Upgrade That Wasn't". Working in Washington a couple years ago, and working in government at the time (not the FBI), I had certainly heard about the "Virtual Case File"...(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/18/The-FBI_2700_s-Virtual-Case-File-Failure.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=378" width="1" height="1"&gt;</description></item><item><title>Unlocking the Master Page mystery within CommunityServer</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/16/Unlocking-the-Master-Page-mystery-within-CommunityServer.aspx</link><pubDate>Wed, 16 Aug 2006 06:25:46 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:377</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=377</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/16/Unlocking-the-Master-Page-mystery-within-CommunityServer.aspx#comments</comments><description>I'm spending some time learning how CommunityServer implements master pages. Since they want to be backwards compatible with ASP.NET 1.1, they haven't adopted the ASP.NET 2.0 Master Pages. Instead, they've taken on a piece of community work from "MetaBuilders...(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/16/Unlocking-the-Master-Page-mystery-within-CommunityServer.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=377" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/ASP.NET+2.0/default.aspx">ASP.NET 2.0</category><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/CommunityServer/default.aspx">CommunityServer</category></item><item><title>Windows Live Writer (beta) - A cool bloggin' tool</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/15/Windows-Live-Writer-_2800_beta_2900_-_2D00_-A-cool-bloggin_2700_-tool.aspx</link><pubDate>Tue, 15 Aug 2006 14:33:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:376</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=376</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/15/Windows-Live-Writer-_2800_beta_2900_-_2D00_-A-cool-bloggin_2700_-tool.aspx#comments</comments><description>One of the reasons why I find it difficult to spend the time to write a blog entry is the eventual &amp;quot;timeout&amp;quot; while I&amp;#39;m typing the thing up. I&amp;#39;ve had it happen before... entering the blog on the web form and spend 45 minutes writing something...(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/08/15/Windows-Live-Writer-_2800_beta_2900_-_2D00_-A-cool-bloggin_2700_-tool.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=376" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/CommunityServer/default.aspx">CommunityServer</category></item><item><title>Day 4 configuring Microsoft's Customer Care Framework 2005</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/06/21/CCF-Day-4.aspx</link><pubDate>Tue, 20 Jun 2006 23:49:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:354</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=354</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/06/21/CCF-Day-4.aspx#comments</comments><description>My Customer Care Framework pilot setup experience continues... today's problems - the trials and tribulations of authorization and authentication with Internet Information Server 6... ...(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/06/21/CCF-Day-4.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=354" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/Customer+Care+Framework+2005/default.aspx">Customer Care Framework 2005</category></item><item><title>Day 3 configuring Microsoft's Customer Care Framework</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/06/19/CCF-Day-3.aspx</link><pubDate>Mon, 19 Jun 2006 18:33:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:352</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=352</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/06/19/CCF-Day-3.aspx#comments</comments><description>Its Day 3 of my experience installing Microsoft's Customer Care Framework 2005 demo or pilot installation, and it is a lengthy task to take on from scratch......(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/06/19/CCF-Day-3.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=352" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/Customer+Care+Framework+2005/default.aspx">Customer Care Framework 2005</category></item><item><title>Some useful Virtual Server setup and optimization tips</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/06/15/351.aspx</link><pubDate>Thu, 15 Jun 2006 21:26:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:351</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=351</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/06/15/351.aspx#comments</comments><description>I saw a WebCast today from TechEd in Boston given by Martin Granell. At the end of the web cast we received the URL to his blog to eventually get code from the session. Visiting Martin's blog uncovered more than just some cool info on Grandmothers and...(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/06/15/351.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=351" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/Development+Environment/default.aspx">Development Environment</category></item><item><title>Microsoft does it again - ObjectDataSource - useful to a point - or is it?</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/02/20/234.aspx</link><pubDate>Mon, 20 Feb 2006 15:16:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:234</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=234</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/02/20/234.aspx#comments</comments><description>Has Microsoft stiffed experienced developers with the ObjectDataSource server control in ASP.NET 2.0?  Or is the ObjectDataSource server control simply the "starter kit" - only without the source code?...(&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/archive/2006/02/20/234.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=234" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/ASP.NET+2.0+Dev/default.aspx">ASP.NET 2.0 Dev</category></item><item><title>Gotchas with the Copy Database wizard in SQL 2005</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/01/27/232.aspx</link><pubDate>Fri, 27 Jan 2006 15:19:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:232</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=232</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/01/27/232.aspx#comments</comments><description>&lt;P&gt;Yesterday I needed to copy a database from my local machine to one of our development servers... both the server and my local pc are running SQL Server 2005 Dev.&lt;/P&gt;
&lt;P&gt;My first thought was to simply detach my database from my local, copy to the server, and then reattach on the server.&amp;nbsp; As I right-clicked on the database, the last menu item caught my eye... "Copy Database..."&amp;nbsp; I decided to see what this would do for me and "click" I began what started out to be a pretty cool journey...&lt;/P&gt;
&lt;P&gt;The Copy Database wizard allows you to do the copy by the "detatch and attach" method (which I was willing to do by hand) or using the SQL Management Object method, which I wanted to avoid... (I wasn't in the mood).&lt;/P&gt;
&lt;P&gt;So I go through the wizard just fine - some of the things I had to do to actually make it work....&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;These were both relatively "virgin" installs of SQL Server 05 Dev.&amp;nbsp; So the first obstacle I ran into was Microsoft's new security initiative: Install with minimal risk exposure.&amp;nbsp; In other words - I had to turn on Named Pipes and TCP/IP - on both servers. 
&lt;LI&gt;The account that the SQL Agent service was running under on my destination server had to be running under an account that had access to a file share to the database file on the source server.&amp;nbsp; Now-&amp;nbsp; this isn't just the proxy account you can configure in SQL Server... this is the actual account the service runs as.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Now - at this point - everything transferred over beautifully - it even created the server login for my database... at least I had thought.&lt;/P&gt;
&lt;P&gt;So the next thing&amp;nbsp;I encountered were reports that no one was able to log in to the database at its new location.&amp;nbsp; During the copy process, it might create the login, it might maintain the integrity of your database... but it doesn't link the server login to the database user.&amp;nbsp; In fact - it made it quite impossible because now my database user is configured "WITHOUT LOGIN" and I can't change it.&amp;nbsp; I unwire some of the dependencies that would allow me to drop the user - drop it - and recreate it for my login.&lt;/P&gt;
&lt;P&gt;But my problems don't end there - people still are not able to use the account - final resort - I reset the password.&amp;nbsp; voila.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Now - for this last part - is that all I had to do was change the password?&amp;nbsp; Did I have to go through dropping the account?&amp;nbsp; I don't know.&amp;nbsp; But doing all of&amp;nbsp;this worked.&amp;nbsp; If you have a different experience - I'd be interested in hearing about it.&lt;/P&gt;&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=232" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/ASP.NET+2.0+Dev/default.aspx">ASP.NET 2.0 Dev</category></item><item><title>DotNetNuke ClientAPI and Microsoft's Atlas</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/01/27/231.aspx</link><pubDate>Fri, 27 Jan 2006 06:13:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:231</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=231</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/01/27/231.aspx#comments</comments><description>&lt;P&gt;Jon Henning, the lead for the &lt;A href="http://www.dotnetnuke.com/Default.aspx?tabid=851"&gt;DNN Core Team ClientAPI team &lt;/A&gt;and creator of the SOLPARTMENU featured in DNN, provided some thoughts on the future of the DotNetNuke ClientAPI and Microsoft's Atlas in his blog.&amp;nbsp; &lt;A href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060119AtlasNK/manifest.xml"&gt;Having seen a recent video&lt;/A&gt; from &lt;A href="http://msdn.microsoft.com/"&gt;MSDN&lt;/A&gt; on Atlas, due out sometime this year, there's a lot of potential for creating a richer user experience on top of DNN as this year unfolds.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.dotnetnuke.com/Community/Blogs/tabid/825/EntryID/49/Default.aspx"&gt;Here are his thoughts.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20060119AtlasNK/manifest.xml"&gt;Here is the video/demo on Atlas on MSDN.&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://atlas.asp.net/"&gt;And finally - the Atlas web site.&lt;/A&gt;&lt;/P&gt;&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=231" width="1" height="1"&gt;</description></item><item><title>DotNetNuke's IUpgradeable interface for module controllers...</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/01/27/230.aspx</link><pubDate>Fri, 27 Jan 2006 05:45:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:230</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=230</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/01/27/230.aspx#comments</comments><description>&lt;P&gt;&lt;STRONG&gt;I was going through the &lt;A href="http://forums.asp.net/90/ShowForum.aspx"&gt;ASP.NET Forums for DotNetNuke&lt;/A&gt; and came across this post from "Sponge_Bob".&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;EM&gt;Is there anyway that I could run my own custom code on installation of my own PA's. I have a Module the need to be able to check and see if a certain Dll file is installed on the server before installing. Also I need the install to be able to check the version of the Dll file on the server an make certain the it is of the required version. Finally if the Dll not of the required version I want to point the person installing the PA to the place where to get the latest version of the install.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;I have the option here to use Code (Preferred) or Sql to accomplish this task as I can make it so the required Dll I need to check for has its version entered into the database as it will be originally installed as a skin object.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;It would be really sweet if Dnn could check the version of a Dll file before overwriting it with a dll file from a PA to make certain the it is not installing a Dll File of a lesser version. I am more that willing to write the code to accomplish this if the core team is willing to implement it.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;&lt;STRONG&gt;So - I took a few minutes to help "Sponge_Bob" out.&amp;nbsp; Here's my response...&lt;/STRONG&gt;&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;I have to answer a&amp;nbsp;question from Sponge_Bob.&amp;nbsp; Dig yer username.&lt;/P&gt;
&lt;P&gt;DotNetNuke provides an interface called IUpgradeable.&amp;nbsp; The interface is implemented on your controller class for you module, similar to the way IPortable and ISearchable are implemented.&amp;nbsp; There's very little written about this interface, however.&amp;nbsp; The interface contract contains one method definition - &lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;Function&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt; UpgradeModule(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;FONT size=2&gt; Version &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;FONT size=2&gt;) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000 size=3&gt;So digging a little deeper...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The&amp;nbsp;the lastest version of the Private Assembly Installer (V3)&amp;nbsp;will check to see if your BusinessController class supports the IUpgradeable interface.&amp;nbsp; If it does support it, it will iterate through an ArrayList of versions and call your UpgradeModule implementation for each version.&lt;/P&gt;
&lt;P&gt;So - similar to the way DNN does version control - you can handle each incremental upgrade... a nice litte switch / case statement on the version string sent in to your method.&lt;/P&gt;
&lt;P&gt;Now if a needed DLL is not there - you could always throw an error... OR - use your string return to add an error to the module install... (that would be the kindler, gentler approach).&amp;nbsp; Use HTML within&amp;nbsp;the string&amp;nbsp;to color the text&amp;nbsp;red so it stands out.&amp;nbsp; Well - you should always return a string at least letting the user know that each upgrade was successful.&amp;nbsp; Any string you return will be added to the module install / parsing results.&lt;/P&gt;
&lt;P&gt;Seeing that this is done during install of your module or module upgrade - I wouldn't recommend putting any code in here to check for latest version or anything like that.&amp;nbsp; However, what I would recommend is creating a separate edit control for "Check for New Version" which can do that.&amp;nbsp; Unless it is mission critical to push latest versions (i.e. OS Security Patches, Virus Software) I personally prefer choosing an option like that.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=230" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/DNN+Framework/default.aspx">DNN Framework</category><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/DNN+Forum+Answers/default.aspx">DNN Forum Answers</category><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/DNN+Module+Dev/default.aspx">DNN Module Dev</category></item><item><title>Considerations for Creating a Custom DotNetNuke Install</title><link>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/01/26/227.aspx</link><pubDate>Fri, 27 Jan 2006 03:17:00 GMT</pubDate><guid isPermaLink="false">3ae3e35c-4ec5-484a-ad5a-2ce78d216578:227</guid><dc:creator>BillKnaus</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://life.billknaus.com/blogs/dotnetnuke/rsscomments.aspx?PostID=227</wfw:commentRss><comments>http://life.billknaus.com/blogs/dotnetnuke/archive/2006/01/26/227.aspx#comments</comments><description>&lt;P&gt;I've just finished an article on how to customize the DotNetNuke installation package.&amp;nbsp; I spent a few hours today digging around the DNN framework looking at how DNN does installs, how portal and host templates work, and how to specify which modules need to be installed... as well as how to not install some of the basic dnn modules.&amp;nbsp; The more I dig around inside the framework, the more impressed I become with DNN (which says a lot since I've been impressed with DNN for quite some time).&amp;nbsp; A lot of times when looking through other people's code, specifically some of the open source stuff out there, you get to a point and say - "ah - they're going to regret that they did that".&amp;nbsp; I've been saying a lot of the opposite - "yeah - that makes sense" or "jeez, thats how I would have done it."&lt;/P&gt;
&lt;P&gt;In this case, I was setting up a shared DNN development environment and realized that I hadn't "sanitized" my DNN 4 install yet... I ended up on a journey that has me dreaming about host templates, a common module set for all of our install points, and... and... our own portal that shows up after install with our own skin.&amp;nbsp; Nice.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/articles/Create_Custom_DotNetNuke_Install.aspx"&gt;Take a read.&lt;/A&gt;&amp;nbsp; It looks pretty lengthy - but i try to make it an easy read.&amp;nbsp; If anything - especially for those developers visiting from work - you can get an idea of the capabilities this framework provides... and the power beneath your fingertips.&lt;/P&gt;
&lt;P&gt;&lt;a href="http://life.billknaus.com/blogs/dotnetnuke/articles/Create_Custom_DotNetNuke_Install.aspx"&gt;&amp;gt;&amp;gt; Article &amp;lt;&amp;lt;&lt;/A&gt;&lt;/P&gt;&lt;img src="http://life.billknaus.com/aggbug.aspx?PostID=227" width="1" height="1"&gt;</description><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/DNN+Framework/default.aspx">DNN Framework</category><category domain="http://life.billknaus.com/blogs/dotnetnuke/archive/tags/DNN+Module+Dev/default.aspx">DNN Module Dev</category></item></channel></rss>