Code Monkey home page Code Monkey logo

odetofood's Introduction

OdeToFood

A repo for the ASP.NET Core Pluralsight Project.

The following are additional notes and FAQs about the course.

ASP.NET Core 3

The original version of the code as recorded in the Pluralsight course is with ASP.NET Core 2.1. I've placed this code into a branch named aspnet21.

The master branch I am updating to use ASP.NET Core 3 and the latest versions of Bootstrap and jQuery.

Module 2 (Drilling into Data)

Clip 2 (Creating the New Project)

To create, build, and run a project like we do in Visual Studio, you can use the command line:

dotnet new razor
dotnet build
dotnet run

Some environments, like Visual Studio Code, can also detect .NET Core projects and automatically add support to build and run from the VS Code menus.

Clip 3 (Editing Razor Pages)

VS uses some magic to automatically restart the web server when you make changes to source code files. If you are using command line tools, you can do the same using:

dotnet watch run

... instead of ...

dotnet run

Clip 7 - (Creating an Entity)

You can use dotnet to create the class library. Place this at the same folder level as the OdeToFood project.

dotnet new classlib

Module 3 (Working with Models and Model Binding)

Clip 3 (Building a Search Form)

Bootstrap 4 changed some classes and no longer includes glyphicons. Font Awesome is a good replacement. Once you've included the Font Awesome stylesheet into your _Layout page with a link tag, the icons are just as easy to use. To show a search icon use this code:

<input type="search" class="form-control" value="" />
<div class="input-group-append">
    <button class="btn btn-secondary">
        <i class="fas fa-search"></i>
    </button>
</div>

Module 4 (Editing Data with Razor Pages)

Note that Bootstrap version 4 no longer provides icons out of the box. See the docs for more info. Font Awesome is a good replacement.

Clip 5 (Adding Validation Checks)

You'll need to install the NuGet package dotnet-aspnet-codegenerator. Install this package as a tool From the comamnd line, and also install the design package for the project:

dotnet tool install --global dotnet-aspnet-codegenerator 
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design

After installing, the following command should display a help screen and a list of available generators. Make sure you execute the command inside a directory where a project exists.

dotnet aspnet-codegenerator -h

Now you should be able to follow along with the scaffolding in the video.

dotnet aspnet-codegenerator razorpage List Empty -udl -outDir Pages\Restaurants\

For Visual Studio users, you might also want a reference to CodeGeneration tools you can use from the UI. Run the following command in the project directory:

dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
dotnet restore

This will allow you to right-click the project and run scaffolding. s

Module 5 (Working with SQL Server and the Entity Framework Core)

Clip 2 (Installing the Entity Framework)

See Install SQL Server on a Mac if you are moving through the course using Visual Studio for the MAC. From user db:

Once installed, take a note of your database user name (usually 'sa') and password.

It is very smooth. I am using DBBeaver which is also explained in the article above and I find it great.

Following Scott's class here, where he sets database connection string in appsettings.json to his local DB instance in Windows, you can just use this connection string:

"ConnectionStrings": {
    "OdeToFoodDb":"Server=localhost,1433;Database=OdeToFood;User Id=sa; Password=your-password"
}

, then replace 'your-password' with your real password you choose when installing the SQL server image in docker container.

It is very simple and smooth experience.

Clip 4 (Using the Entity Framework Tools)

Starting in 3.0, the dotnet ef command-line tool is no longer included in the .NET Core SDK. Before you can execute EF Core migration or scaffolding commands, you’ll have to install this package as either a global or local tool. To install the latest version as a global tool, use the following command:

dotnet tool install --global dotnet-ef

Module 7 (Integrating Client-side JavaScript and CSS)

Implementing an API Controller

If you aren't using Visual Studio, the scaffolding shown in this clip is something you can also achieve with the dotnet-aspnet-codegenerator tool discussed in module 3. The command would look like:

dotnet aspnet-codegenerator controller -api -name RestaurantsController
    --model OdeToFood.Core.Restaurant --dataContext OdeToFood.Data.OdeToFoodDbContext 

Note the -api switch uses a single dash.

Changes to routing and services

In ASP.NET Core 3.0+, you can bring in fine grained services to support Razor pages and controllers. You don't need to bring in the entire MVC framework. To use Razor pages and API controllers, for example, you'd need to have the following two method calls inside the ConfigureServices method of Startup.cs.

// for aspnetcore3.0+

services.AddRazorPages();
services.AddControllers();

Routing is also a bit different, and more granular in 3.0. You'll need to the following code at the bottom of the Configure method in Startup.cs for 3.x:

app.UseRouting();            
app.UseEndpoints(e =>
{
    e.MapRazorPages();
    e.MapControllers();
});

odetofood's People

Contributors

odetocode avatar ameyer117 avatar berkansasmaz avatar davidecastronovo avatar emw-ghertner avatar gabrielizalo avatar dependabot[bot] avatar ulfvins avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.