Osnova témat

  • Úvod

    Pro nadšence
    Pár zajímavých tutoriálů

    Jak napsat aplikaci, která pošle UDP paket na IP adresu.
    Jak napsat aplikaci, která stáhne file z Internetu.

    Top Security Risks - odkaz na organizaci SANS zabývající se bezpečností (sítí, programů, atd.) - na prvním místě tohoto seznamu je SQL injection - více se o této problematice a řešení této bezpečnostní díry dozvíte v kapitole DB.
  • Téma 1

    I/O operace a datové proudy.
    Třída FileStream.
    Binary reader, Binary writer.
    Text reader, Text writer.
    Memory stream.
    Třída File.
  • Téma 2

    OOP
    Co je to objektově orientované programování.
    UML
    Výhody OOP.
    Tvorba objektů, konstruktory, destruktory, properties a metody.
    Specifikátory přístupu (public, private, protected).
    Static a non-static metody.
    Vytváření instancí objektů.
    Step by Step Demo aplikace.
    Dědění objektů.
    Virtuální metody (virtual - override, new).
    Úkoly.


  • Téma 3

    Práce s kolekcemi v C#
    Co jsou to kolekce ?
    Druhy kolekcí. (ArrayList, Queue, HashTable, ...)
    Praktické využití kolekcí v OOP.
    Step by Step aplikace na typ kolekce ArrayList.
    Plnění, třídění a procházení kolekcí.

    Řešené příklady:
    Array List Demo - ukázka použití kolekce typu ArrayList
    Shopping Basket - aplikace shopping basket - ukázka použití kolekce a objektů, které využívají systém dědění objektů z předchozí kapitoly
    ListArr_TaskApp_1 - řešený příklad z úkolů prezentace

    collections
  • Téma 4

    Základy grafiky
    Knihovna System.Drawing.
    Point, Line, Rectangle, Color, Brush, Pen, Curve.
    Parametrické vyjádření geometrických útvarů a jeho využití.

    Řešené příklady:
    MyGraphic_Draw_Basics - ukázka základní práce s grafickými strukturami
    GraphicsApp_Moveable_Line - ukázka objektově orientované aplikace - pohyblivého grafického objektu
    Graphic_Editor - jednoduchý grafický editor
  • Téma 5

    Express SQL Server
    slouží pouze jako příprava na téma programování DB aplikací v ADO.NET a vyžaduje znalost předmětu DB (Co je to DB, tvorba tabulek, relace, SQL, uložené procedury, constrains)
    Představení DB serveru
    Základy práce se serverem
    Import testovací DB
    Spouštění SQL dotazů
    Uložené procedury
  • Téma 6

    Databáze v C#
    Trocha historie DAO, ADO, ADO.NET
    ADO .NET
    Připojené a odpojené aplikace
    - pojmy, objekty, výhody, nevýhody

    Online scénář:

    objekt Connection - Connection string (připojení DB, tvorba, umístění,..)
    objekt Command - properties, methods, vytvoření, vykonání
    objekt DataReader - metoda read, ostatní metody a properties
    SQL injection
    - řešení parametrů SQL dotazů jako metoda ochrany proti nežádoucímu vstupu uživatelů
    Executing Non Query
    - provádění příkazů, které nevracejí záznamy, uložené procedury
    Transakce -
    vysvětlení pojmu

    Offline scénář:
    objekt DataSet - vytvoření a manuální naplnění DataSetu v programovém kódu
    -
    tvorba tabulek, relací, constrains
    - vypsání obsahu DataSetu (tabulky) pomocí kolekcí Rows, Columns
    objekt DataAdapter - funkce a využití DataAdapteru k plnění DataSetu

    Řešené příklady:
    Connection_Demo_01
    - jednoduchá aplikace ukazující 4 různé způsoby otevření spojení na DB
    Connection_ConfigFile_Demo_02 - jednoduchá aplikace ukazující způsob připojení k DB prostřednictvím XML konfiguračního souboru aplikace, jsou tu zakomentovány kódy i použití statistik připojení a ochrany proti nežádoucímu zadání jiných hodnot (Connection string injection) - user name a password v přihlašovacím dialogu prostřednictvím objektu sqlClientPermission
    ExecuteScalar_Demo_03 - jednoduchá aplikace ukazující použití objektu Command a metody ExecuteScalar
    FormApp_ExecuteReader_Demo_04 - jednoduchá aplikace ukazující použití objektu Command a metody ExecuteReader, která provede dotaz SQL na výběr dat z DB a vypsání výsledků této metody (objekt DataReader) do prvku RichTextBox formuláře
    FormApp_Command_Parametry_Demo_05 - jednoduchá aplikace podobná předchozí, která k sestavení SQL dotazu používá kolekci Parameters objektu Command
    FormApp_ExecuteNonQuery_Demo_06 - jednoduchá aplikace ukazující použití objektu Command a metody ExecuteNonQuery, ukázkové řešení úkolu 3 prezentace DB-Command.
    Stored_Procedure_Demo_07 - jednoduchá aplikace řeší vložení záznamu do DB prostřednictvím uložené procedury SQL serveru, (využití app.config, designeru objektu Command.Parameters), kód uložené procedury v souboru CreateProduct.sql (výsledek Step by Step aplikace z prezentace DB-Command)
    TransactionDemo_08 - jednoduchá aplikace ukazující použití a práce s lokálními transakcemi (řešení Step by Step aplikace z prezentace)
    DataSet_Demo_09
    - řešení Step by Step aplikace z prezentace DB-Dataset, demonstrace použití a tvorby Datasetu
    CODE_DATASET_TEMPLATE_DEMO.TXT - textový soubor jako součást zadání úkolu prezentace DB-Dataset (předpřipravený kód aplikace)

  • Téma 7

    COM. Component object model.
    Co je to a jaký je smysl využití této technologie.
    Object interface.
    Proč u objektů používat interface ?
    Práce s objektovým modelem jiné aplikace.

    Ukázka spouštění programu balíku MS Office z prostředí C#.
    Jednoduchá Step by step aplikace na demonstraci dané problematiky.

    Řešené příklady:
    COM_interface_Demo - jednoduchá aplikace ukazuje jednu z největších výhod použití interface
    COM_CreateDLL_Demo - řešení Step by Step aplikace z prezentace aplikace ukazuje jak vytvořit vlastní DLL knihovnu obsahující jeden objekt i jeho interface a tuto DLL knihovnu využít v jiné aplikaci - komprimovaný soubor tak obsahuje dva projekty
    COM_running_MSWord_from_CSharp - jednoduchá aplikace ukazuje jak z aplikace v C# zavolat metody knihovny MSWord, otevřít dokument wordu, zapsat do něho text a změny uložit
  • Téma 8

    Závěrečný projekt DB aplikace s využitím všech naučených programovacích technik

    odevzdání 2.3.2022 do 7:00 AM nebo N !!!!!!!!

  • Téma 9

    UML. Unified modelling language.
    Co je to a jaký je smysl využití této technologie při návrhu OOP aplikací.
    UML diagramy.

    Vazby mezi objekty.
    (realizace, asociace, agregace, kompozice)
    Step by Step vytvoření modelu.
    Ukázka UML v bezplatném UML editoru ARGO.

  • Téma 10

    Typové maturitní příklady.

    2012:
    1. první typový příklad bude vytvoření objektu(ů) s přesně definovaným rozhraním (get, set, atributy přístupu)
    Vytvoření kolekce z instancí této třídy a "nějaká činnost" těchto objektů.

    2. druhý typový příklad bude vytvoření DB aplikace, která bude typu online - bude načítat data z DB a provádět změny dat v DB podle popsaných pravidel. DB bude vytvořena.


    TODO: 3. třetím typovým příkladem je opakování práce s dvourozměrnými poli tzn. práce s maticí. Matice ale (na rozdíl od druhého ročníku) bude definována jako objekt.

    4. čtvrtým typovým příkladem je vytvoření několika objektů s jednotným rozhraním. Vytvoříte pak kolekci různých objektů a přes metody rozhraní budete s těmito objekty pracovat.

    5. pátým typovým příkladem je
    ukázkový příklad pro dotazování DB Northwind - příklad je pouze demo práce s objekty Connection, Command, Reader. Neodpovídá strukturou profesionálně vytvořenému programu - (neodděluje striktně UI od DB vrstvy, není ošetřeno nahrazení apostrofů v názvech DB, Connection string je uvnitř prg. kódu, ...)

    Pozn.:
    Zadání typových příkladů najdete pod příslušným číslem níže, zadání je pouze ilustrační - v každém příkladu dodržte zásady prg - ošetření proti chybám, pojmenování proměnných, přehlednost kódu, popisy a komentáře atd. V zadání se mohou objevit chyby - slouží pouze jako námět, užijte vlastní invenci pro doladění detailů aplikací: