Published on

Portfolio based on the Library project, from Setfocus .NET Master program

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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