Programming in C# Group 6 Project Specification Cameron McHugh Group 6 C# C# Basics Basic syntax Control structures Types Object-oriented Polymorphism Delegates Group 6 C# C# vs. Java/C++/etc. .NET Framework vs. Java API JVM vs. CLR Similarities (Intermediate language, Object Oriented, Networking) Differences (C# not cross platform, Java more open source) Java Sun One Studio -> Free Visual Studio .NET -> $$$ Faster assembled IL vs. slower runtime interpreted byte code Group 6 C# Threading & Process Control Threading Basics Asynchronous Callbacks and Delegates Thread Control & Synchronization Deadlocks and Thread Starvation Group 6 C# Networking TCP/IP Sockets (not as interesting) Remoting and Distributed Applications (more interesting) SOAP and Object Serialization Group 6 C# What is .NET? Definition of .NET Multiple Languages (C#, VB .NET, C++, J#) XML Web Services Framework/Environment for Connecting Devices Suitable environment for developing mobile and ubiquitous applications What’s new in Visual Studio .NET? Group 6 Potential Learning Objects & Interactive Components C# Quiz Applet for C# Basics Visual demonstration of byte code assembly Visual display of remoting functionality Visual display of threading (including synchronization issues) Mini quizzes at end of major concept items (i.e. What is .NET) Project Documentation Andrew Sutherland Group 6 Project Documentation Content C# Web Site Documentation User manual, developer manual Description of the purpose of tutorial Introduction of the group members Directory structure diagram Information via a data dictionary Group 6 Project Management Documentation C# Project management documentation Project task network and risk table Presentation content Details of person hours per individual task Summary table of total person hours during each phase Group 6 C# Documentation Documentation considered an integral aspect of web development. Allocate resources accordingly. Develop documentation concurrently with website content. Reflect any changes in web design with appropriate changes in documentation. Record meeting minutes and attendees. Group 6 C# Documentation (cont’d) Update task network as project proceeds. Update risk table as project proceeds. Record individual time expenditures. Log all testing procedures and results. Integrate required documentation into their respective index pages. Project Management Dong Ju Group 6 C# Project Risks Not precise understanding the requirements 25% 1 Inefficient allocation of human resources 80% 4 Integration inconsistency of the project 50% 2 Poor organizational structure 30% 2 Not appropriate scope of the project 35% 2 Tasks can not be completed in the required time frame 20% 2 Can not meet the deadline 5% 2 Failure in participation of some members due to emergency problems 10% 3 Group 6 C# Technical Risks Failure in group communication 50% 3 Software version control would not be enforced tightly enough 40% 2 Not enough information for the tutorial 25% 2 Lack of experience in C# and necessary tools 70% 2 Poor applets design 30% 2 Failure in applets implementation 25% 2 Time consumption of the applets for browsers 20% 3 Business Risks Requirements changing 10% 2 Group 6 C# Risk Analysis Risk: – Tasks not completed within required time Mitigation: – Careful analysis of project scope and tasks – Reasonable allocation of resources – Subtask division (milestones) Management: – Reallocation of the human resources – Bigger whip Group 6 C# Risk Analysis Risk: – Misunderstanding requirements Mitigation: – Group discussion Management: – Recheck the requirements every milestone Group 6 C# Risk Analysis Risk: – Failure in applet implementation Mitigation: – Careful determination of applet complexity – Reasonable allocation of resources Management: – Reallocation of resources – Utilize other techniques Group 6 C# Project Tasks Definition T1. Determine project topic T2. Division of group T3. Perform initial topic research T4. Determine project scope T5. Determine initial list of applets T6. Construct the task network T7. Perform risk analysis Milestone1 Requirement Presentation Group 6 C# Project Tasks Definition T8. Perform initial website design T9. Finalize research T10. Design applets T11. Finalize website design T12. Initial testing Milestone 2 Design Presentation Group 6 C# Project Tasks Definition T13. T14. T15. T16. Implement applets Integrate website content Integrate applets Complete project testing Milestone 3 Product Presentation Group 6 C# Project Tasks Definition T17. Complete project documentation T18. Complete project packaging Submit Final Project Group 6 Task Network C# T4 T1 M1 T5 T3 T2 T6 M2 T7 T8 T9 T10 T11 M3 Final Submission T13 T17 T12 T14 T15 T18 T16 Group 6 C# Group organization Group Coordinator Project coordinator ensures standard of the project and liaises regularly with the professor and group members. Project Manager Project manager ensures that project task and milestone deadlines are met, and oversees resolution of any team issues. Six development Team Leaders Teams divided according to skill and individual interest. Each group leaders responsible for making detailed decisions and managing his/her sub-group. Also responsible for recording team meeting minutes and time expenditures. Group 6 C# Group Organization (cont’d) Group Coordinator Andrew Sutherland Project Manager Ayan Chowdhury Research Group Cameron McHugh Web-design Group Presentation Group Jesse Regier Kenta Sugimoto Applet Group Documentation Group Testing and Integration Group Ryan Orth Yu Gao Karen (Chiu-Hui Hsu) Group 6 C# Group Organization (cont’d) Research Group Web design Group Ryan Orth Ayan Chowdhury Andrew Sutherland Dong Ju Dong Ju Yu Gao Cameron McHugh Karen (Chiu-Hui Hsu) Jesse Regier Group 6 C# Group Organization (cont’d) Presentation Group Applet Group Fangsheng Shuai Cameron McHugh Kenta Sugimoto Kenta Sugimoto Fangsheng Shuai Ryan Orth Group 6 C# Group Organization (cont’d) Documentation Group Testing and Integration Group Ayan Chowdhury Karen (Chiu-Hui Hsu) Jesse Regier Kenta Sugimoto Andrew Sutherland Ayan Chowdhury Yu Gao Group 6 C# Time Table Name Personal Time spending Group Meeting Total Jesse Regier 3 7 10 Ayan Chowdhurry 8 6 14 Yu gao 3 7 10 Chiu-Hui Hsu 1 5 6 Dong Ju 6 7 13 Ryan Orth 2 4 6 Andrew Sutherland 2 7 9 Fangsheng Shuai 6 4 10 Kenta Sugimoto 6 4 10 Cameron McHugh 7 7 14 Total(hr) 44 57 101 Group 6 C# Useful Links http://java.oreilly.com/news/farley_0800.html Comparison between J2EE and .NET http://msdn.microsoft.com/vcsharp/ Microsoft official site for c# and .Net www.c-sharpcorner.com Non proprietary c# developers site www.softsteel.co.uk/tutorials/cSharp/cIndex.html Comprehensive c# tutorial Group 6 C# Questions ??