1. diel - E-shop v ASP.NET Core MVC - Štruktúra riešenie
Vítam všetky stredne pokročilých a pokročilých programátorov u kurzu E-shop v ASP.NET Core 2.X MVC. Je určený pre všetkých, ktorí majú za sebou základy tejto technológie aspoň v rozsahu tunajších Základov ASP.NET Core MVC a chcú sa posunúť na ďalšiu úroveň. V tomto on-line kurzu vytvoríme plne funkčný e-shop s využitím nasledujúcich technológií:
- Entity Framework Core - ORM s metodikou Code First
- Repository - návrhový vzor pre prácu s dátami
- ASP.NET Identity - framework pre správu užívateľov a rolí, autentizáciu a autorizáciu
- Extension metódy - ukážeme si príklady, ako rozšíriť funkcionalitu existujúcich tried
- Generické triedy - vie ušetriť veľa písania a verím, že si ich obľúbite
- AutoMapper - pomáha s mapovaním tried
- Javascript - trocha kódu bude aj na strane klienta
- AJAX a mnoho ďalších ...
Kurz vás dokonale pripraví na zamestnanie v C# .NET, keďže väčšina pracovných pozícií vyžaduje okrem samotného C# dobrú znalosť webového frameworku ASP.NET, skúsenosti s modernejším Core sú vítanou výhodou. Samozrejme môžete znalosti využiť aj do svojho podnikania.
Základné požiadavky na e-shop
Keďže obchod bude naozaj reálne použiteľný, zamyslime sa aspoň nad základnými požiadavkami:
- Správa užívateľov a rolí - Tak ako vo väčšine webových aplikácií aj tu je potreba rozlišovať bežných návštevníkov e-shopu od administrátorov, ktorí majú dostupných viac funkcionalít. Naviac ešte musíme umožniť nákup aj neregistrovaným užívateľom (užívateľom bez prihlasovacích údajov).
- Správa produktov a kategórií - Prehľadne zobraziť produkty (vrátane ich obrázkov) s možnosťou vkladania a editácie. Zaraďovať produkty do kategórií. Vyhľadávať, filtrovať a radiť produkty vo výpise. Umožniť používateľom napísať hodnotenie zakúpeného produktu.
- Systém objednávok - Viesť užívateľa nákupnom procesom od vložení tovaru do nákupného košíka cez zadanie fakturačných údajov a výber spôsobu dopravy až po dokončení objednávky vrátane odoslania potvrdzovacieho emailu.
- Historizace záznamov - Zabezpečiť integritu a platnosť dát. Žiadne uskutočnené úpravy nesmú ovplyvniť už realizovanej transakcie v e-shope.
- Responzívne web design - Prehľadne zobrazovať stránky aj na menších displejoch.
Požadovaný vzhľad aplikácie
Požadovaný vzhľad si priblížime na nasledujúcich obrázkoch:
Prehľad produktov z vybranej kategórie .<>
registračný formulár .<>
Prehľad produktov v košíku - prvý krok pri dokončení
objednávky
Začíname ...
Vo Visual Studiu si vytvorte si nový projekt typu ASP.NET Core Web Application (ja budem pracovať vo Visual štúdiu 2017 Community Edition - silne doporučuju používať aspoň verziu 15.7+). Tutoriál je písaný pre verziu Core 2.1. Ak túto verziu nainštalovanú nemáte, môžete si aktuálne SDK stiahnuť tu. Zvolíme tiež Authentication Individual User Accounts.
Obrázok 4 - Vytvorenie projektu
Štruktúra riešenie
Reálne komerčné projekty majú veľa tried a určite by sme si v nich nevystačili len s rozdelením štruktúry projektu na modely, kontrolery a pohľady. Mať v jednej zložke desiatky súborov je minimálne neprehľadné. Kód by sa zle spravoval az vlastnej skúsenosti môžem povedať, že by ste sa dostali do bodu, kedy by ste písali podobné metódy znovu a znovu namiesto toho, aby ste parametrizovali nejakú existujúcu, pretože by ste skrátka ani nevedeli, že v projekte nejaká podobná už je. A to je začiatok konca . Ako z toho von?
Projekty
Celé riešenie rozdelíme do viacerých vrstiev. Každá vrstva bude v samostatnom projekte. Náš projekt bude stredne zložitý, preto si vystačíme s nasledujúcimi vrstvami:
- Dátová vrstva - Bude obsahovať časť, ktorá sa bude starať o ukladanie a načítanie dát. Ostatné časti riešenia budú využívať jej metódy (a v našom prípade asi aj triedy), bez toho aby sa zaujímali o to, kde sú vlastne dáta uložené a akým spôsobom. Metódy pre prácu s dátami implementujeme do tejto vrstvy v podobe repozitára.
- Business vrstva - Bude obsahovať takmer všetku logiku nášho riešenia rozdelenú do tzv. Manažérov podľa entít, ku ktorým dané metódy patrí. Ďalej sem pridáme nejaké pomocné triedy, ViewModel a nejaký "mapper", ktorý nám pomôže přetypovávat triedy medzi sebou.
- Aplikačná vrstva - To je ten náš (zatiaľ jediný) vytvorený projekt. Bude obsahovať hlavne kontrolery a pohľady (väčšina modelov bude v business vrstve) a samozrejme tiež ďalšie časti, ktoré patria k webovej aplikácii - CSS štýly, skripty, obrázky a pod.
Pridajte si teda do nového riešenia 2 projekty (napríklad v miestnej
ponuke Solution -> Add -> New Project -> Class Library). Čo sa
pomenovanie týka, odporúčam všade používať výhradne angličtinu, takže
je pomenujte napríklad EShop.Business
a EShop.Data
.
Čeština je v programovaní len pre začiatočníkov a v reálnych
aplikáciách by sa objavovať nemala. Minimálne to zvýši čitateľnosť
vášho kódu pre ďalšie programátorov.
Nastavenia referencií
Aby sme mohli v jednom projekte využívať objektov z iného projektu, musíme si nastaviť referencie. Najjednoduchším spôsobom je asi využiť miestnu ponuku. V Solution Exploreri kliknite v Business projektu pravým tlačidlom myši na projekt, vyberte Add -> Referencie. V ľavej časti okna vyberte Projects a zaškrtnite Data projekt. Obdobným spôsobom nastavte referenciu z Aplikačného projektu na Business projekt. Pretože naše aplikácie bude ešte v udržateľnom rozsahu, nebudeme v business vrstve využívať žiadne ATC alebo DAO modely a nastavíme si referenciu iz Aplikačného projektu na Data projekt. U ešte väčších aplikácií býva Aplikačná vrstva od dátovej úplne tienené, nám bude bohato stačiť, keď si vyskúšame len toto logické rozdelenie.
Zložky
V jednotlivých projektoch si budeme usporadúvať súbory s kódom do zložiek (a triedy do príslušných menných priestorov). Výslednú štruktúru hotového projektu môžete vidieť na obrázku č. 5. Význam zložiek sa dá väčšinou odvodiť z ich názvu. Zložky si teraz vytvárať nemusíte, budeme ich vytvárať postupne podľa potreby.
Obrázok 5 - Navrhovaná štruktúra riešenie
To by bolo pre dnešok všetko. Máme predstavu o tom, ako bude vyzerať štruktúra nášho riešenia a prečo. V budúcej lekcii, E-shop v ASP.NET Core MVC - Identity, databázy a layout , sa pozrieme na konfiguráciu ASP.NET Identity.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkamiStiahnuté 117x (1.02 MB)