ASP.NET webimplementatie met Visual Studio: Inleiding

door Tom Dykstra

Startersproject downloaden

Deze reeks zelfstudies laat zien hoe u een ASP.NET-webtoepassing implementeert (publiceert) in Azure App Service Web Apps of een externe hostingprovider met behulp van Visual Studio 2012 met de Azure SDK voor .NET. De meeste procedures zijn vergelijkbaar voor Visual Studio 2013.

U ontwikkelt een webtoepassing om deze beschikbaar te maken voor personen via internet. Maar webprogrammeer-tutorials stoppen meestal direct nadat ze u hebben laten zien hoe u iets werkend krijgt op uw ontwikkelcomputer. Deze reeks zelfstudies begint waar de anderen weggaan: u hebt een web-app gemaakt, getest en klaar om aan de slag te gaan. Wat is de volgende stap? Deze zelfstudies laten zien hoe u eerst in IIS implementeert op uw lokale ontwikkelcomputer voor testen en vervolgens naar Azure of een hostingprovider van derden voor fasering en productie. De voorbeeldtoepassing die u gaat implementeren, is een webtoepassingsproject dat gebruikmaakt van Entity Framework, SQL Server en het ASP.NET lidmaatschapssysteem. De voorbeeldtoepassing maakt gebruik van ASP.NET Web Forms, maar de weergegeven procedures zijn ook van toepassing op ASP.NET MVC- en web-API.

In deze zelfstudies wordt ervan uitgegaan dat u weet hoe u met ASP.NET in Visual Studio kunt werken. Als u dit niet doet, is een goede plek om te beginnen een eenvoudige ASP.NET webformulierenzelfstudie of een eenvoudige ASP.NET MVC-zelfstudie.

Als u vragen hebt die niet rechtstreeks zijn gerelateerd aan de zelfstudie, kunt u deze posten op het ASP.NET Implementatieforum of StackOverflow.

Overzicht

Deze zelfstudies helpen u bij het implementeren van een ASP.NET-webtoepassing die SQL Server-databases bevat. U implementeert eerst naar IIS op uw lokale ontwikkelcomputer voor testen en vervolgens naar Web Apps in Azure App Service en Azure SQL Database voor fasering en productie. U zult zien hoe u kunt implementeren via Visual Studio met één-klik-publicatie, en u zult zien hoe u kunt implementeren via de opdrachtregel.

Het aantal handleidingen kan ervoor zorgen dat het implementatieproces lastig lijkt. In feite zijn de basisprocedures eenvoudig. In praktijksituaties moet u echter vaak extra implementatietaken uitvoeren, bijvoorbeeld het instellen van mapmachtigingen op de doelserver. We hebben een aantal van deze aanvullende taken geïllustreerd, in de hoop dat de handleidingen geen informatie weglaten die kunnen voorkomen dat u een echte toepassing succesvol kunt implementeren.

De zelfstudies zijn ontworpen om op volgorde te worden uitgevoerd en elk onderdeel bouwt voort op het vorige deel. U kunt delen overslaan die niet relevant zijn voor uw situatie, maar dan moet u de procedures mogelijk aanpassen in latere zelfstudies.

Beoogde doelgroep

De zelfstudies zijn gericht op ASP.NET ontwikkelaars die werken in omgevingen waar:

  • De productieomgeving is Azure App Service Web Apps of een externe hostingprovider.
  • Implementatie is niet beperkt tot een doorlopend integratieproces, maar kan rechtstreeks vanuit Visual Studio worden uitgevoerd.

Implementatie van broncodebeheer met behulp van een proces voor continue levering wordt niet behandeld in deze zelfstudies, met uitzondering van één zelfstudie die laat zien hoe u implementeert vanaf de opdrachtregel. Zie de volgende bronnen voor meer informatie over continue levering:

Een externe hostingprovider gebruiken

In de tutoriaals wordt u begeleid bij het instellen van een Azure-account en het implementeren van de toepassing in Web Apps binnen de Azure App Service voor de testomgeving en productie. U kunt echter dezelfde basisprocedures gebruiken voor het implementeren naar een externe hostingprovider van uw keuze. Waar de zelfstudies processen doorlopen die uniek zijn voor Azure, leggen ze uit dat en adviseren ze welke verschillen u kunt verwachten bij een externe hostingprovider.

Web-app-projecten implementeren

De voorbeeldtoepassing die u voor deze zelfstudies downloadt en implementeert, is een Visual Studio-webtoepassingsproject. Als u echter de meest recente webpublicatie-update voor Visual Studio installeert, kunt u dezelfde implementatiemethoden en hulpprogramma's gebruiken voor web-app-projecten.

ASP.NET MVC-projecten implementeren

De voorbeeldtoepassing is een ASP.NET Web Forms-project, maar alles wat u moet doen, is ook van toepassing op ASP.NET MVC. Een Visual Studio MVC-project is slechts een andere vorm van een webtoepassingsproject. Het enige verschil is dat als u implementeert in een hostingprovider die geen ondersteuning biedt voor ASP.NET MVC of uw doelversie, u ervoor moet zorgen dat u het juiste NuGet-pakket (MVC 3, MVC 4 of MVC5) in uw project hebt geïnstalleerd.

Programmeertaal

De voorbeeldtoepassing maakt gebruik van C# maar de zelfstudies vereisen geen kennis van C# en de implementatietechnieken die worden weergegeven in de zelfstudies zijn niet taalspecifiek.

Database-implementatiemethoden

Er zijn drie manieren waarop u een SQL Server-database samen met webimplementatie in Visual Studio kunt implementeren:

  • Entity Framework Code First Migrations
  • De dbDacFx Web Deploy-provider
  • De dbFullSql Web Deploy-provider

In deze zelfstudie gebruikt u de eerste twee van deze methoden. De dbFullSql Web Deploy-provider is een verouderde methode die niet meer wordt aanbevolen, met uitzondering van bepaalde specifieke scenario's, zoals migreren van SQL Server Compact naar SQL Server.

De methoden die in deze zelfstudie worden weergegeven, zijn voor SQL Server-databases, niet VOOR SQL Server Compact. Zie Visual Studio-webimplementatie met SQL Server Compact voor informatie over het implementeren van een SQL Server Compact-database.

Voor de methoden die in deze zelfstudie worden weergegeven, moet u de publicatiemethode Web Deploy gebruiken. Als u de voorkeur geeft aan een andere publicatiemethode, zoals FTP, Bestandssysteem of FPSE, raadpleegt u Het implementeren van een database afzonderlijk van de webtoepassingsimplementatie in de webimplementatiemap voor Visual Studio en ASP.NET.

Entity Framework Code First Migrations

In Entity Framework versie 4.3 heeft Microsoft Code First Migrations geïntroduceerd. Code First Migrations automatiseert het proces voor het aanbrengen van incrementele wijzigingen in een gegevensmodel en het doorgeven van deze wijzigingen aan de database. In eerdere versies van Code First laat u het Entity Framework doorgaans de database verwijderen en opnieuw maken telkens wanneer u het gegevensmodel wijzigt. Dit is geen probleem bij de ontwikkeling omdat testgegevens eenvoudig opnieuw worden gemaakt, maar in productie wilt u meestal het databaseschema bijwerken zonder de database te verwijderen. Met de functie Migraties kan Code First de database bijwerken zonder deze te verwijderen en opnieuw te maken. U kunt Code First automatisch laten beslissen hoe u de vereiste schemawijzigingen aanbrengt of u kunt code schrijven waarmee de wijzigingen worden aangepast. Zie Code First Migrations voor een inleiding tot Code First Migrations.

Wanneer u een webproject implementeert, kan Visual Studio het proces voor het implementeren van een database automatiseren die wordt beheerd door Code First Migrations. Wanneer u het publicatieprofiel maakt, schakelt u een selectievakje in dat is voorzien van het label Execute Code First Migrations (wordt uitgevoerd op het begin van de toepassing). Deze instelling zorgt ervoor dat het implementatieproces de toepassing Web.config-bestand automatisch configureert op de doelserver, zodat Code First de MigrateDatabaseToLatestVersion initializer-klasse gebruikt.

Visual Studio doet niets met de database tijdens het implementatieproces. Wanneer de geïmplementeerde toepassing de database voor het eerst opent na de implementatie, maakt Code First automatisch de database of werkt het databaseschema bij naar de nieuwste versie. Als de toepassing een Migraties Seed-methode implementeert, wordt de methode uitgevoerd nadat de database is gemaakt of wordt het schema bijgewerkt.

In deze zelfstudie gebruikt u Code First Migrations om de toepassingsdatabase te implementeren.

De dbDacFx Web Deploy-provider

Voor een SQL Server-database die niet wordt beheerd door Entity Framework Code First, kunt u een selectievakje inschakelen met het label Update-database wanneer u het publicatieprofiel configureert. Tijdens de eerste implementatie maakt de dbDacFx-provider tabellen en andere databaseobjecten in de doeldatabase zodat deze overeenkomt met de brondatabase. Bij volgende implementaties bepaalt de provider wat er anders is tussen de bron- en doeldatabases en wordt het schema van de doeldatabase bijgewerkt zodat deze overeenkomt met de brondatabase. De provider zal standaard geen wijzigingen aanbrengen die gegevensverlies veroorzaken, bijvoorbeeld wanneer een tabel of kolom wordt verwijderd.

Met deze methode wordt de implementatie van gegevens in databasetabellen niet geautomatiseerd, maar u kunt hiervoor scripts maken en Visual Studio configureren om ze uit te voeren tijdens de implementatie. Een andere reden om scripts uit te voeren tijdens de implementatie is het aanbrengen van schemawijzigingen die niet automatisch kunnen worden uitgevoerd, omdat ze gegevensverlies veroorzaken.

In deze zelfstudie gebruikt u de dbDacFx-provider om de ASP.NET lidmaatschapsdatabase te implementeren.

Problemen oplossen tijdens deze zelfstudie

Wanneer er een fout optreedt tijdens de implementatie of als de geïmplementeerde site niet correct wordt uitgevoerd, bieden de foutberichten niet altijd een duidelijke oplossing. Om u te helpen bij een aantal veelvoorkomende probleemscenario's, is er een referentiepagina voor probleemoplossing beschikbaar. Als u een foutbericht krijgt of als er iets niet werkt terwijl u de zelfstudies doorloopt, controleert u de pagina voor probleemoplossing.

Welkom bij opmerkingen

Opmerkingen over de zelfstudies zijn welkom en wanneer de zelfstudie wordt bijgewerkt, wordt alles in het werk gesteld om rekening te houden met correcties of suggesties voor verbeteringen die in opmerkingen bij de zelfstudie worden gegeven.

Vereiste voorwaarden

Deze zelfstudie is geschreven voor de volgende producten:

U kunt de zelfstudie volgen met behulp van Visual Studio 2010 SP1 of Visual Studio 2013, maar sommige schermafbeeldingen zijn anders en sommige functies zijn anders.

Als u Visual Studio 2013 gebruikt, installeert u Azure SDK voor Visual Studio 2013.

Als u Visual Studio 2010 SP1 gebruikt, installeert u de volgende software:

Afhankelijk van het aantal SDK-afhankelijkheden dat u al op uw computer hebt, kan het installeren van de Azure SDK lang duren, van enkele minuten tot een half uur of langer. U hebt de Azure SDK nodig, zelfs als u van plan bent om te publiceren naar een externe hostingprovider in plaats van naar Azure, omdat de SDK de nieuwste updates voor Visual Studio-webpubliceerfuncties bevat.

Opmerking

Deze zelfstudie is geschreven met versie 1.8.1 van de Azure SDK. Sindsdien zijn nieuwere versies met extra functies uitgebracht. De zelfstudies zijn bijgewerkt om deze functies te vermelden en een koppeling te maken naar resources met meer informatie over deze functies.

De instructies en schermopnamen zijn gebaseerd op Windows 8, maar in de zelfstudies worden verschillen voor Windows 7 uitgelegd.

Sommige andere software is vereist om de zelfstudie te voltooien, maar u hoeft deze nog niet te installeren. In de zelfstudie wordt u begeleid bij de stappen voor het installeren ervan wanneer u deze nodig hebt.

De voorbeeldtoepassing downloaden

De toepassing die u gaat implementeren, heet Contoso University en is al voor u gemaakt. Het is een vereenvoudigde versie van een website van een universiteit, die losjes is gebaseerd op de Contoso University-toepassing die wordt beschreven in de Entity Framework-zelfstudies op de ASP.NET-site.

Wanneer u de vereisten hebt geïnstalleerd, downloadt u de Contoso University-webtoepassing. Het bestand.zip bevat meerdere versies van het project. Als u de stappen van de zelfstudie wilt doorlopen, begint u met het project in de map C#. Als u wilt zien hoe het project eruitziet aan het einde van de zelfstudies, opent u het project in de map ContosoUniversity-End.

Voer de volgende stappen uit om het project voor te bereiden voor het uitvoeren van de zelfstudiestappen:

  1. Sla de ContosoUniversity-oplossingsbestanden op uit de C#-map in een map met de naam ContosoUniversity in elke map die u gebruikt voor het werken met Visual Studio-projecten.

    Dit is standaard de volgende map voor Visual Studio 2012:

    C:\Users\<username>\Documents\Visual Studio 2012\Projects

    (Voor de schermafbeeldingen in deze zelfstudie bevindt de projectmap zich in de hoofddirectory op de C: schijf.)

  2. Start Visual Studio en open het project.

  3. Klik in Solution Explorer met de rechtermuisknop op de oplossing en klik op EnableNuGet Package Restore.

  4. Bouw de oplossing.

  5. Als u compileerfouten krijgt, herstelt u de NuGet-pakketten handmatig:

    1. Klik in Solution Explorer met de rechtermuisknop op de oplossing en klik vervolgens op NuGet-pakketten beheren voor oplossing.
    2. Bovenaan het dialoogvenster NuGet-pakketten beheren ziet u dat sommige NuGet-pakketten ontbreken in deze oplossing. Klik hier om te herstellen. Klik op de knop Herstellen .
    3. Bouw de oplossing opnieuw.
  6. Druk op CTRL-F5 om de toepassing uit te voeren.

    De toepassing wordt geopend op de startpagina van Contoso University.

    Startpagina Dev

    (Er kan een wachttijd zijn terwijl Visual Studio het SQL Server Express LocalDB-exemplaar start en er mogelijk een time-outfout optreedt als dit proces te lang duurt. In dat geval start u het project opnieuw.)

De websitepagina's zijn toegankelijk via de menubalk en u kunt de volgende functies uitvoeren:

  • Statistieken van studenten weergeven (de Over-pagina).
  • Studenten weergeven, bewerken, verwijderen en toevoegen.
  • Cursussen weergeven en bewerken.
  • Instructeurs weergeven en bewerken.
  • Afdelingen weergeven en bewerken.

Hieronder ziet u schermafbeeldingen van een paar representatieve pagina's.

Dev-pagina voor studenten

Pagina-ontwikkelaars voor leerlingen/studenten toevoegen

Toepassingsfuncties controleren die van invloed zijn op de implementatie

De volgende functies van de toepassing zijn van invloed op hoe u deze implementeert of wat u moet doen om deze te implementeren. Elk van deze wordt in meer detail uitgelegd in de volgende zelfstudies in de reeks.

  • Contoso University maakt gebruik van een SQL Server-database voor het opslaan van toepassingsgegevens, zoals namen van studenten en docenten. De database bevat een combinatie van testgegevens en productiegegevens en wanneer u implementeert in productie, moet u de testgegevens uitsluiten.
  • De toepassing maakt gebruik van het ASP.NET lidmaatschapssysteem, waarin gebruikersaccountgegevens worden opgeslagen in een SQL Server-database. De toepassing definieert een beheerder die toegang heeft tot bepaalde beperkte informatie. U moet de lidmaatschapsdatabase implementeren zonder testaccounts, maar met een beheerdersaccount.
  • De toepassing maakt gebruik van een hulpprogramma voor foutregistratie en rapportage van derden. Dit hulpprogramma wordt geleverd in een assembly die moet worden geïmplementeerd met de toepassing.
  • Het hulpprogramma voor logboekregistratie schrijft foutinformatie in XML-bestanden naar een bestandsmap. U moet ervoor zorgen dat het account waaronder ASP.NET draait op de geïmplementeerde site schrijfmachtigingen heeft voor deze map en dat u deze map uitsluit van implementatie. (Anders kunnen foutlogboekgegevens uit de testomgeving worden gebruikt in productie, en/of kunnen productiefoutenlogboekbestanden worden verwijderd.)
  • De toepassing bevat enkele instellingen die moeten worden gewijzigd in het geïmplementeerdeWeb.config-bestand , afhankelijk van de doelomgeving (test, fasering of productie) en andere instellingen die moeten worden gewijzigd, afhankelijk van de buildconfiguratie (foutopsporing of release).
  • De Visual Studio-oplossing bevat een klassebibliotheekproject. Alleen de assembly die door dit project wordt gegenereerd, moet worden geïmplementeerd, niet het project zelf.

Overzicht

In deze eerste zelfstudie in de reeks hebt u het Visual Studio-voorbeeldproject gedownload en sitefuncties gecontroleerd die van invloed zijn op de wijze waarop u de toepassing implementeert. In de volgende zelfstudies bereidt u zich voor op implementatie door een aantal van deze dingen in te stellen die automatisch moeten worden afgehandeld. Anderen verzorgt u handmatig.