Jazyk C# - přístup k datům
Kód | Zakončení | Kredity | Rozsah | Jazyk výuky |
---|---|---|---|---|
BI-CS2 | KZ | 4 | 0P+3C | česky |
- Garant předmětu:
- Pavel Štěpán
- Přednášející:
- Cvičící:
- Pavel Štěpán
- Předmět zajišťuje:
- katedra softwarového inženýrství
- Anotace:
-
Student se seznámí s několika technologiemi pro přístup k datům - databázovým, XML, NoSQL apod. - na platformě firmy Microsoft. Pozná objekty, které přístup k datům v programu realizují - např. Connection, Command, DataReader a DataAdapter v ADO.NET. Dále se naučí používat i novější technologie jako LINQ - jednotný prostředek pro dotazování a úpravy dat, integrovaný přímo do jazyků platformy .NET a to ve variantách LINQ to Objects, LINQ to XML i LINQ to SQL. Seznámí se též s Entity Frameworkem - mapováním objektových a relačních modelů a jeho realizací v programech (ORM). Zde se seznámi s variantami Code First, Database First, Model First. Také pozná Conceptual Model, Storage Model, Mapping (XML popis).
Tento předmět proběhne jako bloková výuka v průběhu zkouškového období (v rozsahu, odpovídajícím standardní výuce).
- Požadavky:
-
Předpokládá se znalost programování v jazyce C# a alespoň základů objektového programování. Dalším požadavkem je schopnost vytvářet skripty v SQL a praxe s používáním nějaké relační databáze. Nikoli nezbytná, ale užitečná, je i (alespoň částečná) znalost XML.
- Osnova přednášek:
- Osnova cvičení:
-
1. Základ ADO.NET
- Základní principy přístupu k datům
- Historie vývoje databázových interfaces u MS (DAO, ADO, RDO, ...)
- SQL Server/ostatní; .NET Data Providers
2. Práce s daty v „přímém“ (connected) režimu
- Objekty Connection a Command
- Čtení dat - objekt DataReader
- Úpravy dat - použití objektu Command
- Práce se Stored Procedurami
- Transakce
3. Práce s daty v „disconnected“ režimu
- Objekty DataSet, DataTable a DataView
- Práce s daty v DataSetu
- Spojení s datovým zdrojem - DataAdapters, TableAdapters
- Commands pro DataAdapters a TableAdapter
- Relace a constraints v DataSetu
- Řešení konfliktů (concurrency) při multiuživatelském přístupu
- DataSet na nezávislý na databázi
- Data Binding
- Používání visuálních metod pro tvorbu Data Bound aplikací
- Objekty BindingSource a BindingNavigator
- Objekt DataGridView
4. LINQ (Language Integrated Query)
- Opakování lambda výrazů
- LINQ - zahrnutí dotazovacích metod přímo do konstrukcí jazyka
- Syntaxe výrazů LINQ
- Základní použití LINQ s kolekcemi objektů
- LINQ to XML
- LINQ to SQL
5. Entity Framework
- Entitní datový model
- Tři základní strategie: DB First, Model First a Code First
- Vytvoření datového modelu na základě databázových struktur
- Práce s vytvořeným modelem (s jeho objekty)
- Řesení kolizí (concurrency)
- Code First a jeho podvarianty Code First From DB a Code First From Objects
- Code first
- principy
- třídy DbContext a DbSet
- Conventions
- DataAnnotations
- Fluent API
- DB Initialisation, zrušení inicializace
- Migration
6. NoSQL „databáze“
- základní informace o NoSQL
- MongoDB - nejrozšířenější NoSQL
- Instalace MongoDB
- Struktury dat v MongoDB
- Příkazy
- Drivery pro MongoDB
- Vytváření programů, používajících MongoDB na základě ADO.NET
- Vytváření programů, používajících MongoDB na základě Entity Framework
- Cíle studia:
- Studijní materiály:
-
Vzhledem k tomu, že jde (zejména v pokročilejších částech) o velice aktuální a stále vyvíjené technologie, představují hlavní studijní materiál programy, vytvářené v průběhu výuky. Dále doporučujeme sledovat materiály firmy Microsoft jako je MSDM apod.
- Poznámka:
-
Informace o předmětu a výukové materiály naleznete na https://moodle-vyuka.cvut.cz/course/search.php?search=BI-CS2
- Další informace:
- https://moodle-vyuka.cvut.cz/course/search.php?search=BI-CS2
- Rozvrh na zimní semestr 2024/2025:
- Rozvrh není připraven
- Rozvrh na letní semestr 2024/2025:
- Rozvrh není připraven
- Předmět je součástí následujících studijních plánů:
-
- Bc. program Informatika, pro fázi studia bez oboru, 2015-2020 (volitelný předmět)
- Bc. obor Bezpečnost a informační technologie, 2015-2020 (volitelný předmět)
- Bc. obor Teoretická informatika, 2015-2020 (volitelný předmět)
- Bc. obor Počítačové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Informační systémy a management, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Softwarové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Webové inženýrství, 2015-2020 (volitelný předmět)
- Bc. obor Webové a softwarové inženýrství, zaměření Počítačová grafika, 2015-2020 (volitelný předmět)
- Bc. obor Znalostní inženýrství, 2018-2020 (volitelný předmět)
- Bc. specializace Informační bezpečnost, 2021 (volitelný předmět)
- Bc. specializace Manažerská informatika, 2021 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2021 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2021 (volitelný předmět)
- Bc. program, pro fázi studia bez specializace, 2021 (volitelný předmět)
- Bc. specializace Webové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2021 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2021 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2021 (volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2021 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2021 (volitelný předmět)
- Study plan for Ukrainian refugees (volitelný předmět)
- Bc. specializace Informační bezpečnost, 2024 (volitelný předmět)
- Bc. program, pro fázi studia bez specializace, 2024 (volitelný předmět)
- Bc. specializace Manažerská informatika, 2024 (volitelný předmět)
- Bc. specializace Počítačová grafika, 2024 (volitelný předmět)
- Bc. specializace Softwarové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Webové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Počítačové sítě a Internet, 2024 (volitelný předmět)
- Bc. specializace Počítačové inženýrství, 2024 (volitelný předmět)
- Bc. specializace Počítačové systémy a virtualizace, 2024 (volitelný předmět)
- Bc. specializace Umělá inteligence, 2024 (volitelný předmět)
- Bc. specializace Teoretická informatika, 2024 (volitelný předmět)