PV178: Kde a ako využiť C# Martin Macák Fakulta informatiky, Masarykova univerzita, Brno Osnova 1. Projekt 2. Aké technológie môžeme použiť? 3. Aké zaujímavé knižnice môžeme použiť? 4. Diskusia Osnova 1. Projekt 2. Aké technológie môžeme použiť? 3. Aké zaujímavé knižnice môžeme použiť? 4. Diskusia Projekt ∙ aplikácia, ktorá demonštruje, čo ste sa naučili ∙ povinne: ∙ práca so súbormi (prípadne databázou) ∙ viacvláknové spracovanie alebo asynchrónne programovanie ∙ aplikácia by mohla byť teoreticky niekedy použitá ∙ nemusí to byť konzolová aplikácia, ak nechcete ∙ hlavný zmysel je ukázať: "toto je môj projekt" Projekt ∙ téma projektu: ∙ vymyslite si niečo ∙ prípadne si môžete vybrať z ukážkových tém ∙ do 30.4. je nutné dohodnúť sa s cvičiacim na téme projektu ∙ treba vyplniť odpovedník, kde svoju tému popíšete ∙ na poslednom cviku prezentujete svoj projektu (krátka prezentácia) ∙ deadline finálneho odovzdania: 21.5. ∙ ak budete mať vážny problém, inidivudálne sa dohodnete s cvičiacim Osnova 1. Projekt 2. Aké technológie môžeme použiť? 3. Aké zaujímavé knižnice môžeme použiť? 4. Diskusia Konzolové aplikácie – to už poznáme :) Knižnice ∙ Vďaka nim môžeme jednoducho používať ten istý zdrojový kód v rôznych aplikáciach Desktopové aplikácie ∙ Windows Forms (PB069) ∙ easy to learn ∙ často škaredý kód ∙ klikanie ∙ Windows Presentation Foundation (PB069) ∙ väčšie možnosti UI ∙ krajší kód(MVVM pattern) ∙ oddelené UI a business logika (data binding) ∙ XAML ∙ Blend Desktopové aplikácie ∙ Universal Windows Platform ∙ Win10 a Win11 moderné appky ∙ dôraz na rozšíriteľnosť na rôzne Microsoft platformy, responzívny design UI, bezpečnosť ∙ Avalonia ∙ "WPF na Linuxe" ∙ MAUI Mobilné aplikácie – Xamarin ∙ (PV239) ∙ používa Mono framework ∙ Xamarin.Forms (jeho evolúcia je .NET MAUI) ∙ Xamarin.Android, Xamarin.iOS, UWP Webové služby ∙ Windows Communication Foundation ∙ mnohé podporované protokoly ∙ viacej možností v zabezpečení ∙ Web API (PV179) ∙ protokol HTTP ∙ používa sa ASP.NET – webový framework Webové aplikácie ∙ (PV179) ∙ ASP.NET Core Razor Pages ∙ easy to learn, simple ∙ viac orientované na webové stránky ∙ MVVM pattern ∙ ASP.NET Core MVC ∙ MVC pattern ∙ trochu viacej "magic" ∙ ASP.NET Core DotVVM, Blazor ∙ moderné frameworky "bez Javascriptu" ∙ MVVM pattern Hry ∙ framework MonoGame ∙ 2D a 3D multiplatformové hry ∙ low level ∙ engine Unity (PV255) ∙ 2D a 3D hry (viac podporovaných platforiem) ∙ predimplementovaná fyzika ∙ programujeme iba hernú logiku ∙ engine Godot ∙ mladší engine, lightweight Unity, menej podporovaných platforiem Osnova 1. Projekt 2. Aké technológie môžeme použiť? 3. Aké zaujímavé knižnice môžeme použiť? 4. Diskusia API clients ∙ ChatGPT, Bitcoin, Formula 1, PC hry, hocičo... Machine learning ∙ ML.NET https://github.com/dotnet/machinelearning Databázy ∙ PostgreSQL https://github.com/npgsql/npgsql ∙ MongoDB https://github.com/mongodb/mongo-csharp-driver ∙ RavenDB https://github.com/ravendb/ravendb ORMs (PV179) ∙ Entity Framework Core ∙ NHibernate ∙ Dapper ∙ Simple.Data ∙ . . . Obrázky ∙ NGraphics https://github.com/praeclarum/NGraphics ∙ ImageSharp https://github.com/SixLabors/ImageSharp Sky’s the limit ∙ Discord bot, ∙ IoT, ∙ Blockchain, ∙ Big Data, ∙ Process Mining, ∙ . . . Cloud in the sky... ∙ Azure (https://portal.azure.com/) ∙ login cez univerzitný email ∙ Azure for Students (100 dolárov ročne + free služby) Rekapitulácia 1. Technológie 1.1 Konzolové aplikácie 1.2 Knižnice 1.3 Desktopové aplikácie 1.4 Mobilné aplikácie 1.5 Webové služby 1.6 Webové aplikácie 1.7 Hry 2. Knižnice 2.1 API clients 2.2 Machine learning 2.3 Databázy 2.4 ORMs 2.5 Obrázky A čo teraz? ∙ vyberte si tému (technológiu, knižnicu) do 30.4. ∙ zadajte ju do odpovedníku Projektu – popis podobný, ako je v ukážkových témach ∙ využite konzultovanie vašej témy s cvičiacim Diskusia Ďalšie bonusové prednášky ∙ Týden 9 – Fun with DBs (Martin Macák) ∙ Týden 10 – Unity (Jiří Chmelík) ∙ Týden 11 – Novinky v C a Source Generators (Jiří Činčura) ∙ Týden 12 – .NET fast and furious (Karel Zikmund) Záver ∙ otázky? ∙ prípadne napíšte na macak@mail.muni.cz