MVC Scaffolding
Home

MVC Scaffolding

MVC Scaffolding

De term "scaffolding" betekent het snel genereren van een eenvoudige outline van je applicatie. De outline kan je achteraf bewerken en aanpassen. In ASP.NET MVC kan je met "scafolding" automatisch Views, Controllers, Database, tabel scripts enz. genereren. Al die lagen worden gegenereerd op basis van het verstrekte model. De velden die moeten worden weergegeven / verborgen in de weergave kan worden gecontroleerd door het [ScaffoldColumn] attribuut. Het geeft ons alleen de basis lay-out. Op basis van die basis lay-out kunnen we onze app aan passen. In plaats van het onze applicatie-ontwikkeling van de grond af op te bouwen, genereert "scaffolding een aantal bouwstenen waarmee we onze applicatie kunnen uitbouwen.

Voorbeeld

We gaan de CRUD operaties voor de Customer tabel met scaffolding implemeteren. Het logisch model vind je in Mikmak logisch model.

Het model

Om met scaffolding te kunnen werken moet je eerst het model maken. Hoe je model voor de tabel Customer maakt lees je in Mikmak Model Customer met scaffolding.

Scaffolding

  1. Rechterklik op de Controllers map van je project en kies Add en vervolgens New Scaffolded Item:
    Add new Item - New Scaffolded Item
    Add new Item - New Scaffolded Item
  2. We gaan voor het grootste gemak en keizen voor het maximum aantal scaffolded items:
    Add Scaffold
    Add Scaffold
  3. Nu moeten we nog enkele eigenschappen van de Controller specifiëren:
    Add scaffolded item - Add Controller
    Add scaffolded item - Add Controller
  4. Hier volgt een overzicht van de gegenereerde of "scaffolded" bestanden. Er werden bestanden toegevoegd in de Controllers en de Views map:
    Scaffolded Items - Controller and Views
    Scaffolded Items - Controller and Views
  5. Het model van de database is nu gewijzigd. Vooraleer de applicatie te kunnen runnen, moeten we eerst de database door EF laten updaten.
    Dat heet in EF parlance migrating. Indien we dat niet doen krijgen we de volgende foutmelding:
    The model backing the Dal context has changed since the database was created
    The model backing the Dal context has changed since the database was created
  6. Hoe je de database met EF automatisch kan updaten kan je vinden op Automatic Code First Migrations.
  7. Open de Package Manager Console:
    Package Manager Console
    Package Manager Console
  8. En typ de volgende instructies in:
    EF Automatic Migration in Package Manager Console
    EF Automatic Migration in Package Manager Console
  9. Let erop dat we in SQL de tabelnamen in het enkelvoud zijn. EF maakt automatisch tabelnamen in het meervoud aan. Als je problemen hebt met de database kan je een nieuwe database aanmaken door het database attribuut in het web.config bestand te wijzigen. Ik heb Webwinkel veranderd in Webwinkels:
    <connectionStrings>
      <add name="WebwinkelWindowsAuthentication"
            connectionString="Data Source=.\SQLEXPRESS;       
            Integrated Security=SSPI;          
            Initial Catalog=Webwinkels;"      
            providerName="System.Data.SqlClient" />
    </connectionStrings>
  10. Pas de link aan in AdminIndex.cshtml zodat je naar de Views/Customer/Index.cshtml pagina kan navigeren:
    <a href="/Customer/Index" class="mask fade-in-left">
        <h2>Klanten editen</h2>
    
        <p>Klanten inserten, updaten en deleten.</p>
        <span class="action">Kiezen</span>
    </a>
  11. Als je vervolgens op de link klikt kom je op de niet opgemaakte Customer/Index.cshtml pagina:
    Scoffolding Customer Index View
    Scoffolding Customer Index View
  12. Als je op Create klikt kom je op de Customer/Create view:
    Scoffolding Customer Create View
    Scoffolding Customer Create View
  13. Je kan de gegenereerde code aanpassen.
  14. De structuur laten overeenkomen met de Wireframes die voor Mikmak hebben gemaakt
  15. De CSS toevoegen

JI
2016-11-06 16:46:38