carlos amador .net portfolio

15
.NET Project Portfolio Carlos M. Amador [email protected] 201-600-1265

Upload: cmaslideshare

Post on 10-Jul-2015

564 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Carlos Amador .Net Portfolio

.NET Project Portfolio

Carlos M. Amador [email protected]

201­600­1265

Page 2: Carlos Amador .Net Portfolio

2

Table of Contents

Projects Overview 3

Framework Project 4

Library Phase I – Windows 6

Library Phase II – ADO.NET 8

Library Phase III – ASP.NET 10

Library Phase IV – WCF 12

Test Management Application 14

Page 3: Carlos Amador .Net Portfolio

3

Projects Overview

Framework Project: The project has us create components for the business tier of a retail company and in the

process test our coding skills with regard to C sharp and Framework concepts. Two assemblies,

both class libraries, are created and tested. One assembly is comprised of an abstract base

class, and implements multiple interfaces. The second assembly contains entity, collection and

exception classes.

Library Phase I – Windows: The project has us create a Windows Forms user interface that will measure our skills with

Windows Forms development. The Windows UI will interact with a database created to support

the principal functions of a lending library’s day­to­day operations: adding new members (adult

and juvenile) and checking books in and out. We’ve been provided with assemblies that contain

classes and interfaces that provide access to the database for these functions.

Library Phase II – ADO.NET: The project has us create the necessary business and data tiers required to access the library

database from Phase I, in doing so our abilities to develop ADO.NET, SQL, and Stored Procedures

will be evaluated. The assemblies we create will integrate with the Phase I Windows UI and will

replace the assemblies provided for us in Phase I. These assemblies must continue to provide

the same functionality of the original assemblies.

Library Phase III – ASP.NET: The project has us apply our ASP.NET knowledge to create an ASP.NET web user interface to the

library database. The Windows Forms user interface is replaced by the ASP.NET interface and

the business and data tiers from Phase II are re­used. All functionality provided by the Windows

UI is replicated in the web UI.

Library Phase IV – WCF: The project assesses our understanding of WCF by having us create a WCF service to access the

library database. The business and data tiers from the previous projects are encapsulated in a

WCF service hosted in IIS. The Windows UI from Phase I is re­used as the client for the WCF

service. All access to the library database is via the WCF service.

Test Management Application: The project is a group project and is designed to simulate and measure the real world scenario

of bringing an application to fruition as part of a team and its accompanying dynamics. The

project has us create a test management system that creates, modifies, and schedules tests. The

project, similar to Phase I, has a Windows UI that accesses stored procedures on a database to

accomplish its tasks.

Page 4: Carlos Amador .Net Portfolio

4

Framework Project

Objective: Create parts of the business tier for a retail company. Two assemblies will be created and

tested. The first assembly is a class library called Foundation and is comprised of multiple

interfaces and an abstract base class. The second assembly is also a class library called AppTypes

and consists of various entity, collection, and exception classes.

Summary: This project showcases the various concepts and features of C# and .NET, articulated via code in

an n­tiered application. A list of C# / .NET skills used in this project:

Delegates & Events Abstract classes & interfaces

Custom Exception/Attribute classes Enums

Custom EventArgs classes Automatic Properties & Indexers

Event logger and collection classes Custom Enumerators Implementation

Generic Collections of ISerializable, IComparer,

Custom Serializations IComparable, & IList<T> interfaces

Binary & SOAP Formatters Object Initializers / Finalizers

Operator Overriding & Overloading

Description ­ Foundation Assembly

Page 5: Carlos Amador .Net Portfolio

5

Description – AppTypes assembly

Page 6: Carlos Amador .Net Portfolio

6

Library Phase I ­ Windows

Objective: Design and develop a front end application that will provide an interface for the library systems

four core functions; Add Adult Member, Add Juvenile Member, Check in a book, and Check Out

a book. The code must be easily maintainable and all data entered via the interface must be

validated. Error handling must be addressed adequately and the interface should be intuitive

and self­explanatory.

Summary: Development techniques used to implement the solution include:

�� Input validation, tool tips, and feedback error providers for user input

�� Group Box and Tab controls to display, hide and organize information

�� Regular expressions for validation of user input

�� Custom exception handling of all operations

�� Creation of an intuitive user interface requiring minimal training

�� Interface to a provided business library and ADO.NET data access library to incorporate an

n­tier architecture for scalability

Description ­ Creation of an intuitive user interface requiring minimal training

Page 7: Carlos Amador .Net Portfolio

7

Description ­ Error Provider message triggered by validation

Description – Highlighted overdue books, hyperlink made visible to allow book to be checked in.

Book Information entry and buttons are disabled to prevent check out from continuing

Page 8: Carlos Amador .Net Portfolio

8

Library Phase II – ADO.NET

Objective: Design and implement business and data access tiers. The data access tier is to be stateless and

no SQL code is to reside in the application. Design entity classes to be used by all the tiers of the

application. In the database create stored procedures to retrieve or store data as required by

the application, per the requirements enforce verification, data validation and raise errors as

appropriate.

Summary: Development techniques used to implement the solution include:

�� Stored procedures

�� T­SQL Try­Catch blocks with Commit/Rollback logic

�� T­SQL Transaction blocks to enforce ACID principles: Atomicity, Consistency, Isolation, and Durability.

�� User Defined Functions and Views to better access and organize data

�� ADO.NET SqlConnection, SqlCommand, and SqlDataReader objects and methods to access

the database from the application

�� Custom exception handling of all operations

�� Creation of an intuitive user interface requiring minimal training

�� Integrate with Windows UI to maintain n­tier architecture

Description ­ ADO.NET SqlConnection, SqlCommand, and SqlDataReader objects and methods

to access the database from the application

Page 9: Carlos Amador .Net Portfolio

9

Description – Transaction block with tail end of try/catch logic

Description – Listing of Stored Procedures, Views, and User­Defined functions

Page 10: Carlos Amador .Net Portfolio

10

Library Phase III – ASP.NET

Objective: Design and implement a Web Application that will integrate the business and data tiers from

Phase II and replace the Windows Forms User Interface from Phase I. The Web UI will need to

support all the functionality provided by the Windows UI. Ajax controls are to be used to avoid

entire page postbacks as specified by the requirements. Hyperlinks will be used to navigate

between pages. Forms based authentication and authorization will be implemented and a

Librarian role to access the Web application will be established.

Summary: Development techniques used to implement the solution include:

�� Master Page

�� Response.Redirects and Hyperlinks used to navigate between pages

�� Session variables used to maintain state

�� Security Configuration tool to configure roles and users

�� Custom exception handling of all operations

�� Creation of an intuitive user interface requiring minimal training

�� Integrate with Business and Data Tier to maintain n­tier architecture

Description – Master Page design view, with Ajax script manager and hyperlinks

Page 11: Carlos Amador .Net Portfolio

11

.

Description ­ Ajax update panel control to check in book and not perform entire page postback

Description – Add Adult Member page

Page 12: Carlos Amador .Net Portfolio

12

Library Phase IV ­ WCF

Objective: Create a WCF service that will interface with the business tier created in Phase II. Modify the

Web UI from Phase III to act as a client for the WCF service. Use WCF Service Library and WCF

Service Website project types to implement and host the WCF service. The service must be

hosted on IIS, use WsHttpBinding, Authentication using ASP.NET membership, Authorization

using ASP.NET roles, and DataContracts for entities

Summary: Development techniques used to implement the solution include:

�� Service Contracts and Operations to define what the service offers

�� Data Contracts and Data Members to define the entities used by the service

�� Used Service Contract Attributes to denote derived types can also be returned from the

service

�� Strongly Typed Soap Faults with Fault Contracts to handle exceptions from the service

�� Principle Permission attribute to enforce role membership

Description – ServiceContract and OperationContract interface

Page 13: Carlos Amador .Net Portfolio

13

Description – Strongly Typed Soap Fault, DataContract and DataMember class.

Description – Solution Explorer view of Service and Client

Page 14: Carlos Amador .Net Portfolio

14

Test Management Application

Objective: As a group project design a n­tier Windows Forms application that will allow the following functionality – Add a Test Taker, Edit a Test Taker, Send a Test, Identify Open Tests, Create Questions for Tests, Create/Edit Tests, and Create/Edit Topics. My role was as team leader and also personally responsible for source code control, the development of the business and data layers, and coordinating the team presentation. My responsibilities as team leader were to define the design approach, outline tasks and milestones and address issues as they arose.

Summary: Skills used to implement the solution include:

�� Identify team member strengths and assign roles accordingly

�� Define coding standards, design approach, and test data early on so productivity can be maximized in the timeframe allotted

�� Understand logistic issues to properly define timeline of tasks and goals

�� Ensure quality and consistency by enforcing source code control guidelines and peer reviews

�� Outline a test plan and process that maps back to project requirements to validate project goals are met.

�� Maintain strong communication among team members to address issues early and identify solutions quickly

Description – Question Management screen for creating test questions

Page 15: Carlos Amador .Net Portfolio

�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������