Learning and Training Learning


C# Basic

This training cycle is focused on the profound study of C# syntax, structural, object-oriented, functional and event-oriented approaches in programming.
 
This course offers a sufficient level of fluency in C# programming language. This training course is also required for the subsequent courses: Programming on the .Net Framework 4.0 platform.
 
Training participants will study principles of design and structure of C# applications, the design of full-fledged algorithms and the implementation of the core functionality in their programs, and will be able to:
  • understand the design of the .Net infrastructure and the opportunities it offers
  • create software solutions and projects using Visual Studio 2012, and opportunities offered by C# and .Net platform
  • apply interfaces, abstract and static classes in their applications, and understand substantial differences between them
  • understand the operation of extension methods and to apply them actively
  • understand fundamentals of the object-oriented programming (OOP)
  • organize the operation of an application in several threads, to understand the operation of critical sections as means of synchronizing access of several threads to the shared resources
  • create and implement own user collections
  • process exceptions and errors occurring in the course of operation of an application
  • reload operators
  • generate and perform queries using LINQ technology
  • create dynamically linked libraries, and link them to their projects
  • read and “understand” .Net literature freely.
The training course is designed for beginning programmers and those, who have or would like to gain basic knowledge of programming fundamentals; C# Basic course will also be useful for programmers with the experience of developing applications in C#. 


About the Training Course

The C# Basic course consists of a number of logically interrelated lessons.
 
The training in programming starts from the review of principal notions and principles of the object-oriented programming, classes, and specific features of C#, and finishing with the discussion of basic notions of LINQ technology and .Net platform architecture.

 
The training course covers the following subjects:
  • classes and creating their instances. Purpose and use of properties, and principles of handling constructors. Core paradigms of the OOP, and the application of partial classes and methods;
  • inheritance and key forms of polymorphism. Purpose and application of access modifiers, virtual members, notion and use of sealed classes, and “sealed” keyword;
  • examples of the use and creation of abstract classes and interfaces; their principal differences;
  • examples of creation and use of arrays. Principles of creation and use of indexers, their redefinition;
  • work of static members, principles of creation and use of static classes. Operation of extending methods, and notion of nested classes. “Loner” pattern;
  • notion of structures and their members, key specific features of handling them, and principal differences of classes from structures;
  • sample packing and unpacking operations. Handling the DateTime structure, and methods of obtaining PC time, data formatting, etc. Purpose and application of enumerations;
  • operation of delegates and lambda expressions. Examples of the combination of delegates, the use of anonymous methods;
  • notion of generalizations (parametrized types), their purpose, use examples. Covariance and contra-variance of generalizations;
  • operation of universal patterns, key limitations that can be used for them. Notion of Nullable types and absorption operations;
  • operation of events and examples of their use;
  • multithreading in C#, using ThreadStart and ParameterizedThreadstart, operation of critical sections as means of synchronizing access of several threads to the shared resources;
  • purpose and application of collections and IEnumerable, IEnumerator core interfaces. Examples of the creation of user collections; demonstration of the Yield operator;
  • this lesson helps to understand and use techniques for the processing of exceptions, the work of the Exception class, and “try-catch-finally” structures;
  • Object basic class, its use and application. Cloning technique and ICloneable interface. Examples of the use of the operator reloading technique;
  • anonymous and dynamic types with examples of their use. LINQ operating mechanisms;
  • creation of dynamically linked libraries, using the namespace. Internal and Protected Internal access modifiers, and their application. Demonstration of examples of the application of pre-processor directives.


Module 1: 1 day

  • Introduction to OOP. Classes and objects. Partial classes and methods
  • Inheritance and polymorphism
  • Abstraction. Abstract classes and interfaces
  • Arrays and indexers
  • Static and nested classes


Module 2: 1 day

  • Structures and their varieties
  • Structures and their varieties. Enumerations
  • Delegates
  • Universal templates
  • Universal template limitations
 


Module 3: 1 day

  • Events
  • Threads
  • Collections
  • Exception handling


Module 4: 1 day

  • Operator reloading
  • Anonymous and dynamic types LINQ.
  • Namespaces. Pre-processor directives

LINQ

This training course cycle is designed for mastering the data handling technology named LINQ, which is embedded into C# 3.0.
 
Mastering the LINQ course would pave the way toward writing structured queries to local collections and remote data sources secure in terms of the typification.
 
During this training course, the participants will learn how to:
  • understand the purpose of LINQ and make use of all the possible methods of accessing data from various sources
  • handle XML and perform serialization
  • process changes in data extracted from the database
  • understand differences of models, handle LINQ to SQL and LINQ to Entities
  • use LINQ for connecting data to the user control interface using existing libraries, such as ASP.NET, Windows Forms;
  • run parallel queries
  • Program applications handling data rapidly and efficiently regardless the data source (XML, SQL, DataSet or just an array in the memory).
The training course is intended for developers of .NET applications, and programmers willing to work with databases and write structured queries. 


About the Training Course

This training course covers in detail all LINQ-related issues starting from the LINQ object model, operations and API interfaces LINQ to Objects, LINQ to XML, LINQ to DataSet, LINQ to SQL and LINQ to Entities up to the solution of parallel access conflicts and working with database views.
 
The course material presentation methodology makes it possible to study rapidly the newest methods of access to data from various sources, including SQL Server, and options for handling XML on real-life examples.
 
The training course covers the following subjects:
  • familiarization with LINQ language as the key means of access to data and a convenient component for handling databases
  • sequential and standard query operations, examples of using postponed and non-postponed operations
  • the LINQ to XML model, various examples of creation, input/output, modification, pass, event, XML serialization
  • using LINQ for uploading data into the DataSet and the reverse extraction thereof, principles of writing queries. Handling DataTable, DataView, DataRow, string comparison operations
  • composition of SQL database queries, creation of storable procedures
  • modelling data from Entity Framework. Handling .edmx files, key principles of handling entity classes and their inheritance. Examples of creation of storable procedures
  • purpose and application of PLINQ, examples of writing and executing parallel LINQ operators.


Module 1: 1 day

  • LINQ as integrated query language
  • LINQ to Object
  • LINQ to XML
  • LINQ to DataSet


Module 2: 1 day

  • LINQ to SQL. Data management
  • LINQ to Entities
  • Parallel LINQ
 

C# for Professionals

This training cycle is focused on a comprehensive and profound study of the potential offered by the .NET platform.
 
It will be interesting for programmers experienced in C# and willing to get familiar with .NET subtleties and specific features of their efficient use.
 
In addition, participants will find out (or expand their knowledge) about important aspects, such as handling the file system, XML files, object serialization, application domains, and will learn how to apply efficiently the extending methods and opportunities of functional programming in the context of C# 4.0.
 
During this training course, the participants will learn how to:
  • understand the work of collections
  • create their own collections and organize search in them
  • apply the right method of creating a user collection depending on the task on time and appropriately
  • manage groups of linked and regular data of .NET applications using sets and specialized collections
  • enhance productivity and efficiency of the type control in .NET applications using generalized collections
  • gain access to fails, folders and disks using classes to work with the file system
  • create files and folders in an isolated storage, and gain access to various areas thereof specific for a user and a computer
  • carry out operations with text and/or text files, find certain templates or, vice versa, forbid entering and storing text according to the specified template 
  • define text encoding, create and read files in non-standard encodings
  • obtain information about the type of the passed object using late binding
  • load builds dynamically
  • understand the work of the garbage collector (GC)
  • synchronize work between threads
  • make asynchronous method calls
  • implement services, processes, threads and application domains
  • create and roll out controllable applications
  • create classes that support serialization to facilitate their transfer and storage
  • use dynamic types.
This training course is intended for successful graduates of our C# Basic course, and developers experienced in developing applications in C#. 


About the Training Course

The curriculum comprises 16 lessons dedicated to the detail discussion of principles of working with collections, the application of the reflection and attributes. Particular attention is paid to handling threads and the Garbage Collector.
 
The training course covers the following subjects:
  • handling collections in Microsoft .Net Framework. Various examples of the creation of a user collection and the operation of key interfaces: IEnumerable and IEnumerator, IEnumerable< T > and IEnumerator < T >, ICollection and ICollection < T >, IList 
  • the diversity of key classes for grouping and processing linked objects. Key pre-defined collections
  • handling input/output facilities in Microsoft .Net Framework making it possible to gain access to files and folders of the file system. Handling reading and writing threads, thread compression and isolated storage mechanism
  • a powerful, flexible and efficient method of text processing with regular expressions. Immense potential of the comparison of templates making it possible to check texts for the conformity with pre-defined requirements
  • standalone writing and reading of an XML file, selective reading or data addition, and JSON format
  • reflection principles and using Type and Assembly classes for gaining access to the information on the definition of any data type; uploading or downloading information from an “external” build into the proprietary application
  • general notion of attributes, creation of user-determined attributes, display of the attribute information, global attributes and their application
  • serialization and deserialization of objects. Examples of serialization in XML, binary format, and SOAP format, implementation of own methods
  • memory management mechanisms, Garbage Collector (GC) operation, its generations, and operation of a destructor
  • synchronizing thread operation, key principles of thread management. Sample applications of Interlocked, SpinLock, and Monitor classes
  • asynchronous method calls. Asynchronous processing template and examples of using the IAsyncResult interface
  • creation of application domains and upload of builds. Methods of configuration of application domains, creating and launching Windows services
  • lambda expressions, their application and strengths. Functional programming
  • paralleling and multithreading, examples of task runs, return of values from them
  • synchronism and asynchronism, asynchronism in C# 5: asyns and await; exceptions, asynchronism and multithreading
  • Dynamic type and rules of using it; implementation of the DynamicObjects class, and ways of using it.


Module 1: 1 day

  • User collections
  • Pre-defined collections
  • Input/output programming
  • Handling text Regular expressions


Module 2: 1 day

  • XML, JSON
  • Reflection
  • Attributes
  • Serialization


Module 3: 1 day

  • Memory management. Garbage Collector
  • Threads
  • Asynchronous Programming Model
  • Domains. NT-services


Module 4: 1 day

  • Functional programming.
  • Parallel programming
  • C# 5.0 Async & Await
  • Dynamic language extensions

This training cycle is focused on the profound study of C# syntax, structural, object-oriented, functional and event-oriented approaches in programming.
 
This course offers a sufficient level of fluency in C# programming language. This training course is also required for the subsequent courses: Programming on the .Net Framework 4.0 platform.
 
Training participants will study principles of design and structure of C# applications, the design of full-fledged algorithms and the implementation of the core functionality in their programs, and will be able to:
  • understand the design of the .Net infrastructure and the opportunities it offers
  • create software solutions and projects using Visual Studio 2012, and opportunities offered by C# and .Net platform
  • apply interfaces, abstract and static classes in their applications, and understand substantial differences between them
  • understand the operation of extension methods and to apply them actively
  • understand fundamentals of the object-oriented programming (OOP)
  • organize the operation of an application in several threads, to understand the operation of critical sections as means of synchronizing access of several threads to the shared resources
  • create and implement own user collections
  • process exceptions and errors occurring in the course of operation of an application
  • reload operators
  • generate and perform queries using LINQ technology
  • create dynamically linked libraries, and link them to their projects
  • read and “understand” .Net literature freely.
The training course is designed for beginning programmers and those, who have or would like to gain basic knowledge of programming fundamentals; C# Basic course will also be useful for programmers with the experience of developing applications in C#. 


About the Training Course

The C# Basic course consists of a number of logically interrelated lessons.
 
The training in programming starts from the review of principal notions and principles of the object-oriented programming, classes, and specific features of C#, and finishing with the discussion of basic notions of LINQ technology and .Net platform architecture.

 
The training course covers the following subjects:
  • classes and creating their instances. Purpose and use of properties, and principles of handling constructors. Core paradigms of the OOP, and the application of partial classes and methods;
  • inheritance and key forms of polymorphism. Purpose and application of access modifiers, virtual members, notion and use of sealed classes, and “sealed” keyword;
  • examples of the use and creation of abstract classes and interfaces; their principal differences;
  • examples of creation and use of arrays. Principles of creation and use of indexers, their redefinition;
  • work of static members, principles of creation and use of static classes. Operation of extending methods, and notion of nested classes. “Loner” pattern;
  • notion of structures and their members, key specific features of handling them, and principal differences of classes from structures;
  • sample packing and unpacking operations. Handling the DateTime structure, and methods of obtaining PC time, data formatting, etc. Purpose and application of enumerations;
  • operation of delegates and lambda expressions. Examples of the combination of delegates, the use of anonymous methods;
  • notion of generalizations (parametrized types), their purpose, use examples. Covariance and contra-variance of generalizations;
  • operation of universal patterns, key limitations that can be used for them. Notion of Nullable types and absorption operations;
  • operation of events and examples of their use;
  • multithreading in C#, using ThreadStart and ParameterizedThreadstart, operation of critical sections as means of synchronizing access of several threads to the shared resources;
  • purpose and application of collections and IEnumerable, IEnumerator core interfaces. Examples of the creation of user collections; demonstration of the Yield operator;
  • this lesson helps to understand and use techniques for the processing of exceptions, the work of the Exception class, and “try-catch-finally” structures;
  • Object basic class, its use and application. Cloning technique and ICloneable interface. Examples of the use of the operator reloading technique;
  • anonymous and dynamic types with examples of their use. LINQ operating mechanisms;
  • creation of dynamically linked libraries, using the namespace. Internal and Protected Internal access modifiers, and their application. Demonstration of examples of the application of pre-processor directives.


Module 1: 1 day

  • Introduction to OOP. Classes and objects. Partial classes and methods
  • Inheritance and polymorphism
  • Abstraction. Abstract classes and interfaces
  • Arrays and indexers
  • Static and nested classes


Module 2: 1 day

  • Structures and their varieties
  • Structures and their varieties. Enumerations
  • Delegates
  • Universal templates
  • Universal template limitations
 


Module 3: 1 day

  • Events
  • Threads
  • Collections
  • Exception handling


Module 4: 1 day

  • Operator reloading
  • Anonymous and dynamic types LINQ.
  • Namespaces. Pre-processor directives

This training course cycle is designed for mastering the data handling technology named LINQ, which is embedded into C# 3.0.
 
Mastering the LINQ course would pave the way toward writing structured queries to local collections and remote data sources secure in terms of the typification.
 
During this training course, the participants will learn how to:
  • understand the purpose of LINQ and make use of all the possible methods of accessing data from various sources
  • handle XML and perform serialization
  • process changes in data extracted from the database
  • understand differences of models, handle LINQ to SQL and LINQ to Entities
  • use LINQ for connecting data to the user control interface using existing libraries, such as ASP.NET, Windows Forms;
  • run parallel queries
  • Program applications handling data rapidly and efficiently regardless the data source (XML, SQL, DataSet or just an array in the memory).
The training course is intended for developers of .NET applications, and programmers willing to work with databases and write structured queries. 


About the Training Course

This training course covers in detail all LINQ-related issues starting from the LINQ object model, operations and API interfaces LINQ to Objects, LINQ to XML, LINQ to DataSet, LINQ to SQL and LINQ to Entities up to the solution of parallel access conflicts and working with database views.
 
The course material presentation methodology makes it possible to study rapidly the newest methods of access to data from various sources, including SQL Server, and options for handling XML on real-life examples.
 
The training course covers the following subjects:
  • familiarization with LINQ language as the key means of access to data and a convenient component for handling databases
  • sequential and standard query operations, examples of using postponed and non-postponed operations
  • the LINQ to XML model, various examples of creation, input/output, modification, pass, event, XML serialization
  • using LINQ for uploading data into the DataSet and the reverse extraction thereof, principles of writing queries. Handling DataTable, DataView, DataRow, string comparison operations
  • composition of SQL database queries, creation of storable procedures
  • modelling data from Entity Framework. Handling .edmx files, key principles of handling entity classes and their inheritance. Examples of creation of storable procedures
  • purpose and application of PLINQ, examples of writing and executing parallel LINQ operators.


Module 1: 1 day

  • LINQ as integrated query language
  • LINQ to Object
  • LINQ to XML
  • LINQ to DataSet


Module 2: 1 day

  • LINQ to SQL. Data management
  • LINQ to Entities
  • Parallel LINQ
 

This training cycle is focused on a comprehensive and profound study of the potential offered by the .NET platform.
 
It will be interesting for programmers experienced in C# and willing to get familiar with .NET subtleties and specific features of their efficient use.
 
In addition, participants will find out (or expand their knowledge) about important aspects, such as handling the file system, XML files, object serialization, application domains, and will learn how to apply efficiently the extending methods and opportunities of functional programming in the context of C# 4.0.
 
During this training course, the participants will learn how to:
  • understand the work of collections
  • create their own collections and organize search in them
  • apply the right method of creating a user collection depending on the task on time and appropriately
  • manage groups of linked and regular data of .NET applications using sets and specialized collections
  • enhance productivity and efficiency of the type control in .NET applications using generalized collections
  • gain access to fails, folders and disks using classes to work with the file system
  • create files and folders in an isolated storage, and gain access to various areas thereof specific for a user and a computer
  • carry out operations with text and/or text files, find certain templates or, vice versa, forbid entering and storing text according to the specified template 
  • define text encoding, create and read files in non-standard encodings
  • obtain information about the type of the passed object using late binding
  • load builds dynamically
  • understand the work of the garbage collector (GC)
  • synchronize work between threads
  • make asynchronous method calls
  • implement services, processes, threads and application domains
  • create and roll out controllable applications
  • create classes that support serialization to facilitate their transfer and storage
  • use dynamic types.
This training course is intended for successful graduates of our C# Basic course, and developers experienced in developing applications in C#. 


About the Training Course

The curriculum comprises 16 lessons dedicated to the detail discussion of principles of working with collections, the application of the reflection and attributes. Particular attention is paid to handling threads and the Garbage Collector.
 
The training course covers the following subjects:
  • handling collections in Microsoft .Net Framework. Various examples of the creation of a user collection and the operation of key interfaces: IEnumerable and IEnumerator, IEnumerable< T > and IEnumerator < T >, ICollection and ICollection < T >, IList 
  • the diversity of key classes for grouping and processing linked objects. Key pre-defined collections
  • handling input/output facilities in Microsoft .Net Framework making it possible to gain access to files and folders of the file system. Handling reading and writing threads, thread compression and isolated storage mechanism
  • a powerful, flexible and efficient method of text processing with regular expressions. Immense potential of the comparison of templates making it possible to check texts for the conformity with pre-defined requirements
  • standalone writing and reading of an XML file, selective reading or data addition, and JSON format
  • reflection principles and using Type and Assembly classes for gaining access to the information on the definition of any data type; uploading or downloading information from an “external” build into the proprietary application
  • general notion of attributes, creation of user-determined attributes, display of the attribute information, global attributes and their application
  • serialization and deserialization of objects. Examples of serialization in XML, binary format, and SOAP format, implementation of own methods
  • memory management mechanisms, Garbage Collector (GC) operation, its generations, and operation of a destructor
  • synchronizing thread operation, key principles of thread management. Sample applications of Interlocked, SpinLock, and Monitor classes
  • asynchronous method calls. Asynchronous processing template and examples of using the IAsyncResult interface
  • creation of application domains and upload of builds. Methods of configuration of application domains, creating and launching Windows services
  • lambda expressions, their application and strengths. Functional programming
  • paralleling and multithreading, examples of task runs, return of values from them
  • synchronism and asynchronism, asynchronism in C# 5: asyns and await; exceptions, asynchronism and multithreading
  • Dynamic type and rules of using it; implementation of the DynamicObjects class, and ways of using it.


Module 1: 1 day

  • User collections
  • Pre-defined collections
  • Input/output programming
  • Handling text Regular expressions


Module 2: 1 day

  • XML, JSON
  • Reflection
  • Attributes
  • Serialization


Module 3: 1 day

  • Memory management. Garbage Collector
  • Threads
  • Asynchronous Programming Model
  • Domains. NT-services


Module 4: 1 day

  • Functional programming.
  • Parallel programming
  • C# 5.0 Async & Await
  • Dynamic language extensions