1. 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
2. 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
3. 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.
4. 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
5. 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
6. 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.
7. 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.
8. 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.
9. 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
10. 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.
11. 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)
12. 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.
13. 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.
14. 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.
15. 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.
16. 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
17. 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.
18. 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
19. 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