Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

1. diel - E-shop v ASP.NET 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 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 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 - 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 - nebude ich veľa, ale 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 ...

Seriál 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 MVC. 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 displejoch s menším rozlíšením.

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 - Kompletné e-shop v ASP.NET MVC
Prehľad produktov z vybranej kategórie .<> registračný formulár - Kompletné e-shop v ASP.NET MVC
registračný formulár .<> Prehľad produktov v košíku – prvý krok pri dokončení objednávky - Kompletné e-shop v ASP.NET MVC
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 Web Application (ja budem pracovať vo Visual štúdiu 2015 Community Edition). Vzhľadom k tomu, že ASP.NET 5 je až vo verzii RC1, použijeme template MVC z ASP.NET 4.5.2 Templates (pozri obrázok 4) a ponecháme Authentication Individual User Accounts. Až bude verzia 5 nejako rozumne rozšírená, pridám do seriálu pár noviniek ktoré umožňuje a listy o tom článoček.

obrázok 4 - Kompletné e-shop v ASP.NET MVC

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 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 References, z miestnej ponuky vyberte Add Reference ..., v ľavej časti okna vyberte Projects a zaškrtnite Data projekt (pozri obrázok č. 5). 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.

nastavenie referencie - Kompletné e-shop v ASP.NET MVC

Obrázok 5 - Nastavenie referencie

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 č. 6. 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 - Kompletné e-shop v ASP.NET MVC

Obrázok 6 - 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 MVC - Konfigurácia ASP.NET Identity , sa pozrieme na konfiguráciu ASP.NET Identity.


 

Všetky články v sekcii
Kompletné e-shop v ASP.NET MVC
Preskočiť článok
(neodporúčame)
E-shop v ASP.NET MVC - Konfigurácia ASP.NET Identity
Článok pre vás napísal JOF
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity