March 04, 2012

Replacing My iPad with a Windows 8 Slate How its Possible

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.
February 29, 2012

Visual Studio 11 Caller Member Info Attributes

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.
January 23, 2012

Simple Zip Code to Zip Code Distance Calculations with SQL Server

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.
January 22, 2012

DotNetNuke 6.x Text Editor Upgrade Issues

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.
January 19, 2012

Improve Performance with Static File Caching

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.

January 08, 2012

2011 Year in Review and a look at 2012

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.

January 06, 2012

Upgrading MitchelSellers.com - A DotNetNuke Upgrade Retrospective

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.

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.

 

December 31, 2010

Keeping User Passwords Secure in DotNetNuke

This article is being cross-posted from my business blog.

If you have been paying attention to the news in recent months you have most likely heard of a few cases where user information, such as Usernames and Passwords, have been exposed from some high visibility websites. Some of the more current leaks were with Gawker and Mozilla. For those that are unfamiliar the situation is pretty simple. These sites store user login information, usernames and passwords, that allow users access to their systems. Their systems were then breached and malicious users were able to get access to the information. Why is this something that I am blogging about in relation to DotNetNuke? Well without a bit of configuration your site could be at risk, should a malicious user get access to your system. This article will discuss a bit around how/why there is a risk and how that relates to DotNetNuke, then it will progress into an overview of the default configuration of DotNetNuke and the recommended changes to the system.

November 15, 2010

DotNetNuke Connections 2010 - My Highlights

I know that this is a little late with DevConnections being a little over a week-and-a-half ago, but I thought that it was still important that I get my highlights out here on the blog as i think there are number of incredibly good things coming in the future for DotNetNuke.  For a more detailed review I highly recommend that you check out Will Strohl's blog post, as he goes into a bit deeper discussion than I do.

October 12, 2010

Upcoming Posts: Share Your Opinion

As I have blogged about in the past I have a big queue of potential blog postings that I have been looking at writing.  Although I haven't had many recent updates I am looking to improve on this and get more content out here.

Before I just start firing off new posts from my almost 1.5 year old listing of potential topics I wanted to gather some community input in regards to the topics that are published on this blog and to accept recommendations on what should be next.

I would greatly appreciate it if you can fill out this short 5 question survey. Feel free to share this link with others as well

September 30, 2010

Day of DotNetNuke An Apology

It is with deep regret that I have to announce that I will not be able to attend/present at the Day of DotNetNuke event this weekend in Chicago.  For those of you that follow me on Twitter, you may have noticed tweets from me over the past 2 weeks talking about this horrible cold that I have.  Well, at this point I am still not recovered, with only 40-50% of my voice available and day-to-day still not feeling all that well I had to make a very hard decision.

In the end, I need to continue to take things slow and relax so that I can kick this cold and be able to resume my regular schedule.  I understand that this will be a disappointment to the individuals that were looking forward to my presentations as well as the individuals that I was working to arrange meetings with.  I am also deeply sorry for the stress that my cancellation puts on the organizers of the Day of DotNetNuke event.

Over the course of the next 3-5 days I will be taking all materials from my sessions and making them available here so that at minimum you will still have the ability to get the content that was to be presented.  I will post my PowePoint slide decks with notes that would have been my talking points.

For those of you attending DevConnections I am looking forward to that event coming up in just  a little over a month, and I WILL be there for that event.  Otherwise to everyone else again I do apologize that I will be unable to attend and hope that you truly enjoy the Day of DotNetNuke event, I know it will be a great success!

September 27, 2010

DotNetNuke 5.5.1 Update and POET Security Vulnerability

For just a little over a week there has been a lot of buzz in the .NET and DotNetNuke community around the POET security vulnerability that was identified within the Microsoft ASP.NET technology stack.  For those of you unaware of the true details on this vulnerability I highly recommend you read the initial announcement from Scott Guthrie from Microsoft, as well as his Frequently Asked Questions post, and lastly his secondary followup posting, with a more detailed workaround.  So why do I bring this up now?  Well late last week DotNetNuke corporation released DotNetNuke 5.5.1 and in the materials that went out with that release they note that it includes a workaround fix for this vulnerability, I wanted to make sure that as always people have ALL information needed before they are doing upgrades.

 

August 24, 2010

DotNetNuke 5.5.x and Later Performance

Now that the DotNetNuke version 5.5.0 release has been out in the wild for a bit I wanted to take a moment to talk a bit about this release and one particular item that is of special interest to me with regards to the performance of the release.  In the past a common question posed to me would be "Which version of DNN runs the fastest?" The answer has always been an easy one, DNN 4.9.5 has been the release that could handle the heaviest load with the best overall relative performance.  I believe we have finally hit a tipping point.

July 27, 2010

Running DotNetNuke with .NET 4.0

As more and more people start working with DotNetNuke, IIS7, and .NET 4.0 it is important to note a few important potential problem areas when it comes to running DotNetNuke on the 4.0 framework.  Recently I took a DNN 5.4.4 installation and tried running it under .NET 4.0 and without modifications, it was a complete failure, in this blog posting I will show you what needs to change to allow DotNetNuke to work as expected.

July 26, 2010

Selecting a DotNetNuke Hosting Provider 2010 Edition

In past blog postings I have provided what has become a bit of a "Guide to Selecting a DotNetNuke Hosting Provider." As with previous years it is about that time where there have been enough changes in the market and to DotNetNuke in general that I thought it was necessary for a 2010-2011 version of this information. In this article I will talk though the thought process that I use when working with current and potential customers to select their hosting plan, environment and provider. This document has been updated based on current information, in addition, prior to going through the recommendations below I strongly recommend reading my article “Shared, Virtual Private Server, Dedicated of Cloud Hosting” to become familiar with the different levels of hosting and also to review my "DotNetNuke Performance Configuration Best Practices" document to ensure that your DNN hosting plan is up to date.

July 13, 2010

Want a Free MSDN Ultimate Subscription?

Like other Microsoft MVPs I have been given a few MSDN Ultimate licenses that I can give away to individuals that I feel are deserving of it.  I have been arguing with myself for a while now about how to best determine who should receive the license, and have came up with a contest to give one license away to a reader 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.