portfolio
DESCRIPTION
Portfolio based on the Library project, from Setfocus .NET Master programTRANSCRIPT
Setfocus Project #1:
.NET Framework Project
Objective:
Build parts of the business tier for a retail company. The design is based on two Class Library Projects:
Foundation: Contains Interfaces and Base Classes
AppType: contain various entity, collection, and exception classes
Summary:
This project demonstrates fundamental .NET skills and interaction between n‐tiered applications, such as:
Delegates, events
Abstract classes & interfaces
Enumerations
Generics
Custom exceptions
Attribute classes
Properties
Custom serializations
Binary and SOAP Formatters
Setfocus Project #2:
Library Phase 1 – Windows Front End Application
Objective
Create a Windows Forms-based front-end application that will provide a librarian with a visual interface to perform a lending library’s day-to-day operations:
Adding new members (of type adult and juvenile)
Checking books in and out.
Provisions:
Database scripts were provided in order to create the Library database. Book information, member records, loan records, etc. are all stored on SQL Server 2008.
An interface that specifies the methods supported by the Data Access tier used for all database access and a class that implements the interface were provided. Classes that represent various “business entities” were also provided.
Functionality Details
Add Adult: First and Last name, Street, City, State, and Zip code are mandatory. Middle Initial and phone number are optional.
Add Juvenile: First and Last name, Birth date, and Sponsoring Adult Member ID are required
Check In Books: ISBN and copy number required
Check Out Books: ISBN and copy number required.
Check In Selected Books: This option allows the librarian to check in, right from the main form and at the same time, all books on loan to a member.
Overdue books, shown in any display, must be highlighted
When dealing with juveniles, the application should detect if the juvenile is 18 years old or older and convert the member to an adult automatically.
Data Validation:
Besides checking fields for required information, data had to be validated according to a set of rules. Regular expressions were used for this purpose. A few of those rules were:
The first and last name fields could only contain 15 alphabetic characters. The first letter was required to be uppercase and the remaining characters must be lowercase.
The phone number had to be in the (###)###-#### format when supplied.
The Zip code had to be a ##### or #####-####, where # is a number (0-9).
Other Validations
Each member could only have 4 books checked out at a time. Checking out a book also required that the member’s expiration date be in the future. (The UI was designed in a way that it reacts to certain conditions, enabling or disabling menu items and toolbar buttons accordingly).
If a book was to be checked out, but the database indicated that it was already on loan, the librarian was prompted if they wanted to check the book in first.
Summary
This project demonstrates the use of .NET windows form development techniques.Some of the techniques used include:
User input validation and feedback using error providers
Data binding to a datagrid view control and manipulation of the control
Incorporate n‐tier architecture for scalability
Create a user interface that is intuitive and requires minimal training
Effective error and exception handling.
Use of regular expressions for input validation.
Setfocus Project #3:
Library Phase 2 – Windows Business and Data Access Tiers
Objective
Design and implement the business entity and data access tiers, replacing those provided in Phase 1 of the project. However, in phase 2 we take advantage of the following techniques:
Linq and LinqToSql: LinqToSql designer is of help in building and model the Item and Member classes (Member, Adult, and Juvenile). A Datacontext is used to get data from the Database and return the appropriate class.
Views: Two read-only views were created to take advantage of LinqToSql inheritance technology
Stored procedures: These were used to make database operations more efficient. Also, since data coming from a view is read only, stored procedures were needed to send data back to database.
Database Architecture
This diagram shows the tables and their relationships in the Library database used in this project.
Stored Procedures
Stored Procedures were created in this phase to duplicate the results of phase 1. However some procedures were needed to supply additional functionality (i.e. : usp_ConvertToJuvenile store proc, used to convert juvenile member to adult)
Summary
This project demonstrates the use of LinqToSql and Transact-SQL to access a SQL Server 2008 database. Some of the techniques used include:
Create and implement the Entities classes used in the library project
Data validation in SQL
Stored procedures in Transact‐SQL (T‐SQL) on SQL Server 2008
Implementing error handling in SQL
Process errors raised by T‐SQL in ADO.NET using error numbers and states
Write a T‐SQL script to test Stored Procedures for functionality
Create and utilize strongly typed datasets based on stored procedures.
Use of Linq and LinqToSql rapid code development and abstraction techniques.
Setfocus Project #4:
Library Phase 3 – Web Application
Objective
Create a web application that supports all the functionality required for Phase I and II of the Library project.
Functionality Details
In addition to the features already present in Phase #1 Windows Front-end application, some additional functionality was implemented:
On detection of an expired card, the app gives the librarian the option for a 1-year renewal.
The librarian must be able to enter a new book into the database. If the ISBN already exists in the database, just a new copy record is added. If the ISBN does not yet exist in the database, you must add all necessary records for the new ISBN and a new copy number (1) for that ISBN.
Design Requirements
On the Member Information page two AJAX controls were used: the Update Panel control and the Update Progress control. The grid view that displays checked out items will then be placed within the Update Panel control. When an item is checked in a postback for the entire page should not be triggered, only the information within the Update Panel should be updated. Additionally, the Update Progress control should display the progress of the check in action. The librarian should be able to select a row and click a check in button to check the item back into the library
The web application project must use Forms-based authentication and authorization. Only members of the Librarian role must be able to access the web application.
Summary
This project demonstrates the use of ASP.NET. Some of the techniques used include:
Create and use ASP.NET master pages to provide a consistent look across the website.
Use of Membership and Roles Management features of ASP.NET 3.5 to restrict access to pages.
Utilizing ViewState and SessionState objects to save data between postbacks.
Use of Ajax extensions for partial page postbacks, and Ajax Control Toolkit, to implement visual appealing controls making use of the Ajax technology.
Create a web interface that is intuitive and requires minimal training.
Use of various validation controls to validate input before postback
Setfocus Project #5:
Library Phase 4 (Final) – WCF Service Implementation
Objective
In this final phase, we’re aiming to allow interoperability with other systems by means of web services. We use Windows Communication Foundation (WCF) to implement the service.
N-Tier Structure Description
The WCF service will call into the business layer, already implemented in Phase 2 of the project.
Security Considerations
Due to the possibility of utilizing the service between the Library systems and those of its partners, security must be employed. For this project the following security mechanisms were used:
• Transport-level security (SSL) to ensure confidentiality and integrity
• Authentication through ASP.NET membership
• Authorization using ASP.NET roles
Service Configuration Screenshots (using WCF Configuration Editor Tool)
Services Description
Services Node:
- Service Name: JR.LibraryServiceLib. LibraryService
- Endpoint Binding Type: wsHttpBinding
Binding Configuration
Bindings Node:
- Binding config. Name: WSHttpBindingConfig
- Security-Mode: TransportWithMessageCredential
- Security-MessageClientCredentialType: UserName
Authentication Configuration
ServiceCredentials node:
- MembershipProviderName: AspNetSqlMembershipProvider
Authorization Configuration
ServiceAuthorization node:
- PrincipalPermissionMode: UseAspNetRoles
- RoleProviderName: AspNetSqlRoleProvider
Summary
This project demonstrates the use of Windows Communication Foundation (WCF). Some aspects of the implementation are:
Creation of a WCF Service Library project
Creation of a WCF Service Website for hosting the service.
Use of transport-level security (SSL)
Authentication using ASP.NET membership
Authorization using ASP.NET roles
Use FaultExceptions for passing error information