C# language and data access

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
BI-CS2 KZ 4 0P+3C Czech
Pavel Štěpán (guarantor)
Department of Software Engineering

The C# language and data access course objective is to introduce students several data access technologies - database, XML, NoSQL - on the Microsoft platform. The students will get to know objects used to retrieve data - Connection, Command, Data Reader and DataAdapter v ADO.NET. Next, they will learn to use current technologies such as LINQ - a set of features for querying and updating data, integrated directly with the .NET platform languages, which enable LINQ use with Objects, XML and SQL (LINQ to Objects, LINQ to XML and LINQ to SQL). Another objective is the Entity Framework - an object-relational mapper that enables .NET developers to work with relational data using domain-specific objects (ORM). This part of the course introduces Code First, Database First, Model First approaches. The students will also get to know the Conceptual Model, Storage Model and Mapping (XML description).


Students attending this course should already have gained experience using C# along with the basics of the object programming. The students should also know how to create SQL scripts and they should have experience with usage of a relational database. Knowledge of XML language is useful but not necessary.

Syllabus of lectures:
Syllabus of tutorials:

1. ADO.NET basics

- Data access basic principles

- Database interfaces basic principles (at MS) - (DAO, ADO, RDO, ...)

- SQL Server/others; .NET Data Providers

2. Data processing in connected mode

- Connection and Command objects

- Data input - DataReader object

- Data updating - using Command object

- Using Stored Procedures

- Transactions

3. Data processing in disconnected mode

- DataSet, DataTable and DataView objects

- Working with data using DataSet

- Data source connection - DataAdapters, TableAdapters

- DataAdapter and TableAdapter Commands

- DataSet relations and constraints

- Processing concurrency for multiuser access

- Database independent DataSet

- Data Binding

- Creating Data Bound Applications using visual technics

- BindingSource and BindingNavigator objects

- DataGridView object

4. LINQ (Language Integrated Query)

- Basic info about lambda expressions repetition

- LINQ - querying built directly into language constructions

- LINQ expressions syntax

- Using LINQ with object collections



5. Entity Framework

- Entity data model

- Three basic strategies: DB First, Model First and Code First

- Creating data model based on database structures

- Working with model (using its objects)

- Concurrency processing

- Code First subvariants: Code First From DB and Code First From Objects

- Code first

- principles

- DbContext a DbSet classes

- Conventions

- DataAnnotations

- Fluent API

- DB Initialisation, zrušení inicializace

- Migration

6. NoSQL „databases“

- basic information concerning NoSQL

- MongoDB - most widespread NoSQL

- MongoDB installation

- MongoDB data structures

- Commands

- MongoDB drivers

- Creating program using MongoDB based on ADO.NET

- Creating program using MongoDB based on Entity Framework

Study Objective:
Study materials:

Source Materials:

Programmes developed in the course of the semester are considered to be the main study source.

Further information:
Time-table for winter semester 2020/2021:
Time-table is not available yet
Time-table for summer semester 2020/2021:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2020-10-23
For updated information see http://bilakniha.cvut.cz/en/predmet5073606.html