By Charles Nurse on
2/4/2010
Often, when writing Unit Tests you find yourself writing a batch of quite similar tests that exercise the various test cases for a method.
As I am endeavoring to add Unit Tests to all new code I write, I am learning my way through the MbUnit/Gallio Testing Framework which we have standardized on for all DNN testing. MbUnit is an awesome testing framework and it has a number of Attributes that you can apply to a Test that allows you to provide different parameters.
Read More »
|
By Charles Nurse on
2/1/2010
In earlier blogs (Part 1 and Part 2 of this series) I described how I have developed a Framework that allows developers to create DotNetNuke (DNN) modules using the new ASP.NET MVC Framework. In this blog I will describe the new base class which is used to enable this ability - MvcModuleApplication.
Prior to DotNetNuke 5.0, all module controls had to be ASP.NET User Controls that inherited from PortalModuleBase – a base class in the DotNetNuke Web Application Framework that provided the context necessary for DotNetNuke’s Module Injection logic to load and inject the module control in the page. (Since about DNN 4.4 a module control was not required to be an ascx file – it could be a compiled server control, but it still had to inherit from PortalModuleBase and thus ultimately from UserControl).
Read More »
|
By Charles Nurse on
1/29/2010
In an earlier blog I introduced the idea of using ASP.NET MVC to develop DotNetNuke modules, and I walked through how you could create a simple ASP.NET MVC Module Application. Now that I have demonstrated that it is feasible to use the MVC Framework in a WebForms Application, I will start to dig into how this was done.
But first, before we look at the code, lets review how the standard ASP.NET MVC Pipeline works. This is summarized effectively by Steve Sanderson, on his blog.
Read More »
|
By Charles Nurse on
1/28/2010
Last week, shaun posted a blog in which he discussed whether DotNetNuke (DNN) should be rewritten in ASP.NET MVC. This blog created quite a stir, both within the DotNetNuke Community and within the ASP.NET Community as a whole.
In a comment that I added to shaun’s post I suggested that the debate should not be over whether DNN should be rewritten in ASP.NET MVC (or any other framework that may come in the future), the discussion should be on “How can we enable developers to use the ASP.NET Technologies of their choice when developing extensions for DNN.” After all, if we rewrite DNN in MVC we effectively lock out WebForm developers.
Read More »
|
By Charles Nurse on
1/22/2010
This article is cross-posted from my personal blog.
We haven’t been very good at using automated tests in the DotNetNuke project but that will change dramatically this year. We have established a Community Quality team who will be focusing on “Integration Tests” using the WatiN Framework, and in the “Open Core” development area we will be creating Unit Tests for new development, as well as back-filling Unit Tests for the older areas of the core.
Read More »
|
By Charles Nurse on
1/10/2010
This blog post is cross-posted from my personal blog.
Things have changed a lot at DotNetNuke Corporation in the last year. During most of 2008, I was the only employee that could say they spent the majority of their time writing code. Since the Series “A” investment we have grown considerably from 6 employees to well over 20. We now even have a dedicated Engineering...
Read More »
|
By Charles Nurse on
1/1/2010
A Happy New Year to everyone. This blog post is cross-posted from my personal blog.
After a difficult start to the year as a result of the lingering financial crisis, 2009 has been a year of moderate recovery. While many who are retired or close to retirement age are still concerned about their pensions, the situation has improved for most of us, as we slowly crawl out of recession.
Read More »
|
By Charles Nurse on
10/7/2009
At OpenForce (both Europe and Vegas) I will be presenting a session on DotNetNuke in the Cloud. Over the last few weeks I have been developing all my demos for this session.
Read More »
|
By Charles Nurse on
9/1/2009
I arrived back from Vacation in the UK yesterday to the news of the SnowCovered announcements mentioned in these blogs.
Why do these things always happen when I am away?
Read More »
|
By Charles Nurse on
3/18/2009
This article is cross-posted from my personal blog.
Today (March 18th, 2009) during the keynote at MIX 09, Scott Guthrie announced the release of version 2 of the Web Platform Installer (WPI) and the release of the new Web Application Gallery.
Bill Staples, the Program Manager responsible...
Read More »
|
By Charles Nurse on
2/27/2009
In DotNetNuke v 4.6 a new installer system was introduced to handle the new Authentication Systems. In DotNetNuke 5.0 we have extended the use of the Installer to all extensions, including Modules, Language Packs and Skins.
In this article I will dive deeper into the Script Component
Read More »
|
By Charles Nurse on
2/26/2009
In DotNetNuke v 4.6 a new installer system was introduced to handle the new Authentication Systems. In DotNetNuke 5.0 we have extended the use of the Installer to all extensions, including Modules, Language Packs and Skins.
In previous blogs in this series I introduced the new Extension Installer Manifest, and the 3 components that most developers would be fairly familiar with – Module, Assembly, File, as they are similar to the legacy module manifest, and I began to detail the individual component manifests by describing the Cleanup Component and the Assembly Component.
Read More »
|
By Charles Nurse on
2/11/2009
In DotNetNuke v 4.6 a new installer system was introduced to handle the new Authentication Systems. In DotNetNuke 5.0 we have extended the use of the Installer to all extensions, including Modules, Language Packs and Skins.
In previous blogs in this series I introduced the new Extension Installer Manifest, and the 3 components that most developers would be fairly familiar with – Module, Assembly, File, as they are similar to the legacy module manifest, and I began to detail the individual component manifests by describing the Cleanup Component.
Read More »
|
By Charles Nurse on
12/24/2008
It is Christmas Eve on the Wet Coast, and I am sitting in my office looking out on a Winter Wonderland.
Read More »
|
By Charles Nurse on
12/10/2008
This article is cross-posted from my personal blog.
DotNetNuke allows you to define custom roles to manage your site’s permissions. Recently users have been reporting an error related to a corrupt cookie that stops them from logging in. The problem is due to exceeding the number of roles.
Gemini Issue: http://support.dotnetnuke.com/issue/ViewIssue.aspx?id=8797&PROJID=2
...
Read More »
|
By Charles Nurse on
12/5/2008
This article is cross-posted from my personal blog.
With the imminent release of version 1.0 of the ASP.NET MVC Framework, does this mean we should now all be learning MVC as the “old” Web Forms model will be replaced?
The answer is a resounding NO.
The Web is a stateless platform. With the introduction of ASP.NET over 5 years ago, Microsoft provided a “stateful”...
Read More »
|
By Charles Nurse on
12/3/2008
This article is cross-posted from my personal blog.
Welcome to a new series of short articles on miscellaneous tips, tricks and information for DotNetNuke Users and Developers.
Purge Cache Scheduled Task Over the last few days I have been trying to solve an issue with the Scheduler in version 4.9. There are a number of threads that discuss the issue in the DotNetNuke Forums. ...
Read More »
|
By Charles Nurse on
11/26/2008
This blog is cross-posted from my personal Blog.
In the original Star Wars movie there is a classic scene where Obi-Wan and Luke enter the Tatooine Space-port.
Storm trooper: Let me see your identification. Obi-Wan: [with a small wave of his hand] You don't need to see his identification. Storm trooper: We don't need to see his identification. Obi-Wan:...
Read More »
|
By Charles Nurse on
9/29/2008
Over the last weekend Scott Guthrie announced that Microsoft would be providing full support for the jQuery javascript library, including full PSS support.
This is quite a momentous announcement. jQuery is an Open Source project, with a similar license to DotNetNuke (it uses a modified MIT license). Microsoft are not absorbing jQuery and writing their own version. Scott Guthrie stated that they intend to include the library “as-is”, and if they want changes they will submit them to the jQuery team for review in the same way as any other developer.
Read More »
|
By Charles Nurse on
9/16/2008
In previous blog posts in this series on creating testable modules I have shown how the various layers of a DotNetNuke module can be built and tested independently. In this blog I will create the LinksView UserControl and demonstrate in the browser that everything does indeed work as expected.
Read More »
|
By Charles Nurse on
9/15/2008
In this latest blog post in my "Creating Testable Modules" series, I add the DataService implementation and demonstrate how to test the Data Layer.
Read More »
|
By Charles Nurse on
9/8/2008
In the previous article in this blog series on creating testable modules, I began to create the View Links feature of our LinksMVP module. In this article I will add the concrete Repository class.
Read More »
|
By Charles Nurse on
9/6/2008
In this 6th article in my Blog series on Creating Testable Modules, I finally get to writing code for our testable LinksMVP module. In this code-heavy article I describe the process of building a feature (displaying a list of links) using the Test Driven Devlopment (TDD) process.
Read More »
|
By Charles Nurse on
9/3/2008
In this series of blogs, I have been describing my investigation into building Testable Modules, as I prepare for a talk I am giving at Open Force Europe next month. In earlier blog articles I have described some of the concepts and created a simple testable application using the Model View Presenter design pattern. In this blog post I start building a DotNetNuke Module - Links MVP - using these concepts and the MVP pattern.
Read More »
|
By Charles Nurse on
8/28/2008
DotNetNuke 5.0 introduces a new Unified Extension Installer. This installer, like the legacy Module Installer is manifest driven. This blog is the third in as series of blog posts designed to help developers of extensions understand the manifest. It focuses on the new Cleanup Component Installer.
Read More »
|
By Charles Nurse on
8/27/2008
At the Open Force Europe Conference this fall I wll be presenting a talk on developing Testable Modules. In this blog series I will be discussing the insights I have gained while developing materials for this presentation. In this blog post I will discus adding tests to the Hello World application I developed in a previous blog post
Read More »
|
By Charles Nurse on
8/25/2008
At Open Force Europe, this fall, I will be presenting a talk on Creating Testable Modules. This is part 3 of a series of blogs where I intent to describe the process as I work my way through developing this talk. In previous posts, I have introduced some of the concepts including the Model View presenter design pattern. In this blog I will dig deeper into this pattern by creating a simple Hello World application. I will be using the Passive View variant of the pattern.
Read More »
|
By Charles Nurse on
8/20/2008
At this years Open Force Europe conference, I will be doing a presentation on Testable Modules. In preparation for that talk, I have been researching and developing examples. In the second part of this series of blogs I introduce the Model-View-Presenter (MVP) design pattern.
Read More »
|
By Charles Nurse on
8/14/2008
At this years Open Force Europe conference, I will be doing a presentation on Testable Modules. In preparation for that talk, I have been researching and developing examples. In this series of blogs I will be building the concepts for creating Testable Modules. My goal here is to show you how to adapt your Module Development process to make your modules more testable.
Read More »
|
By Charles Nurse on
8/13/2008
As many of you know by now - if you type a1ert into a forum post (Note- I am using the number 1 in place of the lower case l) - then all the content after the aforesaid word is removed.
See the following Gemini Posts:
DNN-8220 DotNetNuke.PortalSecurity.FilterString truncates posts based on the word 'a1ert'
FOR-7206 Forums module: the...
Read More »
|