Building Websites with DotNetNuke 5

By Ian lackey , Michael Washington
    Advance your knowledge in tech with a Packt subscription

  • Instant online access to over 7,500+ books and videos
  • Constantly updated with 100+ new titles each month
  • Breadth and depth in over 1,000+ technologies
  1. What is DotNetNuke?

About this book

DotNetNuke is an open source Content Management System and web application framework. It has taken the Microsoft world by storm and now at version 5, its community has grown to over 200,000 users. Revised and updated for DotNetNuke 5, this renowned book is your indispensable guide to creating content-rich websites with DotNetNuke, as quickly as possible.

With this book in hand, you will be able to get your DotNetNuke website up and running. Concisely written and with clear explanations, this book covers installation, administration, deployment, site creation and all of the basic built-in DotNetNuke modules. For developers, it also covers the core architecture and custom modules, including module development using Linq to SQL and Silverlight, to give you the skills to customize and extend your site.

The book starts off by giving you a deep understanding of working with basic DotNetNuke sites, guiding you through the features and giving you the confidence to create and manage your site. After that, you will journey to the heart of DotNetNuke, and learn about its core architecture. Always concise, relevant and practical, you will find out what makes DotNetNuke tick, and from there, you will be ready to customize DotNetNuke. Developers will enjoy the detailed walk-through of creating new custom modules. Special emphasis is given to using Linq to SQL and Silverlight to invigorate your module development.

You will master all of this as you leap into the development of a DotNetNuke 5 site!

Publication date:
April 2010
Publisher
Packt
Pages
336
ISBN
9781847199928

 

Chapter 1. What is DotNetNuke?

From company intranets to mom and pop shops, to local chapters of the 4-H club, most organizations are looking to have a presence on the World Wide Web. Open source web portals answer this demand by providing easy to install and use website frameworks that are not only extremely functional but are also freely available. Whether it is to sell services or to have a place to meet, web portals play an important role in communication on the Web.

In this chapter, we will discuss the following topics:

  • What web portals are and what the successful web portals have in common

  • Different types of open source web portals and why we selected DotNetNuke for our project over other available web portals

  • The benefits gained by using an established framework and the benefits of using DotNetNuke specifically

  • An introduction to Coffee Connections, our fictional client

  • A brief overview of Coffee Connections, determining the specific requirements for its website and gathering the requirements using user stories

This will give you a general overview of what to expect from this book and how to make the most of it depending on your role and experience with web portals and .NET development.

Open source web portals

So what does it actually mean to have a web portal? We begin this chapter with an explanation of what a web portal is and then go on to the features of a web portal and the reasons for selecting open source web portals.

What is a web portal?

You have decided to start a web portal and first need to find out what makes a web portal. Does creating a few web pages with links to different topics make it a web portal? A web portal, in its most basic sense, aims to be an entry point to the World Wide Web. Portals will typically offer services, such as search engines, links to useful pages, news, forums, e-mails, and so on, depending on their targeted audience, all in an effort to draw users to their site. In most cases, portals provide these services for free, in hope that users will make the site their home page or at least come back often. A couple of successful examples include Yahoo! and MSN. These sites are horizontal portals because they typically attract a wide audience and primarily exist to produce advertising income for their owners. Other web portals may focus on a specific group of users or be part of a corporate intranet. Most often, they will concentrate on one particular subject like gardening or sports. These types of portals are vertical portals as they focus inward and cater to a selected group of people.

The type of portal you create depends on the target audience you are trying to attract. You may discover that the portal you create is a combination of both horizontal and vertical portals so as to address specific needs, while simultaneously giving a broader range of services to your visitors. Regardless of the type of portal you decide on, horizontal or vertical, they both share certain key characteristics and functionalities that will increase the probability of users returning to your site.

Common portal features

Let us first briefly discuss the difference between a portal and a standard or content-based website. The majority of the sites that you use on a daily basis are designed to provide information on a particular topic or similar topics. The standard sites usually do not provide a great deal of interactivity and have a limited number of services. For example, many sites contain a blog, but not a forum. Generally, a portal not only contains content, but also several interactive services or areas of the site.

Please keep in mind that these are generalizations and are not always clearly defined, and the differences cannot be easily identified. In fact, the difference between a portal and a standard site is pretty much a philosophical discussion, which can be debated from multiple positions. To get the most out of this book, it is important for us to know the concepts outlined in the previous paragraph. It is also important to know that the DotNetNuke framework is more than capable of supporting a portal-oriented or a more standard website. With that said, our example for this book is going to focus more on a portal.

So, what makes a great portal? Is it a free prize giveaway, local weather forecasts, or sports scores for the teams you watch? While this package of extras might attract some users, you will certainly miss a large group of people who have no interest in these offerings. You can choose from a large number of web portals that are as many in number as the programming languages they are written in. However, one thing is certain, that in order to make your web portal successful and attract a wide audience, there are particular services that it should incorporate. They are as follows:

  • A gateway to the World Wide Web: Web portals are the way we start our day. Most of us have set up our home page to one web portal or another and whether you start at MSN, Yahoo!, or Apple, you will notice some common features. Local weather forecasts, movie reviews, or even maps of your community are a few features that make the web portal feel comfortable and tailored for you. It gives you a sense of home just like reading the morning newspaper with a cup of coffee. Web portals attempt to be the place where all of your browsing starts.

  • Content management: Content management has come a long way from the days of paper memos and sticky notes. Computers have done away with the overflowing file cabinets holding copies of every document that crossed our desks. Little did we realize that even though we would be solving one problem, another one would arise in its place. How many times have you searched your computer wondering where you saved the document your boss needs right now? Then once you find it, you need to make sure that it is the correct version. Alternatively, if you run a soccer club, how do you ensure that all of your players can get a copy of the league rules? One of the most common uses for a web portal is content management. It allows users to have one place to upload, download, and search for a file that is important to them or their company. It also alleviates the problem of having more than one copy of a document. If the document is stored only in one location, then you will always have the current copy. Most web portals use a WYSIWYG (What You See Is What You Get) style editor that allows users to add and edit content without the need to know programming or HTML. It is as simple as adding content to a text file. This style of editing allows the administrators and/or members of the portal to manage the content easily.

  • Community interaction: From the malt shop on main street to your local church, people like to find others who have similar interests. This is one of the main drawing powers of a web portal. Whether you are a Christian looking for other Christians (http://www.christianwebsite.com/) or someone who is interested in personal digital assistants (PDAs) (http://www.pdabuzz.com), there is a web portal out there for you. Web portals offer different ways for users to communicate. Among these are discussion forums that allow you to either post a question or comment to a message board or comment on others' posts. Chat rooms take this a step further with the ability to talk to one or more persons "live" and have your questions answered immediately.

    One of the most interesting ways to express your opinions or communicate your ideas to others on a web portal is to use a blog. A blog (also known as a web log) is sort of like a diary on the Web, except that you do not lock it when you have finished writing it. Instead, you make all your thoughts and observations available to the world. These blogs range in topic from personal and comical (http://entlib.codeplex.com/) to technical (http://weblogs.asp.net/scottgu) and, in recent years, have exploded on the scene as the de facto way to communicate on the Internet. Most web portals will offer at least one of these ways to communicate.

  • Security and administration: Web portal security not only manages who can access particular sections of the site, but also enables administrators to access, add, and change content on the site. Having users authenticate with the portal allows you to tailor the site to individuals so that they can customize their experience.

Why DotNetNuke?

When the time comes to decide how you want to build your portal, you will have to make many decisions: Do I create my portal from scratch? If not, which web portal framework should I use? What type of hardware and software do I have available to me? Moreover, what is my skill level on any particular platform? In this section, we will discuss some of the better-known portals that are available.

For our portal, we have decided that it would be counterproductive to start from scratch. So, we will be using an already-developed framework for designing our portal. We will have many options to select from. We will discuss a few of our options and determine why we believe DotNetNuke fits us best.

PHP-Nuke

The grandfather of DotNetNuke (in name at least) is most likely PHP-Nuke (http://www.phpnuke.org). PHP-Nuke is a web portal that uses PHP (a recursive acronym for Hypertext Preprocessor) pages to create dynamic web pages. You can use it in a Windows environment, but it is most flexible in a Linux/Unix environment. PHP is an open source HTML-embedded scripting language, which is an alternative to Microsoft's Active Server Pages (ASP)—the precursor to ASP.NET, which is the programming language used in DotNetNuke. PHP-Nuke, like DotNetNuke, is a modular system that comes with prebuilt standard modules and allows you to enhance the portal by creating custom modules. As we will be using a Windows platform and are more comfortable using ASP.NET, this choice would not fit our needs.

Joomla!

Joomla! is another open source content management system available to those looking to create a website. Joomla! also claims to be easy to use to create a website. However, like PHP-Nuke, Metadot runs primarily on the Linux operating system (although it supports Windows as well), Apache web server, and a MySQL database. For the same reasons as PHP-Nuke, this framework will not fit our needs.

DotNetNuke

Why did we select DotNetNuke as the web portal for this book? Well, here are a few reasons for selecting DotNetNuke:

  • Open source web portal written in VB.NET: As we wanted to focus on building our web portal using the new VB.NET language, this was an obvious choice. DotNetNuke was born out of a "best-practice" application called IBuySpy. This application, developed for Microsoft by Scott Stanfield and his associates at Vertigo Software, was created to highlight the many things that .NET was able to accomplish. It was supposed to be an application for developers to use and learn the world of .NET. IBuySpy was an application by the original author of DotNetNuke (formerly IBuySpy Workshop), Shaun Walker of Perpetual Motion Interactive Systems Inc. He originally released DotNetNuke 1.0 as an open source project in December 2002. Since then, DotNetNuke has evolved to version 5.x and the code base has grown from 10,000 to over 120,000 lines of managed code and contains many feature enhancements over the original IBuySpy Starter Kit.

  • Utilizes the new ASP.NET 2.0 Provider Model: With the release of ASP.NET version 2.0, Microsoft debuted a new provider pattern model. This pattern gives the developer the ability to separate the data tier from the presentation tier and provides the ability to specify your choice of databases. The DotNetNuke framework comes prepackaged with an SQL Data Provider (Microsoft's SQL Server, MSDE, or SQL Express). DotNetNuke introduces several of its own providers for tasks such as caching, authentication, and so on. For you to be able to easily switch between the choices in a plug-and-play fashion, you can also follow this model to create your own data provider or obtain one from a third-party vendor. In addition, the DotNetNuke framework also uses many of Microsoft's building block services like the Data Access Application Block for .NET (http://failblog.org/), introduced by Microsoft in its Patterns and Practices articles.

  • Contains key portal features expected from a web portal: DotNetNuke comes prepackaged with modules that cover discussions, events, links, news feeds, contacts, FAQs, announcements, and more. This gives you the ability to spend your time working on specialized adaptations to your site. In addition to this, the DotNetNuke core team has created subteams to maintain and enhance these modules.

  • Separates page layout, page content, and the application logic: It allows you to have a designer who can manage the look and feel of the site, an administrator with no programming experience who can manage and change the content of the site, and a developer who can create custom functionality for the site.

  • Ability to skin your site: Separating the data tier from the presentation tier brings us to one of the most exciting advancements in recent versions of DotNetNuke, skinning. DotNetNuke employs an advanced skinning solution that allows you to change the look and feel of your site. The skinning framework allows you to build your own design for your site, but you will also find many custom skins for free on websites like core team member Nina Meiers' eXtra Dimensions Design Group (http://www.xd.com.au), and Snowcovered (http://www.snowcovered.com). These give you the ability to change the look and feel of your site without having to know anything about the design, HTML, or programming.

  • Supports multiple portals: Another advantage of using DotNetNuke as your web portal is the fact that you can run multiple portals using one code base and one database. This means that you can have different portals for different groups on the same site, but can still have all of the information reside in one database. This gives you an advantage in the form of easy access to all portal information and a central place to manage your hosting environment. The framework comes with numerous tools for banner advertising, site promotion, hosting, and affiliate management. If you are still unclear about the portal functionality, then you can think of a DotNetNuke (DNN) portal as being a subsite for different departments of your organization, where each department can manage its site independently, but you, the organization lead, can centrally manage all subsites through what are called host accounts.

  • Designed with an extensible framework: You can extend the framework in a number of ways. You can modify the core architecture of the framework to achieve your desired results (we will discuss the pitfalls of doing this in later chapters) and design custom modules that plug in to the existing framework. This would be in addition to the prebuilt modules that come with DotNetNuke. These basic modules give you a great starting point and allow you to get your site up and running quickly.

  • Mature portal framework: At the time of writing this book, DotNetNuke is on version 5.2.x. It means that you will be using an application that has gone through its paces. It has been extensively tested and is widely used as a web portal application by thousands of existing users. What this offers you is stability. You can feel comfortable knowing that thousands of websites already use the DotNetNuke framework for their web portal needs.

  • Active and robust community: Community involvement and continuing product evolution are very important parts of any open source project, and DotNetNuke has both of these. The DotNetNuke support forum is one of the most active and dynamic community forums on the ASP.NET website. There are currently over 740,000 users registered on the DotNetNuke website. At the time of writing, the much-anticipated DotNetNuke version 5.1 had just been released and brought about a significant improvement over its previous releases. The core team continues to move forward, always striving towards a better product for the community.

  • Recognized by the Microsoft team as a best-practice application: In March 2004, at the VSLive! conference in San Francisco, the premiere conference for Visual Studio.NET Developers, DotNetNuke 2.0 was officially released and showcased to the public. This gave DotNetNuke a great leg up in the open source portal market and solidified its position as a leader in the field.

Benefits of using an established program

Whether you are building a website to gather information about your soccer club or putting up a department website on your company's intranet, one thing is certain—to write your web portal from scratch, you should plan on coding for a long time. Just deciding on the structure, design, and security of your site will take you months. After all this is complete, you will still need to test and debug. At this point, you still haven't begun to build the basic functionality of your web portal.

So why start from scratch when you have the ability to build on an existing structure? Just as you would not want to build your own operating system before building a program to run on it, using an existing architecture allows you to concentrate on enhancing and customizing the portal to your specific needs. If you are like me and use Visual Studio for developing your website, then you already adhere to this concept. There is no need for you to create the basic building blocks of your application (forms, buttons, textboxes, and so on); instead, you take the existing building blocks and assemble (and sometimes enhance) them to suit your needs.

 

Open source web portals


So what does it actually mean to have a web portal? We begin this chapter with an explanation of what a web portal is and then go on to the features of a web portal and the reasons for selecting open source web portals.

What is a web portal?

You have decided to start a web portal and first need to find out what makes a web portal. Does creating a few web pages with links to different topics make it a web portal? A web portal, in its most basic sense, aims to be an entry point to the World Wide Web. Portals will typically offer services, such as search engines, links to useful pages, news, forums, e-mails, and so on, depending on their targeted audience, all in an effort to draw users to their site. In most cases, portals provide these services for free, in hope that users will make the site their home page or at least come back often. A couple of successful examples include Yahoo! and MSN. These sites are horizontal portals because they typically attract a wide audience and primarily exist to produce advertising income for their owners. Other web portals may focus on a specific group of users or be part of a corporate intranet. Most often, they will concentrate on one particular subject like gardening or sports. These types of portals are vertical portals as they focus inward and cater to a selected group of people.

The type of portal you create depends on the target audience you are trying to attract. You may discover that the portal you create is a combination of both horizontal and vertical portals so as to address specific needs, while simultaneously giving a broader range of services to your visitors. Regardless of the type of portal you decide on, horizontal or vertical, they both share certain key characteristics and functionalities that will increase the probability of users returning to your site.

Common portal features

Let us first briefly discuss the difference between a portal and a standard or content-based website. The majority of the sites that you use on a daily basis are designed to provide information on a particular topic or similar topics. The standard sites usually do not provide a great deal of interactivity and have a limited number of services. For example, many sites contain a blog, but not a forum. Generally, a portal not only contains content, but also several interactive services or areas of the site.

Please keep in mind that these are generalizations and are not always clearly defined, and the differences cannot be easily identified. In fact, the difference between a portal and a standard site is pretty much a philosophical discussion, which can be debated from multiple positions. To get the most out of this book, it is important for us to know the concepts outlined in the previous paragraph. It is also important to know that the DotNetNuke framework is more than capable of supporting a portal-oriented or a more standard website. With that said, our example for this book is going to focus more on a portal.

So, what makes a great portal? Is it a free prize giveaway, local weather forecasts, or sports scores for the teams you watch? While this package of extras might attract some users, you will certainly miss a large group of people who have no interest in these offerings. You can choose from a large number of web portals that are as many in number as the programming languages they are written in. However, one thing is certain, that in order to make your web portal successful and attract a wide audience, there are particular services that it should incorporate. They are as follows:

  • A gateway to the World Wide Web: Web portals are the way we start our day. Most of us have set up our home page to one web portal or another and whether you start at MSN, Yahoo!, or Apple, you will notice some common features. Local weather forecasts, movie reviews, or even maps of your community are a few features that make the web portal feel comfortable and tailored for you. It gives you a sense of home just like reading the morning newspaper with a cup of coffee. Web portals attempt to be the place where all of your browsing starts.

  • Content management: Content management has come a long way from the days of paper memos and sticky notes. Computers have done away with the overflowing file cabinets holding copies of every document that crossed our desks. Little did we realize that even though we would be solving one problem, another one would arise in its place. How many times have you searched your computer wondering where you saved the document your boss needs right now? Then once you find it, you need to make sure that it is the correct version. Alternatively, if you run a soccer club, how do you ensure that all of your players can get a copy of the league rules? One of the most common uses for a web portal is content management. It allows users to have one place to upload, download, and search for a file that is important to them or their company. It also alleviates the problem of having more than one copy of a document. If the document is stored only in one location, then you will always have the current copy. Most web portals use a WYSIWYG (What You See Is What You Get) style editor that allows users to add and edit content without the need to know programming or HTML. It is as simple as adding content to a text file. This style of editing allows the administrators and/or members of the portal to manage the content easily.

  • Community interaction: From the malt shop on main street to your local church, people like to find others who have similar interests. This is one of the main drawing powers of a web portal. Whether you are a Christian looking for other Christians (http://www.christianwebsite.com/) or someone who is interested in personal digital assistants (PDAs) (http://www.pdabuzz.com), there is a web portal out there for you. Web portals offer different ways for users to communicate. Among these are discussion forums that allow you to either post a question or comment to a message board or comment on others' posts. Chat rooms take this a step further with the ability to talk to one or more persons "live" and have your questions answered immediately.

    One of the most interesting ways to express your opinions or communicate your ideas to others on a web portal is to use a blog. A blog (also known as a web log) is sort of like a diary on the Web, except that you do not lock it when you have finished writing it. Instead, you make all your thoughts and observations available to the world. These blogs range in topic from personal and comical (http://entlib.codeplex.com/) to technical (http://weblogs.asp.net/scottgu) and, in recent years, have exploded on the scene as the de facto way to communicate on the Internet. Most web portals will offer at least one of these ways to communicate.

  • Security and administration: Web portal security not only manages who can access particular sections of the site, but also enables administrators to access, add, and change content on the site. Having users authenticate with the portal allows you to tailor the site to individuals so that they can customize their experience.

Why DotNetNuke?

When the time comes to decide how you want to build your portal, you will have to make many decisions: Do I create my portal from scratch? If not, which web portal framework should I use? What type of hardware and software do I have available to me? Moreover, what is my skill level on any particular platform? In this section, we will discuss some of the better-known portals that are available.

For our portal, we have decided that it would be counterproductive to start from scratch. So, we will be using an already-developed framework for designing our portal. We will have many options to select from. We will discuss a few of our options and determine why we believe DotNetNuke fits us best.

PHP-Nuke

The grandfather of DotNetNuke (in name at least) is most likely PHP-Nuke (http://www.phpnuke.org). PHP-Nuke is a web portal that uses PHP (a recursive acronym for Hypertext Preprocessor) pages to create dynamic web pages. You can use it in a Windows environment, but it is most flexible in a Linux/Unix environment. PHP is an open source HTML-embedded scripting language, which is an alternative to Microsoft's Active Server Pages (ASP)—the precursor to ASP.NET, which is the programming language used in DotNetNuke. PHP-Nuke, like DotNetNuke, is a modular system that comes with prebuilt standard modules and allows you to enhance the portal by creating custom modules. As we will be using a Windows platform and are more comfortable using ASP.NET, this choice would not fit our needs.

Joomla!

Joomla! is another open source content management system available to those looking to create a website. Joomla! also claims to be easy to use to create a website. However, like PHP-Nuke, Metadot runs primarily on the Linux operating system (although it supports Windows as well), Apache web server, and a MySQL database. For the same reasons as PHP-Nuke, this framework will not fit our needs.

DotNetNuke

Why did we select DotNetNuke as the web portal for this book? Well, here are a few reasons for selecting DotNetNuke:

  • Open source web portal written in VB.NET: As we wanted to focus on building our web portal using the new VB.NET language, this was an obvious choice. DotNetNuke was born out of a "best-practice" application called IBuySpy. This application, developed for Microsoft by Scott Stanfield and his associates at Vertigo Software, was created to highlight the many things that .NET was able to accomplish. It was supposed to be an application for developers to use and learn the world of .NET. IBuySpy was an application by the original author of DotNetNuke (formerly IBuySpy Workshop), Shaun Walker of Perpetual Motion Interactive Systems Inc. He originally released DotNetNuke 1.0 as an open source project in December 2002. Since then, DotNetNuke has evolved to version 5.x and the code base has grown from 10,000 to over 120,000 lines of managed code and contains many feature enhancements over the original IBuySpy Starter Kit.

  • Utilizes the new ASP.NET 2.0 Provider Model: With the release of ASP.NET version 2.0, Microsoft debuted a new provider pattern model. This pattern gives the developer the ability to separate the data tier from the presentation tier and provides the ability to specify your choice of databases. The DotNetNuke framework comes prepackaged with an SQL Data Provider (Microsoft's SQL Server, MSDE, or SQL Express). DotNetNuke introduces several of its own providers for tasks such as caching, authentication, and so on. For you to be able to easily switch between the choices in a plug-and-play fashion, you can also follow this model to create your own data provider or obtain one from a third-party vendor. In addition, the DotNetNuke framework also uses many of Microsoft's building block services like the Data Access Application Block for .NET (http://failblog.org/), introduced by Microsoft in its Patterns and Practices articles.

  • Contains key portal features expected from a web portal: DotNetNuke comes prepackaged with modules that cover discussions, events, links, news feeds, contacts, FAQs, announcements, and more. This gives you the ability to spend your time working on specialized adaptations to your site. In addition to this, the DotNetNuke core team has created subteams to maintain and enhance these modules.

  • Separates page layout, page content, and the application logic: It allows you to have a designer who can manage the look and feel of the site, an administrator with no programming experience who can manage and change the content of the site, and a developer who can create custom functionality for the site.

  • Ability to skin your site: Separating the data tier from the presentation tier brings us to one of the most exciting advancements in recent versions of DotNetNuke, skinning. DotNetNuke employs an advanced skinning solution that allows you to change the look and feel of your site. The skinning framework allows you to build your own design for your site, but you will also find many custom skins for free on websites like core team member Nina Meiers' eXtra Dimensions Design Group (http://www.xd.com.au), and Snowcovered (http://www.snowcovered.com). These give you the ability to change the look and feel of your site without having to know anything about the design, HTML, or programming.

  • Supports multiple portals: Another advantage of using DotNetNuke as your web portal is the fact that you can run multiple portals using one code base and one database. This means that you can have different portals for different groups on the same site, but can still have all of the information reside in one database. This gives you an advantage in the form of easy access to all portal information and a central place to manage your hosting environment. The framework comes with numerous tools for banner advertising, site promotion, hosting, and affiliate management. If you are still unclear about the portal functionality, then you can think of a DotNetNuke (DNN) portal as being a subsite for different departments of your organization, where each department can manage its site independently, but you, the organization lead, can centrally manage all subsites through what are called host accounts.

  • Designed with an extensible framework: You can extend the framework in a number of ways. You can modify the core architecture of the framework to achieve your desired results (we will discuss the pitfalls of doing this in later chapters) and design custom modules that plug in to the existing framework. This would be in addition to the prebuilt modules that come with DotNetNuke. These basic modules give you a great starting point and allow you to get your site up and running quickly.

  • Mature portal framework: At the time of writing this book, DotNetNuke is on version 5.2.x. It means that you will be using an application that has gone through its paces. It has been extensively tested and is widely used as a web portal application by thousands of existing users. What this offers you is stability. You can feel comfortable knowing that thousands of websites already use the DotNetNuke framework for their web portal needs.

  • Active and robust community: Community involvement and continuing product evolution are very important parts of any open source project, and DotNetNuke has both of these. The DotNetNuke support forum is one of the most active and dynamic community forums on the ASP.NET website. There are currently over 740,000 users registered on the DotNetNuke website. At the time of writing, the much-anticipated DotNetNuke version 5.1 had just been released and brought about a significant improvement over its previous releases. The core team continues to move forward, always striving towards a better product for the community.

  • Recognized by the Microsoft team as a best-practice application: In March 2004, at the VSLive! conference in San Francisco, the premiere conference for Visual Studio.NET Developers, DotNetNuke 2.0 was officially released and showcased to the public. This gave DotNetNuke a great leg up in the open source portal market and solidified its position as a leader in the field.

Benefits of using an established program

Whether you are building a website to gather information about your soccer club or putting up a department website on your company's intranet, one thing is certain—to write your web portal from scratch, you should plan on coding for a long time. Just deciding on the structure, design, and security of your site will take you months. After all this is complete, you will still need to test and debug. At this point, you still haven't begun to build the basic functionality of your web portal.

So why start from scratch when you have the ability to build on an existing structure? Just as you would not want to build your own operating system before building a program to run on it, using an existing architecture allows you to concentrate on enhancing and customizing the portal to your specific needs. If you are like me and use Visual Studio for developing your website, then you already adhere to this concept. There is no need for you to create the basic building blocks of your application (forms, buttons, textboxes, and so on); instead, you take the existing building blocks and assemble (and sometimes enhance) them to suit your needs.

 

The DotNetNuke community


The DotNetNuke community has one of the most active and dynamic support forums and over 740,000 users are registered on the DotNetNuke website.

Core team

The core team comprises individuals invited to join the team by Shaun Walker, whom they affectionately call the "Benevolent Dictator". Their invitations were based on their contributions and their never-ending support from others in the DotNetNuke forum. Each team member has a certain area of responsibility based on his or her abilities. From database functionality and module creation to skinning, they are the ones who are responsible for the continued advancement of the framework. However, not being a member of the core team does not mean that you cannot contribute to the project. There are many ways for you to provide help for the project. Many developers create custom modules that they make freely available to the DotNetNuke community. Other developers create skins that they freely distribute. Still others help answer the many questions in the DotNetNuke forum. You can also be a contributor to the core architecture. You're welcome to submit code improvements to extend and/or expand the capabilities of DotNetNuke. These submissions will be evaluated by the core team and could possibly be added to the next version.

The DotNetNuke discussion forum

When the DotNetNuke project started, one of the things that helped to propel its popularity forward was the fact that its forums were housed on the ASP.NET forums website. With over 200,000 individual posts in the main DotNetNuke forum alone, it was one of the most active and attentive forums on the ASP.NET forums website (http://www.asp.net/forums/). Beginning sometime after the version 3.x release, the DotNetNuke team puts its finishing touches to its own forum module. It now utilizes this module for DotNetNuke discussions (http://www.dotnetnuke.com/tabid/795/Default.aspx). The DotNetNuke forum is the best place to find help for any issue you may be having in DotNetNuke.

The main forum is where you will find most of the action, but there is also a subforum that covers topics such as core framework, resources, getting started, and custom modules. You can search and view posts in any of the forums but will need to register if you want to post your own questions or reply to other users' posts. The great thing about these forums is that you will find the core team hanging out there. Who could be better to answer questions about DotNetNuke other than those who created it? However, don't be shy, because if you know the answer to someone else's question, then feel free to post an answer. That is what the community is all about, helping people through challenging situations.

The bug tracker

Like any application, there are bound to be a few bugs that creep into the application now and then. To manage this occurrence, the DotNetNuke core team uses a third-party bug tracking system called Gemini, by CounterSoft. The bug tracker is not for general questions or setup and configuration errors; questions of that nature should be posted in the discussion forum. You can view the status of current bugs at the Gemini site (http://support.dotnetnuke.com), and you can also add new bugs to the system. Before submitting a bug to the tracker, please review the guidelines currently posted on the DotNetNuke website (http://www.dotnetnuke.com/Support/ReportABug/tabid/645/Default.aspx).

To summarize, you need to first search the bug tracker to make sure that it has not already been reported. If you cannot find it in the system, then you will need to supply the details including what you did, what you expected to happen, and what actually happened. Also, if you are going to include code to reproduce the bug, then be sure to limit the code to 10 lines or less. Verified bugs will be assigned to core team members to track down and repair.

The DotNetNuke project Roadmap team

If you want to find out what is in the works for future releases of DotNetNuke, then you should check out the DotNetNuke project Roadmap (http://www.dotnetnuke.com/Development/Roadmap/tabid/616/Default.aspx). The main purpose of this document is, as a communication vehicle, to inform users and stakeholders of the project's direction. The Roadmap accomplishes this by allowing users to submit enhancement requests. The priority of the enhancements depends on both the availability of resources (core team) and the perceived demand for the feature, based on the number of votes it receives.

 

The license agreement


The license type used by the DotNetNuke project is a modified version of the Berkeley Software Distribution (BSD) license. As opposed to the more restrictive GNU General Public License (GPL) used by many other open source projects, the BSD license is very permissive and imposes very few conditions on what a user can do with the software. These conditions include charging clients for binary distributions, with no obligation to include source code. If you have further questions on the specifics of the license agreement, then you can find information in the documents folder of the DotNetNuke application or on the DotNetNuke website.

 

Coffee Connections


Wherever your travels take you, from sunny Long Beach, California, to the cobblestone streets of Hamburg, Germany, chances are that there is a coffee shop nearby. Whether it is a Starbucks (located on just about every corner) or a local coffee shop tucked neatly in between all the antique stores on the main street, they all have one thing in common—coffee. Right? Well yes, they do have coffee in common, but more importantly, they are places for people with shared interests to gather, relax, and enjoy their coffee while taking in the environment around them. Coffee shops offer a wide variety of services in addition to coffee, from Wi-Fi to poetry readings to local bands. They keep people coming back by offering them more than just a cup o' Joe.

But how do you find the coffee shops that have the type of atmosphere you are looking for? In addition, how do you locate them in your surrounding area? That's where Coffee Connections comes in; its desire is to fill this void by creating a website where coffee lovers and coffee shop regulars can connect and search for coffee shops in their local area that cater to their specific needs. Coffee Connections has a vision to create a website that will bring this together and help promote coffee shops around the world. Users will be able to search for coffee shops by zip code, types of entertainment, amenities, or name. It will also allow its customers to purchase goods online and communicate with others through chat rooms and forums.

Determining client needs

In any project, it is important to determine the needs of the client before work begins on the project. When designing a business-driven solution for your client, your options range from an extensive request for proposal (RFP) and case modeling, to user stories and Microsoft Solutions Framework (MSF). To determine the needs and document the requirements of Coffee Connections, we will use user stories.

We selected user stories as our requirements collection method for two reasons. Firstly, the DotNetNuke core team uses this method when building enhancements and upgrading the DotNetNuke framework. Thus, using user stories will help to give you a better understanding of how the core team works, the processes the team members follow, and how they accomplish these tasks in a short period of time. Secondly, it is a very clear and concise way to determine the needs of your client. We will be able to determine the needs of Coffee Connections without the need for a large number of requirement documents.

What is a user story?

User stories were originally introduced as part of Extreme Programming (XP). Extreme Programming is a type of software development based on simplicity, communication, and customer feedback. It is primarily used within small teams when it is important to develop software quickly while the environment and requirements of the program rapidly change. This fits the DotNetNuke project and the DotNetNuke core team well.

User stories provide a framework for the completion of a project by giving a well-designed description of a system and its major processes.

The individual stories, written by customers, are features that they wish the program to possess. As the user stories are written by the customer, they are written in the customer's terminology and without much technical jargon. The user stories are usually written on index cards and are approximately three sentences long. The limited space for detail forces the writer to be concise and get to the heart of the requirement. When it is time to implement the user story, the developer will sit down with the customer—in what is referred to as an iteration meeting—to go over particular details of each user story. Thus, an overview of a project is quickly conceptualized without the developer or customer being bogged down in minor details.

User stories also help in the creation of acceptance tests. Acceptance tests are specified tests performed by the user of a system to determine if the system is functioning correctly according to specifications the user presented at the beginning of the development process. This assures that the product performs as expected.

Advantages of using user stories

There are many different methods of defining requirements when building an application, so why use user stories? User stories fit well into Rapid Application Development (RAD) programming. In general, the software and computer industry change on a daily basis. The environment is changing fast. In order to compete in the marketplace, it is important to have quick turnaround for your product. User stories help to accomplish this in the following ways:

  • Stressing the importance of communication: One of the central ideas behind user stories is the ability to have the users write down what exactly is expected from the product. This helps to promote communication by keeping the client involved in the design process.

  • Being easily understandable: As user stories are written by the customer and not by the developer, the developer will not have the problem of "talking over the head" of the customer. User stories help customers know exactly what they are getting because they personally write down what they want in the terms that they understand.

  • Allowing for deferred details: User stories help the customer as well as the developer to understand the complete scope of a project without being bogged down by the details.

  • Focussing on project goals: The success of your project depends less on creative coding strategies and more on whether you were able to meet the customer's goals. It is not what you think it should do but what the customer thinks it should do (although this does not mean that you should not follow established coding practices).

Coffee Connections user stories

In the following table, you will find the user stories for Coffee Connections. From these stories, we will use DotNetNuke to build the customer's website. The title of the card is followed by a short description of what is needed. Throughout the book, we will refer to these as we continue to accomplish the project goals for Coffee Connections.

Title

Description

Web Store

Users will be able to purchase coffee and coffee shop-related merchandise through the website.

Coffee Shop Search

Users will be able to find coffee shops in their area by searching a combination of zip codes, coffee shop names, amenities, or atmosphere and ratings.

Coffee Finder Additions

Users will be able to post coffee shops they find and give a description of the coffee shop for other users to see.

Coffee Shop Reviews

Users will have the ability to rate the coffee shops that are listed on the website.

Site Updates

Administrators will have the ability to modify the site content easily using a web-based interface.

Coffee Chat

Users will be able to chat with people from other coffee shops on the site.

Coffee Forum

Users will be able to post questions and replies in a coffee shop forum.

When referring to the user stories later in the book, we will use a card to compare and determine if we have met the customer's needs.

 

Summary


In this chapter, we have discussed the meaning and purpose of web portals, what successful web portals have in common, looked at different types of open source web portals, and discussed why we selected DotNetNuke. We then met our fictional client Coffee Connections, and using user stories, gathered the requirements to build a site for it. The next chapter will cover the always-enlightening task of installing the software. We will cover what we need to run DotNetNuke and describe the process of installing the framework.

About the Authors

  • Ian lackey

    Ian Lackey worked as a systems engineer for a St. Louis-based ISP from 1999 to 2002. At that time, he began developing web applications using ASP and migrated to ASP.NET shortly before the 2.0 release. Ian now works as a full-time programmer analyst II for Washington University in St. Louis Medical School - Department of Pediatrics. He also runs a small business, DigitalSnap Inc. that provides complete DotNetNuke solutions as well as individual modules (http://www.itlackey.net).
    Currently Ian is involved in community-driven areas such as the OpenLight Group, which manages open source projects including several DotNetNuke modules and many Silverlight-based applications. He will also be speaking at the St. Louis .NET user group meetings this year.
    Ian currently lives in a small town in Illinois, just East of St. Louis, with his wife Julie and two daughters, Britney and Brooklynn.

    Browse publications by this author
  • Michael Washington

    Michael Washington is a Website developer and an ASP.NET, C#, and Visual Basic programmer. He is a DotNetNuke Core member and has been involved with DotNetNuke for over 3 years. He is the author of numerous DotNetNuke modules and tutorials. He is one of the founding members of the Southern California DotNetNuke Users group. He has a son, Zachary and resides in Los Angeles with his wife Valerie.

    Browse publications by this author
Book Title
Unlock this book and the full library for FREE
Start free trial