+ All Categories
Home > Documents > Portfolio

Portfolio

Date post: 14-Jun-2015
Category:
Upload: jeanux
View: 318 times
Download: 1 times
Share this document with a friend
Description:
Portfolio based on the Library project, from Setfocus .NET Master program
Popular Tags:
23
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
Transcript
Page 1: Portfolio

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

Page 2: Portfolio

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

Page 3: Portfolio

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.

Page 4: Portfolio

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

Page 5: Portfolio

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

Page 6: Portfolio

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.

Page 7: Portfolio

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.

Page 8: Portfolio

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. 

Page 9: Portfolio

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

Page 10: Portfolio

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.

Page 11: Portfolio

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)

Page 12: Portfolio

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.

Page 13: Portfolio

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.

Page 14: Portfolio

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.

Page 15: Portfolio

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.

Page 16: Portfolio

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

Page 17: Portfolio

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.

Page 18: Portfolio

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

Page 19: Portfolio

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


Recommended