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"