The Engage Weblog

Brian Dukes
Brian Dukes has been working with Engage professionally since 2006, but has been writing code since around 1998. Brian is very passionate about writing code that is easily maintainable, and helping others to do the same. He has been a leader in the DotNetNuke Community, and can often be found speaking at conferences and helping others on twitter, github, and stackoverflow. DNN recognized his community efforts by awarding him the DNN MVP in 2012. Outside of work, Brian spends time with his family, serves Jesus at City Lights Church, as well as supporting social justice, fair trade, local, seasonable food, and international adoption.

Announcing Engage: Employment 1.3

by bdukes on Friday, February 22, 2008 9:01 AM
We at Engage Software have just released the latest update to our DotNetNuke Jobs Listing module, Engage: Employment, version 1.3.  This is a module you can use on your company's DNN site to list the job openings you have available at your various locations, and accept and sort applications and applicants.

In this version we have made significant enhancements to searching both within the module and through DNN.  Searches return more relevant results and are now marked to show why they are relevant.  The module is also indexed by DNN's search indexer now, which incidentally also allows for the module to be syndicated...

DotNetNuke and Browser-Independent Default Buttons

by bdukes on Friday, February 22, 2008 8:57 AM
Have you ever used the DefaultButton property on an ASP.NET Panel, only to find that it doesn't work in Firefox? Here's an easy way to use DotNetNuke's ClientAPI to acheive the same result for more than just IE.

Navigating With Environment Variables

by bdukes on Tuesday, January 29, 2008 12:44 PM
As a developer, and specifically as a DotNetNuke developer, there are a number of directories that I have to navigate to regularly.  In particular with DotNetNuke, I'm going to C:\inetpub\wwwroot\DotNetNuke\Website\DesktopModules quite a bit.  So, instead of having to try to type that in all the time, or navigate through the folder structure, I've defined an environment variable "dm" that is defined as that path to my Desktop Modules folder.  I can just type %dm% into an explorer prompt and be there without any hassle.  I've also setup a %wwwroot% shortcut, though it gets used much less often.  It's a lot like keeping a shortcut around in your dock/quick launch toolbar, but you can also use it in dialogs.  Hopefully this can help you trim off a few more seconds/minutes of monotony throughout your day.


Engage: Employment 1.2 has been released!

by bdukes on Wednesday, January 9, 2008 2:44 PM
We have released a major update for Engage: Employment, our DNN job listing module.  In version 1.2, we have added a number of new features and fixed all known bugs from version 1.1.

The most exciting new feature for Employment is the addition of Job Groups, which will allow much more customization and flexibility when using the module.  You can now assign jobs into job groups, and then set up various modules to display and edit specific job groups.  Before now, there was no way to segregate your jobs, every module always showed every job.  Now, you can separate jobs between locations or categories, or any way that you want.  In addition, you can also assign different security permissions to each module to better control who gets to create and update various job listings on your site.

Once you upgrade, you can add the Engage: Employment Job Group Admin module onto a page, and create the groups that you need...

Getting the current PortalId outside of PortalModuleBase

by bdukes on Friday, December 14, 2007 12:56 PM

It's occasionally tricky/troublesome to pass the current Portald from your DotNetNuke control that inherits PortalModuleBase so that it can be used in your business object logic. A trick that I learned looking at another developer's code recently is to get the current PortalId from PortalController.GetCurrentPortalSettings().PortalId. CurrentPortalSettings is set for every request, so it is always the value that you are looking for.

Hope it helps,

Compiling against an older version of DotNetNuke

by bdukes on Friday, December 14, 2007 12:49 PM

I tend to run one of the latest versions of DotNetNuke for my development website, however I still want to compile against an older version so that my assemblies are compatible with the older versions.  So, I create a folder outside of my website (C:\Assemblies) with a directory for each version of DNN (and the Ajax Control Toolkit) that I might want to target.  I fill each directory with the contents of the bin folder from the DNN install (or Ajax Control Toolkit website), and then set a resource path in my project that points to that specific directory.  Voila, running 4.7.0, compiling against 4.5.1.

You'll need to make sure that your project doesn't set the Copy Local property on each reference, since that'll copy the old assembly over the new assembly and break your website.

Hope it helps,

DataTable Visualizer Failure

by bdukes on Tuesday, December 4, 2007 8:56 AM
Best practices for developing DotNetNuke modules dictates that we use the development.config as our web.config, which includes running our development sites under Medium Trust.  This is necessary so that we don't inadvertently introduce code that requires Full Trust into our module and thereby restrict it to customers running in Medium Trust.

However, while in Medium Trust, certain data visualizers in Visual Studio don't work (namely, the DataTable and DataSet visualizers).  You'll see a message like "The application you are debugging has insufficient privileges to allow the use of custom visualizers. Please see the documentation for the list of required privileges."  I've been occasionally frustrated for a number of months because I couldn't figure out why Visual Studio was barking at me when all I wanted to do was use their built-in visualizer.  Finally, I found this forum post and saw the root of the problem.  So, now I know, if I need to debug...

Engage: Rotator 1.1.2 Released

by bdukes on Monday, November 12, 2007 1:44 PM

We have just released a minor update to Engage: Rotator, our content rotating module for DotNetNuke.  This fixes issues some folks were seeing where content would "jump" a bit when it was rotating.  If you don't already have it, pick up a copy from our Buy Now page on Engage Modules.

Engage: Employment Version 1.1.2 Released

by bdukes on Wednesday, November 7, 2007 12:14 PM

Version 1.1.2 of Engage: Employment has been released to the web.  It is currently available from, and will be available from SnowCovered before too long.  See the Downloads page of for instructions on how to get access to the new version there if you have purchased from another website.

Verison 1.1.2 is a minor release which addresses an issue with email validation when applying for jobs.

Tulsa Tech Fest 2007 - Learnings

by bdukes on Friday, October 26, 2007 2:17 PM
Last weekend most of us from Engage went down to enjoy the Tulsa Tech Fest.  While the individual sessions were hit or miss, the keynotes were excellent and got us all excited to start using Silverlight, and we all definitely had fun together.

One of the topics in which I have been becoming more and more interested is the concept of Test Driven Development (TDD) and the Model View Controller\Presenter (MVC\MVP) frameworks that enable it.  I attended a few sessions on related topics, and was disappointed to learn that there seems to be little opportunity to use MVC (and, specifically, the new MVC Framework that Microsoft is developing) in DotNetNuke development.  But, I did take away some of the more general principles that make these patterns and practices useful, and hope to continue being able to integrate...