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 14.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 aktuálny stav projektu (krátka prezentácia) ∙ deadline finálneho odovzdania: 20.6. ∙ spolu s projektom je nutné odovzdať nahranú videoprezentáciu ∙ cca 5 minút ∙ obraz + zvuk ∙ ak nemáte mikrofón, tak obraz + titulky ∙ 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 Visual Studio Tools for Office ∙ poskytujú možnosť vytvoriť si doplnky do Office aplikácií Desktopové aplikácie ∙ Windows Forms (PB069) ∙ easy to learn ∙ často škaredý kód ∙ klikanie ∙ WPF (PB069) ∙ väčšie možnosti UI ∙ krajší kód(MVVM pattern) ∙ oddelené UI a business logika (data binding) ∙ XAML ∙ Blend ∙ UWP, Avalonia, .NET MAUI, . . . Mobilné aplikácie – Xamarin ∙ (PV239) ∙ používa Mono framework ∙ Xamarin.Forms (jeho evolúcia – .NET MAUI) ∙ Xamarin.Android, Xamarin.iOS, UWP Webové služby ∙ WCF ∙ 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, . . . 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, 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 14.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 09 – Úvod do vývoje desktopových aplikací (Ondřej Pavlica) ∙ Týden 10 – Úvod do práce s databázou (Martin Macák) ∙ Týden 11 – Introduction to F#: application and benefits (Petr Koutný) ∙ Týden 12 – Blazor with F#: differences between C#, functional patterns (Lukáš Grolig) ∙ Týden 13 – Úvod do Unity (Ondřej Pavlica) Záver ∙ otázky? ∙ prípadne napíšte na macak@mail.muni.cz