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ť? Osnova 1. Projekt 2. Aké technológie môžeme použiť? 3. Aké zaujímavé knižnice môžeme použiť? 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 1.5. 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: 22.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ť? 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 Discord boti ∙ môžete si pridať bota na vlastný Discord server ∙ napr. DSharp alebo Discord.NET 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ť? 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 ∙ 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 Visual Studio Tools for Office 1.4 Desktopové aplikácie 1.5 Mobilné aplikácie 1.6 Webové služby 1.7 Webové aplikácie 1.8 Hry 2. Knižnice 2.1 Machine learning 2.2 Blockchain 2.3 Databázy 2.4 ORMs A čo teraz? ∙ vyberte si tému (technológiu, knižnicu) do 1.5. ∙ 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 Ďalšie bonusové prednášky ∙ Týden 10 – Úvod do vývoje desktopových aplikací ve Windows Forms (Ondřej Pavlica) ∙ Týden 11 – Fun with DBs (Martin Macák) ∙ Týden 12 – Úvod do Unity (Jiří Chmelík) ∙ Týden 13 – Úvod do ASP.NET Core Web API (Lukáš Daubner) Záver ∙ otázky? ∙ prípadne napíšte na macak@mail.muni.cz