UPDATE: Part II is now available
In this series of blogs, I'm going to follow the development of an RSS Data Source. I'm going to use Visual Studio 2008, but I'll be using .Net 2.0 features so you should be able to follow along in Visual Studio 2005. You can also use the Express editions of Visual Web Developer (both 2005 and 2008 versions should work). All the code will be in VB.Net, but it should be straightforward enough for C# developers to understand (after all, its all .Net)
Part I - Setting Up
First things first, you'll need to install a Source distribution of DotNetNuke. I'm not going to cover that here because there are some other resources out there. You'll also need to install the Source package of the Reports Module. Once you've done this, open your DotNetNuke website up in Visual Studio
Figure 1 - Open Website Dialog
After opening it, expand the DesktopModules/Reports/DataSources folder. You should see something similar to the following
Figure 2 - Data Sources Folder
Each of the folder under the DataSources folder represents a different Data Source. So, lets get started and create a folder for our Data Source and call it RSS. Inside that folder, we need to create an App_LocalResources folder. Visual Studio provides a special menu option to do that:
Figure 3 - Add App_LocalResources Folder menu item
Inside there, we must create a Resource file. Even if you aren't planning to translate your Data Source into different languages, the Reports Module uses this file to determine the name of your Data Source, so you must create it. In this sample, we aren't going to use the DotNetNuke Localization framework, so this is the only time we'll need to delve into Resource files. Add a new Resource file to the App_LocalResources folder called "DataSource.ascx.resx".
Figure 4 - Adding a Resource File
Open this file and add a new resource key called "DataSourceName.Text" with a value of "RSS".
Figure 5 - Editing the Resource File
We've almost got a running, albeit useless, Data Source. There's only one more file to add. Back in the "RSS" folder, add a Web User Control called "Settings.ascx". Open the Code-behind file (Settings.ascx.vb) and replace the contents with the following code:
Imports DotNetNuke.Modules.Reports.Extensions
Imports DotNetNuke.Modules.Reports.DataSources
Partial Class DesktopModules_Reports_DataSources_RSS_Settings
Inherits ReportsSettingsBase
Implements IDataSourceSettingsControl
Public ReadOnly Property DataSourceClass() As String Implements IDataSourceSettingsControl.DataSourceClass
Get
Return String.Empty
End Get
End Property
End Class
Save everything and open your Web Browser. Add an instance of the Reports Module to a page and open the Settings page. You should now see the "RSS Data Source" in the Active Data Source drop-down. You can select it, but it doesn't do anything, so don't click Update.
Conclusion
That's all for part one. I know there isn't anything really useful yet, but I want to keep these parts short. Tomorrow, we'll add the code to retrieve data from an RSS feed.
Download the code so far.