Search

Latest Community DotNetNuke Blog Posts

Engage Software
Thursday, July 29, 2010 4:17:00 PM

Engage: Serene, a new DotNetNuke 5 skinEngage: Serene is our latest DotNetNuke 5 skin, whose design is based on simplicity, clean white space, and balance. The skin is designed using CSS and minimal images for the best performance, and comes with 6 different color options, four layouts, and 6 containers. Each layout is carefully spaced to give the site even weight and balance, and when combined with the multiple containers, gives your content a clear and custom way to shine. The skin package includes the original Photoshop file for easy customization, 6 unique colors, 4 layouts, and 6 containers.

More...
Mitchel Sellers DotNetNuke Blog
Tuesday, July 27, 2010 6:38:00 PM

I am sure that most readers of this blog are familiar with StackOverflow.com, but if not I highly suggest you check it out, even if you are not a developer.  The format that StackOverflow provides for online forums/community interaction is great with a nice reputation system and duplicate checking processes to make it a very easy to search resource.  I have recently submitted a Stack Exchange Proposal for DotNetNuke, if we can get enough support for this, we would be able to get a Stack Exchange site setup for the DotNetNuke community to have another place to go for help/discussion.  I highly recommend that you go check it out and throw in your support if you think this would be helpful!

Mitchel Sellers DotNetNuke Blog
Tuesday, July 27, 2010 5:00:00 PM

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.

The Mighty Blog
Tuesday, July 27, 2010 8:58:00 AM

DotNetNuke Corp CEO Navin Nagiah An article was recently written by CMS Critic, where they interviewed Navin Nagiah.  For those of you who don’t know, Navin has been the CEO of the DotNetNuke Corporation pretty much since it got funded.  Those events happened just around the same time anyhow.  CMS Critic thought highly enough of DotNetNuke and Navin to write an article, asking him various questions about the DNN product, its history, and its future.  It also does a fair job of giving you an idea of Navin and his background.

I’ve had the distinct pleasure of first meeting Navin a few months back, and I must tell you that I am honestly nothing short of impressed.  He is a super smart guy, and knows his stuff in the open source space.  Not to mention he’s a great leader that is genuinely concerned about his staff and all areas of the company he leads.  I am very pleased to be working for him, and ecstatic that he’s leading the DNN Corp.

Yeah, yeah… Bring on the brown-noser stuff… :)  If you know me at all, you know that I value leadership.  It’s one of my pet peeves when people are in leadership positions when they have no business being there in the first place.

I think you will especially be excited to read about some of the areas where Navin talks about the future plans of DNN Corp, and how he answers the questions about features of DNN.

That being said, make sure you check out this article!  :)

Interview with DotNetNuke Corp. CEO Navin Nagiah

Mitchel Sellers DotNetNuke Blog
Monday, July 26, 2010 4:35:00 PM

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.

SchwingSoft (Armand Datema's) DotNetNuke Blog
Monday, July 26, 2010 11:57:00 AM
What is SchwingSkinHelper SchwingSkinHelper is the SkinObject Package that comes with SchwingSkin. This contains among others templatable versions of...
TressleWorks
Saturday, July 24, 2010 3:47:00 PM

My SQLGridSelectedView module (SGSV) is a useful tool for displaying data from a database. However there are times you want to place it on a page and NOT have it process!  

Seems strange to place a module on a page then not use it - well it did to me!  But, as Joseph Craig pointed out, there is a specific use case where this is the desired requirement.

More...
Joe Brinkman
Friday, July 23, 2010 6:00:16 PM

FeedbackLast year at OpenForce Connections in Las Vegas, Shaun Walker announced an updated release policy.  The goal in 2010 was to move to a monthly maintenance release schedule along with Quarterly major releases.  Prior to this policy announcement, releases were quite sporadic which made it difficult for our internal planning purposes, and also made it difficult for our users to schedule their own upgrade testing and deployment.  When we first committed to this new release schedule, we knew that it was going to take a little time before we could get into the groove with the new release cycle.  By February we had 3 monthly releases under our belts and things looked to be going pretty well, so much so that I blogged about it.

We are now 8 months into the release schedule and following some issues with a few of our recent releases we’ve had a lot of feedback from customers and community members regarding the release schedule. Some users have indicated that monthly releases just didn’t give them time to properly test and upgrade their sites before a new release was coming out and they had to start the cycle all over again.  Other users worried that committing to monthly releases was hurting the quality of our releases.  Conversely, some users liked the frequent releases because it meant they could get bug fixes quicker.  Some users also liked the predictability of the release schedule.

After a lot of discussions with community members, with the core team members, with customers and with partners we have decided to modify our release schedule to address many of these concerns.  Starting with the 5.5 release we are moving to maintenance releases every two months and reducing our major releases to 2 or 3 a year depending on the complexity of the features included with each release.  We will still be targeting specific release dates so that we can scope each release and set proper code-freeze dates, but we will adopt a more quality driven approach to the final release date.  If we need an extra week or two on a release to make sure we get it right then we will extend the release date to make sure we meet both our own quality standards as well as yours. 

We believe that these changes to the release schedule will allow us to still provide a level of predictability in our releases while also addressing the pacing and quality issues raised by many of you.  We appreciate the feedback that has been provided on this and many other issues and are always willing to listen to your concerns.  As I stated in a recent blog post, Open Source works best when you get involved.  Your feedback does make a difference.

Joe Brinkman
Thursday, July 22, 2010 8:01:54 PM

TelerikEver since an updated version of Telerik assembly was shipped with DotNetNuke 5.4, people have continued to report that the Telerik assembly is missing from the \bin folder in the upgrade package.  Given the number of reports related to this issue, it is clear that there is a lack of available documentation for how DotNetNuke is packaged.  Some of these problems will be helped by the new wiki project that is being worked on by the Core Reference team.  The wiki will provide a place where we can document application behavior.  Since the wiki is not quite ready to open for public use, I’ll try to document what is going on with respect to Telerik in this post.

During the 5.3 release we originally intended to include an updated version of the Telerik controls. Our goal is to include new Telerik assemblies with each major release.  Since 5.3 was the first major release following the introduction of Telerik controls in 5.2 we had hoped to make the shift.  When we first created the 5.3 package, we found that attempting to upgrade from any of the 5.2.x packages resulted in a yellow screen when you first start the upgrade.  As a result we pushed the Telerik upgrade to 5.4 so we could better study the problem and find an appropriate solution.

Background

When we first implemented Telerik in 5.2 we included an assembly binding entry in Web.config to ensure that any modules that used older versions of Telerik would automatically use the new telerik assembly.

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    ...
    <dependentAssembly>
      <assemblyIdentity name="Telerik.Web.UI" publicKeyToken="121fae78165ba3d4" />
      <bindingRedirect oldVersion="2008.1.1.20-2010.4.2000.20" newVersion="2009.3.1104.35" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

The downside to having used an assembly binding is that the web.config becomes tightly bound to that specific version of the assembly.  If you change the assembly, you must update the assembly binding to reference the new version number.  Failure to update both the assembly and web.config at the same time will result in a yellow screen error.  This is the exact behavior we were seeing in our testing on 5.3.

The solution

When we started work on the 5.4 release we thought about how to make sure that we could update the web.config before we changed the assembly.  We new that if we just included the assembly in the \bin folder that it would cause the error so we had to keep the Telerik assembly out of the \bin folder during any upgrade scenarios.  Instead, we relied on the strength of our extensions capability.  One of the features we added a few years ago was the ability to automatically make changes to config files during an upgrade.  This feature was baked into the DotNetNuke manifest for DotNetNuke 5.0.  In addition DotNetNuke 5.0 gained the ability to recognize many different extension types – including a library extension.  By combining a library extension with a configuration component we are able to upgrade both the web.config and assembly in a single operation, thereby ensuring that we don’t get the yellow screen during the upgrade.

<component type="Config">
  <config>
    <configFile>web.config</configFile>
    <install>
      <configuration>
        <nodes>
          <node path="/configuration/system.web/httpHandlers" action="update" key="path" collision="overwrite">
            <add verb="*" path="Telerik.Web.UI.WebResource.axd" validate="false" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" />
          </node>
          <node path="/configuration/system.webServer/handlers" action="update" key="name" collision="overwrite">
            <add name="Telerik.Web.UI.WebResource" verb="*" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource, Telerik.Web.UI" />
          </node>
          <node path="/configuration/system.webServer/modules" action="update" key="name" collision="overwrite">
            <add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule, Telerik.Web.UI" preCondition="managedHandler" />
          </node>
          <node path="/configuration/system.web/httpModules" action="update" key="name" collision="overwrite">
            <add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule, Telerik.Web.UI" />
          </node>
          <node path="/configuration/system.web/httpHandlers" action="update" key="path" collision="overwrite">
            <add verb="*" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler, Telerik.Web.UI, Culture=neutral, PublicKeyToken=121fae78165ba3d4" validate="true" />
          </node>
          <node path="/configuration/system.webServer/handlers" action="update" key="name" collision="overwrite">
            <add name="Telerik.Web.UI.ChartHttpHandler" verb="*" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler, Telerik.Web.UI, Culture=neutral, PublicKeyToken=121fae78165ba3d4" />
          </node>
          <node path="/configuration/runtime/ab:assemblyBinding/ab:dependentAssembly[ab:assemblyIdentity/@name='Telerik.Web.UI']" action="update" targetpath="/configuration/runtime/ab:assemblyBinding/ab:dependentAssembly[ab:assemblyIdentity/@name='Telerik.Web.UI']/ab:bindingRedirect" collision="save"  nameSpace="urn:schemas-microsoft-com:asm.v1" nameSpacePrefix="ab">
            <bindingRedirect oldVersion="2008.0.0.0-2020.0.0.0" newVersion="2010.02.0713.35" />
          </node>
        </nodes>
      </configuration>
    </install>
    <uninstall>
      <configuration>
        <nodes />
      </configuration>
    </uninstall>
  </config>
</component>

This new Telerik library extension was packaged and included in the upgrade package in the Install\Modules folder.   Our build server automatically creates this package on every release and includes it in the DotNetNuke upgrade package, while leaving it out of the Install, Source and StarterKit packages since those packages don’t need to support upgrades.

Once the wiki is up and running I’ll work on adding some documentation around how to use the config component with the XML Merge API.  This is a very powerful feature that has certainly helped us with many different upgrade scenarios for DotNetNuke and this is just another example of the power of this little known feature.

Joe Brinkman
Thursday, July 22, 2010 10:57:47 AM

Multi-Language2Last night we posted another beta of DotNetNuke 5.5 which you can access from the beta release page on DotNetNuke.com.  This is probably your last chance to provide feedback on the 5.5 release as we are nearing completion of the testing cycle.  You can have a direct impact on the quality of the 5.5 release if you act today.

Since the last beta release 2 weeks ago, the DotNetNuke team has been busy cleaning up bugs and validating the user scenarios for the new Content Localization feature.   During this time more than a 160 bugs and enhancements have been implemented.  Many of these changes have been as the result of feedback we received from the earlier alpha and beta releases.  In addition to all of the work on Content Localization we have fixed a number of longstanding bugs and made major strides on improving performance.  We are hoping to be able to wrap up testing soon so that we can get a final release out to the community this summer.

Content Localization required many foundational changes to DotNetNuke so it is important that we get as much feedback as possible.  If you have an existing DotNetNuke website, try to perform an upgrade on a backup copy of your site.  If you are a module developer, run your module through some installation and upgrade scenarios.  If you are skin designer, make sure that your skins install and work correctly.  If you are new to DotNetNuke, give the beta a trial run and let us know what you think. 

Once you have done your testing then let us know your results – good or bad.  You can post any issues you find on our issue tracker.  You can also discuss the betas on the Open Core Testing forums.  Let us know what you liked, what you didn’t like or what problems you are having.  Open Source works best when the you get involved.

Overall, 5.5 is shaping up to be one of our most significant releases in the last 2 years and your help would be greatly appreciated in making sure this release is as solid as possible.

Rob Chartier
Wednesday, July 21, 2010 1:31:00 PM

Introduction

Imagine, for a second, you have a server sided JavaScript interpreter built right into a Content Management System. It should have full access to the entire Server sided API’s, depending on security requirements of course. You could literally treat source code as content. That is what this post is about.

If you have ever created a module for DotNetNuke you probably have spent (wasted) countless hours mucking around with Visual Studio, IIS, the file system, packaging, deploying, etc. It didn’t matter if they were the most complex modules, or a simple Hello World module. In the end you probably have come to the conclusion that there just has to be an easier way of doing this.

Enter Dynamo.. (Sorry for the lame name…)

Essentially Dynamo is a DotNetNuke Module which uses Jint under the covers.

Dynamo allows you to completely skip Visual Studio, the debugger, IIS, deployment, packaging, etc... Install this single module and open your DNN installation to the world of dynamic language interpretation.

Since DotNetNuke is a content management system, Dynamo brings your source code directly into the DNN UI. It allows you to create code, on the fly, and manage that code within DNN itself.

A screenshot might help clarify…

image

As you might not be able to interpret from the above screen shot, this is a server sided scripting language built right into DotNetNuke. In the Scripting Window you edit your script and either Preview or Save it. Notice the fancy syntax highlighting, just no intellisense. When viewing the module it will interpret and render the script at the server side. So the above example produces:

image

 

The echo method will emit text to the output container directly. Anything return’ed out of the function will also get slapped into the output container automatically. So you can either use a StringBuilder to append up your content, or just echo content directly. Watch out for Page.Response.Write, it will emit the content at the top of the page; which is consistent with ASP.NET’s rendering.

Examples

Another real world example would be to reproduce (at a very rudimentary level) the Feedback Module which ships with DotNetNuke. Here is the code block:

   1:  echo("<div valign='top'><fieldset><legend>Provide Feedback</legend>");
   2:  echo("Your Email:<br /><input type='text' name='fromemail'><br />");
   3:  echo("Subject:<br /><input type='text' name='subject'><br />");
   4:  echo("Body:<br /><textarea name='body' rows='10' cols='50'></textarea><br />");
   5:  echo("<input type='submit' value='Send Feedback'><br />");
   6:  echo("</fieldset></div>");
 
   7:  if(Page.IsPostBack) {
   8:  var fromemail = get("fromemail");
   9:  var subject = get("subject");
  10:  var body= get("body");
  11:  if(fromemail!="" && subject!="" && body!="") 
  12:  return DotNetNuke.Services.Mail.Mail.SendMail(fromemail, "toemail@localhost", "", subject, body, "", "", "", "", "", "");
  13:  else
  14:  return ""
  15:  }
  16:  else {
  17:  return "";
  18:  }

 

So you should first notice that Dynamo does not support context switching between plain HTML and Code Blocks. Everything is a code block. If you want to emit HTML, you must do something like:

echo("<div valign='top'><fieldset><legend>Provide Feedback</legend>");

Mixing HTML and code is a nice-to-have in the ole product roadmap for the project.

Next you will notice the code itself is a slight mix with JavaScript syntax and .NET Types. The interpreter has the ability to mix each and interpret it accordingly. This also includes being able to call into the DotNetNuke API library as well. It’s important to note that we are using an interpreter and NOT using Reflection.Emit(). Thus we are just fine within Medium Trust.

What else can Dynamo do? Here is a short list of tested scenarios:

  1. Consumes RSS Feeds (uses RSS.NET)
  2. Full Database CRUD
  3. Full Access to the DNN API, including but not limited to Portals/Tabs, Modules, Users, etc..
  4. Emitting custom JavaScript and CSS (into the Head tag, or CSS inline)
  5. Detecting PostBack’s
  6. File I/O
  7. Rendering files (into the interpreter, and getting the results)
  8. Twitter Timeline
  9. Page caching

Your options you have are literally limitless.

Debugging

Since DotNetNuke is Web Based it would be extremely hard difficult to get stuff like intellisense and full step by step debugging working. I don’t have the time right now, but you never know with a future version of the product.

For now, I have the ability to “Show Debugger Details”, in the Edit Script control, when you hit Preview. It literally will emit debug information at each step of the code as it interprets it. I did a simple dump of the Current Statement and the locals available.

With that said I don’t block any exceptions and do bubble them up to the UI, so if you do have issues they will very obvious.

Source Code Versioning

Most professional software developers do use some sort of Source Control software. Right now the tool does NOT have anything built in to help with this. I would love to add this at the very least to the product backlog. Eventually I would love to get to it…

Security

The source code itself contains the line of code which completely disabled all security validations. You can do some serious damage with this. If this bothers you, you should do one of two things:

1. Find the line: JintEngine.DisableSecurity(); Remove it, recompile and redeploy to your server

2. Don’t use this package version in production.

Getting started

There are two methods for you to get started; the easiest method would be to use the prepackaged module installation file here. Download it, and install it into your Development DNN Installation site. The module’s name is “Dynamo” and should be available for you to drop on a page.

The more difficult method would be to grab the source code, and compile it. This would be the method you would need to take in order to re-enable the Security (See the Security section above). This is what I use when building/testing the module itself. So if you need to make other fundamental changes you will need to do this as well.

I would recommend you reset your references to the DotNetNuke specific DLL’s out of your actual bin folder for DotNetNuke. Once you have it building, I personally just use xcopy deployment to the website’s bin and DesktopModules folder and refresh the browser. Debugging can easily be done by setting the breakpoint and attaching VS.NET to w3wp.exe.

DNNDaily.com
Monday, July 19, 2010 2:24:13 PM

When I started up here at DotNetNuke Corp. in March, I spent quite a bit of time planning and tweaking our plan in regards to the DotNetNuke Training that we would be offering. The initial phase launched when we started offering our paid DotNetNuke Training Webinars in May 2010 covering a variety of DNN topics. Since then we have conducted almost 80 hours of live webinar based training, with hundreds more hours scheduled for the rest of the year.

This was just the first phase of a multi phased plan. Having been involved in the DotNetNuke Community since it’s early birth in 2003 I wanted to make sure that we provided resources that would be accessible to everyone in the community, and let’s face it, sometimes budgets aren’t lined up for everyone and paid training isn’t always an option.

Today I am proud to announce that we have launched another phase in our training offerings with a number of Free DotNetNuke Training courses. These courses are going to be offered monthly, and a couple of them start up as early as next week. For now we have four courses in addition to the free DotNetNuke Introduction webinar that you can sign up for. These courses are a great primer if you are looking to quickly get up and running with DotNetNuke, as well as great starting points if you look to continue your DNN education with our paid training offerings.

The four topics are

  • Installing DotNetNuke
  • Basic DotNetNuke Administration
  • Basic DotNetNuke Module Development
  • Basic DotNetNuke Skinning

To get signed up for these sessions visit the DotNetNuke Training page and click on the Basic Training link!

In the coming months we will announce even more training offerings, both paid and free, of course! Stay tuned to our DotNetNuke Training page for all the latest info on these offerings.


More ...
Tags: DotNetNuke,Training,DNN,Learning,Course,Curriculum
40Fingers Blog
Sunday, July 18, 2010 10:51:00 AM
Windows 2008r2 is good in so many ways, I can never list them all. Of course, being the server variant of Windows 7, it means you can use all the nice interface enhancements that are also available in Windows 7. Both Windows 7 and Windows 2008r2 have IIS 7.5 on board. One of the most interesting enhancements in IIS 7.5 is something called the Application Pool Identity (AppPoolIdentity). In Windows 2008r2 this is the default setting for new application pools. With this setting, IIS can create a unique virtual windows account, using the name of the application pool. Accounts created like this have the same networking capabilities as the well known NETWORKSERVICE account, however, because they are unique, they can also be used to secure physical files in your system. So, lets see how we can use this to quickly install DotNetNuke in a secure manner.
The Mighty Blog
Sunday, July 18, 2010 9:07:00 AM

While running a DotNetNuke user group for quite a while, I did all of the management of it myself.  Right or wrong, I wanted to set a tone, a precedent, and basically know everything around how it was going to work before adding on more help.  In doing so, I learned a great deal that rounded out my leadership experience in terms of user groups.

Am I saying that you need to do that?  Absolutely not.  I am simply giving you a bit of background about how I began.  Everyone is different and handles tasks and responsibilities differently.  You should only do what you feel comfortable with, and maintain a level of involvement that keeps you and your family happy, and that won’t lead to you being burnt out.

That really sets the stage for what to expect the first few months of managing a user group.  What do you expect during this time?  That very question is what keeps the majority of people from even starting a user group.  However, I will tell you a bit about it now…

Have the Meeting

The first thing that a new leader will need to get over is just having the meeting.  All too often I have seen group after group go stale and never get off of the ground because the leader didn’t think there was enough people to have the meeting.  I am always confused by this, as there isn’t a magic number that you should be looking for.  Really, 3-4 people for your first meeting is fine. 

Once you have the ability to have a couple of people to have the meeting, find a place and hold it.  Your first meeting should serve at least one of two purposes.  First, you need to talk to the people that show up, and find out from them what kind of user group they want to have.  Even the user group is under your direction, you need to make sure that direction is what the people that come expect to have.  Otherwise, you will lose all of your attendees.

The other purpose is to have a mini-presentation, but only if you have the resources to do so.  No one expects too much for the first meeting.  In fact, the ODUG’s first 3-4 meetings were all kind of this way.  They tended to be more of a round-table discussion than anything else.

Attendance will Start Low

Don’t be surprised if your attendance levels aren’t packing the room the first few months.  Depending on your area and many other factors, you may never pack the room, despite our greatest efforts.  However, you shouldn’t expect too many people to show up to the first 3-4 meetings.  Many people are waiting for those meetings to happen to see if there’s any buzz going on.  If there is, they will likely be at another meeting soon.

That being said, make sure to keep your members in the loop, even if they’ve never been in a meeting.  Maintain a consistent outbound flow of communications telling everyone how great the meetings are.  Post pictures of all of the happy faces at the meetings for everyone to see.  The more fun it looks like you’re having, the better it will be.

Speakers will Be Hard to Find

You cannot expect your first few meetings to have top-notch speakers.  During this first period of time, usually the user group leader ends up being the presenter.  So, have at least 2-3 presentations or discussions ready.  I call them “canned” presentations, because they just need to be opened up, and you can make it happen.

Keep your first handful of presentations newbie-friendly.  Anyone that’s new to DNN should be able to walk in and be perfectly comfortable with the topic and discussion.

Follow the marketing tips below to find more speakers.

In-Person Social Networking

Regardless to how many people show up, and how many new faces there are in the crowd, you need to give everyone in the room the opportunity to talk to each other, and in many cases, force them to do so.  By our very nature, techies are anti-social, so you may have to introduce people to each other and so on. 

Get people to talk about what they do, their latest projects, and more.  When you see an opportunity to get two people to know each other that are working on similar projects, introduce them.  You’re a DNN match-maker. 

If you do this in the beginning, this will set the tone, and before you know it, the rest of the members will be doing this for you.  From that point forward, all you’ll have to do is make sure you give new faces the same experience as future meetings occur.  Your members will be looking for more members in tandem with your own efforts too.

Make it Easy to Share

Give your user group a website, and a twitter account.  Make sure that everyone know how to share any information on either site.  This will allow them to keep the conversations going outside of the meeting, hopefully gaining more and more new members.

Be a Marketing Machine

Your meetings will happen.  You will end up having a core group of members that always show up, no matter what.  However, in order to guarantee growth and to keep a regular number of seats filled, you will need to make sure that you are always marketing the user group.

Get involved with the local .Net and SQL Server user groups.  Make sure that they know who you are.  Get a t-shirt made with the user group name and website on it (sites like cafe press make it easy and cheap).  Wear it to every community event. 

Have business cards on you that have the user group website on it (sites like vista print make this easy and cheap).  Hand one to everyone that seems even remotely interested.  Sure…  You will see a couple of those cards on the floor later, but you can reuse those for other people.  Don’t worry about it.  I even use them to write technical information and other contact information on so that they will still see the user group info on one site, and the written information on the other.

Become friends with the other user group leaders and the local Microsoft Developer Evangelist.  Have them introduce you to other people in the area that are influential.  Remember to wear your garb and bring your business cards. 

What Does this All Mean?

When you put this all together, you have formula that will guarantee the stable growth and culture inception of your user group.  The growth will be a direct reflection of how much time you put into the formula.  So, the growth can take anywhere from 3 months to a year.  The important thing is though, the growth will happen!  I cannot put into words the amount of gratification you’ll feel once you make it to that point though.

The Mighty Blog
Saturday, July 17, 2010 1:06:00 PM

In what used to be a utility to exclusively generate an XML SiteMap for the DotNetNuke core Blog Module, is now called an XML Utility for the DNN Blog Module.  This change was made to more accurately reflect what this utility does.

There have been two versions released over the past week, with the latest being this evening, for version 01.02.00.  Version 01.02.00 is basically a stabilization release for the previous release.  There wasn’t anything show-stopping, unless you use Feedburner.  But more on that later…

What’s New?

In version 01.01.00, I added RSS feeds as a feature, along side the existing SiteMap feature.  There were two main motivations behind adding this feature to this project. 

First, I wanted to make it easy for anyone out there to syndicate their RSS feeds without having to worry about broken image paths.  Second, I wanted to syndicate my blog categories from the Blog Module separately from the main feed.  Since categories are still new to the module, this is missing functionality.

This feature worked quite well, save for one minor bug.  I wouldn’t say it’s truly a bug, but rather a problem with how Feedburner itself is not able to read the previous date format.  A minor adjustment to how the date is formatted allowed the feed to be parsed completely by feedburner once again. 

If you use feedburner yourself, and didn’t notice anything, this is because you’d have to be under very specific conditions to notice the missing date on the output XML from feedburner.

Besides the bug fix above, I also added adjustable caching to the RSS output.  Before, the RSS feed was rebuilt upon every request.  Now, the RSS feed output is cached by default for 5 minutes.  However, this value is also adjustable to be any number of minutes you’d like by simply adding a value to the AppSettings of your web.config file.

The features are further documented in the project site, so I won’t bore you with that information.  Instead, I encourage you to give this little utility a try and let me know what you think!  :)

XML Utility for the DNN Blog Module

The Mighty Blog
Saturday, July 17, 2010 12:04:00 PM

Part of running any user group is to hold regular events where the members of the user group can gather at a single location to learn something new about the topic at-hand, and to network with each other.  The value of the user group meeting increase each time you return, until you reach a kind of snowball effect.  Eventually, user groups will become part of your routine – something that you just have to make sure you do and plan your vacations around.

Well, that doesn’t always happen, but believe it or not, it really does happen to many people out there.  But how did they get to that point?  What made them come to that first user group meeting?  I will speak to one of the first areas that answer that question in this post.

While I am going to talk about this in the context of DotNetNuke, be aware that most of this information can be applied to nearly any user group in the world.

Drafting Event Information

The first thing you need when you are planning your next event is a speaker.  I am going to assume for the purpose of this post that you found one already.  Once you have the speaker, you are generally going to ask for a few bits of information from them (maybe more):

  • Topic Title
  • Topic Description
  • Short Biography
  • Headshot or other picture

Once you have that information, you need to draft an informational blob about the user group meeting.  Your event information needs to contain that, and more.  At the minimum, you need to include the following:

  • Meeting place name, address, directions
  • Time and date of the meeting
  • Will there be refreshments?
  • Will there be sponsors?
  • Will there be door prizes?
  • Are there any special directions for parking or getting into the meeting place?

That basically sorts out the content of the body of your event information, and it is all extremely important.  Just be sure that it is written in a way and reads in a way that someone that is completely new to the technology can read it and understand it.  All to often you will lose members before you ever even see their face just because the event information wasn’t detailed enough, or it didn’t sound like they understood it, even if the topic was a beginner topic.

For example, let’s talk about the event title.  This is perhaps the most important thing in your entire event description, so that’s where I am going to spend the rest of our time in this post. 

User Group Meeting Title

Think about the event title as your big chance for your first newspaper headline.  If you only had enough space on the front page of a newspaper to put your event title, what would you say to draw that person to turn the page and find out more about your event?  This is no more different in the world of user groups then it is for the mythical newspaper analogy.  Your event title must be compelling, engage immediate interest, and be accessible to a broad range of talent levels. 

You are probably wondering why I am presenting this to you in the way that I am.  Your event title is indeed a headline, which I will explain more about later.  But first a couple of tips…

Do not use the title for your event that your speaker gives you!  On occasion, this is probably fine, but in practice, the title that your speaker gives you is often too technical or technically polarizing, immediately chasing away a large number of potential attendees. 

Where to Post Your User Group Meeting

Before the importance of the title will be completely apparent, we need to talk about where and how to tell people about your user group meeting.  Here are a few ways that you can publicize your meeting, and I suggest using all of them if you can until you get a regular attendee number that you’re comfortable with.  Simply put, you never know which source your reoccurring attendees will find you through.

  • Your own events module
  • Newsletter
  • DNN User Group Module
  • DNN Forums
  • User Group Support Services (UGSS)
  • Community Megaphone
  • Craigslist

Notice that in the above list, there isn’t any cost involved.  It is important to use up every free resource you can as a UG leader or coordinator.  Now for a little more explanation…

Your Own Events Module

If you are running a DNN user group, you should be hosting your website on DNN.  I will assume that you are…  You can use something other than the Events Module, but I have found more success in using the Events Module for various reasons.  Be sure to add your meetings to your calendar regularly, even if you only have a date.  Adding meetings that don’t have a firm commitment from a speaker or venue is still important, as it will show your members that there is indeed a meeting date and time, so they can plan for it.  In these cases, you can simply say that the content and speaker is “to be determined.”

Make sure you enable and publicize your Events Module as having an RSS feed.  This will keep your members informed that regularly use RSS readers.  Plus, you can easily consume this information yourself for any number of user group needs.

Newsletter

I must assume that you already have a newsletter too.  DNN’s Newsletter module is more than sufficient for any user group, and it’s convenient to be able to tie into it’s token replacement.  Be sure to include your next meeting as the top news item on every newsletter issue.  You should have 2-4 newsletters a month to make sure you keep everyone informed of the next meeting, and any other group news.  If that sounds like too many, remember that not everyone reads their e-mail right away.  The repeated newsletters often serves as a reminder to read it.  However, anything above 4 is way too much.

DNN User Group Module

I cannot say enough about you needed to use the DNN User Group Module more.  Make sure you publish your new meetings here.  Unfortunately, there isn’t currently a way for this module to automatically import your meetings yet, so this will be a copy/paste operation once your meeting is scheduled.

This is important on many levels.  First of all, it lets the people know that might have never registered on your site.  Second, it places your event on the main user group calendar, a place that newcomers will surely check when they hear about DNN user groups existing.  Next, it also ensures that your meeting will be publicized in the next DotNetNuke Community Newsletter.  That newsletter goes out to a lot of people.  Don’t skip this step!

DNN Forums

There is a user group forum in the DNN Forums.  This is a perfect place to let people know about your user group news.  You never know when the right person is going to see your announcement in these forums.  In addition, you can get user group support there.  I am not the only person who monitors that forum.

User Group Support Services (UGSS)

If you’re not already part of the User Group Support Services (UGSS), you should be.  While their “user group kits” (free door prizes) are not all that great anymore, they do offer other resources that may be valuable to you. 

That is beyond the scope of this post, so you should check with your local Microsoft Developer Evangelist, or INETA Mentor to get involved.  If you don’t know who either is, attend your next area .Net or SQL Server user group meeting.  They should be able to point you in the right direction.

One of the many benefits of this site is that is has an event section to also add your events to.  Their calendar is used by many people, and aggregated to many places, so you get great exposure.

Community Megaphone

Like the events calendar in the UGSS, the community megaphone website events calendar is very visible to a large number of people.  The primary difference is simple that this one is community written and supported.  For that reason, you tend to get another completely different crowd of people who would ordinarily not see your events, simply because the UGSS has corporate sponsorship. 

That being said, if you’re using the UGSS website to add events to, do not manually add events to Community Megaphone.  The UGSS has a checkbox that you can check to automatically add your event to both calendars.

Craigslist

This option is the only one that I’d say is optional for growing user groups.  It has the least amount of reach in terms of reaching potential members in my opinion, but I have indeed generated attendees using it.  Make sure that if you do, you post your meetings in all of the regional areas near your user group that are within a reasonable driving range. 

Reasonable driving range doesn’t mean what you might think either.  One of the Orlando DotNetNuke User Group (ODUG) members would regularly drive 2.5 hours each way to attend our meetings.

User Group Meeting Title (Revisited)

By now, you should have more than enough background information to understand the scope of your user group meeting title, but I am going to talk about it one more time anyway.  :)

In all of the above suggested places, not only do you get exposure there, but they also allow their events (yours included) to be syndicated to any number of place and/or through a public RSS feed.  For example, your events that are sent to the Community Megaphone are also tweeted through their twitter account (@CommMegaphone).  When these aggregations happen, the only thing that you have any control over is the title of the event.  Additionally, there’s no telling what the focus is of the places that your event gets posted on in this mystical chain of information movement.  Therefore, your title needs to reflect everything and appeal to everyone with the shortest number of characters.  This is not so different when authoring an important twitter post, which limits you to 140 characters.  You are bound by similar circumstances.

That should make things a lot more clear now, I hope.  Given that you have no idea who will see the title, unleash the inner-report within yourself and begin crafting the most appealing event titles that you know how!  Here are some tips for some great event titles:

  • Be fun!
  • Put “DNN” or “DotNetNuke” in the title.
  • Use plain words in talking about the technology being discussed.
  • If the speaker is a high-profile individual, name drop! Put their name in the title.
  • List the grand door prize in the title if there is one that’s worth it, and if room allows.

User Group Meeting Content (Revisited)

DNN User Group Event ExampleI already mentioned a few of the details that you need to be conscious of, but with the new contextual information above, I thought I should go over it one more time with another list of tips.

  • If you have sponsors, give them full credit and placement, according to their level of commitment.
  • Use logos of your sponsors if at all possible.  Ensure the best quality of the image as possible.
  • Make your speaker and speaker bio the star.  Generally, they have dedicated 20+ hours of time in preparation to be there, sometimes including paying for their own travel and expenses.  Promote the heck out of them!
  • Put the meeting time, date, and location in a prominent position at the top of the event information.
  • If you require any registration for the event, make the registration button/info very clear. When your event information is long, put it at the top and bottom of the event information.

The example above is of one of the ODUG events that I had written in the past.  It’s not perfect, but I am sure that you can tell that it follows the advice I am giving you.  :)

I hope that this information is helpful to you.  Enjoy your user group.  The more people you involve and meet, the better it is for everyone involved.

SchwingSoft (Armand Datema's) DotNetNuke Blog
Friday, July 16, 2010 6:32:00 AM
SchwingSkin is CSS Grid framework especially for DotNetNuke. The idea is that you have one or more base skin .ascx files that contain nothing more tha...
The Mighty Blog
Friday, July 16, 2010 3:40:00 AM

One of the most common questions throughout the DotNetNuke community and ecosystem overall is, “Where can I learn about DotNetNuke?”  Of course, this question has several variations like, “How can I learn to skin in DNN?”  There are many places and ways to learn DNN, as with any other software out there.  I hope to be able to point you in the right direction for DNN with this post.

There are going to be more resources than the few I list here, so feel free to leave a comment with your favorite learning resources (even if you are the resource).

On the DNN Website

There are several areas on the DNN website itself that offer you various ways to learn about DNN.  Some you probably already use, but they are viable resources just the same.

  • Online Help  this is a non-downloadable online reference area for DNN core functionality and modules
  • Documentation  this contains a lot of downloadable user and admin guides
  • Blogs
  • Forums
  • Webinars  these were live webinars that have since been posted for your reference and learning
  • Official Training 

Books

Books are often a great way to get a primer into any technical subject, and DNN is no different.  Probably my favorite thing about books is that you can move through them at your leisure.  There are several books that are still relevant to the current version of DNN.  (It should go without saying that books are not free, right?)

E-Books

An e-book is basically a downloadable book, or mini-book. These are great because they are so portable, and usually offer bite-sized information.  These e-books are not free.

Podcasts

Podcasts are just too darned convenient to ignore.  They offer plenty of information in a portable audio format, which allows you to listen to them while you drive, exercise, do work around the house, and even while you work.  There two known podcasts that are specific to DNN. Luckily, these podcasts are both free!

Websites

There are so many websites that offer DNN content, tutorials, tips, and more.  Most of them even specialize in it.

Hopefully this gives you a pretty good idea of where to go for your next stop in learning something new about DNN.  Once again, if you have any more resources that you don’t see listed here, please feel free to “name drop” in the comments below.  :)

Active Modules, Inc.
Friday, July 16, 2010 2:22:50 AM
Scott McCulloch released a new version of his News Articles module today which includes an option for Active Social journal integration.  Ventrian News Articles is the first third-party module to add Active Social Journal support using the new Journal API.  You can learn more about this great new feature over at Ventrian.com.  Thanks Scott! 

A special thanks goes out to Steven Webster for pushing Scott and I to finally make this happen.




Rob Chartier
Wednesday, July 14, 2010 6:37:13 PM

Show your DotNetNuke passion by using the DotNetNuke 2010 Firefox Persona, found here.

image

RSS URL

About Us

Why DotNetNukeBlogs.com? Our goal is to be the premier aggregator of DotNetNuke related materials. DotNetNukeBlogs.com was started by DotNetNuke Core Team member Chris Hammond with the intention to provide a place for the leaders in the DotNetNuke Community to push their content to those needing it most, the users.

Stay tuned as we continue to grow. If you're a DotNetNuke Expert be sure to get your feed added into our aggregate system.

You can read more about us here

Built On DotNetNuke

This site is built with and supports the DotNetNuke open source project.
DotNetNuke Powered!

Resources

DotNetNuke.com The DNN mothership.

Copyright (c) 2010 DotNetNuke Blogs On DNN, For DNN

DotNetNuke and DNN are trademarks of DotNetNuke Corporation