Blogs

Blog System Changes

07 Oct

Just a quick update on the blog system here on MitchelSellers.com.  As you all might have noticed almost all of the articles as of today 10/6/2013 show no comments.  Due to the exponentially increasing number of spam style comments that I was receiving through the existing platform on this site I've been forced to switch to a different comment platform. This means...

tags: Announcements

Enterprise Extension Development with DotNetNuke Part Three

29 Sep

This post is a continuation of my ongoing Enterprise Extension Development blog series talking about how to effectively leverage DotNetNuke in complex environments. In Part One we set the stage for why it is important to look at Enterprise Development slightly differently. In part two we started on the slight differences to basic project structures needed to ensure that we can "Compile Anywhere" and move our projects quickly between machines etc. In this part of the series we will take a look at your code structures within, to handle interdependencies etc successfully.

tags: DNN, DNN Development

Enterprise Extension Development with DNN Part Two

25 Jul

A few weeks ago I set the stage for this series of posts with my Enterprise Extension Development with DotNetNuke Part One post.  This article, the next in the series, ended up getting delayed a bit.  As many of you know there has been a lot changing within the DotNetNuke world, as all of this unfolded my priorities were pulled from these posts to other areas of concern.  Now, I'm back on these posts and want to make sure to dive into this in detail.  In the first post of the series I covered the high-level details.  The reasoning behind this series, and the main goals that I hope to accomplish by putting this information out there.  This post is dedicated to the development environment, and development structure for our projects.

tags: DNN, DNN Development

Enterprise Extension Development With DotNetNuke Part One

15 Jun

Earlier this year I spoke at the Southern Fried DotNetNuke event and one of the most popular of my talks was "Developing Enterprise Solutions with DotNetNuke."  Now that we have one of the final hurdles cleared from an implementation perspective in this post, and future ones I will start to share all of the details that I have been promising.   This post will serve as a launch point for the future parts, as of this point in time I believe this will span 8-10 posts to give everything the proper coverage necessary.  As the series grows I will update this post with links to the future sections.  So lets get to it!

tags: DNN, DNN Development

Official DotNetNuke NuGet Packages.

13 Jun

Many of you have been asking me about my promised Enterprise DotNetNuke Development blog postings that I have been promising since the Southern Fried DotNetNuke event earlier this year.  I have been working on them, but one of the key pieces for me was to figure out how to get NuGet packages to the greater population as I was working locally with a private NuGet Server for my own purposes.  I'm happy to be able to note that today DotNetNuke corporation released official NuGet packages to the nuget.org repository and they are freely available for users as of today.  In this posting I'll run through the different packages that are available, when you would want to use them, and what versions are available as of this posting.  

tags: DNN, DNN Development

DotNetNuke Form Patterns and You! 6.x or 7.x?

19 May

As a developer of hundreds of custom DotNetNuke extensions I have to say one of my favorite enhancements to the DotNetNuke platform over the last few years was the inclusion of the new DotNetNuke Form Pattern that was part of the 6.x release.  By incorporating a consistent design pattern it became trivial for extension developers to build modules that had similar UI patterns and would thus have consistently styled applications.  By doing this it is possible to make the understanding of flow within your applications easier as you are leverage a UI style that more similarly matches that of the platform itself.  However, as with any new feature it hasn't came without a few "bumps" in the road.  There were a few changes between 6.x and 7.x that have caused a bit of a problem for those of us that have already adopted the patterns, or those that might.  In this post we will look at these differences and the one small change that you can make for a seamless experience regardless of if you are targeting 6.x or 7.x!

tags: DNN, DNN Development

Code PaLOUsa 2013 Presentation Materials

27 Apr

This week I have been at Code PaLOUsa 2013, which has been a truly amazing event.  Over the course of the last two days I have given a total of three sessions on various current .NET development topics.  In this posting you will see all of my presentations materials, they are provided for reference only!  If you have any questions or comments please fee free to reach out in the comments below.

tags: .NET 4.5, Presentations

ASP.NET Web Forms Model Binding – My Favorite ASP.NET 4.5 Feature

22 Apr

I have been working on this blog posting for over 2-3 weeks, by far one of the longest writes of any posting that I’ve done in the past. The reason for this is that I’m writing about a concept that you should already be aware of which is the inclusion of Model Binding Support for Web Forms in ASP.NET 4.5. You can find a number of resources out there that talk about this, including this amazing tutorial series. So why do I feel the need to spend so much of my time writing about this feature? Well read on to find out!

tags: ASP.NET, DNN Development, .NET 4.5

Southern Fried DNN 2013 Presentation Materials

19 Apr

Last week I was a trainer and a speaker at the Southern Fried DotNetNuke event that was held in Charlotte, NC.  This event was fantastic with a day of optional training on Friday and a series of sessions on Saturday in the format of a regular Code Camp event.  As I promised the attendees of my sessions I would be posting information and assets from these presentations here on this blog.  This posting is an overall aggregate with information on the two sessions and trainings, future blog postings will expand on the information contained within.

tags: DNN, Presentations

Simplifying DotNetNuke Module MSBuild Packaging With Auto Set Package Name

04 Mar

DotNetNuke module development became a lot easier when it became easy to use MSBuild to simply build your project and get a nice install-able module package in the end.  I've been using this process for a number of years now, but there have always been those little things with the default templates that many have been distributing that just don't meet my needs 100%.  For example a few years back I blogged about a fix for Auto Packaging Multiple Modules.  This post shows a fix for one of my other biggest pet-peeves when it comes to the auto-package process and that comes from the determination of the 'PackageName' that is used to name the destination file.

tags: DNN, DNN Development

Creating an ASP.NET 4.5 File Security Process

26 Feb

Often when working with web applications it is necessary to secure access to documents or other user supplied resources.  If you look online you will find a number of different recommendations on how to accomplish this.  Some will recommend a HTTP Handler, some will recommend a simple ASPX, others will have other random ideas.  Regardless of the actual implementation there is always a common area of mixed recommendation, once you have validated that the user has the proper permissions to access the resource, how do you get the item to the user?  In this post I'll discuss a new API that is publicly available in .NET 4.5 that helps with one problem area.

tags: ASP.NET, C#, DNN Development, .NET 4.5

Getting Started with DotNetNuke 7.0 Presentation Materials

01 Feb

So I've been promising for years to publish presentation materials after each of my events.  I've been working on so many different ways to handle this, and finally have came up with an easy way to share materials from my events. Thanks to SkyDrive, I can now easily embed the content while doing as much as I can to keep ownership of the content, so here is the first one! I'll be posting a bunch of others as well soon, all will be tagged under "Presentations". 

tags: DNN, Presentations

Using the DotNetNuke Extension Verification Service

01 Feb

As a person that has either directly written or managed the creation of over 400 custom DotNetNuke extensions in the past few years, the DotNetNuke package process is still the one item that I will at times overlook.  Well, recently DotNetNuke released a utility to help those of us looking to ensure that our extensions meet all of the proper requirements for consistent installation.  

tags: DNN, DNN Development

Controlling DotNetNuke Static Logs

20 Jan

In the past I have blogged about various DotNetNuke performance and management issues, focusing on how to keep the Site Log, Event Log, and other database related functions in place. In this post, I'm going to take a look at a few other aspects, not all 100% DotNetNuke based, that should be closely monitored and addressed as well. For those of you that follow me on Twitter, my recent posting about clearing almost 40Gb of rogue data across servers is all part of what lead me to this posting.

tags: DNN, DNN Administration

2012 Year In Review

31 Dec

It is hard to believe that yet another year has passed and it is time for me to be writing another "Year in Review" post here on MitchelSellers.com.  It seems that each year the time goes by faster and faster.  2012 was most likely one of the fastest paced years for me professionally as there were a lot of changes and as such this blog has suffered a little bit.  As I look back at 2012 I will also share some important notes about 2013!

tags: MitchelSellers.com, Announcements

Using DotNetNuke Caching in Custom Modules

03 Nov

One of the biggest concerns for developers these days is how to increase the performance of delivered applications. User expectations have changed over the past few years and the expectations are very, very high in regards to page load times and how quickly information should be returned to the users. Thankfully, as part of DotNetNuke there are a number of different features that can help applications work quickly. Some of these features are known by everyone, things such as the DotNetNuke performance settings under "Host Settings", Cache Time settings on a module by module basis, and if on Professional Edition the built in page Output Cache Provider. However, one often overlooked API that is helpful for developers is the DataCache API. In this post I'll do a deep dive into why this API is so helpful and some scenarios where leveraging this API it can reduce page load times and system resources needed for each page request.

tags: DNN, DNN Development

My Windows 8 Store Woes - Lesson's Learned

31 Oct

I have been debating for a while now on how much detail that I put out in this blog post.  However, today finally pushed the final button and I think it is important to share a bit of my experience and some of the key lessons that I have learned.  In doing this I hope that I can prevent others from going through such a horrible experience as what I have.  The story in this post is a bit trimmed down to make it easier to follow, but the key highlights are all here.  I will finish up with a few "Lessons Learned".

tags: Windows 8

Nokia Lumia 920 & Windows Phone 8 First Look

31 Oct

I am attending BUILD this week and trying to do my best to get blog posts out all week to help share information a bit faster than I might normally do.  One of the big things if you followed the event on Twitter or any other medium today and that is that attendees were given a few great goodies!  100Gb of SkyDrive Storage, a Surface RT, and a Lumia 920 phone!  Pretty great haul!  Tonight as soon as I got back to my hotel I jumped right in to the phone!

tags: Windows Phone

DotNetNuke World Review and MVP

30 Oct

So first of all, I'll admit I'm a bit late to the game here getting this post put together, as DotNetNuke World was almost three weeks ago.  Sadly combined with two major site launches, some travel and other things the blog just hasn't gotten the attention that it deserved.  But better late than never I thought so here it goes!

tags: DNN, MitchelSellers.com, Announcements

Creating Custom DotNetNuke Module Categories

24 Sep

As part of one of the recent overhauls of the DotNetNuke interface the control panel was updated to include a "Category" selection that allows modules to be grouped logically into categories.  Out of the box a total of two categories are created "Admin" and "Common" with only the Text/HTML module included in the "Common" category.  In this posting I'll take a deeper look into this functionality and how you can create your own categories, and how to move modules around between categories to make administration even easier!

tags: DNN, DNN Administration, Quick Tips

My Favorite Visual Studio 2012 Breaking Change

05 Sep

It is not very often that you see the words "favorite" and "breaking change" within the same sentence.  However, I will say with VS 2012 and .NET 4.5 there happens to be one that I thought I would call special attention to here on my blog as I've talked about the old behavior many times in talks throughout the past few years. 

tags: C#, .NET 4.5

Upcoming Speaking Engagements

15 Aug

As I am working to get better about making presentation materials available here on this site I've created a new "Presentations" category, and will post slides/materials for each of the events there and very occasionally update messages like this one to note times where I have speaking engagements coming up.  The reason for this post is that I am speaking at three great events in the next 8 weeks or so that I wanted to make sure to bring everyone's attention to. 

tags: Presentations

.NET Gadgeteer First Round Examples and Thoughts

15 Aug

A few weeks ago I gave a presentation at the St. Louis Day of .NET event focused on the use of .NET Gadgeteer.  In this blog posting I am going to share some of the information from that presentation, as well as the slide deck and sample code for everything discussed.  For those that were in attendance, I apologize for the delay in getting this information out here! 

tags: Presentations

Creating Simple Re-Usable Confirmations in DotNetNuke Skins

06 Jul

As part of the IowaComputerGurus site redesign that I just launched earlier this evening I was looking for a simple "no hassle" way to add a confirmation to a link before downloading. Historically I created a module to manage this and the module managed those links. However, I wanted to find something more flexible so that I can put my download links wherever I want, in any Text/HTML module, on any section of the site. Amazingly I was able to do this with two lines of JavaScript in my skin file!

tags: DNN, Quick Tips

Security Exceptions After Moving .NET 2.0 DNN Site?

05 Jul

Over the past few weeks it seems that I have been doing more DotNetNuke site shuffles than I have in a long time.  From local -> production, from hosting provider a -> hosting provider b, and any combination therein.  This process is practically second nature for me as I've done it so many times.  However I had two sties that proved to be really troublesome so I though I'd share the root causes here in hopes that it might help someone!

tags: DNN, DNN Administration, Quick Tips

Taking Control of the DotNetNuke WYSIWYG Editor

26 Jun

DotNetNuke by default uses the Telerik RadEditor as the rich text editor. It is a truly amazing product and one of the better WYSIWYG editors. Just like any editor though it does have some mannerisms that are not so welcomed by users. A little known fact within DotNetNuke is that you have a number of configuration elements available to help not only make the editor easier to use by removing un-needed items, but you can drastically improve functionality for super-users if so inclined and prevent issues when staging content etc. In this post I'll dive into a few of the key configuration items that I make to all new sites.

tags: DNN, DNN Administration, Quick Tips

Using radCaptcha Via DotNetNuke Wrappers

23 Jun

When putting a form that is public facing we often need to add a captcha to help prevent bots from submitting our forms.  Historically there has been a control available within DotNetNuke that worked for this, but admittedly it didn't have the best customization nor was it the most "pretty" of them out there.  Ever since DotNetNuke has had the Telerik Controls a new option has been available yet its usage isn't the most widely documented.  In this post I'll show you how to use RadCaptcha in your own custom modules.

tags: DNN, DNN Development, .NET 4.0, Quick Tips, .NET 4.5

jQuery and Clicking an ASP.NET Linkbutton

21 Jun

As a web developer one common request is to make sure that the interfaces we build out for users look the best that they can and also provide users with the best experience both via the keyboard and mouse.  As part of this we will often have areas of conflict.  This post is going to cover one common scenario that will impact users that might be using DotNetNuke common styles or working to create their own custom button styles.  With ASP.NET it is common for people to use "LinkButton" controls to trigger actions rather than your standard "Button" controls as they are easier to style.

tags: ASP.NET, .NET 3.5, DNN Development, .NET 4.0, .NET 4.5

Windows Azure 90 Day Free Trial - Buyer Beware!

15 Jun

This is just a quick public service announcement for those that might be looking at trying the new Windows Azure service for hosting a DotNetNuke site.  I have been working with a few people that have been wanting to try it out and overall the experience has been pretty good as the DNN install was successful and performed quite well.  However, the reason for this post is a warning to those of you that are working within the "free trial" period.

tags: DNN, Quick Tips, Risk Management

Development and Test DotNetNuke Installations and Search Engines

07 May

It is quite often that when working on a new version of a site that you will have a development, test, upgrade copy of the site that might be around for a while.  It is also possible that if you are working for a third-party that you might stage client sites on your server for a period of time before go-live.  At first glance this all seems common place and not something that you would be concerned about.  However, that is not the case.  Search engines have become overly aggressive in indexing sites, including those that have no direct back links but have been e-mailed to individuals or similar processes. In this post I'll discuss some important considerations when working with these "non-production" installations to help you ensure that search engines will NOT index the content and cause confusion.

tags: DNN, DNN Administration, Risk Management

DotNetNuke Login and Auto Complete - How to Cope

04 May

Recently I have been getting a lot of questions regarding the DotNetNuke login and why when you go to login that "auto complete" is disabled on the username/password fields.  The typical follow-up question to that is "how can I change that behavior".  So after answering this question individually around 5-6 times I though it would be best to get this out here, at least my opinion on the issue.

tags: DNN, DNN Administration

Windows Updates, Monitoring, and ASP.NET...Oops!

12 Apr

For those of you that are regular readers of this blog you will know that outages of the site are very, very rare with the past year showing almost 99.9% up time.  Well if you were around here this AM you will know that the record for up time was killed, with the sites being down almost 10 hours today.  In this post I'll talk a little about my experience with this as I know a number of other people across the world have experienced similar issues this morning based on my conversations with a few of them.

tags: MitchelSellers.com, Announcements

Replacing My iPad with a Windows 8 Slate How its Possible

04 Mar

For those of you that follow me on Twitter you might have found one of the tweets from earlier this week to spark your interest specifically "Its official with WIndows 8 my Samsung Slate replaces the iPad.".  As I promised in that tweet this is the blog posting that shows my justification behind the claim and why for at least my use this transition is not only possible, but beneficial to me.  Before I get too far into this though, I'll provide a bit of background on the basis/use scenarios that are important to me then I'll discuss the specifics.

tags: Windows 8

Visual Studio 11 Caller Member Info Attributes

29 Feb

If you have been paying attention to what is going on in the Microsoft Community today you will notice is a big day.  Visual Studio 11 Beta as well as Windows 8 Consumer Preview were both released this morning, for those of us developers it means tons of new tools to try out and lots of new functionality that we can use in our applications as well as productivity and language improvements with.NET 4.5.  With this, I'm starting a new blog series highlighting some of the new items that I find helpful, cool, or otherwise interesting with VS 11 Development.  Today's installment talks about Caller Member Info Attributes.

tags: C#, .NET 4.5

Simple Zip Code to Zip Code Distance Calculations with SQL Server

23 Jan

Over the years I have implemented a number of various "near me" style searches using third-party zip code databases and a long, complicated formula to find the distance between two different latitudes and longitudes.  Well, starting with SQL Server 2008, it is possible to get the same result, with a lot less effort, following two simple steps.  In this post I will walk through things step by step.

tags: SQL, Quick Tips

DotNetNuke 6.x Text Editor Upgrade Issues

22 Jan

In the past 2-3 weeks I have been working on upgrading the DotNetNuke Installations on both this website and the IowaComputerGurus website and finally I can say I'm done with the upgrades.  These sites, although not that complex had a number of issues with the upgrades, some of which I have blogged about in the past, and then today a brand new oddity was discovered.  After upgrading the site everything was functional, however the text editors were behaving very unusually.  Clicking "Save" at times would not redirect you back to the page, but content would be saved.  Other times it would redirect you back to the page, but your changes were not saved.  I couldn't find any rhyme or reason behind it, so I started digging.

tags: DNN Install/Upgrade, Quick Tips

Improve Performance with Static File Caching

19 Jan

This post will be the first of what will be many posts with regards to application performance. After giving a number of presentations over the last 1-2 years, including one this evening in the Minneapolis/St. Paul area I've decided that some of these tips/tricks that I have with regards to improving application performance should really get put out here so people can find them and make the improvements to their applications. Going forward all of these posts will be categorized with at least the "Performance" category and then others that identify what systems are benefited by the changes. The subject of this post is Static Content Caching.

tags: DNN, ASP.NET, DNN Administration, Performance

2011 Year in Review and a look at 2012

08 Jan

Over the last few years I have been trying to keep a little bit better track of usage of the content here on MitchelSellers.com as well as just keeping track of other interactions that I have through User Groups, Open Source Projects, and the like. Each year around the end of the year I try to compile a few of these items, if not for everyone that is reading things here for myself to see how things progress year to year.

tags: MitchelSellers.com, Announcements

Upgrading MitchelSellers.com - A DotNetNuke Upgrade Retrospective

06 Jan

For those of you that are regular visitors to this site you most likely noticed a number of changes to the site over the past 24 hours, including a small amount of downtime.  This was caused by changes surrounding the upgrade of this site to DotNetNuke version 6.1.2.  Now, I have worked on a number of DotNetNuke upgrades over the years, and I lost count a few years back at about 300 upgrades.  This site was by-far one of the hardest upgrades that I have ever completed and in this post I will share a bit around the growing pains that were experiences throughout the process.

tags: Announcements, DNN Install/Upgrade

Getting Up to Speed on DNN 6.x Design

19 Dec

So like many developers I have been spending some time recently updating my client, commercial, and open-source modules to support the new DotNetNuke 6 Form Pattern from a design perspective, to make my modules better integrate into the system.  Looking around when I was starting there is very little "true" documentation on this concept, and for me it was a bit cumbersome pulling everything together.  I started with this Wiki Article and then ended up spending a lot of time digging/inspecting lots of other modules that had been upgraded.  So in this post, I'm going to take a bit more of a 'code-centric" no-nonsense approach to what your form should really look like, I hope that this helps you.

tags: DNN, DNN Development, Quick Tips

Understanding and Mitigating DotNetNuke Upgrade Risks

18 Nov

With all of the recent changes that have come to the DotNetNuke product in the past few years I have been seeing more and more situations where users have older installations that want to get to DNN 6.x to take advantage of the new features that are available with the latest version.  I can't say as I blame them the newest features are great and a true benefit to all that use them, however, the road to getting there isn't always as peachy as it might seem, as you often find people with upgrades that fail horribly.  This has been a common trend and some of the things that DotNetNuke Corporation has done really makes this process less error prone, but a bit portion of the "getting it right" upgrade process really falls in the hands of the site administrators that are going to be doing the upgrades.  That is the focus on this blog post, how can we as site administrators identify potential risks and then mitigate/resolve the issues on our own?

tags: DNN, DNN Administration

DotNetNuke World 2011 Recap

13 Nov

As most of you know I was at the DotNetNuke World 2011 event in Orlando Florida this past week, and I thought I would give a quick recap of my experience with the event and share how much different I felt this event was in comparison to the previous DotNetNuke Connections events.  To help try and give proper justice to the topic, I'm going to break my review out in a few different categories to help make it a bit more understandable, and without further delay, here we go!

tags: DNN

Force User Roles Update via DotNetNuke

07 Nov

One of the things that I have been finding that I do a lot recently is updating user security roles based on actions either taken by the users or actions that have been taken by others.  Doing so is quite simple from a DotNetNuke API perspective but how do you go about actually forcing the role membership change right away?  That is what I'll talk about in this post.

tags: C#, DNN Development, Quick Tips

DotNetNuke 6.1.x Release and Warning!

02 Nov

As I'm sure that you have seen in the last day or so DotNetNuke 6.1.0 was released.  Overall, this release is a major improvement for DotNetNuke with enhancements to performance, support for mobile devices and other general upgrades.  However, I've already been alerted to a major, slightly hidden change that I wanted to be sure to put out here as a warning.

tags: DNN, DNN Administration

DotNetNuke World and Blog Updates

31 Oct

It seems that the past few months have just flown by and I haven't gotten as much time to blog here as I have wanted.  I hope to start changing that here in the next few weeks as I have a large number of items that I'm looking to get out here, just trying to find the time to get it done.  But with DotNetNuke world just a little over a week away I wanted to post a quick note here about the event.

 

tags: DNN, Announcements

Securing a DotNetNuke Installation - Passwords

07 Oct

A while back I released a tool called Secure My Install that was designed to help people take existing DotNetNuke sites and change the way that they store passwords to use a more secure process.  Many people have used that module successfully to convert their sites, however, I never took the time to share the few small steps that are needed to simply "secure" your site as soon as you set it up so that you can avoid all of the hassle in the beginning.  In this post I'll walk through the simple process of changing your configuration to go from Encrypted Passwords to Hashed passwords and a bit of detail as to "why" you want to make the change.

tags: DNN Administration, DNN Install/Upgrade, Quick Tips

SQL Server Forward_Only Cursor for Performance

23 Sep

For those of you that follow me on Twitter you might have heard my recent comments around a DotNetNuke SQL Script that I had to run that would have an impact of between 6 and 9 million SQL statements being executed on a database.  As part of this project I was focusing a lot on SQL Server performance, and getting the best overall bang for the buck with the query. Sadly, given what I was working with a Cursor was needed to ensure that I had the best, most stable solution.  In this post I'll share a little about the process and the lesson learned with cursors.

tags: SQL, DNN Development

Canonical Portal Alias Woes DNN 5.6.2

07 Sep

One of the additions to DotNetNuke 5.x (not sure when/where) was the ability for DotNetNuke to provide a Canonical URL in the meta information for your page.  When this all works well, things are going perfectly.  You can configure the site to use the Canonical URL via the "Admin Settings" page and normally all works well, but I had a very "interesting" issue with a site recently and I thought I'd share in case anyone else had a similar issue.

tags: DNN, DNN Administration

Content provided in this blog is provided "AS-IS" and the information should be used at your own discretion.  The thoughts and opinions expressed are the personal thoughts of Mitchel Sellers and do not reflect the opinions of his employer.

Connect with Mitchel

I hope the information here has been helpful. To stay connected you can also subscribe to blog updates via email, contact Mitchel about consulting services, or reach out for assistance via CodeMendor

Content Copyright

Content in this blog is copyright protected.  Re-publishing on other websites is allowed as long as proper credit and backlink to the article is provided.  Any other re-publishing or distribution of this content is prohibited without written permission from Mitchel Sellers.