Final Project Presentation
Upcoming SlideShare
Loading in...5
×
 

Final Project Presentation

on

  • 1,737 views

Final Project completed during SetFocus Training

Final Project completed during SetFocus Training

Statistics

Views

Total Views
1,737
Views on SlideShare
1,732
Embed Views
5

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 5

http://www.linkedin.com 3
http://www.lmodules.com 1
https://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Final Project Presentation Final Project Presentation Presentation Transcript

  • SetFocus .NET Masters Program
    Framework Project and Library Management System Project
    Developed By: Zaccheus Roserie
  • Framework Project
    Developer: Zaccheus Roserie
    Email: zroserie@gmail.com
  • SetFocus Project #1 – Framework Project
    Objective
    Build parts of the business tier for a retail company. To achieve this two Assemblies were created: Foundation and AppTypes.
    Summary
    This project demonstrated the use of OOP techniques and the .NET framework. Some of the techniques implemented into this project include:
    • Exception Handling. (using pre existing exceptions and building custom exceptions). View slide
    • Inheritance, Polymorphism, Encapsulation View slide
    • Abstract Classes and Interfaces
    • Events and Delegates
    • Serialization
    • Generic Collections
    • Creating and implementing custom Enumerators
    • Properties
    • Enumeration
    • Creating and implementing custom attributes
  • SetFocus Project #1 – Framework Project
    Foundation Assembly
  • SetFocus Project #1 – Framework Project
    AppTypes Assembly
  • ///<summary>
    /// Interface details required properties for abstractions with a mailing address.
    ///</summary>
    public interface I Address
    {
    ///<summary>
    /// Address Property
    ///</summary>
    ///<value>Automatic set used to set the address</value>
    string Address { get; set; }
    ///<summary>
    ///City Property
    ///</summary>
    ///<value>Automatic set used to set the City</value>
    string City { get; set; }
    ///<summary>
    /// Region Property
    ///</summary>
    ///<value>Automatic set used to set the Region</value>
    string Region { get; set; }
    ///<summary>
    ///Postal Code property
    ///</summary>
    ///<value>Automatic set used to set the Postal Code</value>
    string Postal Code { get; set; }
    }
    SetFocus Project #1 – Framework Project
    Address Interface
  • ///<remarks>
    /// Description Attribute created to allow the developer to specify information
    /// about himself for the newly created class. Developer name, date and title
    /// are field which can be specified.
    /// Description can be applied to Assembly, Class, Interface and Enum
    ///</remarks>
    [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class |
    AttributeTargets.Interface| AttributeTargets.Enum, AllowMultiple = true)]
    public class DeveloperInfoAttribute : Attribute
    {
    ///<summary>
    /// Non-Default Constructor
    ///</summary>
    ///<param name="name"></param>
    public DeveloperInfoAttribute(string name)
    {
    Name = name;
    }
    ///<summary>
    /// Name Property
    ///</summary>
    ///<value>Automatic set used to assign value</value>
    public string Name { get; set; }
    ///<summary>
    /// Date Property
    ///</summary>
    ///<value>Automatic set used to assign value</value>
    public string Date { get; set; }
    ///<summary>
    /// Title Property
    ///</summary>
    ///<value>Automatic set used to assign value</value>
    public string Title { get; set;}
    }
    SetFocus Project #1 – Framework Project
    Address Interface
  • ///<remarks>
    /// Description Attribute created to allow the developer to specify information
    /// about himself for the newly created class. Developer name, date and title
    /// are field which can be specified.
    /// Description can be applied to Assembly, Class, Interface and Enum
    ///</remarks>
    [AttributeUsage(AttributeTargets.Assembly| AttributeTargets.Class |
    AttributeTargets.Interface| AttributeTargets.Enum, AllowMultiple = true)]
    public class DeveloperInfoAttribute : Attribute
    {
    ///<summary>
    /// Non-Default Constructor
    ///</summary>
    ///<param name="name"></param>
    public DeveloperInfoAttribute(string name)
    {
    Name = name;
    }
    ///<summary>
    /// Name Property
    ///</summary>
    ///<value>Automatic set used to assign value</value>
    public string Name { get; set; }
    ///<summary>
    /// Date Property
    ///</summary>
    ///<value>Automatic set used to assign value</value>
    public string Date { get; set; }
    ///<summary>
    /// Title Property
    ///</summary>
    ///<value>Automatic set used to assign value</value>
    public string Title { get; set;}
    }
    SetFocus Project #1 – Framework Project
    Developer Attribute
  • Library Management System
    Developer: Zaccheus Roserie
    Email: zroserie@gmail.com
  • SetFocus Project #2 – Library Phase 1
    Objective
    Create a Windows Forms-based front-end application that will provide a librarian with a visual interface through which the librarian may perform the desired functions. Required functionality included checking in and out books from the library as well as adding new members (adult or juvenile).
    Summary
    This project demonstrates the use of .NET Windows form based development techniques. Some of the techniques implemented into this project include:
    • N-tier based architecture for scalability.
    • User input validation and feedback using error providers.
    • User input validation using regular expressions.
    • Exception and Error handling.
    • Implementation of a UI that requires minimal training for Librarians.
  • SetFocus Project #2 – Library Phase 1
    Library Manager Application – Main Form
  • SetFocus Project #2 – Library Phase 1
    Library Manager Application – Member Information
    Display Adult Member Information
  • SetFocus Project #2 – Library Phase 1
    Library Manager Application – Member Information
    Display Juvenile Member Information
  • SetFocus Project #2 – Library Phase 1
    Library Manager Application
    Add new Adult Member
    Add new Juvenile Member
  • SetFocus Project #2 – Library Phase 1
    Library Manager Application
    Checking a Book into of the Library
  • SetFocus Project #2 – Library Phase 1
    Library Manager Application
    Checking a Book into of the Library
  • SetFocus Project #2 – Library Phase 1
    Library Manager Application
    Checking a Book out of the Library
  • Objective
    In the Phase 1 project we were given the data access layer and created the presentation layer which interfaced with the Data access layer via the Business logic layer. In Phase 2, we recreated the Data Access Layer which consisted of the various Entities used by the application layers.
    Summary
    This project demonstrates the use of ADO.NET, LINQ as well as ORM (Object Relational Modeling). Transact-SQL was also used to access the database, which was managed using SQL-Server 2008. Some of the techniques implemented into this project include:
    • Recreate the Data Access Layer while keeping existing functionality within all other application layers.
    • Implement error handling in SQL stored procedures.
    • Process errors received from stored procedures in ADO.NET using SQL state codes returned by stored procedures.
    • Creating stored procedures in Transact-SQL on SQL-Server 2008.
    • Using LINQ to retrieve and process result sets (using the entities data context)
    • Retrieve and process result sets returned from SQL stored procedures.
    • Writing comprehensive test scripts for testing stored procedure functionality.
    • Utilize strongly typed datasets based on result sets of stored procedures.
    SetFocus Project #3 – Library Phase 2
  • SetFocus Project #3 – Library Phase 2
    Data Access Layer - Entities
  • SetFocus Project #3 – Library Phase 2
    Transact- SQL : Stored Procedures
    -- =============================================
    -- Author: Zaccheus Roserie
    -- Create date: 8/14/2009
    -- Description: Adds a new Adult into the adult table
    -- Errors
    -- state 1
    -- raiserror('firstname, lastname, street, city, state and zipcode can not be null',11,1)
    -- =============================================
    CREATE PROCEDURE [dbo].[spAddAdultMember]
    -- Add the parameters for the stored procedure here
    @firstname varchar(15) = null,
    @lastname varchar(15) = null,
    @middleinitial char(1) = null,
    @photograph image = null,
    @street varchar(15) = null,
    @city varchar(15) = null,
    @state char(2) = null,
    @zipcode char(10) = null,
    @phone_no char(13) = null,
    @member_no smallint OUTPUT
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    --validate params
    IF @firstname is null or @lastname is null or @street is null or @city is null or
    @state is null or @zipcode is null
    BEGIN
    raiserror(' firstname, lastname, street, city, state and zipcode
    cannot be null', 11,1)
    END
  • --set the expiration date to one year from today's date
    DECLARE @expr_date datetime
    SET @expr_date = DATEADD(YEAR,1,GETDATE());
    END
    BEGIN TRY
    BEGIN TRAN
    -- Insert statements for procedure here
    INSERT INTO [library].[dbo].[member]
    ([lastname], [firstname], [middleinitial], [photograph])
    VALUES
    (@lastname, @firstname, @middleinitial, @photograph)
    set @member_no = scope_identity()
    INSERT INTO [library].[dbo].[adult]
    ([member_no], [street], [city], [state], [zip], [phone_no], [expr_date])
    VALUES
    (@member_no, @street, @city, @state, @zipcode, @phone_no, @expr_date)
    COMMIT TRAN
    END TRY
    BEGIN CATCH
    -- See if system error arose during Transaction
    if @@TRANCOUNT > 0
    BEGIN
    ROLLBACK TRAN
    END
    PRINT 'Error(s) Caught'
    -- Declare local variables
    DECLARE @ErrorMessage NVARCHAR(4000);
    DECLARE @ErrorSeverity INT;
    DECLARE @ErrorState INT;
    -- Populate variables
    SELECT @ErrorMessage = ERROR_MESSAGE(),
    @ErrorSeverity = ERROR_SEVERITY(),
    @ErrorState = ERROR_STATE();
    -- rethrow goes to front end c#
    RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
    RETURN
    END CATCH
  • Objective
    Phase 3 represented the transition of the User interface from a windows forms application to a web based application using ASP.Net. In addition to the previous functionality implemented in the first 2 phases, new functionality was also implemented in phase 3 and are as follows:
    • Providing the Librarian with the ability to renew an adult members expired membership card.
    • Automatically updating Juvenile members of the library to adult members if they have encountered or passed their 18th birthday.
    • Providing the Librarian to add new books of additional copies of existing books into the library.
    Summary
    This project demonstrates the use of ADO.NET and LINQ but has a core focus on ASP.NET. Some of the techniques implemented into this project include:
    • Create and use ASP.NET master pages to provide a more organized and consistent look and feel throughout the website. 
    • Databinding gridviews through the use of an ObjectDataSource control. 
    • Utilizing various validation controls to validate user input before postbacks.
    • Use of validation summaries to obtain user feedback to deal with input validation 
    • Utilizing ViewState and SessionState objects. 
    • Use of Membership Roles to restrict user access to pages. 
    SetFocus Project #4 – Library Phase 3
  • SetFocus Project #4 – Library Phase 3
    Library Manager ASP.NetLogin Page
  • SetFocus Project #4 – Library Phase 3
    Library Manager ASP.NetWeb Application
    Display an Adult Member
  • SetFocus Project #4 – Library Phase 3
    Library Manager ASP.NetWeb Application
    Display a Juvenile Member
  • SetFocus Project #4 – Library Phase 3
    Library Manager ASP.NetWeb Application
    Renew an Expired Membership
  • SetFocus Project #4 – Library Phase 3
    Library Manager ASP.NetWeb Application
    Renew an Expired Membership
  • SetFocus Project #4 – Library Phase 3
    Library Manager ASP.NetWeb Application
    Renew an Expired Membership
  • SetFocus Project #4 – Library Phase 3
    Library Manager ASP.NetWeb Application
    Add a new copy of an existing Book
  • SetFocus Project #5 – Library Phase 4
    Objective
    The main focus of this project was to add another layer to our Library management application as well as implement a WCF service. As the potential to acquire libraries and creating partnerships with others increases, we see the need to take the library system to the next level – allow interoperability with other systems. The web service, once implemented will allow for communication with these different systems but also allowing us to keep the application layers which already exist intact.
    Summary
    This project demonstrates the use of the Windows Communication Foundation to implement web services . Some of the techniques implemented into this project include:
    • WCF services.
    • Authorization using ASP.Net roles.
    • Authentication using ASP.Net membership.
    • Implementing Data Contracts into Data Access Layer Entities to allow Serialization across various application layers.
    • Implementing Fault Exceptions and error handling.
  • SetFocus Project #5 – Library Phase 4
    Library Service Interface
    [ServiceContract]
    public interface ILibraryService
    {
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    Adult AddAdultMember(Adult adltMember);
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    Juvenile AddJuvenileMember(Juvenile jvnMember);
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    Member getMemberInformation(Int16 memberId);
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    ItemsDataSet getItems(Int16 memberId);
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    Item getItem(Int32 isbn, Int16 copyNumber);
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    Member getMemberItemOnLoanTo(Int32 isbn, Int16 copyNumber);
  • SetFocus Project #5 – Library Phase 4
    Library Service Interface
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    void UpgradeJuvenileMembership(Int16 memberId);
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    void RenewMembership(Int16 member_no);
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    void CheckBookIn(Int32 isbn, Int16 copyNumber);
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    void CheckBookOut(Int16 memberNumber, Int32 isbn, Int16 copyNumber);
    [OperationContract]
    [FaultContract(typeof(LibraryFault))]
    int AddNewTitle(Int32? isbn, Int16? copy_no, string title, string author, string synopsis,
    string translation, string cover, char? loanable, char? on_loan, int? title_no);
    }
  • SetFocus Project #5 – Library Phase 4
    Library Service Interface
    [DataContract]
    public class LibraryFault
    {
    [DataMember]
    public Int16 OtherMemberID{get; private set; }
    [DataMember]
    public ErrorCode FaultErrorCode { get; set; }
    [DataMember]
    public string FaultErrorMessage { get; set; }
    }