
Open-Source Web Portals
So what does it actually mean to have a web portal? We begin the chapter with an explanation of what a portal is, and then go on to the features of a web portal and reasons for selecting open-source web portals.
What is a Web Portal?
You have decided to start a portal and first need to find out what makes a web portal. Does throwing up a few web pages with links to different topics make it a web portal? A 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, and email, all in an effort to draw users to their site. In most
cases, portals provide these services free in the hope that users will make the site their home page or at least come back often. 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. They will most often concentrate on one particular subject, like gardening or sports. This type of portal is a vertical portal because 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 in order to address specific needs, while simultaneously giving a broader range of services to your visitors. Whatever type of portal you decide on, horizontal or vertical, they both will share certain key characteristics and functionality that guarantee users will return to your site.
Common Portal Features
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. There are as many web portals to choose from as programming languages they are written in. However, one thing is for certain: there are particular services your portal should incorporate in order for it to be successful and attract a wide audience.
- 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. Like reading the morning newspaper with a cup of coffee, it gives you a sense of home. 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 rise 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
commonest 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, you will always have the current copy.
- Community Interaction: People have always found a place to meet. From the malt shop on Main Street to your local church, people like to find others who have the same 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 the posts of others. 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 weblog) is sort of like a diary on the Web, except you do not lock it when you are done writing in it. Instead, you make all your thoughts and observations available to the world. These blogs range in topic from personal and comical (http://weblog.herald.com/column/davebarry/) 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 & 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. Most web portals use a WYSIWYG (what you see is what you get) style editor that allows users to add and edit content without needing to know programming or HTML. It is as simple as adding content to a text file. 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 in 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 counter-productive to start from scratch. Instead, we will be using an already developed framework in designing our portal. We will have many options from which to select. We will discuss a few of our options and determine why we believe DotNetNuke fits us best.
Most likely the grandfather of DotNetNuke (in name at least) is 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 comfortable in a Linux/Unix environment. PHP is an open-source, HTML-embedded scripting language, which is an alternative to Microsoft's ASP (Active Server Pages) the precursor to ASP.NET, which is the programming language used in DotNetNuke. PHP-Nuke, like DotNetNuke, is a modular system that comes with pre-built standard modules and allows you to enhance the portal by creating custom modules. Since we will be using a Windows platform, and are more comfortable using ASP.NET, this choice would not fit our needs.
Metadot Portal Server is another open-source portal system available to those looking to create a web portal. Metadot states that "its user friendly environment" allows non-technical individuals to create powerful websites with just a "few clicks of the mouse". Like PHP-Nuke, Metadot runs primarily on the Linux operating system (although, it supports Windows as well), Apache web server, and a MySQL database. It uses Perl as its scripting language. For the same reasons as PHP-Nuke, this framework will not fit our needs.
Similar to DotNetNuke, the Rainbow project is an open-source initiative to build a CMS (content management system) based on the IBuySpy portal using Microsoft's ASP.NET. In contrast to DotNetNuke, the Rainbow Project used the C# implementation of IBuySpy as its starting point. It does run on Windows and uses ASP.NET, but our language of choice for this project is VB.NET so we will rule out Rainbow.
So why did we select DotNetNuke as the web portal of choice for this book? Well here are a few reasons for selecting DotNetNuke:
- Open-source web portal written in VB.NET: Since 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 4.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 provide the ability to specify your choice of databases. The DotNetNuke framework comes pre-packaged with an SQL Data Provider (Microsoft's SQL Server, MSDE, or SQLExpress). 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://www.microsoft.com/downloads/details.aspx?FamilyID=F63D1F0A-9877-4A7B-88EC-0426B48DF275&displaylang=en) introduced by Microsoft in its Patterns and Practices articles.
- Contains key portal features expected from a web portal: DotNetNuke comes pre-packaged with modules that cover discussions, events, links, news feeds, contact, 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 sub-teams to maintain and enhance these modules.
- Separates page layout, page content, and the application logic: This 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. In this book, we will show you how to create your own custom skin, but you will also find many
custom skins 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 design, HTML, or programming.
- Supports multiple portals: Another advantage of using DotNetNuke as your web portal of choice is the fact that you can run multiple portals using one code base and one database. This means you can have different portals for different groups on the same site but 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.
- 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 pratfalls of doing this in later chapters) and design custom modules that "plug in" to the existing framework. This would be in addition to the pre-built 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: As of the writing of this book, DotNetNuke is on version 4.2. 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 affords you is stability. You can be 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 280,000 users registered on the DotNetNuke website. At the time of writing, the much-anticipated DotNetNuke version 4.2 had just been released, and has brought about a significant number of improvements 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-practices 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 for 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 the ground up, 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 have not even 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 for your specific needs. If you are like me and use Visual Studio to do your development, 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, etc.); instead you take the building blocks already there for you and assemble (and sometimes enhance) them to suit your needs.