DotNetNuke Growing Pains and You, How to Cope 

I have had this blog posting all ready to go now for a good three to four weeks, but have been in deep internal conversation in regards to the posting of the article.  I have decided that more than anything posting this publicly might stop some of the e-mails that I get bombarded with each and every day that start out with "what do I do" or "do you still believe in DNN".

Before I start the post I am NOT in any way, shape, or form pointing fingers or expressing any displeasure at the platform or any of the members involved.  I am still a DotNetNuke core team member, I believe fully in the platform, and I will continue to adopt and recommend usage of the platform for the foreseeable future.  The point of this post is very simple, to talk about what has been going on in the DotNetNuke community and my opinions on how to manage expectations and cope with the situation.  Please remember the disclaimer that is posted at the bottom of this blog, these thoughts are mine and mine alone.

Read more...

Posted by Mitchel on Tuesday, June 22, 2010

DNN 5.2.x Changes to Module Create Process 

In a few of the most recent versions of DotNetNuke, major changes have been completed in the way that a user manually imports a module definition to test a manifest file.  This is specifically the process that is mentioned in my book to test a module while developing, before it has been packaged for installation on another portal.  From what I gather, the behavior might change back a bit, but for now the process is slightly different that indicated in my book.  In this blog posting I'll document the changes, and a workaround solution.

Read more...

Posted by Mitchel on Tuesday, February 09, 2010

Spell Check for DNN Module Developers 

I have talked to many developers that have one common feature request that we would like to see for Visual Studio, Spell Check.  As a developer one of the most troubling things can be minor typo's in code after it has been completed.  Although simple to fix, it can be embarrassing to have a typo that goes out in a module that a client is reviewing or that you put up for sale on SnowCovered.  Well, today I got an email from Chad Nash at DataSprings, and they have a set of tools that are going to help us out on this front from a DNN module perspective.

Read more...

Posted by Mitchel on Wednesday, December 16, 2009

The Importance of a Consistent Development Environment 

I am again traveling this week, in Toronto speaking at Tech Days Canada 2009, and as luck would have it I needed to complete some work on a few custom DotNetNuke modules for clients on a "Urgent" basis.  So this afternoon I darted off to the speaker room to get an internet connection, just recently I re-formatted my laptop to move to Windows 7, one of the main reasons that I needed to re-format the system was to create an environment that matched my primary development machine, today was the first true test of this new configuration.  Thankfully everything worked as expected and all issues were resolved.  In this blog post, I'll explain a bit as to why it is important when working on multiple environments to have consistent system configurations.

Read more...

Posted by Mitchel on Tuesday, September 29, 2009

Performance Tuning DotNetNuke Modules with ANTS Profiler 

As I have mentioned in past posts here on this blog and via other communication channels I strongly believe that ANTS profiler which is offered by Red Gate software is a must-have tool for all software developers.  Most recently with my day job I have been working with profiler a lot more than usual and it prompted me to re-visit the concept of profiling within the constructs of a DotNetNuke installation.  I've had many individuals with questions before about, is it possible to profile a DNN module, or how do you set it up.  Well this article will walk through all of the steps necessary to profile a single module within a local installation.

Read more...

Posted by Mitchel on Monday, August 10, 2009

How To Get Design-Time Support for DNN Controls 

 As everyone that is a regular reader of this blog is already aware of I am a big fan of the WAP development model for all DotNetNuke development projects.  Now, one of the most common issues that individuals have reported to me is that "design-time" support is not there for common DotNetNuke user controls that are common to integrate with custom modules.  The controls I'm discussing are the DNN Label, Text Editor, and Url Controls.  Luckly though it is VERY simple to get full design time support for the controls and this article will show you how to accomplish this!

Read more...

Posted by Mitchel on Tuesday, August 04, 2009

DNN Navigation Redirect With Parameters and No Control 

When working with DotNetNuke I often find it necessary to do a redirection back to the current page, with additional querystring parameters.  Not actually switching views, but just back to the same page so that some other action could be taken for a specific module.  In the past most of the examples I found used this process.

DotNetNuke.Common.Globals.NavigateUrl(this.TabId) + "?mykey=myvalue"

Which would create a url such as

http://www.mysite.com/MyFolder/Default.aspx?mykey=myvalue

Although a fully functional URL that works 100%, it is not something that can be easily copied, and overall doesn't look all that fancy.  Looking through the functionality of the various NavigateUrl overloads, it didn't seem apparent that there was something that could be used to re-write that type of URL.  Well I missed something using the following code.

DotNetNuke.Common.Globals.NavigateUrl(this.TabId, "", "mykey=myvalue")

From this example we provide the tabId, a blank ControlKey, and then our added parameter value.  We could add additional parameters as well.

This results in a URL similar to the following.

http://www.mysite.com/MyFolder/mykey/myvalue/Default.aspx

Now, this is a fully re-written URL, and something much easier for a person to remember.  I hope this has been helpful!

Read more...

Posted by Mitchel on Monday, June 08, 2009

SDN June Event 

Although a recent post provided most of my upcoming speaking engagements, there was one big one left off the list.  I will be presenting a total of 3 sessions at the SDN Event on June 26th.  This event in in Houten, The Netherlands.  I will be presenting on Advanced DotNetNuke Module Development, Creating Authentication Providers, and Creating Membership Providers. 

I'm looking forward to this event as it will be a great opportunity to get to meet some of the European DNN'ers out there.  I'll be coming in a few days early and staying a day later, so if anyone wants to meet to say hello just let me know.  For most of the time I will be in Amsterdam, with a short trip to Pairs.

Those looking to register for the event can do so here, or if you are non-dutch speaking you can email info@sdn.nl. 

Posted by Mitchel on Wednesday, June 03, 2009

Development Environment and Tools Used 

A very common question that I get asked by people is; what tools do you use to complete your development and what type of system do you use.  Now, I believe I have written a bit about this in the past, but I thought I would take some time to go through and give a bit of a detailed overview of what I use for development and why I have selected the hardware and software that I have.  I will cover this in detail from both the hardware and software point of view.

Read more...

Posted by Mitchel on Friday, May 22, 2009

Programmatically Creating DNN Roles A Gotcha Moment! 

This is just a quick blog post to hopefully share some helpful information.  Recently when working on a DotNetNuke Authentication Provider for a client I was tasked with syncing roles from the external system into DNN.  Simple enough right?  We can just use the "RoleController" and the "AddRole" method to add the role to the system. Well, that is the process but it doesn't work 100% unless you specify specific items.  The following sections show what I tried, and what actually works, along with a few notes.

Read more...

Posted by Mitchel on Wednesday, May 13, 2009

An error has occurred.
Error: Mitchel Sellers' DotNetNuke, .NET, and Other Topics Blog is currently unavailable.

An error has occurred.
Error: Mitchel Sellers' DotNetNuke, .NET, and Other Topics Blog is currently unavailable.

Disclaimer