2. Table of Contents
Projects Overview 3
Framework Project 4
Library Phase I – Windows 6
Library Phase II – ADO.NET 8
Library Phase III – ASP.NET 10
Library Phase IV – WCF 12
Test Management Application 14
2
3. Projects Overview
Framework Project:
The project has us create components for the business tier of a retail company and in the
process test our coding skills with regard to C sharp and Framework concepts. Two assemblies,
both class libraries, are created and tested. One assembly is comprised of an abstract base
class, and implements multiple interfaces. The second assembly contains entity, collection and
exception classes.
Library Phase I – Windows:
The project has us create a Windows Forms user interface that will measure our skills with
Windows Forms development. The Windows UI will interact with a database created to support
the principal functions of a lending library’s daytoday operations: adding new members (adult
and juvenile) and checking books in and out. We’ve been provided with assemblies that contain
classes and interfaces that provide access to the database for these functions.
Library Phase II – ADO.NET:
The project has us create the necessary business and data tiers required to access the library
database from Phase I, in doing so our abilities to develop ADO.NET, SQL, and Stored Procedures
will be evaluated. The assemblies we create will integrate with the Phase I Windows UI and will
replace the assemblies provided for us in Phase I. These assemblies must continue to provide
the same functionality of the original assemblies.
Library Phase III – ASP.NET:
The project has us apply our ASP.NET knowledge to create an ASP.NET web user interface to the
library database. The Windows Forms user interface is replaced by the ASP.NET interface and
the business and data tiers from Phase II are reused. All functionality provided by the Windows
UI is replicated in the web UI.
Library Phase IV – WCF:
The project assesses our understanding of WCF by having us create a WCF service to access the
library database. The business and data tiers from the previous projects are encapsulated in a
WCF service hosted in IIS. The Windows UI from Phase I is reused as the client for the WCF
service. All access to the library database is via the WCF service.
Test Management Application:
The project is a group project and is designed to simulate and measure the real world scenario
of bringing an application to fruition as part of a team and its accompanying dynamics. The
project has us create a test management system that creates, modifies, and schedules tests. The
project, similar to Phase I, has a Windows UI that accesses stored procedures on a database to
accomplish its tasks.
3
4. Framework Project
Objective:
Create parts of the business tier for a retail company. Two assemblies will be created and
tested. The first assembly is a class library called Foundation and is comprised of multiple
interfaces and an abstract base class. The second assembly is also a class library called AppTypes
and consists of various entity, collection, and exception classes.
Summary:
This project showcases the various concepts and features of C# and .NET, articulated via code in
an ntiered application. A list of C# / .NET skills used in this project:
Delegates & Events Abstract classes & interfaces
Custom Exception/Attribute classes Enums
Custom EventArgs classes Automatic Properties & Indexers
Event logger and collection classes Custom Enumerators Implementation
Generic Collections of ISerializable, IComparer,
Custom Serializations IComparable, & IList<T> interfaces
Binary & SOAP Formatters Object Initializers / Finalizers
Operator Overriding & Overloading
Description Foundation Assembly
4
6. Library Phase I Windows
Objective:
Design and develop a front end application that will provide an interface for the library systems
four core functions; Add Adult Member, Add Juvenile Member, Check in a book, and Check Out
a book. The code must be easily maintainable and all data entered via the interface must be
validated. Error handling must be addressed adequately and the interface should be intuitive
and selfexplanatory.
Summary:
Development techniques used to implement the solution include:
�� Input validation, tool tips, and feedback error providers for user input
�� Group Box and Tab controls to display, hide and organize information
�� Regular expressions for validation of user input
�� Custom exception handling of all operations
�� Creation of an intuitive user interface requiring minimal training
�� Interface to a provided business library and ADO.NET data access library to incorporate an
ntier architecture for scalability
Description Creation of an intuitive user interface requiring minimal training
6
7. Description Error Provider message triggered by validation
Description – Highlighted overdue books, hyperlink made visible to allow book to be checked in.
Book Information entry and buttons are disabled to prevent check out from continuing
7
8. Library Phase II – ADO.NET
Objective:
Design and implement business and data access tiers. The data access tier is to be stateless and
no SQL code is to reside in the application. Design entity classes to be used by all the tiers of the
application. In the database create stored procedures to retrieve or store data as required by
the application, per the requirements enforce verification, data validation and raise errors as
appropriate.
Summary:
Development techniques used to implement the solution include:
�� Stored procedures
�� TSQL TryCatch blocks with Commit/Rollback logic
�� TSQL Transaction blocks to enforce ACID principles: Atomicity, Consistency, Isolation, and
Durability.
�� User Defined Functions and Views to better access and organize data
�� ADO.NET SqlConnection, SqlCommand, and SqlDataReader objects and methods to access
the database from the application
�� Custom exception handling of all operations
�� Creation of an intuitive user interface requiring minimal training
�� Integrate with Windows UI to maintain ntier architecture
Description ADO.NET SqlConnection, SqlCommand, and SqlDataReader objects and methods
to access the database from the application
8
9. Description – Transaction block with tail end of try/catch logic
Description – Listing of Stored Procedures, Views, and UserDefined functions
9
10. Library Phase III – ASP.NET
Objective:
Design and implement a Web Application that will integrate the business and data tiers from
Phase II and replace the Windows Forms User Interface from Phase I. The Web UI will need to
support all the functionality provided by the Windows UI. Ajax controls are to be used to avoid
entire page postbacks as specified by the requirements. Hyperlinks will be used to navigate
between pages. Forms based authentication and authorization will be implemented and a
Librarian role to access the Web application will be established.
Summary:
Development techniques used to implement the solution include:
�� Master Page
�� Response.Redirects and Hyperlinks used to navigate between pages
�� Session variables used to maintain state
�� Security Configuration tool to configure roles and users
�� Custom exception handling of all operations
�� Creation of an intuitive user interface requiring minimal training
�� Integrate with Business and Data Tier to maintain ntier architecture
Description – Master Page design view, with Ajax script manager and hyperlinks
10
11. .
Description Ajax update panel control to check in book and not perform entire page postback
Description – Add Adult Member page
11
12. Library Phase IV WCF
Objective:
Create a WCF service that will interface with the business tier created in Phase II. Modify the
Web UI from Phase III to act as a client for the WCF service. Use WCF Service Library and WCF
Service Website project types to implement and host the WCF service. The service must be
hosted on IIS, use WsHttpBinding, Authentication using ASP.NET membership, Authorization
using ASP.NET roles, and DataContracts for entities
Summary:
Development techniques used to implement the solution include:
�� Service Contracts and Operations to define what the service offers
�� Data Contracts and Data Members to define the entities used by the service
�� Used Service Contract Attributes to denote derived types can also be returned from the
service
�� Strongly Typed Soap Faults with Fault Contracts to handle exceptions from the service
�� Principle Permission attribute to enforce role membership
Description – ServiceContract and OperationContract interface
12
13. Description – Strongly Typed Soap Fault, DataContract and DataMember class.
Description – Solution Explorer view of Service and Client
13
14. Test Management Application
Objective:
As a group project design a ntier Windows Forms application that will allow the following
functionality – Add a Test Taker, Edit a Test Taker, Send a Test, Identify Open Tests, Create
Questions for Tests, Create/Edit Tests, and Create/Edit Topics. My role was as team leader and
also personally responsible for source code control, the development of the business and data
layers, and coordinating the team presentation. My responsibilities as team leader were to
define the design approach, outline tasks and milestones and address issues as they arose.
Summary:
Skills used to implement the solution include:
�� Identify team member strengths and assign roles accordingly
�� Define coding standards, design approach, and test data early on so productivity can be
maximized in the timeframe allotted
�� Understand logistic issues to properly define timeline of tasks and goals
�� Ensure quality and consistency by enforcing source code control guidelines and peer reviews
�� Outline a test plan and process that maps back to project requirements to validate project
goals are met.
�� Maintain strong communication among team members to address issues early and identify
solutions quickly
Description – Question Management screen for creating test questions
14