Products

Solutions

Resources

Partners

Community

About

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.


Using DotNetNuke to Build Groupware Applications

This article was first published in SDN magazine nr 97, May 2008

Introduction

The use of (networked) computers to support collaborative work is far from new. For decades now Groupware, as it is commonly referred to, has been developed to help geographically dispersed teams. But the success of this type of application has varied greatly as it became apparent that human collaboration is by nature complex and the computer systems that we use are sometimes more of a hindrance than an aid. In this article we’ll look at how DotNetNuke can be used as Groupware and what advantages it has to offer.

DotNetNuke (DNN)

For those of you not familiar with DNN here’s a 101. DNN is an open source web application framework on .Net, or the Windows Stack as some prefer to refer to. We call it a ‘framework’ because it is designed to be extended. Although you can do a lot with it ‘out-of-the-box’, its main strength lies in being able to extend its functionality. I often refer to it as ‘lego for web applications’. You get the base plate and a bunch of blocks. You build what you want as long as you stick to a couple of design rules. The benefit for the application builder lies in being able to combine existing components with private/custom components. This ability to mix is a good method to build powerful applications rapidly and economically.

clip_image002

Figure 1. DotNetNuke

Characteristics

A couple of key characteristics are worth mentioning here: DNN is designed for ‘portal virtualization’. This means you create one application that you can replicate over n websites. Picture the maintenance benefit you have here. Replace just one application and all your sites are updated instantly. Another characteristic is the ease of extension in 2 directions: functionality and look-and-feel. The first (modules) allow you to change what the site does, the second (skinning) how it looks. By separating the two you can have different teams working on these aspects without a coordination nightmare. In presentations I will always mention that DNN allows us to manage 3 dimensions separately: content, function, and look.

clip_image004

Figure 2. Modules

clip_image006

Figure 3. Skins

This separation is a huge benefit to flexibility in development of your site as you can tackle these issues at different times. Finally I’d like to mention the ‘installer’. This component takes care of the uploading of custom extensions. It not only makes sure you can do this remotely; it can also take care of versioning.

Security

One of the perceived weaknesses of web applications is their level of security. Although a web application itself can be extremely complex, the interaction with the client (i.e. browser) is fairly simple. And because of its ubiquitous nature, web applications are a favorite target of hackers. This is without doubt the primary concern of management when web applications are introduced that give remote access to the company’s data. This is an area where DotNetNuke has a lot to offer. As an open source product the security mechanisms are up to scrutiny from anyone. There is a very accessible ‘security team’ that consists of professionals from the software security industry. They operate a ‘security alert’ network so users can be notified instantly when security breaches are discovered. The fact that a new build can be made and rolled out within the space of a week means you have a highly adaptive framework with a solid capacity to react to security issues. For this reason we can consider the framework to be very secure. To further illustrate this point I should mention that I have seen DNN used in high security places like a policy force in the US. Bring2mind have also sold DNN solutions to the DoD. These customers have very rigorous standards concerning security and they opted for DNN as their platform for development.

Corporate use of DNN

From the above it should be clear that DNN is a good candidate to build corporate web applications. It is easy to extend, easy to maintain and it is secure. In most real-world situations there is an added benefit from the fact that it operates on the Windows stack. Most corporate software already runs on the Windows platform and the integration between DNN and these existing applications is far easier than if the great divide has to be crossed to the LAMP stack.

DNN vs SharePoint

A common comparison is with SharePoint, Microsoft’s own web framework solution. I’ve seen a number of articles on this and all seem to point in one direction: use DNN for extranet and public facing sites, and SharePoint for Intranet solutions. Although I can follow the line of reasoning, I have an issue with comparing ‘bare’ DNN with ‘bare’ SharePoint. DNN is built and maintained as an open source project. This means the architects and programmers (the ‘Core team’ as they’re called) need other sources of revenue than from sale of the product. As you can imagine this puts extraordinary pressure on development time. Resources are limited with a project of this type.

As a result the core team focuses on the ‘core’ framework and various ‘project teams’ develop the set of ‘core modules’ that come with the distribution. Together they make up the bare DNN distribution. A comparison with SharePoint (commercial with vast resources behind it) is therefore bound to reflect the shortcomings of a free product. In my opinion it is more useful to compare SharePoint with DNN augmented with the modules you’d need to do the comparison. A proper document management module, an email module, etc. These modules are (commercially) available and they do not explode your budget.

clip_image008

Figure 4. Document Management in DNN using commercial module

A second note regarding the comparisons of DNN and SharePoint to make here is the difference of speed of development. An upgrade of a product like SharePoint takes years of development and testing. DNN has shorter development cycles. As a result many of the comparisons out there are outdated the moment they’re online.

DNN as Groupware

Groupware is the common name for software designed to support collaborative work as mentioned in the introduction. Collaborative work is where people work towards some common goal. This sets Groupware apart from, for instance, a transaction system like an ATM (not between people), or a community site like Facebook (no common goal). The goal of Groupware is commonly to help a group of people bridge distance and/or time.

Web applications as Groupware

Web applications are relatively cheap when crossing geographical distances. The http protocol is well established and understood and will cross firewall easily. Browsers are abundant and installed on every PC. An important aspect of http is that it is a ‘connectionless’ protocol. The web browser is not ‘connected’ to the web server it gets the page from the way a client-server application is. This means web applications are by nature geared toward asynchronous communication (e.g. email). But the latter is rapidly changing. With technologies like Ajax we are now more and more able to make web applications appear to function as if the client was ‘connected’ to the server. This allows us to support synchronous applications as well (e.g. chat).

Tailorability; the holy grail of human centric computing

One of the key challenges in Groupware projects is getting the best ‘fit’ between human activity and IT. At the end of the day, human beings would like to work with each other and not with IT (well, most of us anyway). The computers we use in collaboration are tools to help bridge time or distance, but should be as transparent as possible. This puts extraordinary demand on the ability of software to adapt itself to the end user. We expect the computer to deliver us what we need, when we need it in the way we want. Let’s assume I’m working on a particular task on a construction project. I’m faced with a climate problem for a particular external corridor and I’m contemplating closing this off from the outside. But I feel this has been studied before and I hate reinventing the wheel or coming up with a proposal that others will boo; “we tried that before, it doesn’t work”. Now my challenge is to find out more about this. So I’d probably first consult project documents that I have access to (document management, search). If we’d been using some discussion tools (i.e. forums, chat), I’d search those, too. Then I might have my answer or, if not, I might know who to ask. So I need phone nr, availability, etc. Should I call or send an email? Maybe I should use IM. Or maybe the forum. Lots of options and lots of choices. In the end I’d like to software we use to help me find my way quickly and effectively. And not to bombard me with useless options or to obscure what I need in ‘jungle layout’ (where is my machete?).

Given the fact that no two industries are the same or even two tasks, the ‘fit’ of the software with our work will determine the benefit we reap. At this point we should distinguish between two levels of this ‘fit’. First there is the overall ‘fit’ between the software and the team/task. If no documents are produced/used during the task, it makes little use to roll out a document management system. If the team is never online at the same time, synchronous tools are no use either. Secondly, there is a ‘fit’ between the software and the individual user. If we are in a multi-lingual team, it would be a great help if the software would present itself in the language of the individual user. This latter ‘fit’ can, however, be taken a lot further than that. What if I can change the software to behave more like I work, without changing this for the whole team? This is called ‘tailorability’ of software and one of biggest challenges in Groupware.

To get the perfect fit between software and team we could try to analyze and design the perfect solution. This obviously takes up an inordinate amount of time before any coding is done. Especially in Groupware applications the target could still be missed by a mile and a lot of money would be wasted. This explains the emergence of alternative approaches such as ‘Agile’ or ‘Extreme’ software development. Here we accept that there will be a less than perfect solution but we attempt to reach perfection by small incremental updates. The crux is small development cycles. As we will see, DNN offers fast and easy upgrading of extensions, making this an ideal solution for short development cycles.

DotNetNuke; Lego for web applications

There are probably few people on this planet not familiar with Lego. Iconic and powerful through its simplicity. One small set of design rules and you have a kit for making anything you want (well, almost anything). DotNetNuke is very much the same thing but then for building web applications. The core framework handles things like authentication and security, page management, installation and upgrading, skin (look and feel) management, user preference management, search, syndication and much much more.

Much of DNN’s power comes from ‘module management’; the ability to upload extended functionality and the fact that the platform manages database scripting and upgrading. If you implement your extensions as ‘modules’ and you do this correctly, you can keep your system operational at all times even when implementing changes to (parts of) the application. So now, when we’re talking web applications, we are thinking: what modules do I need for this? Since its inception, the DNN framework has sparked a whole new industry around it. There are now numerous professional dedicated module developers, skinners (i.e. those making new designs for DNN), support specialists, trainers, etc. Modules and skins are sold in a couple of online stores to a worldwide audience (Bring2mind has sold DNN modules in all continents except Antarctica).

clip_image012

Figure 5. DotNetNuke Marketplace

So when you’ve determined what building blocks you need for your application: check out what is already available. That is where the real benefit kicks in. Why develop these components yourself when you can by them for a few hundred dollars or less? And even if the module is not exactly what you need, chances are you’ll be able to buy the source code allowing you to adapt it yourself. Or if you don’t want to do this yourself, chances are that you’ll be able to hire the people that made it to make the changes for you.

Developing flexible applications using DNN

As mentioned before, the challenge in building successful Groupware is the flexibility of the software to fit well with the task and team we’re trying to support. Using modular software like DNN gives us ample opportunity to achieve this goal for us. In the ‘bad old days’ of software development, design requirements would be drawn up, a team of engineers and programmers would build a software system as a big monolith, and this would be dumped on the users (“You asked for it, now … use it”). A better approach for this kind of task is to first find what is already out there that fit or nearly fit for what we want and determine which parts absolutely need to be custom built. Because of the modular nature of DNN, we can start a project with many existing components and change the ones that are ‘bad fits’ to customized versions as we go along. I always present this to the customer as the application organically growing with the users. I feel this is a very important aspect in achieving a good fit. Start with the low hanging fruit and work your way up while keeping the application operational. The feedback you get from users that are actively using a system is much more targeted and richer than the feedback from users that have to imagine a system.

Support

Now we’ve seen we can build what we need using DNN, we need to touch on the subject of support. This is the Achilles heel of ‘open source’ software as nothing comes for free in this world (well, almost). There are a group of enthusiasts who build the platform for free, but they cannot be expected to provide you with targeted support. Nor is it an option to rely on the benevolence of other community members (the DNN community is immense and through the forums on dotnetnuke.com you’ll find many helpful individuals). For a business critical solution this would be inadequate. Luckily there are many commercial entities that recognize this and have stepped up to the plate. First, the corporation behind DNN, DotNetNuke Corp, offers support for commercial fees. They’ll be able to provide support for your installation within your environment and you’ll be dealing with the people that know the platform best. Secondly there are the individual module vendors. If you rely on a commercial module, you can expect to receive support for it. Check out the vendor’s website and ask in the DNN forums about the level of support you can expect. Finally you could opt to hire an external entity as a one-stop-shop. There are consultants and hosters that offer to build the system you need and will handle the first-line support for you.

Examples

Slotervaart Ziekenhuis

clip_image002

Description Intranet for the main hospital of Western Amsterdam. This hospital has around 1500 employees.
Modules announcements, agenda, document management, forums
Examples of application
  • B2E communication
  • Shared event calendar
  • Quality assurance program

For this Intranet some custom workflow was implemented to handle the periodic review and updating of medical documentation. This resulted in a couple of modules to allow alerts to be specified for specific documents and the ability to discuss documents.

Mecanoo

clip_image002[4]

Description Intranet for one of Holland’s leading architects.
Modules announcements, agenda, document management, blog, wiki, database application
Examples of application
  • B2E communication
  • Knowledge library
  • Company database

The first challenge here was to find a flexible data management solution. The project database is used on a daily basis and needs to ‘grow’ with the company. The solution allows easily removing and adding of fields and setting permissions on each field. The presentation is done through XML/XSL allowing multiple displays of the same data and in any form. Later, other company databases (e.g. library, contacts, employee yellow pages) were migrated to the same module.

Blogs are actively used as a platform of distributing and capturing knowledge. The most active is the ‘product’ team that monitors new products and will blog about these.

Wildlife Conservation Society

clip_image004

Description a collection of Extranets for a non-profit organization with a worldwide audience.
Modules forums, blog, reporting, document management, gallery, wiki, newsfeeds
Examples of application
  • Application for research grants
  • Managing publications
  • Knowledge gathering and sharing

The Wildlife Conservation Society is a non-profit organization devoted to saving wildlife and wild lands. It does this through education, management of urban wildlife parks (such as the Bronx Zoo) and the management of research funds. Through the websites experts in various domains can collaborate. These sites can take the form of a domain theme like Big Cats or the American Bison. Equally the site could be for a specific country.

For this application numerous adjustments were made to make the application suit the end users’ needs. This is very much an organically growing application. Recently a dossier management application was added to allow researchers to apply for grants and have relevant documents easily attached with the proposal and properly managed by the application.

Conclusion

DotNetNuke is a mature web application framework that is very suitable to build Groupware applications. Its strengths are:

· Tight integration with existing Windows environment

· Solid security

· Ease of extension of functionality and design

· Large offering of available extensions

With a modest budget you can start your own Groupware project. Because of the size of the install base of DNN, you’ll find a wide array of support options.

About the Author

Peter Donker completed his PhD in 1999 entitled “SCAFFOLD: Structuring Communication in the Architectural Forum For Online Design” which looked into the communication process during the desing process and how this could be improved using IT. After Delft he left for Enschede where he worked for 3 years at the Telematica Instituut to continue research in ICT and human collaboration. In 2002 he left for Switzerland to start his own company Bring2mind which specializes in Document Management on the DNN framework.

Comments

There are currently no comments, be the first to post one.

Comment Form

Only registered users may post comments.

NewsArchives


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Daniels (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out