ASP.NET
 
 
 

Quick Approach to O-O Using C#



Course ID: 2881
Format: Hands-On, Lecture
Duration: 2 days
 
 
  Course Prerequisites:
This course is meant for experienced C# developers who are already familiar with C# and who want to design and develop .NET applications using O-O (Object-Oriented) concepts.
 
Who Should Attend:
Participants of this course need to have a solid understanding of the .NET platform and have built enterprise .NET applications using C#. This is not an introduction course and is not meant for occasional programmers.
 
Course Description:
Quick Approach to O-O (Object-Oriented) Using C# introduces Object-Oriented concepts. An in-depth approach to O-O programming takes a considerable amount of time to cover all the concepts and approaches. This course is designed to provide a quick-start for the participant. It does not answer all the questions about O-O nor address all the issues, but it provides a quick and easy way to get started with the concepts and to implement the techniques. This is an advanced course in using O-O concepts with C#. Topics include object-oriented programming, class construction, overloading, serialization, inheritance, abstraction, polymorphism among other software component development methods. The course demonstrates an approach which can be used as a template and starting off point for other C# applications.
 
Course Objectives:
At the end of the course, participants will be able to:
  • Utilize high-level abstractions such as classes, interfaces, namespaces, properties, delegates, events, threads, attributes, generics, and iterators
  • Use techniques that exploit interfaces, inheritance, polymorphism in C# programs
  • Understand how to work with Generic Collections in an O-O environment
  • Understand how to work with the other important collection classes in an O-O environment
  • Understand the motivation and capabilities of events and event delegates
 
Topics:
  • Analyzing the Typical C# Program   
    •  »  String manipulation
    •  »  Events
    •  »  Error handling
    •  »  Code organization
    •  »  The Spaghetti Model
  • Precepts of O-O Programming in .NET   
    •  »  Defining classes and structures
    •  »  Local variable inference and implicitly typed local variables
    •  »  Automatically implemented properties
    •  »  The Object class
    •  »  Constructors
    •  »  Object and collection initializers
    •  »  Static members: fields, methods and static constructors
    •  »  Static classes
  • Extending Classes   
    •  »  General principle of inheritance
    •  »  Polymorphism
    •  »  Polymorphism
    •  »  Defining general behavior in the base class
    •  »  Specializing behavior in the derived classes
    •  »  Defining Abstract behavior and object interaction
    •  »  Implementing interfaces
    •  »  Multiple Inheritance with interfaces
  • Collections in .NET   
    •  »  Arrays, Lists, and Maps in .NET
    •  »  Iterating through enumerable collections with enumerators
    •  »  Sorts and Comparisons within collections
    •  »  IEnumerable and IEnumerator
  • Generics   
    •  »  Generics and parameterization
    •  »  Type parameters
    •  »  Generic class declarations and generic struct declarations
    •  »  Generic interface declarations
    •  »  Generic algorithms and generic methods
  • Operator Overloading   
    •  »  Overloadable operators
    •  »  Implicit and explicit operator overloading
    •  »  Conversion operators
  • Delegate and Event patterns in .NET   
    •  »  The delegate object as an instruction object
    •  »  The delegate syntax
    •  »  The MultiCastDelegate
    •  »  Invoking Delegates
    •  »  The event as delegate reference
  • Error Handling   
    •  »  Throwing Exceptions
    •  »  Catching Exceptions
    •  »  Exception objects
  • Template for a multi-layered application   
    •  »  Custom Business Objects
    •  »  Designing the Object Model
    •  »  Designing the Data Access Layer (DAL)
    •  »  Creating a Class Diagram for the DAL
    •  »  Designing the Business Logic Layer (BLL)
    •  »  Designing the Database
    •  »  Code organization in the application
    •  »  Coding the classes for the application
    •  »  Building the presentation layer
  • Summary   
    •  »  Review different approaches
    •  »  Enhancing the demonstrated approach