Entries for 2011

December 19, 2011

Getting Up to Speed on DNN 6.x Design

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.

November 18, 2011

Understanding and Mitigating DotNetNuke Upgrade Risks

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?

November 13, 2011

DotNetNuke World 2011 Recap

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!

November 07, 2011

Force User Roles Update via DotNetNuke

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.

November 02, 2011

DotNetNuke 6.1.x Release and Warning!

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.

October 31, 2011

DotNetNuke World and Blog Updates

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.

 

October 07, 2011

Securing a DotNetNuke Installation - Passwords

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.

September 23, 2011

SQL Server Forward_Only Cursor for Performance

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.

September 07, 2011

Canonical Portal Alias Woes DNN 5.6.2

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.

September 04, 2011

DotNetNuke 6.0.1 Performance And You

Now that DotNetNuke 6.x has been out for a while and with the recent release of DotNetNuke 6.0.1 while I was on vacation I thought I'd take the time to write a must requested blog post regarding my thoughts on the DotNetNuke 6.x platform and performance.  Keep in mind, these points are my own personal opinion and should be considered that only, so without further delay.

August 12, 2011

Improving the C# Debugging Experience - DebuggerDisplay

In an effort to start blogging more about the "helpful" items that I have encountered over the years this is one of my first "Quick Tips" related to improving the life of the developer.  We all have had those times where we are tracking down a complex problem within an application and all along the way we have to spend endless time mousing over individual classes to find out what their values are when most commonly we just want to know about one or two key values.  Well in this post, I'll show you a neat trick using the "DebuggerDisplay" attribute to help make this process easier.

July 21, 2011

DotNetNuke 6.0 Extensions SnowCovered Integration

In my earlier blog post I mentioned that one of my favorite features of the new DotNetNuke 6.0 release is the ability to download and automatically install purchased extensions from SnowCovered within the installation.  In this posting I'll walk through the functionality as well as give my disclaimer and recommendation in regards to using this process.

July 21, 2011

DotNetNuke 6.0 and You!

As many of you might not have heard yet DotNetNuke version 06.00.00 was released last night.  You can read all about it on the Announcing DotNetNuke 6.0 page from DotNetNuke.  In this blog post I'll talk a little bit about what it this release means to you as a user in the community as well as share some insights and recommendations that I have to make the transition easier, and we will finish with information on a special offer from a known DotNetNuke Vendor.

July 07, 2011

Auto Packaging Multiple Modules with DotNetNuke

Like many people I have been building DotNetNuke Modules using Chris Hammond's DotNetNuke Module Template.  It is a great template set and works well in 99.9% of cases.  However, recently I have been building more and more complex module solutions for customers where within a single project I have a need to package up two or more "distinct" modules.  Therefore I have one DotNetNuke Module Manifest and it will install multiple modules.  Overall the process works great, but there is one small nuance, the filename, if you have two modules you will get xx.xx.xx.yy.yy.yy as the filename, which is the version of module 1, and the version of module two.  In my case I just want the first module to show, and in this post I'll show you how.

July 07, 2011

Resolving Recurring DotNetNuke Scheduler Errors

One thing that can kill a DotNetNuke quite quickly is a module that goes "rogue" and starts throwing regular errors in the scheduler.  This is especially the case when it comes to a module that might be heavily used.  Not only do you just have the fact that you are having errors, but you also have the issues around the fact that you can't find TRUE errors in the log.  In a world long ago, back in the DNN 4.4 - 4.8.x days there used to be an issue with certain modules that has apparently started to rear its ugly little head again and I'm not sure why.  In this post I'll investigate this specific error type.

May 17, 2011

iTunes Invalid Address Fix

For those of you that are regular readers of my blog, I know this is a bit of an "off topic" post, but after suffering through a few hours to pain, and relentless efforts testing and re-testing various solutions to get back into my iTunes account I just had to share this post.  As many of you will see if you do a quick google search for "iTunes Invalid Address" you will see a stream of complaints coming up starting about May 5th, and getting increasingly more common of the last few days.  Well this evening my iTunes account fell victim as I inadvertently clicked "Update" on iTunes to take it to the most current version.  

April 20, 2011

WPF Chart Styling Explained

Some of the big additions to the .NET Framework in .NET 3.5 Service Pack 1 were the Charting Components that give a rich, out-of-the-box solution for displaying charts in your application.  However, one thing that I've always found very hard is locating information on how to control the look and feel of the individual charts.  In this posting I'll show you how to style the following elements of a chart: Title, Legend, Independent Axis, and Dependent Axis.  This will show the key areas of styling.

April 18, 2011

Causing a Specific Control to Postback

I was recently debugging an issue with a form where the user wanted the "enter" button when pressed in a textbox to trigger a specific ASP.NET button to postback to the server.  I have done similar things in the past with a method that changes for the pressing of Character 13 which is the enter key, then finding the button by id and then continuing on.  Well recently I found out that depending on the structure you can still get some "interesting" results.  So I went looking for a different method, and came up with the following.

April 17, 2011

DotNetNuke Scheduled Jobs Using the API

A while back I blogged about Creating DotNetNuke Scheduled Jobs and promised a "part two" article, this is that article.  In the previous installment I talked about the process of creating and manually installing a scheduled job.  This article is designed to take this to the next step and discuss how you interact with the Scheduler System to handle installation and other validation methods of scheduled jobs.  I will explain the finer points in regards to checking to see if a job exists and creating or modifying a job.

April 17, 2011

Modfying WPF Textbox or Other Control Behavior

So as I have mentioned in previous blog postings and on Twitter, I have been working a lot more recently in WPF than in recent months due to a big project I had been completing. One of the final "Client Review" items that I had to resolve was that they didn't like the way that the textboxes worked. The default behavior for textboxes in WPF when tabbing into them was to put the cursor at the beginning of the field. I agree that the usability was not good, but I had over 400 textboxes and didn't want to have to change all of them. SO I went digging for a solution....

April 11, 2011

Font Variations and WPF Textblocks

Over the past few months I have been working on more projects using Windows Presentation Foundation (WPF) and I have ran into numerous fun "learning experiences".  Of of these recent ones prompted me to put up a "Quick Tip" posting.  The quick tip in this posting is around formatting of custom font structures within a WPF TextBlock.  Specifically around sub-scripting, super-scripting, and internal font variants.

April 09, 2011

.NET Memory Management and You!

I teach introduction and advanced .NET development courses for a local community college and one item that I always cover in each class is a discussion around Memory Management and Garbage Collection. I am often asked by my students if this is something that they really should be concerned about and my opinion has always been yes, but I know that many developers feel that having an intimate understanding of how Garbage Collection is completed is unnecessary. Finally after a number of constant reminders from students, I thought I would actually put out my "simple" version and explanation out here that I give my students each semester and gather some feedback from my blog readers on their thoughts on the manner.

March 26, 2011

Orlando Day of DotNetNuke Recap

For those of you not able to attend the Orlando Day of DotNetNuke and Orlando Code Camp events this weekend I wanted to take a few moments to post a quick bit of feedback on the event and also make those of you aware of some new presentation materials that I will be making available to the community over the next few weeks.  (The first of which is available now!)  See the full post for details!

March 13, 2011

Deploying ASP.NET MVC 3 Application to Production

For those of you that follow me on Twitter you might already know that recently I've been starting to dive into ASP.NET MVC quite heavily and there was a lot of demand for blog posts on the topic.  Therefore this will be the first of what will most likely become many blog posts on ASP.NET MVC.  I have created a new category for these posts so that you can easily see, or avoid these as desired.  This blog post is about the process of deploying a web application developed with ASP.NET MVC 3 to a production server that does not have ASP.NET MVC 3 installed.

March 09, 2011

Simple IIS Performance Improvement

I know that many of the readers of this blog manage their own webservers and i have a helpful tip to share about improving the initial load time of your webserver.  Although this modification I am recommending is a SMALL change and has a small impact, it is still worth doing as it will improve the performance and reduce the amount of work that IIS has to do.

March 01, 2011

DotNetNuke Going to C# - My Thoughts

Well, as I'm sure that most of you have figured out already, DotNetNuke Corporation announced yesterday that starting with Version 6.x of DotNetNuke the core will be using C# as the programming language.  This change is something that has been talked about at community events in the past and various people have shared their comments on the potential decision, and even since yesterday people have voiced their opinions on it now that the change is official.  With this post I'm going to share a few of my thoughts on this, and hopefully take a slightly different approach.

January 18, 2011

Creating DotNetNuke Scheduled Jobs

So for a long time now I have been promising an article on creating DotNetNuke Scheduled jobs and finally I'm actually getting it written.  This article is actually the first in a series of two articles.  This one will start out with the programming process involved, and the general "manual" setup process to actually get the job going.  The second article will focus on using the DotNetNuke API's to be able to validate and configure a scheduled job from within a module, making the user setup process easier.

January 12, 2011

Improving Visual Studio 2010 Performance on Win XP

At my "day job" I have the pleasure of working with Visual Studio 2010 on a Windows XP laptop with only 2Gb of RAM.  For those of you that follow me on twitter, you might have noticed a series of frustration tweets awhile back when Visual Studio was crashing on me between three and ten times per day.  With the recommendation of a Microsoft Visual Studio team member we have found a way to resolve the issue. You can find the full details inside the full posting.

January 04, 2011

Silverlight 4 Intro/Security Presentation

Tonight I gave a presentation to the Dubuque .NET Users Group on the topic of Silverlight 4 Development with a focus on securing services and looking at how you need to analyze a Silverlight Application for security risks.  As promised I'm making available the presentation as well as the two sample applications I created.  I will find a more long-term home for these types of posts/downloads in the upcoming weeks, including posting previous presentation content. 

But for now, click to the detail view for download links.

January 04, 2011

C# Quick Tip: Try/Finally Block

This post is the first of a series of "quick tip" blog postings.  These will be shorter articles focused on providing quick tips on various topics.  Each posting will be tagged with a single category as well as the "Quick Tips" category to indicate it is a quick tip.

For the first Quick Tip I want to focus on a language feature of both C# and VB.NET that is not always something people think of.  Everyone should be familiar with the Try/Catch/Finally and Try/Catch blocks of code.  These are key concepts that are discussed in introduction to .NET classes.  However, there is another flavor of exception handling that can be used which is a Try/Finally block. In this post I will show a simple example.

January 03, 2011

2010 Year in Review and 2011 Preview

It has been a little over two years since I did a "year in review" post, the last was completed in 2008.  I thought that it would be a good idea to start of 2011 with a review of the previous years and the items that I am proud of from the past year.  I'll then give an introduction into my plans for 2011 and the future of this blog.

 

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.

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.