SetFocus .NET Masters Program<br />Framework Project and Library Management System Project<br />Developed By: Zaccheus Ros...
Framework Project<br />Developer: Zaccheus Roserie<br />Email: zroserie@gmail.com<br />
SetFocus Project #1 – Framework Project<br />Objective<br />Build parts of the business tier for a retail company. To achi...
Inheritance, Polymorphism, Encapsulation
Abstract Classes and Interfaces
Events and Delegates
Serialization
Generic Collections
Creating  and implementing custom Enumerators
Properties
Enumeration
Creating and implementing custom attributes</li></li></ul><li>SetFocus Project #1 – Framework Project<br />Foundation Asse...
SetFocus Project #1 – Framework Project<br />AppTypes Assembly<br />
///&lt;summary&gt;<br />    /// Interface details required properties for abstractions with a mailing address.<br />///&lt...
///&lt;remarks&gt;<br />    /// Description Attribute created to allow the developer to specify information<br />/// about...
///&lt;remarks&gt;<br />    /// Description Attribute created to allow the developer to specify information<br />/// about...
Library Management System<br />Developer: Zaccheus Roserie<br />Email: zroserie@gmail.com<br />
SetFocus Project #2 – Library Phase 1<br />Objective<br />Create a Windows Forms-based front-end application that will pro...
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.</li></li></ul><li>SetFocus Project #2 – Library Phas...
SetFocus Project #2 – Library Phase 1<br />Library Manager Application – Member Information<br />Display Adult Member Info...
SetFocus Project #2 – Library Phase 1<br />Library Manager Application – Member Information<br />Display Juvenile Member I...
SetFocus Project #2 – Library Phase 1<br />Library Manager Application<br />Add new Adult Member<br />Add new Juvenile Mem...
SetFocus Project #2 – Library Phase 1<br />Library Manager Application<br />Checking a Book into of the Library<br />
SetFocus Project #2 – Library Phase 1<br />Library Manager Application<br />Checking a Book into of the Library<br />
SetFocus Project #2 – Library Phase 1<br />Library Manager Application<br />Checking a Book out of the Library<br />
Objective<br />In the Phase 1 project we were given the data access layer and created the presentation layer which interfa...
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)
Upcoming SlideShare
Loading in...5
×

Final Project Presentation

1,633

Published on

Final Project completed during SetFocus Training

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,633
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Final Project Presentation

  1. 1. SetFocus .NET Masters Program<br />Framework Project and Library Management System Project<br />Developed By: Zaccheus Roserie<br />
  2. 2. Framework Project<br />Developer: Zaccheus Roserie<br />Email: zroserie@gmail.com<br />
  3. 3. SetFocus Project #1 – Framework Project<br />Objective<br />Build parts of the business tier for a retail company. To achieve this two Assemblies were created: Foundation and AppTypes.<br />Summary<br />This project demonstrated the use of OOP techniques and the .NET framework. Some of the techniques implemented into this project include:<br /><ul><li>Exception Handling. (using pre existing exceptions and building custom exceptions).
  4. 4. Inheritance, Polymorphism, Encapsulation
  5. 5. Abstract Classes and Interfaces
  6. 6. Events and Delegates
  7. 7. Serialization
  8. 8. Generic Collections
  9. 9. Creating and implementing custom Enumerators
  10. 10. Properties
  11. 11. Enumeration
  12. 12. Creating and implementing custom attributes</li></li></ul><li>SetFocus Project #1 – Framework Project<br />Foundation Assembly <br />
  13. 13. SetFocus Project #1 – Framework Project<br />AppTypes Assembly<br />
  14. 14. ///&lt;summary&gt;<br /> /// Interface details required properties for abstractions with a mailing address.<br />///&lt;/summary&gt;<br />public interface I Address<br /> {<br />///&lt;summary&gt;<br /> /// Address Property<br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to set the address&lt;/value&gt;<br />string Address { get; set; }<br />///&lt;summary&gt;<br /> ///City Property<br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to set the City&lt;/value&gt;<br />string City { get; set; }<br />///&lt;summary&gt;<br /> /// Region Property<br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to set the Region&lt;/value&gt;<br />string Region { get; set; }<br />///&lt;summary&gt;<br /> ///Postal Code property <br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to set the Postal Code&lt;/value&gt;<br />string Postal Code { get; set; } <br /> }<br />SetFocus Project #1 – Framework Project<br />Address Interface<br />
  15. 15. ///&lt;remarks&gt;<br /> /// Description Attribute created to allow the developer to specify information<br />/// about himself for the newly created class. Developer name, date and title<br />/// are field which can be specified.<br />/// Description can be applied to Assembly, Class, Interface and Enum<br />///&lt;/remarks&gt;<br /> [AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class |<br /> AttributeTargets.Interface| AttributeTargets.Enum, AllowMultiple = true)]<br /> public class DeveloperInfoAttribute : Attribute<br /> {<br />///&lt;summary&gt;<br /> /// Non-Default Constructor<br />///&lt;/summary&gt;<br /> ///&lt;param name=&quot;name&quot;&gt;&lt;/param&gt;<br />public DeveloperInfoAttribute(string name)<br /> {<br /> Name = name;<br /> }<br />///&lt;summary&gt;<br /> /// Name Property<br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to assign value&lt;/value&gt;<br />public string Name { get; set; }<br />///&lt;summary&gt;<br /> /// Date Property<br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to assign value&lt;/value&gt;<br />public string Date { get; set; }<br />///&lt;summary&gt;<br /> /// Title Property<br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to assign value&lt;/value&gt;<br />public string Title { get; set;}<br />}<br />SetFocus Project #1 – Framework Project<br />Address Interface<br />
  16. 16. ///&lt;remarks&gt;<br /> /// Description Attribute created to allow the developer to specify information<br />/// about himself for the newly created class. Developer name, date and title<br />/// are field which can be specified.<br />/// Description can be applied to Assembly, Class, Interface and Enum<br />///&lt;/remarks&gt;<br /> [AttributeUsage(AttributeTargets.Assembly| AttributeTargets.Class |<br /> AttributeTargets.Interface| AttributeTargets.Enum, AllowMultiple = true)]<br /> public class DeveloperInfoAttribute : Attribute<br /> {<br />///&lt;summary&gt;<br /> /// Non-Default Constructor<br />///&lt;/summary&gt;<br /> ///&lt;param name=&quot;name&quot;&gt;&lt;/param&gt;<br />public DeveloperInfoAttribute(string name)<br /> {<br /> Name = name;<br /> }<br />///&lt;summary&gt;<br /> /// Name Property<br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to assign value&lt;/value&gt;<br />public string Name { get; set; }<br />///&lt;summary&gt;<br /> /// Date Property<br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to assign value&lt;/value&gt;<br />public string Date { get; set; }<br />///&lt;summary&gt;<br /> /// Title Property<br />///&lt;/summary&gt;<br /> ///&lt;value&gt;Automatic set used to assign value&lt;/value&gt;<br />public string Title { get; set;}<br />}<br />SetFocus Project #1 – Framework Project<br />Developer Attribute<br />
  17. 17. Library Management System<br />Developer: Zaccheus Roserie<br />Email: zroserie@gmail.com<br />
  18. 18. SetFocus Project #2 – Library Phase 1<br />Objective<br />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).<br />Summary<br />This project demonstrates the use of .NET Windows form based development techniques. Some of the techniques implemented into this project include:<br /><ul><li>N-tier based architecture for scalability.
  19. 19. User input validation and feedback using error providers.
  20. 20. User input validation using regular expressions.
  21. 21. Exception and Error handling.
  22. 22. Implementation of a UI that requires minimal training for Librarians.</li></li></ul><li>SetFocus Project #2 – Library Phase 1<br />Library Manager Application – Main Form<br />
  23. 23. SetFocus Project #2 – Library Phase 1<br />Library Manager Application – Member Information<br />Display Adult Member Information<br />
  24. 24. SetFocus Project #2 – Library Phase 1<br />Library Manager Application – Member Information<br />Display Juvenile Member Information<br />
  25. 25. SetFocus Project #2 – Library Phase 1<br />Library Manager Application<br />Add new Adult Member<br />Add new Juvenile Member<br />
  26. 26. SetFocus Project #2 – Library Phase 1<br />Library Manager Application<br />Checking a Book into of the Library<br />
  27. 27. SetFocus Project #2 – Library Phase 1<br />Library Manager Application<br />Checking a Book into of the Library<br />
  28. 28. SetFocus Project #2 – Library Phase 1<br />Library Manager Application<br />Checking a Book out of the Library<br />
  29. 29. Objective<br />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. <br />Summary<br />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:<br /><ul><li>Recreate the Data Access Layer while keeping existing functionality within all other application layers.
  30. 30. Implement error handling in SQL stored procedures.
  31. 31. Process errors received from stored procedures in ADO.NET using SQL state codes returned by stored procedures.
  32. 32. Creating stored procedures in Transact-SQL on SQL-Server 2008.
  33. 33. Using LINQ to retrieve and process result sets (using the entities data context)
  34. 34. Retrieve and process result sets returned from SQL stored procedures.
  35. 35. Writing comprehensive test scripts for testing stored procedure functionality.
  36. 36. Utilize strongly typed datasets based on result sets of stored procedures.</li></ul>SetFocus Project #3 – Library Phase 2<br />
  37. 37. SetFocus Project #3 – Library Phase 2<br />Data Access Layer - Entities<br />
  38. 38. SetFocus Project #3 – Library Phase 2<br />Transact- SQL : Stored Procedures<br />-- =============================================<br />-- Author: Zaccheus Roserie<br />-- Create date: 8/14/2009<br />-- Description: Adds a new Adult into the adult table<br />-- Errors<br />-- state 1<br />-- raiserror(&apos;firstname, lastname, street, city, state and zipcode can not be null&apos;,11,1) <br />-- =============================================<br />CREATE PROCEDURE [dbo].[spAddAdultMember] <br />-- Add the parameters for the stored procedure here<br /> @firstname varchar(15) = null,<br /> @lastname varchar(15) = null,<br /> @middleinitial char(1) = null,<br /> @photograph image = null,<br /> @street varchar(15) = null,<br /> @city varchar(15) = null,<br /> @state char(2) = null,<br /> @zipcode char(10) = null,<br /> @phone_no char(13) = null,<br /> @member_no smallint OUTPUT<br />AS<br />BEGIN <br />-- SET NOCOUNT ON added to prevent extra result sets from<br />-- interfering with SELECT statements.<br />SET NOCOUNT ON;<br />--validate params<br />IF @firstname is null or @lastname is null or @street is null or @city is null or <br /> @state is null or @zipcode is null <br />BEGIN<br />raiserror(&apos; firstname, lastname, street, city, state and zipcode <br /> cannot be null&apos;, 11,1)<br />END<br />
  39. 39. --set the expiration date to one year from today&apos;s date<br />DECLARE @expr_date datetime<br />SET @expr_date = DATEADD(YEAR,1,GETDATE());<br />END<br />BEGIN TRY<br /> BEGIN TRAN <br /> -- Insert statements for procedure here<br /> INSERT INTO [library].[dbo].[member]<br />([lastname], [firstname], [middleinitial], [photograph])<br />VALUES <br />(@lastname, @firstname, @middleinitial, @photograph)<br /> set @member_no = scope_identity()<br /> INSERT INTO [library].[dbo].[adult]<br /> ([member_no], [street], [city], [state], [zip], [phone_no], [expr_date])<br /> VALUES <br /> (@member_no, @street, @city, @state, @zipcode, @phone_no, @expr_date)<br /> COMMIT TRAN<br />END TRY<br />BEGIN CATCH<br />-- See if system error arose during Transaction<br />if @@TRANCOUNT &gt; 0<br />BEGIN<br />ROLLBACK TRAN <br />END <br />PRINT &apos;Error(s) Caught&apos;<br />-- Declare local variables<br />DECLARE @ErrorMessage NVARCHAR(4000);<br />DECLARE @ErrorSeverity INT;<br />DECLARE @ErrorState INT;<br />-- Populate variables<br />SELECT @ErrorMessage = ERROR_MESSAGE(), <br /> @ErrorSeverity = ERROR_SEVERITY(), <br /> @ErrorState = ERROR_STATE();<br />-- rethrow goes to front end c#<br />RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);<br />RETURN<br />END CATCH<br />
  40. 40. Objective<br />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:<br /><ul><li>Providing the Librarian with the ability to renew an adult members expired membership card.
  41. 41. Automatically updating Juvenile members of the library to adult members if they have encountered or passed their 18th birthday.
  42. 42. Providing the Librarian to add new books of additional copies of existing books into the library.</li></ul>Summary<br />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:<br /><ul><li>Create and use ASP.NET master pages to provide a more organized and consistent look and feel throughout the website. 
  43. 43. Databinding gridviews through the use of an ObjectDataSource control. 
  44. 44. Utilizing various validation controls to validate user input before postbacks.
  45. 45. Use of validation summaries to obtain user feedback to deal with input validation 
  46. 46. Utilizing ViewState and SessionState objects. 
  47. 47. Use of Membership Roles to restrict user access to pages. </li></ul>SetFocus Project #4 – Library Phase 3<br />
  48. 48. SetFocus Project #4 – Library Phase 3<br />Library Manager ASP.NetLogin Page<br />
  49. 49. SetFocus Project #4 – Library Phase 3<br />Library Manager ASP.NetWeb Application<br />Display an Adult Member<br />
  50. 50. SetFocus Project #4 – Library Phase 3<br />Library Manager ASP.NetWeb Application<br />Display a Juvenile Member<br />
  51. 51. SetFocus Project #4 – Library Phase 3<br />Library Manager ASP.NetWeb Application<br />Renew an Expired Membership<br />
  52. 52. SetFocus Project #4 – Library Phase 3<br />Library Manager ASP.NetWeb Application<br />Renew an Expired Membership<br />
  53. 53. SetFocus Project #4 – Library Phase 3<br />Library Manager ASP.NetWeb Application<br />Renew an Expired Membership<br />
  54. 54. SetFocus Project #4 – Library Phase 3<br />Library Manager ASP.NetWeb Application<br />Add a new copy of an existing Book<br />
  55. 55. SetFocus Project #5 – Library Phase 4<br />Objective<br />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.<br />Summary<br />This project demonstrates the use of the Windows Communication Foundation to implement web services . Some of the techniques implemented into this project include:<br /><ul><li>WCF services.
  56. 56. Authorization using ASP.Net roles.
  57. 57. Authentication using ASP.Net membership.
  58. 58. Implementing Data Contracts into Data Access Layer Entities to allow Serialization across various application layers.
  59. 59. Implementing Fault Exceptions and error handling. </li></li></ul><li>SetFocus Project #5 – Library Phase 4<br />Library Service Interface<br /> [ServiceContract]<br />public interface ILibraryService<br /> {<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br /> Adult AddAdultMember(Adult adltMember);<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br />Juvenile AddJuvenileMember(Juvenile jvnMember);<br />[OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br /> Member getMemberInformation(Int16 memberId);<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br /> ItemsDataSet getItems(Int16 memberId);<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br /> Item getItem(Int32 isbn, Int16 copyNumber);<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br /> Member getMemberItemOnLoanTo(Int32 isbn, Int16 copyNumber);<br />
  60. 60. SetFocus Project #5 – Library Phase 4<br />Library Service Interface<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br />void UpgradeJuvenileMembership(Int16 memberId);<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br /> void RenewMembership(Int16 member_no);<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br /> void CheckBookIn(Int32 isbn, Int16 copyNumber);<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br /> void CheckBookOut(Int16 memberNumber, Int32 isbn, Int16 copyNumber);<br /> [OperationContract]<br /> [FaultContract(typeof(LibraryFault))]<br /> int AddNewTitle(Int32? isbn, Int16? copy_no, string title, string author, string synopsis,<br /> string translation, string cover, char? loanable, char? on_loan, int? title_no);<br /> }<br />
  61. 61. SetFocus Project #5 – Library Phase 4<br />Library Service Interface<br /> [DataContract]<br />public class LibraryFault<br />{<br /> [DataMember]<br />public Int16 OtherMemberID{get; private set; }<br /> [DataMember]<br /> public ErrorCode FaultErrorCode { get; set; }<br /> [DataMember]<br /> public string FaultErrorMessage { get; set; }<br /> }<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×