Detail předmětu

Programování v .NET a C#

IW5 Ak. rok 2022/2023 zimní semestr 5 kreditů

Aktuální akademický rok

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

česky, anglicky

Zakončení

klasifikovaný zápočet

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

Blogy

  • 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

Twitter

  • @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)

Youtube

Podcasty

  • .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

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

  1. Úvod, představení předmětu, projektu, setup prostředí (Roman Jašek)
  2. ASP.NET Core Web API, controller, swagger, Postman, middleware (Michal Mrnuštík)
  3. Testování (Michal Tichý)
  4. Web - Blazor (Roman Jašek)
  5. Web - frontend (Maroš Janota)
  6. Web - napojení na API (Michal Tichý)
  7. Progressive Web Apps (Roman Jašek)
  8. .NET MAUI (Roman Jašek)
  9. Azure (Roman Jašek)
  10. DotVVM (Tomáš Herceg)
  11. Unity (Vojtěch Brůža)
  12. Clean Architecture (Martin Dybal)

Osnova numerických cvičení

  1. Minimal API v .NET 6, routing (Roman Jašek)
  2. Inversion of Control, konfigurace, lokalizace (Michal Mrnuštík)
  3. CI/CD, nasazování do Azure (Michal Tichý)
  4. Web - Blazor (Roman Jašek)
  5. Web (Maroš Janota/Roman Jašek)
  6. 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ý
Nahoru