WPF IntroductionThis lab serves the purpose of introducing you to a whole new kind of GUI programming in C#, by using XAML to create a simple networked application with a graphical client. Windows Presentation Foundation (WPF) has several references on the internet. Some of the ones I use are:
http://windowsclient.net/ http://learning.microsoft.com/Manager/default.aspx , look at the free products on left and there is a self-paced course in developing WPF. http://msdn.microsoft.com/en-us/netframework/aa663321.aspx A diary of a developer creating a WPF application is at: http://devlicious.com/blogs/christopher_bennage/pages/building-a-wpf-application-table-of-contents.aspx
Project RequirementsOverviewManaging to-do lists and keeping track of issues is something that project teams deal with all the time. Your job in this lab is to build a simple issue tracking system coded with C# and .Net. It should support multiple users and provide a client side graphical user interface that uses WPF. Any thing else you need (like protocol design, text vs. binary data exchange, etc) that is not specified is left to your creativity.
Basic RequirementsUsers should be able to login to your system. After login, they can view/update any issues assigned to them. They can also browse all the issues the team has generated, but should not be able to modify them. The server should handle all logins, maintain all the issues and provide persistent storage of the issues. When the server is started it should load any data which has been stored, and when shutdown should save all data. There are two types of users: normal user and administrator. In addition to everything a normal user can do, an admin can create new users and issues, delete users and issues, and assign issues to a particular user for action. The design and layout of the UI is up to you.
Client Side RequirementsAllow users to connect/disconnect to the server Allow users to login/logoff the server. Before login, a user should only be allowed to login. Allow a user to browse all issues on the Server. Issues should be shown in a ListBox or ListView. Selecting an issue should allow you to view the details of that issue. Allow a user to view all issues assigned to them for action (basically limiting 4 to just a subset of issues). Allow a user to edit/update the issues assigned to them. Editing should be done in a separate window. Editing by normal users should be limited to updates on status, hours and description. Allow a user to create a new issue. Allow an administrator to add a new user. Allow an administrator to assign an issue to a user. Allow a user to manually check the server for updated information. Allow users to see a list all other connected users. Server Side RequirementsLoad and Store data on users and issues on startup and shutdown Accept connections from client machines and handle requests for data. Handle multiple concurrent connections. Data DescriptionUsers: Users have basic information: Name, Login ID, Email, Password and privilege level (normal or admin) Issues: Issues have basic information: Name, Detailed Description, Creation Date, Due Date, User Assigned to, Status (Not Started, In Progress or Completed), Hours worked, Hours left to go. Extra CreditFor those teams looking to go above and beyond the call of duty, we are allowing teams to complete extra features of their choosing.
You can do any/all of the following extra credit for a maximum of 30 pts. You can do "part" of an extra credit item to get partial credit.
5-15 pts each - Implement WPF control customization and restyling of controls. Points are for each control restyled. Obviously the 15 points would be for sophisticated restyling. 5 pts - Instructor discretion for impressive effort. This may be quality of app, use of advanced C# features, or overall professional level of work. Instructor Discretion is not included in the 30 point limit. 5 pts – Use .Net identity management for establishing roles. 5 pts – Use Encryption/Hashing to enhance security 5 pts –Sever Side GUI 5 pts –Use a ListView instead of a ListBox, and allow sorting of issues by name, status, due date, etc. 10 pts – Provide unit tests of your application. See http://mdavey.wordpress.com/2007/06/14/ui-automation/ for some ideas. DeliverablesOne of your group members must turn in the following:
All source code needed to run your program. A buildfile or complete Visual Studio Solution. MS Build Targets: run-sever - Runs the server, supplies any command line args necessary to load data files run-client – Runs a client, starts the GUI compile - Compiles all of the Components to their respective exe files clean - Removes all files from all other targets README file with the following information
CS2335 - Lab 5 - Spring 2009
gt, gt, gt, gt, gt
Requirements prior to running the program: . . .
Instructions to use your demo application: . . .
Known Bugs: . . .
O/S(s) Developed/Tested under: . . .
Extra Credit Opportunities Attempted: . . .
Comments: . . .