Detail předmětu
Programování v .NET a C#
IW5 Ak. rok 2022/2023 zimní semestr 5 kreditů
Programování v .NET a jazyce C#. Předmět navazuje svojí náplní na předmět ICS, ve kterém se učí základy práce s jazykem C# a vývoj desktopových aplikací. IW5 je zaměřen na další oblasti vývoje v C#, zejména webový vývoj. Hlavní náplní první části předmětu a zároveň projektu je vývoj webové aplikace, která se skládá ze serverové strany, kde se předmět zaměřuje na vývoj pomocí REST API s využitím ASP.NET Core, Swagger, Open API. Poté se přesune na stranu webové aplikace, která vytvořené API využívá a dále pracuje s technologií Blazor. Dále se předmět zaměřuje na automatizaci testování a nasazování webových aplikací. V druhé části semestru se předmět zaměřuje na ukázky dalších oblasti vývoje v C#, například vývoj mobilních aplikací, her, alternativní webové frameworky, nebo pokročilá témata věnující se architektuře aplikací.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. přednášky
- 26 hod. cvičení
Bodové hodnocení
- 100 bodů projekty
Zajišťuje ústav
Přednášející
Stránky předmětu
Hlavní zdroje:
Užitečné zdroje
Co se děje v .NET a co se chystá
- .NET Conf - konference, kde se představuje nová verze .NET (jednou ročně - listopad)
- Microsoft Build - největší konference pro vývojáře od Microsoftu, hromada novinek (jednou ročně - květen)
- .NET Blog - blog s high-level zprávami o aktuálních novinkách (cca 10-15 článků za měsíc)
- Themes of .NET - .NET roadmap - podrobný přehled toho, na čem se pracuje a kdy se to plánuje
- Leomaris Reyes - Blog zaměřený na .NET MAUI
- Scott Hanselman - Různorodá témata, většinou zaměrená na Microsoft technologie. Autor je zkušený speaker z řad Microsoftu.
- Steve Gordon - .NET, web development, cloud, low-level stuff...
- Jiří Činčura - performance, Entity Framework, databázy, novinky v .NET...
- Robert Haken - Blazor, webový vývoj, performance
- @davidfowl - David Fowler, jeden z hlavních lidí ve vývoji .NET a ASP .NET
- @DamianEdwards - Damian Edwards, jeden z hlavních lidí ve vývoji .NET a ASP .NET
- @davidortinau - David Ortinau, jeden z hlavních lidí v .NET MAUI
- @MadsTorgersen - Mads Torgersen, hlavní člověk odpovědný za C#
- @JamesNK - James Newton-King, autor NewtonSoft.Json, pracuje na gRPC integraci v .NET, (de)serializace, performance...
- @jaredpar - Jared Parsons, pracuje na C# kompilátoru a návrhu jazyka
- @TheCodeTraveler - Brandon Minnick, píše a točí hlavně o .NET MAUI
- @troyhunt - Troy Hunt, záměr na bezpečnost, autor projektu https://haveibeenpwned.com
- @dotnetmeme - memes ze světa .NET (ne od Microsoftu)
- Nick Chapsas - novinky v .NET, performance, webový vývoj
- James Montemagno - novinky v .NET, .NET MAUI
- Gerald Versluis - .NET MAUI
- .NET Community Standups - veřejně dostupné streamy z meetingů mezi vývojářema v Microsoftu ohledně toho, co se aktuálně děje a na čem se pracuje
- .NET Rocks - 2 hodně zkušení hostitelé - Richard Campbell a Carl Fralkin, 1 host, různá témata (hlavně) z .NET světa
Získané dovednosti, znalosti a kompetence z předmětu
Schopnost navrhovat a implementovat aplikace a distribuované systémy na platformě .NET.
Schopnost navrhovat komplexní informační systémy.
Cíle předmětu
Získat přehled o technologii .NET a programování v C#.
Proč je předmět vyučován
Toto je náročný, ryze prakticky orientovaný kurz v oblasti programování v .NET. Téma je velice široké, snažili jsme se vybrat témata, která se v praxi nejčastěji používají. Přednášky jsou realizovány za pomoci lidí z praxe - povětšinou senior programátorů, team leaderů a analytiků v nadnárodních firmách.
Doporučené prerekvizity
- Seminář C# (ICS)
Požadované prerekvizitní znalosti a dovednosti
Znalost objektového programování, jazyka C# a platformu .NET na úrovni kurzu ICS.
Technické vybavení
komerční
- Microsoft Windows
- Microsoft Visual Studio .NET
volně dostupné- Microsoft .NET Software Development Kit (SDK) - C# compiller
- Microsoft .NET Framework
Literatura studijní
- Charles Petzold - Programming Microsoft Windows With C#
- Simon Robinson - C# Professional Programming
- Erich Gunnerson - A Programmer's Introduction to C#
- Programátorské večery na ČVUT, http://avc.sh.cvut.cz/archiv/index.php?id=104&select=Programátorské%20večery
- Programátorské večery na ČVUT, http://avc.sh.cvut.cz/archiv/index.php?id=104&select=Programátorské%20večery
- Posadas, Marino. Mastering C# and .NET framework : deep dive into C# and .NET architecture to build efficient, powerful applications. Birmingham: Packt, 2016.
- Albahari, Joseph, and Ben Albahari. C# 7.0 in a Nutshell : the definitive reference. Sebastopol, CA: O'Reilly Media, 2017.
- Price, Mark J. C# 7.1 and .NET Core 2.0 - Modern Cross-Platform Development - Third Edition. Birmingham: Packt Publishing, 2017.
- Rabaey, Jan M., Anantha P. Chandrakasan, and Borivoje Nikolic. Digital integrated circuits : a design perspective. Upper Saddle River, N.J: Pearson Education, 2003.
- Albahari, Joseph, and Ben Albahari. C# 7.0 in a Nutshell : the definitive reference. Sebastopol, CA: O'Reilly Media, 2017.
- Posadas, Marino. Mastering C# and .NET framework : deep dive into C# and .NET architecture to build efficient, powerful applications. Birmingham: Packt, 2016.
- Price, Mark J. C# 7.1 and .NET Core 2.0 - Modern Cross-Platform Development - Third Edition. Birmingham: Packt Publishing, 2017.
- Rabaey, Jan M., Anantha P. Chandrakasan, and Borivoje Nikolic. Digital integrated circuits : a design perspective. Upper Saddle River, N.J: Pearson Education, 2003.
Literatura referenční
- Damien Watkins - Programming in the .NET EnvironmentKnihovna MSDN http://msdn.microsoft.com/cs-cz/library
- Albahari, Joseph, and Ben Albahari. C# 7.0 in a Nutshell : the definitive reference. Sebastopol, CA: O'Reilly Media, 2017.
-
Posadas, Marino. Mastering C# and .NET framework : deep dive into C# and .NET architecture to build efficient, powerful applications. Birmingham: Packt, 2016.
Osnova přednášek
- Úvod, představení předmětu, projektu, setup prostředí (Roman Jašek)
- ASP.NET Core Web API, controller, swagger, Postman, middleware (Michal Mrnuštík)
- Testování (Michal Tichý)
- Web - Blazor (Roman Jašek)
- Web - frontend (Maroš Janota)
- Web - napojení na API (Michal Tichý)
- Progressive Web Apps (Roman Jašek)
- .NET MAUI (Roman Jašek)
- Azure (Roman Jašek)
- DotVVM (Tomáš Herceg)
- Unity (Vojtěch Brůža)
- Clean Architecture (Martin Dybal)
Osnova numerických cvičení
- Minimal API v .NET 6, routing (Roman Jašek)
- Inversion of Control, konfigurace, lokalizace (Michal Mrnuštík)
- CI/CD, nasazování do Azure (Michal Tichý)
- Web - Blazor (Roman Jašek)
- Web (Maroš Janota/Roman Jašek)
- Takhle napište projekt?! (Roman Jašek)
Průběžná kontrola studia
- Účast na všech formách výuky je nepovinná
- Získat nejméně 1 bod z každého odevzdání
- Získat nejméně 50% bodů z projektu
Kontrolovaná výuka
Účast na všech formách výuky je nepovinná. Náhrada cvičení je možná dle individuální domluvy.
Podmínky zápočtu
- Účast na všech formách výuky je nepovinná
- Získat nejméně 1 bod z každého odevzdání
- Získat nejméně 50% bodů z projektu
Způsob kontaktu s vyučujícím
Oficiálním kontaktním kanálem je email odeslaný z fakultní adresy vyučujícím dle karty předmětu.
Zařazení předmětu ve studijních plánech
- Program BIT, 2. ročník, volitelný
- Program BIT (anglicky), 2. ročník, volitelný
- Program IT-BC-3, obor BIT, 2. ročník, volitelný