Phase #1 - .NET Framework In this phase we focus on setting up the .NET Framework. This diagrams the interfaces and base classes' that will be used through out the application. David S Pitcher firstname.lastname@example.org 3
Phase #1 .NET FrameworkBase Classes David S Pitcher email@example.com 4
Code snippets from the interface classes - Phase#1. David S Pitcher firstname.lastname@example.org 5
Phase #2 – Windows Form Application using Business, Data Access Layers For this phase the specifications ask us for the following.
Design the Business and Data Access layers.
The data access layer communicates with MS SQL Server using views and stored procedures.
Provide error handling for both SQL and Windows errors.
Custom error handling routine for both of these types of errors.
Use LINQtoSQL to develop object models and abstract away data provider code.
David S Pitcher email@example.com 6
David S. Pitcher firstname.lastname@example.org 7 Phase #2 Functionality Requirements.
The Librarian will require a way to add a new Adult or Juvenile member.
The ability to both check in/out books for any member.
Give the librarian to option to convert a juvenile to an adult member.
Patron must have a current library card id to check out items.
Any member may only have 4 books checked out at any one time.
Librarian can have the option to cancel any operation.
Juvenile members must have a valid adult member to sponsor them.
Notify Librarian if a adult membership has expired.
Librarian should be given an option to check in a book, if it is the same isbn and copy number
and shows as checked out.
Only a valid librarian may have access to these operations.
(Valid ID, password and user group for access)
David S. Pitcher email@example.com 8 Library Patron Information Screen
Check Out Items David S Pitcher firstname.lastname@example.org 9
David S Pitcher email@example.com 10 Add Adult & Juvenile Member
David S Pitcher firstname.lastname@example.org 11 Custom Exception Library Class – SQL and Windows Errors.
David S Pitcher email@example.com 12 Custom Exceptions called from Library Classes (Used in all visual classes that communicate with the database) , this instance is from the AddAdult.cs
David S Pitcher firstname.lastname@example.org 13 Data Access Layer communicates with the SQL Server database through the Entities Layer (DP.LibraryEntities). These are identified as views or as stored procedures if additions or modifications are required to the data. Following are some of those stored procedures.
David S Pitcher email@example.com 14 Add Adult Stored Procedure Transaction based Validation on input
David S Pitcher firstname.lastname@example.org 15 Called view - ‘VItems’
Phase #3 – New requirements and change of scope. David S Pitcher email@example.com 16 The new requirements ask us to convert the current Library management system into a web based application. Keeping all the functionality of the previous application while adding functionality to add new items to the system as well as automatically update a membership of an adult.
Create a ASP master page to provide a familiar and definite pattern across all web pages.
Keep a similar look and feel in the web application as in the windows form application.
Restrict access to the web application through the use of Membership Roles .
Use the ViewState and SessionState for post backs.
Reuse of both the Business and Data Access layers.
Use exception handling the will give the user both client & server side understand able error
Use of hyperlinks to navigate to all pages (master page)
Web application to use Form-based authentication and authorization.
David S Pitcher firstname.lastname@example.org 17 ASP.NET version of Add Adult
Validation Summary used for centralized user error messaging.
Required and validated fields all cued for errors.
Update Panel & Update Progress - Ajax controls used to display and update data.
David S Pitcher email@example.com 18 Additional Screen Shots for the Check inout and Add Item ASP pages.
David S Pitcher firstname.lastname@example.org 19 Phase #4 – Additional Requirements. As the Library has the potential to acquire additional libraries and create partnerships with others, a need arises the current system allow for interoperability with those systems. To achieve that goal, the following changes will need to take place in our web application.
Create a Windows Communication Service that calls the into the business layer
(Code Reuse )
Modify the current user interface to call the WCF service and not the business layer.
Implement as a WCF Service website, using WsHttpBinding.
David S Pitcher email@example.com 20 Coding for the security and custom Error handling.
David S. Pitcher firstname.lastname@example.org 21 Implementing the Library Interface, Service Classes
David S. Pitcher email@example.com 22 Library Fault class
David S. Pitcher firstname.lastname@example.org 23 Web config & App config settings
David S. Pitcher email@example.com 24 Summary SetFocus provides a learning environment very similar to what I have experienced in my role as a consultantcontractor. Business requirements are gathered, documentation is written (requirements and scope of project) and the developer will work in the guidelines of the shop to deliver what was in the requirements. Each phase of the project required 40-60 hours of work to complete, no extensions or reduction of requirements was allowed. All of the technologies specified in the requirements was expected to be incorporated into that particular phase of the project (i.e. ADO.NET, LINQ etc.) Students were expected to find the answers to there questions raised about a phase of the project, within the documentation and training provided. Though instructors and TA’s were available the student was never given a direct answer , but always directed to where they might find the answer.