Programming in C# for Visual Studio .NET Platform II
COM SCI X 418.735A
This course covers intermediate-level topics in Microsoft application development, building a complete client-server database application using a Microsoft SQL Server database and a Windows desktop client application.
Learn to use more advanced object oriented concepts in their applications
Understand operator overloading, anonymous types, and lambda expressions
Be knowledgeable of more advanced data access techniques such as serialization, ADO.Net, SQL, JSON, DOM, and SAX parsing
Understand memory management, garbage collection, and multi-threaded application development
About this course:
This project-oriented course covers intermediate-level topics in Microsoft application development within the context of building a complete client-server database application using a Microsoft SQL Server database and a Windows desktop client application. Students should already be familiar with Visual Studio and have some experience with the C# language. Students should be conversant with variable declaration, initialization and assignment, expressions, reference and value types, and conditional and looping constructs, as well as have a basic understanding of classes and interfaces and how they support inheritance and polymorphism. We look at how to structure a multiple-assembly Visual Studio solution to support domain-driven development of a line-of-business application and embark on development of a sample application, starting with development of the domain model classes and introducing unit testing, generic and collections, and LINQ. Students learn to design and build relational databases using Microsoft SQL Server and develop SQL queries for manipulating data, then develop a Data Access Layer for persisting domain model objects to the database using ADO.Net. Windows Presentation Foundation (WPF) is then introduced as Microsoft's current user interface technology for implementing Windows desktop client applications. Parallel with the sample application, students each design and develop an application of their own choosing from scratch as their course project.