Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

TeamVision

0.00/5 (No votes)
16 Nov 2009 1  
A simple project task management application. A managed approach to help keep on top of your projects.
Sample Image - maximum width is 600 pixels

Version 3.0

  • Upgraded to SQLExpress datasource
  • Removed references to Interop.Excel
  • Updated Data Access Framework

Technologies and Design Approaches Demonstrated

  • Application offline and online model
  • Authorization to control user access to application features
  • Printing and Print Preview
  • Windows XP Themes
  • Dynamic properties
  • Localization support
  • Accessibility support (limited)
  • Forms authentication using a database for user names/passwords
  • Asynchronous XML service class
  • ADO.NET data access using Microsoft Access SQLExpress 2008 database
  • Graphics development using GDI+
  • Integration between .NET Framework-based code and COM applications (COM interop)
  • The interop assemblies are available from Microsoft as a free download (obsolete)
  • Microsoft Visual Studio 2008

What is the TeamVision Solution?

TeamVision was originally based upon the TaskVision code sample offered via the WindowsForms website. TeamVision is a simple task management application built using the Windows Forms classes of the Microsoft® .NET Framework—an integral Windows® component that supports building and running the next generation of applications. TeamVision allows authenticated users to view, modify, and add projects and tasks that are shared with other users. It may be used in any number of scenarios, from bug tracking to managing work orders or customer service requests. Its primary purpose is to provide quality, sample source code to developers interested in building data-centric applications with ADO.NET using the .NET Framework.

Solution Architecture

Database

All of the shared data is stored in the database. This does not include application specific data or configuration settings. This allows developers to create custom applications, each pulling from a single unique data store. This article provides an overview of the database used in the TeamVision solution.

Models

The TeamVision model schema, is fairly simple, yet ample enough to support this task management solution. Each Concrete Model class derives from a base Model class and must implement at least two properties, PrimaryID and Name.
From there, we get a business class which holds other related class information, and acts as a proxy to that info.

Figure 1 - Model class diagram

Data Managers

The data layer includes Management (Manager) classes that act as an information services wrapper to retrieve and fill all request for data.

Figure 2 - Project Data Manager

Data Access Layer

The DAL provides the functionality for client applications to retrieve and change data, and, with the help of the Data Layer Component, is able to send each request back to a user. The DAL runs in a separate application space which allows for easy changes to the database schema. Every public DAL method is a CLS supported method and allows data to be easily passed within the call.

Using the Code

Figure 3 - Example Load All

Figure 4 - Get by PrimaryID

Figure 5 - Insert example

User Interface

As the Main form handles events such as opening the Search form, the DataLayer object is passed to the new form, providing access to the same data that the Main form is privileged to.

Lessons Learned

TeamVision is a simple solution intended to demonstrate many of the powerful capabilities of smart client applications built using the .NET Framework. Like many projects, TeamVision had its share of growth and opportunities throughout the development phase. However, I hope that through examination of the code you will gain valuable insight in your next development project.

Notes

To log-in to the application, use the following credentials:

  • username: "jdoe"
  • password: "welcome"

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here