Accounting & MIS 3610 Foundations of Business Information Systems The Ohio State University Spring Semester 2013 Instructor- Jeff Gabriel Email - gabriel.19@osu.edu Office- Fisher Hall Room 252 Office Hours- Mondays - Immediately following class hours Telephone - 614.206.8994 Class Meeting Times Monday & Wednesday 3:30PM – 4:50PM Text (Provisional) – Build Your Own ASP.NET 4 Website Using C# & VB 4th Edition By: Tim Posey, Cristian Darie, & Wyatt Barnett Publisher: SitePoint Pub. Date: September 28, 2011 Print ISBN-13: 978-0-9870908-6-7 Software/Technologies IntroducedMicrosoft Visual Studio 2010 (12 if available) Microsoft ASP.NET 4 Microsoft C# - .NET Framework version 4.5 JavaScript JQuery/JQueryUI Microsoft SQL Server Expectations This class will focus on solving real world business problems with web-based technologies such as Microsoft ASP.NET Web Forms and MVC along with JavaScript & CSS. Class participants will be expected to apply the technologies covered to lab assignments and to a semester project which will tie the class topics into a complete working application. Students will be evaluated on their ability to deliver working software in a manner which displays a proper grasp of the principles explained by the instructor. User experience and design will be covered as concepts, but no emphasis will be placed on the student’s ability to create aesthetically pleasing applications. Grading The grading for this course will come from several components: Semester Project – 35% Mid-Term Exam – 15% Assigned Exercises (Labs & Enrichment) – 25% Quizzes – 25% The Semester project will be a small multi-page web application designed to meet a business need of the student’s own choosing. The instructor will help students to choose an appropriate subject and to guide students in maintaining a proper scope for the amount of time available. The application must be data-driven and use ASP.NET and JavaScript. The use of additional supporting technologies is at the student’s discretion. The driving factor in a quality grade will be the appropriate application of the technologies covered in class to the business need which the solution aims to solve. Finally, students are expected to present their applications and explain the choices they made in the development of the final solution. The student should expect short quizzes (10-15 questions) to be given regularly at the beginning of class which present topics from any subject presented or assigned up to that point in the course. Quizzes will always be ‘pop’ quizzes, given without warning. Any student not present in class when a quiz is given will receive a zero for that quiz. Labs & enrichment exercises are assigned throughout the class and have been identified on the class outline. Each exercise will emphasize retention and understanding of the subject taught in the previous class. Students are expected to ask clarifying questions and work through the new material during days reserved for lab work, but should always present an independent final product. Grades for labs will based on completeness and mastery. Academic Misconduct All students are expected to maintain the highest standards of academic integrity. Academic misconduct includes plagiarism or cheating of any kind. Any suspected incidents of academic misconduct will be reported immediately to the Chair of the Department of Accounting and MIS and the Committee on Academic Misconduct. Special Accommodations Any student requiring special accommodations based on the impact of a disability should speak to the instructor privately to discuss specific needs. Please contact the Office of Disability Services at 614.292.3307 in room 150 Pomerene Hall to coordinate reasonable accommodations for students with documented disabilities. Course Outline Week 1 Section 1 – Jan 7th Topic: Introduction to Class Basic overview of Web application delivery and HTML Overview of .NET Framework Assignment: Read chapters 1 & 2 in textbook Week 1 Section 2 – Jan 9th Topic: Understanding the ASP.NET Application Development Model How to Build a Basic Site Plan Explanation of Semester Project Assignment: Read Chapter 4 – Pages 97 to 118 in textbook Identify top 3 application ideas for semester project Review any concepts in Chapter 3 in the textbook for which you require greater understanding Week 2 Section 1 – Jan 14th – Lab Exercise Topic: Building a Basic Web Application Assignment: Complete lab assignment if not completed in class Read Pages 119 to 143 in textbook Week 2 Section 2 – Jan 16th Topic: Web Forms & Post-backs Data Sources Introduction to state management Assignment: Read chapter 5 – Pages 159 to 214 in textbook Jan 21st – MLK Day – No Class Week 3 Section 1 – Jan 23rd – Lab Exercise Topic: Multi-page web forms application Assignment: Complete lab assignment if not completed in class Week 4 Section 1 – Jan 28th Topic: Master Pages Themes & Skins Assignment: Finish reading Chapter 5 in textbook Week 4 Section 2 – Jan 30th Topic: The HTML DOM Understanding CSS & the Box Model Cross-Browser Considerations Assignment: Exercise – CSS only page layout Week 5 Section 1 – Feb 4th Topic: Very Simple TSQL and SQL Server Use Data Providers Introduction Assignment: Read Chapter 7 pages 273-298 in textbook Read Chapter 8 pages 317-334 in textbook Week 5 Section 2 – Feb 6th Topic: Overview of Data Access Understanding the ASP.NET Data Access Methodology Data-Bound Controls Assignment: Read Chapter 9 pages 363-392 in textbook Read Chapter 10 in textbook Week 6 Section 1 – Feb 11th Topic: Common Data Controls Assignment: Read Chapter 11 in textbook Exercise – Data-Binding list controls Week 6 Section 2 – Feb 13th- Lab Exercise Topic: Data Driven Website Assignment: Complete lab assignment if not completed in class Week 7 Section 1 – Feb 18th Topic: Security Part 1 – Authentication & Authorization Forms Authentication Providers Users and Roles Configuration Windows Authentication Assignment: Read Chapter 13 in textbook Week 7 Section 2 – Feb20th – Lab Exercise Topic: Securing a website with ASP.NET Forms Authentication Assignment: Complete lab assignment if not completed in class Week 8 Section 1 – Feb 25th Topic: Exam Assignment: None Week 8 Section 2 – Feb 27th Topic: Security Part 2 – Hacking: Writing & Spoiling Web Application Exploits Proper Server Configuration – Minimal Configuration/ Least Privilege/Limiting Attack Surface Area SQL Injection Cross-Site Scripting Concepts of Defense in Depth Assignment: Week 9 Section 1 – Mar 4th - Lab Exercise Topic: Secure and insecure website development Assignment: Complete lab assignment if not completed in class Week 9 Section 2 – Mar 6th Topic: Advanced Syntax & Some Compiler Tricks Extension Methods Anonymous Methods & the Lambda Syntax Type Inference Function Delegates Assignment: Review provided articles and demonstrations Spring Break – No Classes Week 10 Section 1 – Mar 18th Topic: Introducing Linq Function syntax SQL-like syntax Under the covers Assignment: Read Chapter 15 in textbook Exercise: Linq-based list manipulation Week 10 Section 2 – Mar 20th Topic: Data Driven with Linq to SQL Entities & Data Contexts Projections Managing Concurrency Assignment: Exercise: Create & Connect to Linq to SQL Data Context Week 11 Section 1 – Mar 25th - Lab Exercise Topic: Data Driven Website with L2SQL ORM Assignment: Complete lab assignment if not completed in class Week 11 Section 2 – Mar 27th Topic: Introducing ASP.NET MVC Model View Controller Pattern MVC Project Structure Configuration over Convention Assignment: Read Chapter 16 in textbook Prepare Semester Project Site Plan Week 12 Section 1 – Apr 1st Topic: ASP.NET MVC URL Routing Partial Views Models and Views Assignment: Exercise – Custom Route Manipulation Finalize Site Plan Week 12 Section 2 – Apr 3rd - Lab Exercise Topic: Simple ASP.NET MVC Website Assignment: Complete lab assignment if not completed in class Week 13 Section 1 – Apr 8th Topic: The Rich Internet App Part 1 - Resurgent JavaScript Understanding JavaScript – Crockford Style Closures Prototypes and dynamic objects The global namespace Assignment: Exercise: private JavaScript class members Read Crockford article Week 13 Section 2 – Apr 10th Topic: RIA Part 2 – jQuery The jQuery Model and DOM interaction Selectors Callbacks and Functions Assignment: Semester Project Development Week 14 Section 1 – Apr 15th - Lab Exercise Topic: JQuery DOM Manipulation Assignment: Semester Project Development Week 14 Section 2 – Apr 17th Topic: Semester Presentations Assignment: Finalize Semester Project Week 15 Section 1 – Apr 22nd Topic: Semester Presentations Assignment: None No Final Exam Suggested Reading & Resources Books – Extra Reading Esposito, D. (2011). Programming Microsoft ASP.NET MVC. Redmond, Wash.: Microsoft Press. McFarland, D. S., & McFarland, D. S. (20112012). JavaScript & jQuery (2nd ed.). Sebastopol, Calif.: O'Reilly Richter, J. (2002). Applied Microsoft.NET framework programming. Redmond, Wash.: Microsoft Press. Books – Things Every Serious Software Professional Should Read Gamma, E. (1995). Design patterns: elements of reusable object-oriented software. Reading, Mass.: AddisonWesley. Howard, M., & LeBlanc, D. (2003). Writing secure code (2nd ed.). Redmond, Wash.: Microsoft Press. MacConnell, S. (1996). Rapid development: taming wild software schedules. Redmond: Microsoft Press. Martin, R. C. (2009). Clean code: a handbook of agile software craftsmanship. Upper Saddle River, NJ: Prentice Hall. McConnell, S. (2004). Code Complete (2nd ed.). Redmond, Wash.: Microsoft Press. Royce, W. (1998). Software project management: a unified framework. Reading, Mass.: Addison-Wesley. Blog Roll Dino Espositio (ASP.NET) - http://weblogs.asp.net/despos/ Bertrand LeRoy (ASP.NET) - http://weblogs.asp.net/bleroy/ Scott Guthrie (Microsoft .NET) - http://weblogs.asp.net/scottgu/ Martin Fowler (general development) http://martinfowler.com/bliki/ Eric Lippert (CLR) - http://blogs.msdn.com/b/ericlippert/ Jeffrey Richter (C#/CLR) - http://www.wintellect.com/cs/blogs/jeffreyr/ Phil Haack (general development) http://haacked.com/ Jon Skeet (C#) http://msmvps.com/blogs/jon_skeet/