By Charles Nurse on
4/10/2012
As part of building a robust Social platform, we have added a number of enhancements to Registration.
Registration, Login and Profile Settings
DotNetNuke is a very powerful and flexible platform. The challenge that this brings is that it is often difficult to know where to make configuration changes. User/Registration settings is one such area. In this Beta we have tried to address this by moving the Registration settings to the Admin/Site Settings page. Admins are familiar with going to this page to make configuration changes.
|
By Charles Nurse on
4/4/2012
This blog has been cross-posted from my personal blog.
In the first post in this series I pointed out that DotNetNuke places few requirements on module developers, and this is often daunting to new developers – “where do I start?” being a common refrain.
So where do you start?
Before we actually start to build our first module lets look at what constitutes a module. In the default DotNetNuke skin/template that is used when installing DotNetNuke there are a number of examples of Text/HTML modules.
As an example Figure 1 shows 3 such modules on the Home Page.
|
By Charles Nurse on
3/30/2012
This blog has been cross-posted from my personal blog.
DotNetNuke has a rich eco-system of Modules, both Open Source and Commercial. In many ways this is our biggest strength as a CMS platform. No matter what you want to do with your site – there is often a module that already does it.
In my opinion this is due to the flexibility provided by the core DotNetNuke Framework. Many other platforms are very prescriptive – as an extension developer you have to follow a fixed shopping list of rules – there is invariably only one way to create an extension, which may not work for what you want to do.
|
By Charles Nurse on
3/2/2012
DotNetNuke 6.2.0 CTP 1 introduces a number of Profile updates - many of which update the Visibility options.
Admin-Only Properties - while this has always been available through the Visible property, this has been made clearer in the Help text for the property.
A Profile Property whose Visible property is false cannot be viewed in the Profile page by the user (but is visible to Administrators when they edit the user's profile, and is available to Module Developers through the API).
|
By Charles Nurse on
3/1/2012
So here it is – the first real post in our series on DotNetNuke Patterns and Practices. How do we make our “Controllers” testable. Historically, DotNetNuke has used a “Repository” style for manipulating entities in the business layer (rather than an Active Record style) – a lightweight Entity class – usually suffixed with Info, and a Repository class which has traditionally used Controller as a suffix. This naming strategy was present initially in the iBuySpy Portal Starter-Kit upon which DotNetNuke...
|
By Charles Nurse on
2/29/2012
DotNetNuke 6.2.0 removes the maximum roles limitation of previous versions.
Many developers are aware that, prior to version 6.2.0, a semi-colon delimited list of roles was saved in the user's cookie.
As the cookie has a fixed size, this effectively limits the number of roles to which a user could belong to about 50 (the actual limit depends on the names used for the roles – shorter role names would increase the maximum limit slightly).
|
By Charles Nurse on
2/28/2012
DotNetNuke 6.2.0 introduces changes to how the Tab (Page) Hierarchy is managed.
Due to the limitations of earlier versions of SQL Server, which we were required to support prior to DNN 5.4, the business layer had to manage the handling of the page hierarchy. Whenever a page (tab) was created or moved in the hierarchy, there was a lot of calculation to calculate the effect on other pages and update them accordingly.
In a large site like this one - if a page with a large number of descendants is updated then every descendant is updated so that its "Level" and "TabPath" can be updated in the database.
|
By Charles Nurse on
2/17/2012
Welcome to a new series of blogs/articles on Patterns and Practices for development using DotNetNuke.
In this series I will be asking members of the Engineering Team at DotNetNuke Corporation and Community Members to contribute articles describing Patterns and Best Practices for DotNetNuke development.
|
By Charles Nurse on
11/16/2011
Its been a while since I blogged here, but I recently started a new blog series on my personal blog on the topic of NoSQL databases. Recently this topic and in particular a particular subclass of databases called “Document Databases” came up in a discussion the Product Team were having on proposed features for 6.vNext.. So I decided it was time to dive into this class of databases in order to find out if they could provide some benefit to us in the Medium to Long Term. The topic is very...
|
By Charles Nurse on
9/18/2011
I am pleased to announce that I will be speaking at DevReach in Sofia, Bulgaria next month. This is the sixth year for this conference - which bills itself as the Premier Conference on Microsoft Technologies in Eastern and Central Europe - but its the first time for me.

|
By Charles Nurse on
7/15/2011
DotNetNuke 6 introduces some really cool new features – especially the new User Interface – but there are also quite a few smaller enhancements that make it easier for Admins and Host users to manage their site. One of these is the concept of Module Categorization. Module Categorization allows Host users to categorize their modules so that finding a module in the Control Panel is much easier. Lets look at how it works. When logged in as a Super User browse to the Host >> Extensions module...
|
By Charles Nurse on
2/9/2011
This year I have decided to place a bigger focus on speaking at Developer Conferences and so over the last few months I have been submitting session proposals to major conferences around North America. I am pleased to say that many of my submissions have been accepted and I have quite a busy speaking calendar for the upcoming Spring conference season. VSLive Conference Dates: April 18-22, 2011 Venue: Rio, Las Vegas Website: http://vslive.com/lv...
|
By Charles Nurse on
1/1/2011
For the fifth year in a row, I awoke this New Years morning to an email from Microsoft, congratulating me on being awarded an MVP (Most Valuable Professional) Award for ASP.NET for the coming year.
|
By Charles Nurse on
12/8/2010
On Monday, we launched the Razor DotNetNuke Hackathon with a meeting of SEADUG (Seattle DotNetNuke User Group) held at Microsoft offices in beautiful downtown Bellevue. For those of you proposing to write Razor “scripts” as part of the Hackathon, I have decided to write a series of short Tips and Tricks. In this fourth post I will cover how you can go about extending the provided helpers to provide a simpler API for the scripts to consume. The DotNetNukeWebPage class, which is the base class for all Razor scripts used in DotNetNuke has three additional properties. ...
|
By Charles Nurse on
12/8/2010
On Monday, we launched the Razor DotNetNuke Hackathon with a meeting of SEADUG (Seattle DotNetNuke User Group) held at Microsoft offices in beautiful downtown Bellevue. For those of you proposing to write Razor “scripts” as part of the Hackathon, I have decided to write a series of short Tips and Tricks. In this third post I will cover a couple of caveats when using Razor scripts in the DotNetNuke context. No Forms...
|
By Charles Nurse on
12/7/2010
Yesterday we launched the Razor DotNetNuke Hackathon with a meeting of SEADUG (Seattle DotNetNuke User Group) held at Microsoft offices in beautiful downtown Bellevue. For those of you proposing to write Razor “scripts” as part of the Hackathon, I have decided to write a series of short Tips and Tricks. In this second post I will provide some information about the web.config file located in the RazorModules folder. ...
|
By Charles Nurse on
12/7/2010
Yesterday we launched the Razor DotNetNuke Hackathon with a meeting of SEADUG (Seattle DotNetNuke User Group) held at the Microsoft offices in beautiful downtown Bellevue. For those of you proposing to write Razor “scripts” as part of the Hackathon I have decided to start a series of short Tips and Tricks. In this first post I will provide the first Tip for anyone wanting to bundle their Razor Module for distribution...
|
By Charles Nurse on
11/25/2010
In earlier articles in this series on the new WebMatrix suite of technologies from Microsoft, I described how we are supporting the use of Razor scripts in DotNetNuke, by providing a “Razor Host” module. But what is Razor? On my personal blog I have recently started a new series of articles that take a deep dive into the Razor Syntax. As these articles deal exclusively with Razor and WebPages, I decided not to cross-post them here. However,...
|
By Charles Nurse on
11/8/2010
n an earlier article in this series on the new WebMatrix suite of technologies from Microsoft, I described how we are supporting the use of Razor scripts in DotNetNuke, by providing a “Razor Host” module.
Having created this cool new Razor script, how do you go about distributing it?
|
By Charles Nurse on
11/3/2010
In my previous post in this series on the new WebMatrix suite of technologies from Microsoft, I described how we are supporting the use of Razor scripts in DotNetNuke, by providing a “Razor Host” module. In this article I will dive deeper into how we host the Razor Parser.
|
By Charles Nurse on
11/2/2010
WebMatrix is Microsoft’s new suite of technologies designed to make creating websites easier. There are four major components to the new WebMatrix “Web Stack”
- IIS Developer Express – a new free lightweight web-server, based on IIS 7, that runs on all versions of Windows and does not require Administrator level permissions
- SQL Server Compact Edition – a lightweight file based database that is simple to set up and free to download.
- ASP.NET “Razor” – a new view-engine option for ASP.NET that can be used to easily embed C# or VB code within an HTML page. This is “bin” deployable and free.
- WebMatrix Tool – a free lightweight developer IDE that integrates all the components.
|
By Charles Nurse on
9/8/2010
Have you ever tried to write Unit Tests for multiple implementations of an Interface or Abstract Base Class. I encountered this problem over the weekend in a personal project and after some poking around I realized that MbUnit supports this ability using the Factory attribute. In DotNetNuke we make extensive use of the Provider Pattern, so as we develop tests for the core we will encounter this scenario. In this post in my irregular series on Testing I describe how you can write a single Test Fixture that elegantly handles the testing of any number of concrete implementations.
|
By Charles Nurse on
8/25/2010
|
By Charles Nurse on
8/20/2010
In a previous post I described how WebMatrix can be used to download DotNetNuke and install it on your local computer. In this blog I will describe how you can use WebMatrix to publish your DotNetNuke site to a Hosting Provider.
First lets slightly modify the content from a plain vanilla DotNetNuke site, by deleting the modules on the front page and adding a single HTML module...
|
By Charles Nurse on
7/10/2010
Earlier this week Microsoft released WebMatrix the new free lightweight web-stack for developing ASP.NET Web Applications. As I discussed in my initial blog one of the potential uses of WebMatrix is its ability to open existing Open Source applications directly from the Web Application Gallery.
In this blog post I will walk...
|
By Charles Nurse on
7/6/2010
Earlier today Scott Guthrie announced a new “Web Stack” called WebMatrix. WebMatrix is both the name of the complete stack (Web Server, Database and View Engine) as well as the name of the new lightweight development tool that you can use to create, edit and publish websites.
|
By Charles Nurse on
4/15/2010
In a previous article in this series of blog posts, I described the different Test Doubles that can be used when unit testing your application.
My favourite type of Test Double is a Mock. Mocks are usually dynamically created by a mocking framework. Mock objects are preprogrammed with expectations which form a specification of the calls they are expected to receive.
|
By Charles Nurse on
4/15/2010
In a previous article in this series of blog posts, I introduced Moq (Mock-you) – the mocking framework we are using in DotNetNuke to generate Mock objects for testing.
|
By Charles Nurse on
4/11/2010
In DotNetNuke version 5.3, we introduced the concept of a centralized Content store, together with the ability to apply Taxonomies (categories) to the content. We have extended this in DNN 5.4 by completing the MetaData API as well as adding Folksonomy (user tags).
|
By Charles Nurse on
4/9/2010
In DotNetNuke version 5.3, we introduced the concept of a centralized Content store, together with the ability to apply Taxonomies (categories) to the content. We have extended this in DNN 5.4 by completing the MetaData API as well as adding Folksonomy (user tags).
|