The Cooper Union / Bnai Zion Retrainbing Program
Instructor: Prof. Rob Marano (rob@cooper.edu)
This course is taught using hands-on project and focuses on learning each topic in a seminar atmosphere either in person or via web-based instruction. The course examines how to utilize advanced features the .NET Framework using the C# programming language in order to build sophisticated applications and web services. It includes coverage of .NET 2.0 through .NET 3.5. The course begins by quickly reviewing object-oriented programming topics, including inheritance, partial classes and generics. Students also learn about many of the .NET interfaces and exception handling mechanisms and how they can take advantage of them. Students learn how to manage data using .NET's object-based and generic collections. The course also illustrates how to use LINQ to make queries of collections, objects, and DataSets. Also, the Student is introduced to.
Students learn how to use synchronous and asynchronous delegates to call methods and manage callbacks. Students also are introduced to multithreading by learning how to use the Thread and ThreadPool classes within multithreaded applications and explore some of the issues that multithreading introduces to application development.
The course examines how the .NET Framework uses reflection and how students can provide similar features within their applications. Students also learn about SQL database programming via ADO.NET and how advanced features provide support for transaction management, connection pooling, and the management of disconnected DataSets.
Students learn about .NET's support for n-tiered application development, including private and shared assemblies, streams and datagram network programming, remoting, and web services. Time permitting students would also learn how managed code can interact with unmanaged code via features like PInvoke services and COM Interop. The course includes introduction to the security capabilities of the .NET programming model and how to adjust the .NET security policy.
Other topics include: ASP.NET 2.0, web forms, and web controls; how and why to override System.Object methods; boxing and unboxing issues; when to use the String vs. StringBuilder types; working with cultures; .NET support for regular expressions; working with XML; and creating and using custom attributes; recursion; automated testing using Nunit; and a selection of effective ways on improving C# coding.
Comprehensive hands-on lab exercises using Visual Studio 2008 reinforce instructor lectures and build direct competence in the topics presented throughout the course.
Prerequisites: C# programming experience.