Your SlideShare is downloading. ×
0
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Il 09 T3 William Spreitzer
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Il 09 T3 William Spreitzer

130

Published on

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

  • Be the first to like this

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. William Spreitzer<br />C# .NET Developer – Design Portfolio<br />wspreitzer@comcast.net<br />http://www.linkedin.com/in/wspreitzerilnet<br />(224)234-3453<br />
  • 2. Business Tier Object Framework – Retail Services<br />Overview:<br />Developed two Business layer assemblies for a Retail Services Company<br /><ul><li>Foundation.dll – Interface and base classes
  • 3. AppTypes.dll – Various Entity, Collection, and Exception Classes</li></ul>Project requirements included integrating new assemblies into existing framework and verifying functionality using detailed unit-testing. Business objects implemented .NET Framework interfaces and extended .NET base classes whenever possible. To support documentation and maintainability XML Build Documentation and Custom Attributes were utilized.<br />
  • 4. Key Knowledge Components<br />Object Modeling of Business Entities<br />Customizing Exception and Event Handling<br />Improving Meta-Data using Custom Attributes<br />Unit Testing using System.Reflection namespace<br />Utilizing Strongly-Typed Generic Collections<br />Implementing .NET Framework and Custom Interfaces<br />Extending .NET Framework Base Classes<br />Generating XML Release Build Documentation<br />
  • 5. Design Approach<br />Create functional business objects easily used by the presentation and data access layers at runtime. <br />Support binary and XML serialization for preserving application state.<br />Custom objects were developed by implementing .NET Base Classes and extending standard .NET Interfaces.<br />Examples are IComparable<T>, IComparer<T> and ISerializable.<br />
  • 6. Design Approach cont.<br />Enhance object flexibility by providing intuitive operator overloading and overriding base class methods such as Object.GetHashCode().<br />Customized exception classes were built to provide application specific error information and an EventLogger class was developed to register delegates to customized collection modification events. <br />For proper integration and regression analysis, the code was unit-tested during development using test scenarios and runtime reflection.<br />To support future maintainability, code was commented using .NET XML documentation generated on build as well as customized attributes viewable at runtime using reflection or via the MSIL Manifest using ILDASM.exe<br />
  • 7. Code Sample<br />/// <summary><br /> /// This method takes in a Supplier Object and converts it<br /> /// into a DataAccess.SupplierStruct struct. <br /> /// </summary><br />/// <param name="s"></param><br /> /// <returns></returns><br /> public static explicit operator DataAccess.SupplierStruct(Supplier supplier)<br /> {<br /> string supplierType = "";<br /> switch (supplier.Type)<br /> {<br /> case SupplierTypes.Product:<br />supplierType = "Product";<br /> break;<br /> case SupplierTypes.Service:<br />supplierType = "Service";<br /> break;<br /> case SupplierTypes.Supply:<br />supplierType = "Supply";<br /> break;<br /> default:<br /> throw new ArgumentException("Invalid Type Given");<br />}<br />Cont..<br />
  • 8. Windows Forms – Library Phase 1<br />Overview:<br />Developed a Windows Forms-based front-end application to support the principal functions of a lending library’s day-to-day operations including adding new members and checking books in and out. The front-end interfaces with a SQL Server Database via existing Data Access Layer assemblies. General requirements and provisions are as follows:<br /><ul><li>Develop easily maintainable code that makes efficient use of database resources
  • 9. Provide sophisticated front-end validation logic to ensure data-integrity
  • 10. Construct an intuitive, functional interface which requires minimal training for users</li></li></ul><li>Key Knowledge Components<br />Designing intuitive non-modal user-interface under ambiguous design guidelines<br />Validating complex input using Regular Expressions<br />Providing user input feedback via error providers<br />Incorporating existing n-tier architecture for scalability<br />Developing effective exception and error handling<br />Binding of GridView controls at runtime to data source<br />Segregating presentation logic from business rules by creating middle-tier Business layer<br />
  • 11. Design Approach<br />Windows Forms was chosen to facilitate a functional UI with low cost of training and minimal development time.<br />The UI was organized based on the design requirements set forth by the stakeholders.<br />The front-end uses menus to represent the discrete actions required by the application with a global search function for pulling and viewing information on members. <br />An intermediate business layer was developed to enforce business rules and directly invoke data access layer components. <br />
  • 12. Design Approach cont.<br />To prevent unsafe trips to the database with malformed data all user input is validated as focus leaves the control, providing immediate feedback using error providers. <br />Business and database logic are thrown at underlying layers and are handled by the front-end when the user submits the information, and then are presented to the user in a meaningful non-technical format. <br />
  • 13. Code Sample<br />private void checkInButton_Click<br /> (object sender, EventArgs e)<br /> {<br /> try<br /> {<br /> DialogResult dr = CheckCheckIn();<br /> if(dr.Equals(DialogResult.Yes))<br /> {<br /> bl.CheckIn(int.Parse<br /> (isbnTextBox.Text), short.Parse<br /> (copyTextBox.Text));<br /> }<br /> }<br /> catch(LibraryException)<br /> {<br /> errorLabel.Visible = true;<br /> errorLabel.Text= "Item is not checked"+<br /> " out";<br /> }<br />Cont…<br />
  • 14. Switchboard Screen Shot<br />This is the switchboard form. It is the main form of the application and all other forms are accessed through this form.<br />
  • 15. Add Adult Member <br />The Add Adult Member form adds an adult member to the library application’s database. It also has menus to access other forms. It also has a check out button to let the librarian to check out a book using a newly added member.<br />
  • 16. Add Juvenile Member<br />The Add Juvenile Member form add a juvenile member to the library application’s database. In order to add a juvenile member they must have a valid adult sponsor. <br />
  • 17. Member Information<br />The Member Information form allows the user to search for a member by their Member ID. The member’s information is then displayed and the books they have checked out are displayed on the bottom. <br />
  • 18. Check In <br />The Check In form allows the user to check in an item.<br />
  • 19. Checkout<br />The Checkout form allows the user to checkout an item using the member’s id, ISBN and copy numbers.<br />

×