If you have a DotNetNuke website that has been around for a while, you likely have a large number of pages on the site. Many of those pages likely have individual Skins (themes) applied to them. When there is a skin defined at the Page level in DNN, that setting overrides the skin that is defined at the website level, meaning, if you change the skin at the Website level, it would not change the look and feel of any of the pages with their own skins defined.
Well, the 4.8.0 release of DotNetNuke came out today, and some people are having some problems, so I figured I'd take the time to put together what I hope will be a short post with my professional opinion of how you should handle DNN upgrades. Here are some questions and thoughts you should have before you upgrade. Does the new release offer you features that you absolutely need? If you answer NO to this question, then step away, go work on something else.
If you answered yes then you need to start thinking about how you will upgrade.
How are you going to upgrade? My advised method would be to do the following.
backup your site (files) and your database.
restore these backups in a test environment, with a test URL.
upgrade the test environment (see a previous post I made about upgrade steps)
TEST TEST TEST, see what works, make sure nothing breaks. Some items that might break during an upgrade include
Third Party Modules
Core DNN Functionality
If your testing goes well, repeat Step 1 on your Production environment again.
Upgrade your production site
If all is well, you are golden, if something goes wrong with the Production upgrade Rollback to the backup you made in step 5 and then analyze what happened before you proceed
What are the most important steps above? #1 #1 #1
DNN has frequent releases, as large as the application is major releases do tend to cause problems, that is why there are frequent minor follow up releases. I'm a HUGE DNN Fan/user/developer/core team member so don't think I am knocking DNN in the least bit, but I tell everyone of my clients, NEVER upgrade a production site without testing it out first. I even recommend doing the above steps when you are upgrading or installing a new module, it is far better to be safe than to be sorry.
It really amazes me how many people see a new version of DNN available, immediately download it and upgrade a production environment, then complain when something breaks. You have to remember there are an infinite number of ways that DNN can be configured, from custom modules, database installs, to hosting environment peculiarities, many things that the DNN core team and beta testers couldn't possibly test for before a release. That is why you must do some testing yourself before you pull the trigger on any production site changes.
DotNetNuke 4.8.0 dropped today! Get it now from the Downloads page.
Read more about changes to...
While working on the Engage: Publish module's latest round of enhancements I started having problems working with my development machine at home. The machine here is a Vista Ultimate machine that I've blogged about getting configured in the past. The issue I had been stumbling over for a few weeks, though only researched solutions last night, had to do with ASP.NET Ajax. DNN ships with an older version of the System.Web.Extensions DLL. Which appears to work fine on my machine at work (in which I probably also had the AJAX framework installed). At home though on Vista whenever I tried to go to one of my test pages that had Publish installed I would get an error about the Scriptmanager must come before the Updatepanel control.
Well fine and dandy, but I'm positive that we had the codecheck in place for this. It ends up that with Vista I was having problems with that old version of System.web.extensions. The fix was rather easy, I simple downloaded the .Net 3.5 framework and installed it. Now it appears that all is well once again in Vistaland. If you need to download the 3.5 framework get it here from MS.
Now I have to decide, do I install VS2008 on my home machine, or do I spend some money and upgrade my machine (build a new one), then install 2k8 on that..... Decisions decisions.
Here's the collection of posts I've been making about OpenForce07 here in Las Vegas. I'll update the list on Thursday as well
OpenForce07 Wednesday AfternoonOpenForce07 Wednesday, the time has come and gone, My Session
OpenForce07 Wednesday Morning
OpenForce07 Tuesday Afternoon: DNN Development Security
OpenForce Tuesday Afternoon:
OpenForce Tuesday: Shaun's Keynote
OpenForce Tuesday Morning: Scott Guthrie's keynote
DotNetNuke 4.6.2 was released today! You can get it from www.dotnetnuke.com
You can see what was fixed in 4.6.1 which was released last week with the link below. I believe, and this is unofficial, the 4.6.2 release contains a quick fix for ModuleSettingsBase
Download it now! I've already upgraded a few sites to 4.6.2 and will be upgrading more sites this week!
DotNetNuke.com has launched a new Beta Testing program for the 4.6 release of DNN. If you've got an account on DotNetNuke.com head to this Beta Testing Program page, if you don't, head on over and register!
Yet again I was headfirst into the Project240z and I missed another DotNetNuke Release! 4.5.5 dropped last week with a few major items fixed that caused probelms in the 4.5.4 release. You can see those issues, as well as other issues from past releases in the Project Issue Tracker
As for the 240Z, good news, I got the car running Saturday, and even drove it around a bit on Sunday!
If you're having problems with your DotNetNuke site, mainly every time the site loads the first time (after the site has been reset), going to the install/underconstruction.htm file, here's a quick tip.
Check the VERSIONS table in your database, we were having an issue with this on a recent test site and when I checked the versions table it was completely empty.
I corrected the problem by adding a Version entry for 4.5.3, which is the DNN version that this particular site was running.
Over the weekend (I missed it because I was working on my car all weekend www.project240z.com) DotNetNuke 4.5.4 dropped, you can get it from www.dotnetnuke.com
You can see a list of changes on the Gemini site at http://support.dotnetnuke.com
I've cleaned up the list a bit and posted it here as well.
Admin / Host Functions Bug DNN-5075 Adding/deleting security roles - notification/date format. Admin / Host Functions Bug DNN-5239 Issue with "required" profile properties. Admin / Host Functions Bug DNN-5433 Redirect after login Admin / Host Functions Bug DNN-5616 Core code should not reference external images... >Admin / Host Functions Bug DNN-5646 last lock-out date incorrect Admin / Host Functions Bug DNN-5765 Sitemap.aspx Including Link to DotNetNuke.com Admin / Host Functions Bug DNN-5614 Page Quota Not Working in Demo Portals Admin / Host Functions Bug DNN-5771 Profile Definition Required Needs to be Tied to Visibility Admin / Host Functions Bug DNN-5715 Install wizard runs when database is missing Admin / Host Functions Bug DNN-5727 Can't delete default home page after installation/yellow screen of death Admin / Host Functions Bug DNN-5803 Save stylesheet in site settings clears selected logo Admin / Host Functions Bug DNN-5855 Upgrade Status Indicator Admin / Host Functions Bug DNN-5787 Account Login module is not visible to logged in users Admin / Host Functions Bug DNN-5847 Add Existing Module no longer allows settings change to original Admin / Host Functions Bug DNN-5862 Module Cache Expiration Admin / Host Functions Enhancement DNN-5805 short circuit check for known account defaults Admin / Host Functions Enhancement DNN-5854 Google Adsense Support Control Panel Bug DNN-1579 Misleading Tooltips General Bug DNN-5754 Profile Property Names that contain spaces raise js errors Installation / Upgrade Bug DNN-5853 *.ZIP Packages should be installed automatically Installation / Upgrade Bug DNN-5605 Password length error string Installation / Upgrade Bug DNN-5606 Possible incorrect description text Localization / ML Bug DNN-5835 typo in manage users localization file Localization / ML Bug DNN-2612 XML Error in Resource Verifier Localization / ML Enhancement DNN-5778 Inconsistent on page help text on the Account Login module Help buttons Performance Bug DNN-5852 Add Tab Hangs on Site with large volume of Pages Performance Task DNN-5714 unneccesary call in BuildDiv method of FieldEditorControl Security Bug DNN-5802 ReturnUrl - Cross Site Request Forgery Vector Security Bug DNN-5829 DNN Membership Preventing Active Directory Login Security Bug DNN-5746 New user registration not working if specific page defined Security Bug DNN-5734 Roles duplicated on "Global Roles" due to list values Security Bug DNN-2593 Custom module permissions not deleted Security New Feature DNN-678 SSL Support Skinning Bug DNN-4590 DNN not rendering link to skins CSS file Skinning Bug DNN-5618 FixImagePath routine trashing APPIMAGEPATH Skinning Bug DNN-5672 Pagingtable class made ineffective by hard-coded styles Templates Bug DNN-5549 CS1010: Newline in constant error after creating new CS module using template UI / Usability Bug DNN-5628 Assignment issue in HelpButtonControl UI / Usability Bug DNN-5708 Wrong CSS class specified for "Manage User Credentials" tab
I'll be updating my sites today! Also, check out the "New Feature" of SSL support in the Core! Sweet!
Henry has put together a video tutorial covering DotNetNuke Membership providers, sort of as a follow up to his original blog post a few months back discussing the topic. His blog post and subsequent forum posts have generated a lot of questions.
If you're looking for how to get started with creating your own DNN membership provider be sure to check it out.
A few years back I was enlightened by Chris Paterra in the ways of using NANT scripts to aid in the packaging of DotNetNuke Modules. Using NANT to package your WAP (web application project) modules within Visual Studio 2005 is a snap, and can save you a LOT of time each time you have to come up with a new release.
Using NANT scripts we are able to create the Private Assembly Installation ZIP file and Source files for Engage: Publish by running a single command from the Command line. With our Publish module this process takes about 23 seconds on average, for our smaller modules such as Engage: F3 the process takes less than 2-3 seconds.
To get started with using NANT scripts in your own development environment you need to download the latest (0.85) release from SourceForge, you can visit the project page at http://sourceforge.net/projects/nant/
Once you've installed NANT on your machine (I install it on my C drive in a c:\nant\ folder) you'll need to add NANT to your system variables path so you can call it from the command line.
To do this:
Right click on My Computer and choose Properties
Go to the Advanced Tab
Find the System Variables section and Modify the Path variable
Add your NANT folder (c:\nant\) to the path, separating entries with the semicolon (;)
Save the settings.
Now I'd recommend adding a .BUILD file to your DNN Module's project/solution. I've provided a sample build file on our Tutorial Page at www.engagemodules.com, you do have to login in order to access the file. The provided sample file is a good start for your project, by opening up the file in VS2k5 you'll see it is a XML document with some basic information about the product name and folder location.
You'll want to find the references to Engage and EngageF3 in the BUILD file and replace them with the name of your module and business name. You can also play around with the include/exclude options in the Fileset node to add or remove certain types of files from your packages. You'll see the two sections in the build file that define which ZIP files to create, one section is called CreateBinZip and one is called CreateSrcZip.
Once you have the BUILD file setup you'll want to check a few more files in your DNN project.
In the .DNN File be sure to set your module version properly and include the SQLDATAPROVIDER files, as well as the necessary DLLs. In the AssemblyInfo.vb (.cs in our case. At Engage as we do 95% of our DNN module development in C#) be sure to setup your DLL information and version information. By setting the version number in the assemblyinfo and .dnn file you can get NANT to include the version number in the package's file name, allowing an easy way to handle upgrades from version to version for your modules.
Once you have all of the files in the solution setup properly you can run the NANT script. To do that bring up a Command Prompt, change directories to your DNN/desktopmodules/ModuleName/ folder. At the command line type "nant" and watch the magic happen.
If everything builds properly the script will create a Package folder in your Module's folder, inside of the Package folder you should find two newly created ZIP files, one labeled Install and one labeled Source.
Technorati Tags: ASP.NET, DotNetNuke, DotNetNuke Tips, Daily Tips, NANT, C#, VB.Net, Module Development, Engage
Welcome back to the DotNetNuke tips! I started doing this over a year ago, though with getting married last fall and working on my Datsun 240Z lately I haven't blogged near as much lately about DNN topics. So here we go, starting up again with my DotNetNuke Tips.
Today's tip follows:
When you're doing testing locally with a backup for a Production Database and Website one of the things you need to be sure to do is change your Portal Alias for your local URL, instead of your production URL. If you don't do this you'll hit the local URL and it will most likely redirect you to the production URL. This can cause a bit of chaos if you don't notice that you're no longer on the local/testing URL and start modifying the production web site.
To change your portal alias you can do the following.
Open your SQL Server management tool; SQL Enterprise Manager, SQL Server Management Studio, or whatever you choose to use.
Browse to your local/test database, open up the PortalAlias table. You can either Modify your existing Alias, or you can add a new Alias to this table. test.myurl.com for example, be sure to setup the proper portal ID if you're adding a new alias and you have a lot of different aliases in there. You might also need to setup the aliases for the child portals as well if you plan on using those.
The next step is crucial. You'll want to reset your website before you try to hit the new alias. You can do that in a couple of ways, I always prefer to open up the web.config file, add a carriage return and hit save. This will cause IIS to reload the site, clearing out the cache and loading the new portal aliases.
Look for more DotNetNuke tips coming soon!Posted from...
Joe Brinkman just announced some major changes for the DotNetNuke Marketplace (http://marketplace.dotnetnuke.com/) Scoot on over to his blog and check them out.
We've been using the Marketplace for Engage: Publish and it's been doing well over there, very easy to get your modules listed and update information.
Some of the new features include
"Easier to get listed
We recently allowed vendors who had passed the review process to begin using the new MarketLister to post their products into the Marketplace. MarketLister allows you to provide all of your product information in a format that streamlines the moderation and posting process. Now your products will be listed in a matter of hours, with fewer listing errors. Gone is the requirement to fill out and submit a bunch of Word documents. No more faxing a Reseller agreement. Now you can just fill out and publish your listing using a straight-forward set of web-forms.Starting immediately, vendors will also be able to list any DotNetNuke related products in the Marketplace. It is no longer a requirement to have your product reviewed first before getting it listed.
Easier to find
With the recent release of DotNetNuke 4.5.1 and 4.5.2 release, we are making it even easier for customers to find and purchase products from the MarketPlace. We will continue to look for new and innovative ways to help link DotNetNuke users with DotNetNuke MarketPlace vendors."
and many more! Get your modules listed now!
EDIT: Originally posted by Shaun Walker in the benefactors forum.....
DotNetNuke 4.5.2 has been released and is available for download from www.dotnetnuke.com here's a list of fixes/changes
- added new DateTime Edit control which can be used in the User Profile ( and other Property Editors ) for collecting date and time information
- modified automatic upgrade processing to force the Database check to happen before the MachineKey check. This will help prevent a fringe situation where the application would think it was a new install and would overwrite the MachineKeys.
- added new Request Filter feature which allows blocking based on IP as well as a number of other server variables
- removed alert box which would be displayed when callback fails during populate on demand from the DNNMenu control. This would only happen in situations where the users session had timed out and they hovered their mouse pointer over the action menu in their browser
- added UpdatePanelUpdateModeType AJAX enhancment. This was necessary in order to set the UpdatePanel.UpdateMode to Conditional - which is now the default ( it was mistakenly set to All in the previous version ).
- Added RegisterPostBackControl AJAX enhancement which allows for exclusions of controls from UpdatePanel async processing. This was implemented in the UrlControl to prevent partial rending when uploading files ( stream operations do not work with partial rendering ).
- Added WrapUpdatePanelControl AJAX enhancement which allows you to easily take any control on the page and have it wrapped by an UpdatePanel.
- Added CreateUpdateProgressControl AJAX enhancement which creates an update progress control. This was implemented in Skin.vb so that the update progess control is automatically injected by the framework for modules which support partial rendering.
- when installing dynamic modules, there was an issue identified when trying to write to the web.config file. The issue was caused in situations where the Microsoft Web Admin Tool had added a namespace to the web.config file. The code was modified to ignore the namespace if it exists.
- DNN-5510 fixed Permissions Fill* controller methods which did not load the RoleID value properly and would result in data corruption when the Permission Grid was saved repeatedly.
- created update SQL script to repair permission records which may have been corrupted when using User Level Permissions. This could have only happened if the permissions grid was loaded and saved multiple times when using User level Permissions.
- added SQL script to clean any potential duplicate records from all Permissions tables and then add a unique constraint to preserve referential integrity
- UrlControl overhauled by Mauricio Marquez so that it works in dynamic loading and postback scenarios. A problem introduced in DNN 4.5 where the UrlControl would always display a type selector, even if there was only one type option available, was also resolved.
- modified logic in Module Definitions and Host Settings so that when the application is running on localhost ( Request.IsLocal ) it does not check for upgrades. This prevents broken image links when developers are working local without an active Internet connection.
- added more defensive coding in Module Output Caching to deal with situations where no content is retrieved from the cache for a module
- in Page Settings, moved the Hidden? option to Basic Settings and changed its name to Include In Menu? for improved usability
- in Site Settings in the Usability section, added an option so that the administrator can specify Control Panel Security for either Page Editors or Module Editors. Setting the option to Page Editors provides the same Control Panel behavior which existed prior to the enhancement in this area in 4.5.
- in Portal Template Export, removed nodes which would cause it not to validate against the schema on import. The offending nodes were related to properties added to the...
Check out the latest release of DotNetNuke version 4.4.1 that was made public recently. Here's a list of the changelog from http://support.DotNetNuke.com/ Admin / Host Functions Bug DNN-4234 Host/SuperUser Accounts/User Settings/User Accounts Settings does not work period Admin / Host Functions Bug DNN-4231 Portal aliases aren't being changed to lowercase when entering into the database Admin / Host Functions Bug DNN-4264 Deleting last element in a list Admin / Host Functions Bug DNN-4285 Deleting the "registered users" profile assigned to a user Admin / Host Functions Bug DNN-4333 Adding fields to Superuser accounts/manage profile properties does not work at all Admin / Host Functions Bug DNN-4340 Profile Property fields, position gets lost Admin / Host Functions Bug DNN-4412 Cannot delete User Account module and visibly overwrites modules Admin / Host Functions Bug DNN-1863 Logic error displaying cells of skins thumbnails in Admin>Skins Admin / Host Functions Bug DNN-1870 ViewState problem w/Visibility container control Admin / Host Functions Bug DNN-3980 Child Lists cannot be selected Admin / Host Functions Bug DNN-4017 Buggy list entry Admin / Host Functions Bug DNN-4083 After deleting a user, screen does not return to previous "display mode" Admin / Host Functions Bug DNN-1258 After Delete Portal Alias object referenc not set Admin / Host Functions Bug DNN-4664 Email Notifications being sent to wrong email address (could have other implications). Admin / Host Functions Bug DNN-4683 the "Install New Features" hyperlink button does not work Admin / Host Functions Bug DNN-4711 Modules no longer pick up inherited page permissions automatically. Admin / Host Functions Bug DNN-4630 Admin cannot change password if account locked out Admin / Host Functions Bug DNN-4695 Problem when exporting/importing portal in 4.4.0 Admin / Host Functions Bug DNN-4724 When adding portal alias, submit button shows as "Update" Admin / Host Functions Bug DNN-4735 Unable to add SkinObject definition manually Admin / Host Functions Bug DNN-4742 Copy page issue with Heavy Cacheing Admin / Host Functions Bug DNN-4752 Reset Password help is not shown Admin / Host Functions Bug DNN-4764 Host Specified Skin/Container Default Settings Not Applied Admin / Host Functions Bug DNN-4766 Portal Alias field might not get updated correctly Admin / Host Functions Bug DNN-4767 Deleting portals may cause crash (after following steps) Admin / Host Functions Bug DNN-4789 Users can be given the option to log in twice. Admin / Host Functions Bug DNN-4826 The tickbox next to the authorize user/unauthorize user button appears misleading and unnecessary. Admin / Host Functions Bug DNN-4854 UserAccounts lists strange settings Admin / Host Functions Bug DNN-4745 Excluded File Paths and Mime Types should apply to the Whitespace filter Admin / Host Functions Bug DNN-1204 Cannot delete a Portal that has no Alias Admin / Host Functions Bug DNN-4862 Check Box "Enable SSL" is ignored by DotNetNuke.Services.Mail.SendMail Admin / Host Functions Bug DNN-4883 Clicking on Unauthorized or Online gives a list of all users. Admin / Host Functions Bug DNN-2206 DeleteUserRole throws System.NullReferenceException if user is not in role Admin / Host Functions Bug DNN-1428 FormatEmail Error Admin / Host Functions Bug DNN-1615 User...
I gave a presentation last night to the C# User's Group here in St. Louis on how to get started with C# module development in DotNetNuke. I said I'd put together a blog post with some resources, so here it is.
How to develop and debug DNN with Windows Vista
How to Upgrade a DotNetNuke Instance
Using the DNN WAP Module
DotNetNuke 4 Module Development Guide from Michael Washington
Download DotNetNuke from DotNetNuke.com
Here are a few links to sites running on the DotNetNuke platform (The first three sites use versions of the Engage Publish module)
St. Louis Children's...
Last week I got started on getting the DotNetNuke Wiki module into a 4.4.0 source solution, so that I could convert the module to ASP.NET 2.0 and debug it in Visual Studio. Normally this wouldn't be anything out of the ordinary, I setup DotNetNuke solutions for a living, I can do it in my sleep, but I decided I was going to do all of this on my main machine running Windows Vista Ultimate edition.
You would think this might not be too difficult, but it sure was. Here's what I was starting with.
DotNetNuke 4.4.0 Source package, available for download from www.dotnetnuke.com.
Visual Studio 2005 w/ SP1
IIS6 compatibility partially installed.
After multiple failures, and quite a bit of head smashing (on the wall) I gave up for the weekend. I blogged about the troubles, and a little birdie came to the rescue (If you read this birdie and don't mind me mentioning your name let me know)!
The little birdie pointed out the Visual Studio 2005 Service Pack 1 Update for Windows Vista Beta. I believe this update did the trick because after installing the update everything seemed to work!
Here are some of the things I know you have to perform, as well as the update, to get DNN, Vista and VS2k5 to play nicely. I hope I didn't leave anything out.
1. Install IIS7 (found in the control panel, classic view, programs and features, "Turn windows features on or off").
2. Install IIS6 Compatibility, the screenshot below is what my IIS installed features look like
3. Create your web site in IIS, I actually created a new site, not a virtual directory. A benefit of IIS7 on Vista, the ability to create multiple web sites! I just used localhost as the host header, and pointed it to the location of my extracted DNN files.
4. For the Application Pool in IIS I chose the Classic .Net AppPool
5. Under the Authentication section of your IIS web site be sure to enable Windows Authentication
6. Configure the rest of your DotNetNuke installation the normal way. (Setup the proper folder permissions, network service account gets full rights to the web site folder). Setup your web.config file to use the proper connection strings.
7. Open Visual Studio 2005 using the Run As Administrator option if you're using UAC
8. Open up the DotNetNuke.sln file from your extracted files. When you run the site for the first time DNN should run through it's installation procedures, installing the database, extracting a few modules, etc. I did have a problem with the project the first two times I ran it, but on the third try it seemed to install properly. I don't know if it was just a fluke or not the first two times, but all is well now.
9. Now I'm able to run and debug the DotNetNuke 4.4.0 solution on my Windows Vista machine. Hope this helps some of you out in your endeavors.
(All of the screenshots were made utilizing the Snipping tool inside of Windows Vista. Where's snippy? I get to it by clicking on start, and typing SNIP into the search bar, try it out!)
Technorati tags: Visual Studio 2005, VS2005, General Software Development, DotNetNuke, Vista, Daily TipsPosted from...
Just in time for Christmas a new version of DotNetNuke has been released. On it's 4 year anniversary of the first release, DotNetNuke released version 4.4. "On December 24th, 2002, the code which was to become the DotNetNuke web application framework was first released to the community. On the fourth anniversary of this date, DotNetNuke version 4.4.0 - a release with significant performance enhancements - has now been made available for download"If you've never used DotNetNuke before, do yourself a favor and try it out, there are no licensing fees to download it, use it, or even modify it. It's open source, free, and a great way to easily start building a website via an intuitive web based UI. Version 4.4 marks the first ASP.NET 2.0 only release, prior to this release DNN was maintaining two sets of code, one for .Net 1.1 and one for .Net 2.0. 4.4 marks significant improvements in performance over previous versions as this version was heavily tested and tweaked in a full scale performance lab.Here's an edited list of changes from the change log available at http://support.dotnetnuke.com/project/ChangeLog.aspx?PROJID=2Component Issue Type SummaryAdmin / Host Functions Bug Page Head tags are not properly processedAdmin / Host Functions Bug Action Menu with Module Specific Permissions is not displayedAdmin / Host Functions Bug Cannot use icon from module directory in action buttonsAdmin / Host Functions Bug ModuleTitle in multi definition modulesAdmin / Host Functions Enhancement Improve Delete Portal FunctionalityAdmin / Host Functions Enhancement Convert Site Wizard to use .NET Framework classesAdmin / Host Functions New Feature Add Page QuotasAdmin / Host Functions New Feature Add User QuotaAdmin / Host Functions New Feature Improve Portal ManagementAdmin / Host Functions New Feature Add a new Delete Expired Portals actionLocalization / ML Bug Pop-up calendar localized date format bugLocalization / ML Bug Popup calendarLocalization / ML Bug Localized images break when using the "ShowMissingKeys" app setting.Localization / ML Bug Collation issue with Event LogLocalization / ML New Feature Force a specific language for first visitorsPerformance Bug Performance: ClientAPICaps.config cachingPerformance Bug Performance: XmlSerializerPerformance Bug Performance : TabCachePerformance Bug Performance ; Menu providersPerformance Bug Performance: XPathDocument vs XmlDocumentPerformance Bug Performance: Reduce Database CallsPerformance Bug Performance: CBO and ReflectionPerformance Enhancement Imporve Startup performancePerformance Enhancement Implement HTTP compressionSecurity Bug Exception when deleting role groups
If you're looking for some good DNN tips, get registered for TulsaTechFest on Saturday October 14th. It's free!I know I'll be there, I've got two different sessions on DNN scheduled, and there will be 6 total DNN sessions, a full track of it's own!Check out the proposed agenda for more info!For anyone who will be in town I'm hoping to plan a little DotNetNuke dinner gathering somewhere on Friday night. Stay tuned to my blogs for more info!
I didn't come up with this list, just reposting it.Admin/Host FunctionsDNN-3913 - Improved performance of URL Control with a large number of foldersDNN-3911 - Inform User if email to vendor or admin failDNN-3932 - Fixed behavior of User Settings in SuperUser AccountsDNN-3928 - Add ability to disable the Update profile on login functionalityDNN-3868 - Fixed display of Page specific Header info DNN-3867 - Fixed the Portal Template Schema Definition for the file elementDNN-3866 - Fixed AddPortalInfo sproc so users upgrading from 4.0 can add new portalsDNN-3793 - Fixed bug with adding codeSubdirectory node to web.configDNN-3730 - Forced validation of Profile Definitions in case client-side validation doesn't happen (plus added missing keys)DNN-3791 - Private and verified registration no longer redirects but displays confirmation message DNN-3804 - Fail gracefully on Password Update if problems with EmailDNN-3839 - Added ability for Admin to set the default profile VisibilityDNN-3835 - Added ability for Admin to disable/enable ServicesDNN-3834 - Added ability for Admin to enable/disable Profile Visibility DNN-3838 - Added option to suppress the Pager in the Users Grid when not needed (PageSize > TotalRecords)DNN-3748 - Fixed Paging in User Accounts when using a Search option other than usernameDNN-3822 - Suppress Group Header when Profile has no properties in the Category enabld for display DNN-3760 - Breadcrumb Enhancement - Allow use of tab title instead of tab nameDNN-3694 - Added friendly message when duplicate portal alias is added DNN-3419 - Removed some unused resource keysControl PanelDNN-3874 - Change to add custom permissions by default to all roles with EDIT permissions when adding a new module to the pageDALDNN-2913 - Fixed situation where a TextColumn is bound to a null value (now returns "")File ManagerDNN-3865 - Added buffering to downloading of files (in 10K chunks)GeneralDNN-3702 - Fixed case where a Port is specified in SMTP configurationDNN-3743 - In LogController, fixed SupportsEmailNotification and SupportsInternalViewer so they return a valueDNN-2699 - Fixed SiteWizard.ascx to allow debugging if specified in web.configText EditorDNN-3926 - Make sure Action menus are not visible if they are empty (or only have break items)Install/UpgradeDNN-3759 - Fixed localization errors when no portal (eg during Install) LocalizationDNN-3917 - Improved RTL support in Profile EditorDNN-3812 - Added en-us to default languageDNN-1974 - support for longer locale stringsDNN-2612 - Fixed xml error in reource verifier DNN-2268 - Updated Resource Verifier to support asp.net 2 style resx filesDNN-3594 - Languages sorted alphabetically in Languages editor Resource InstallerDNN-3742 - Fixed installation of app_code based modules SearchDNN-2344 - Fixed Indexing when Page has an enddateDNN-3464 - Added validators to Search settingsDNN-2798 - Fixed UpdateSearchItem stored procedure to use nvarchar instead of varcharDNN-1902 - Fixed PageCount check DNN-1891 - Include Common Words setting is now used in GetSearchResultsSecurityDNN-3718 - Added required image to password fields (in Register and Add User)DNN-3964 - Fixed missing code to Log the SuperUser Login event DNN-3747 - Fixed Registration when RequireQuestionandAnswer is selectedDNN-3849 - Add check for empty string in Decrypt method to avoid errors on x64 serversDNN-3883 - Allow all Administrators to unlock each other DNN-3853 - Improve scalability/performance of GetModulePermissionsByModuleID and GetFolderPermissionsByFolderPathDNN-3833 - Added message for unauthorized users when attempting to log in.DNN-3706 - Made ValidationExpression column nvarchar(2000) rather than nvarch(100) DNN-3968 - Created separate temporary and persistent cookie timeoutsSkinningDNN-3984 - The DNNMenuNavigationProvider correctly utilizes the CSSNodeSelectedRoot in all casesDNN-3707 - Fixed skin parsing that extracts the skin components from a full html file. TemplatesDNN-3661 -...
DotNetNuke Daily Tip for 7/19/2006
DotNetNuke comes with a lot of functionality out of the box that people don't even know exists. Once of those items that has been overlooked by many with the latest releases of DotNetNuke is the DNNMenu, part of the ClientAPI Framework that Jon Henning has worked on.
The SolPartMenu is by far the most used menu for DotNetNuke, it's been part of DNN since the early days, and really can be quite powerful in its implementation. It's also been a big beef with a lot of skin designers as getting solpartmenu working just right can be a bit tricky, and torturous at times. I'm actually a fan of the SolPartMenu, but for today's tip I want to point you to a few resources on the DNNMenu.
I recently, as in last night, implemented the DNNMenu for my wedding site I've been putting together the past few days, you can see it implemented at www.horsesandcars.com.
The DNNMenu was created by Jon Henning, the same developer of the Original SolPartMenu. Here's a quote from Jon
“A few people asked me, the author of the Solution Partners Hierarchical Menu Control, why I would develop a competing menu control to my own. The answer is simple. The SolpartMenu is old and carries a lot of baggage with its almost 4 years worth of backwards compatibility. It has been a goal for v2 of the solpartmenu to abstract all of the common logic not specific to the menu into separate js files that could be reused by other controls and applications. This is exactly what the ClientAPI is; an abstraction of logic like positioning, DOM access, XML, etc. The script for the menu should contain only code for the menu, thus making it easier to maintain and enhance. So in essence, the DNNMenu is in a lot of ways the solpartmenu v2.0.”
And some of the features for DNNMenuKeyboard NavigationThe menu can now receives focus as the user tabs through the controls on the page. Once it has focus, you can use the arrow keys to navigate its structure. Pressing enter will invoke the menu item's clickaction.
Populate On DemandThe DNNMenu will support POD in the same manner as the DNNTree control. This provide a nice performance boost for those of you concerned with page sizes. I even had time to make the module actions menu support POD. See chart below for comparisons between each option and other menus.
Mouse In DelayOne of the features of the Solpart menu that was continually asked for was a mouse-in delay. This delay allows for people who are navigating to the sub-menus and accidentally move off the parent some grace period to get it right. The DNNMenu defaults this value to a quarter of a second (.25). I believe this is acceptable, however, for users used to the fast response times of other menus, it may look like the DNNMenu is a little sluggish. Note: At this time there is no way of configuring this property in the skin.
No Hardcoded MarkupProbably the biggest regret I had in the original design of the Solpart menu was the hardcoding of certain tags in the code. This included the NOWRAP attribute added to the menu items, the use of spacer.gif and to obtain the correct spacing, and the worst of all, the hardcoding of the border around the menu items when hovering. None of this hardcoding is present in the DNNMenu. Note: the one exception is the spacer.gif that is used to do the iframe trick. I need a url to point the IFrame to in order to not get the security error when the site uses SSL.
Option to Remove All Use of TablesThe menu supports a property that will completely remove its use of tables. Hopefully this will appease those developers and skinners who think that tableless designs are the way to go. I originally had the UseTables property default to False, but since it was too difficult to keep things lined up across browsers without adding some...
After a long haitus over the past few weeks the DotNetNuke Daily Tips are back! Sometimes you want to put a skinobject in your DotNetNuke Skins that you need to act like a module. Inheriting from PortalModuleBase instead of SkinObjectBase. SkinObjects though don't get loaded like regular modules and due to that you may run into issues where you can't easily access the TabId of the existing page. Here's how to get that information easily.Dim objPortalModule As PortalModuleBase = DotNetNuke.UI.Containers.Container.GetPortalModuleBase(Me)thisTabId = objPortalModule.TabIdPut the above code in your skinobject code and you will now have a PortalModuleBase object that you can use to easily access some of the basic DNN properties you're used to using from PortalModuleBase.The above is VB code, any self respecting C# developer should be able to figure out the appropriate C# code. If not, email me and I'll bill you at my hourly rate ;)Stay tuned for another DotNetNuke Daily Tip coming tomorrow!
What happened to the DotNetNuke Daily Tips?Well, short answer, life got in the way. I've had an extremely busy July so far. I hope ot get a new tip out today, so stay tuned!
DotNetNuke Daily Tip for 6/30/2006
Ever need to make skin file changes and you don't want to go through the process of repackaging your ZIP file and uploading the file to your site? Here's a quick way to make skin file changes without having to go through the package and upload process.
If you develop your skins with the HTML files you can edit the HTML files on the server, they should be located in the /portals/##PORTALID##/skins/##SKINNAME##/ folder. You can directly edit the HTML files. Once you've made these changes go to the admin/skins menu and reparse your skin package.
If you develop your skins using the ASCX file method any changes you make to the ASCX files will be made immediately to the skins on your site so you don't have to reparse the skin package.
Stay tuned for another DotNetNuke Daily Tip coming next week!