Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 25, 2021 05:09 pm GMT

C Web Applications

Clients and Servers Terminology

  • Client: A computer program that sends a request to another program for data or services (e.g., a web browser is a client that sends requests to a web server).
  • ServerorWeb Server: A computer program or device that uses HTTP to distribute information to a client.
  • Internet Protocol (IP) Address: A set of numbers separated by periods that uniquely identifies a device on the Internet.
  • Port number: Part of the addressing information used to identify the sender/receiver of requests at an IP address (e.g., 43 is the port number with this IP address: 198.185.159.145:43).
  • Internet Service Provider (ISP): A company that provides access to the Internet and assigns an IP address to the connecting device.
  • Hypertext Transfer Protocol (HTTP): A protocol that defines how requests are formatted, transmitted and processed between web clients and web servers.
  • Domain Naming System (DNS) Servers: The "address book" of the Internet; servers that maintain all domain names and translate them to Internet Protocol (IP) addresses.
  • Web Resource: The target of a web address; Examples of web resources include files, documents, images, videos, stylesheets, scripts.

Additional Resources

To further explore any of these concepts, visit the following articles linked in this lesson:

Uniform Resource Locator Terminology

  • Uniform Resource Identifier (URI)/Uniform Resource Locator (URL): The web address which specifies the location of the requested web resources.
  • Scheme: The part of the URL that indicates the protocol to be used in communication (e.g.http://).
  • Host: The part of the URL that contains the domain name.
  • Path: The part of the URL that contains the resource name.
  • Query string: An optional part of a URL that contains parameters for querying a database; begins with the?symbol; often used in a search request.
  • Fragment: An optional part of a URL that contains details for where the browser should display the information (e.g. on a particulardiv).

Additional Resources

Introduction to ASP.NET Core

ASP.NET Core MVC: A Model-View-Controller framework based on C#.

Server-side framework: An application that runs on a server, not in a client such as a browser.

.NET has three different implementations:

  • .NET Framework
  • .NET Core
  • Xamarin with Mono

Server-Side Rendering Terminology

  • Server-side application: An application that uses a server to serve content to a client.
  • Client: Usually a web browser but can be anything that facilitates interaction with the web.
  • Server: A machine that contains resources (like web pages and files).
  • HTTP response: When a server responds to a client's request via HTTP.
  • HTTP request: When a client such as a browser makes a request to a client.
  • DNS server: A server that looks up an IP address by resolving a domain name.
  • Domain name: The name we type in to go to a specific webpage.
  • IP address: Short for internet protocol. The actual numerical address where a site's content lives.
  • Request-response loop: Ongoing communication between a client and a server.
  • Client-side: When content for an application is served through a client like a browser instead of a server. The server is contacted once and all content for a site is provided. JavaScript applications are often client-side.

MVC Pattern

ASP.NET MVC is aserver-sideMVCframework.

TheMVCinASP.NET MVCstands forModel-View-Controller, which consists of the following:

  • Themodelrepresents data.
  • Theviewis the part of the application the user sees.
  • Thecontrolleracts as a bridge between models and views.

Constructing and Configuring an ASP.NET Core Project

Sample.csprojFile

ProjectName/ProjectName.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">  <PropertyGroup>    <TargetFramework>net5.0</TargetFramework>  </PropertyGroup></Project>

SampleStartup.csFile

ProjectName/Startup.cs

using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Hosting;using Microsoft.AspNetCore.Http;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;namespace ProjectName{  public class Startup  {    public Startup(IWebHostEnvironment env)    {      var builder = new ConfigurationBuilder()          .SetBasePath(env.ContentRootPath)          .AddEnvironmentVariables();      Configuration = builder.Build();    }    public IConfigurationRoot Configuration { get; }    public void ConfigureServices(IServiceCollection services)    {      services.AddMvc();    }    public void Configure(IApplicationBuilder app)    {      app.UseRouting();      app.UseEndpoints(routes =>      {        routes.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");      });      app.Run(async (context) =>      {        await context.Response.WriteAsync("Hello World!");      });    }  }}

SampleProgram.csFile

ProjectName/Program.cs

using System.IO;using Microsoft.AspNetCore.Hosting;namespace ProjectName{  public class Program  {    public static void Main(string[] args)    {      var host = new WebHostBuilder()        .UseKestrel()        .UseContentRoot(Directory.GetCurrentDirectory())        .UseIISIntegration()        .UseStartup<Startup>()        .Build();      host.Run();    }  }}

Building and Running an ASP.NET Core MVC Web Application

MSBuild: Also known as Microsoft Build Engine or Microsoft Build Tools. It turns code in a project directory into a cohesive application. Run the following to build:

> dotnet build

After restoring (dotnet restore) and building, run a .NET application with the following command in the root directory of the project:

> dotnet run

Navigate to http://localhost:5000 to see the running .NET application.

The.gitignorein our .NET projects should include the following:

.gitignore

obj/bin/

Adding a Watcher

Use a file watcher so the server doesn't need to be restarted whenever code is changed:

dotnet watch run

Introduction to Controllers, Routes and URLs

Sample Controller

FriendLetter/Controllers/HomeController.cs

using Microsoft.AspNetCore.Mvc;namespace FriendLetter.Controllers{  public class HomeController : Controller  {    public string Hello() { return "Hello friend!"; }    public string Goodbye() { return "Goodbye friend."; }  }}

Custom URL Paths

Route decorator: Provides additional information to a route we define. The syntax looks like this:

[Route("/name-of-route-goes-here")]

Root path: The home page for our site. We can use a route decorator to specify a home page:

[Route("/")]

Creating and Using Views

  • Views in .NET use the.cshtmlextension.
  • TheView()method has built-in functionality to locate views by name:

    • Because views shouldalwaysreside in aViewsdirectory,View()first locates theViewsdirectory in the production project.
    • Then the method looks for a subdirectory with a name that matches the controller name.
    • Once in the subdirectory, the method then looks for a file that corresponds with the controller's route name (not the route decorator).

    Creating a Basic Model

    Sample Model

    • Models always reside in aModelssubdirectory of the production project.

    ProjectName/Models/ClassName.cs

    namespace ProjectName.Models{  public class ClassName  {  }}

    Dynamic Views with Razor View Engine

    Model binding: Passing data from one part of an application to another.

    Razor syntax looks like this:

    @Model.PropertyName

    We need to pass the model in via theView()method so that the view has access to it:

    return View(nameOfModel);

    Using Forms with MVC

    Sample Form

    We add forms to a route like this:

    [Route("/form")]public ActionResult Form() { return View(); }

    A form generally looks something like this:

    FriendLetter/Views/Home/Form.cshtml

    <!DOCTYPE html><html>  <head>    <meta charset='utf-8'>    <title>Create a Custom Postcard!</title>    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">  </head>  <body>    <h1>Fill in your name and your friend's name to create your custom postcard!</h1>    <form action="/postcard" method="post">     <label for="sender">Sender's Name</label>     <input id="sender" name="sender" type="text">     <label for="recipient">Recipient's Name</label>     <input id="recipient" name="recipient" type="text">     <button type="submit">Go!</button>    </form>  </body></html>

    Forms have a<form>tag with anactionandmethodThis tells ASP.NET Core MVCwhereto submit info provided through this form.This attribute must be set to the path of another route in our controller.

    Debugging Views

    Sometimes we have written a good program that compiles nicely. We build the project, run the server, and navigate to our app. At some point while navigating through our pages, we get an error and a page isn't returned. This generally results in a 500 server error message in the browser. (We'll cover server messages later.) Unfortunately, this vague message isn't helpful for debugging our code.

    InStartup.cs, we can add a service that will provide a more detailed error message when a Razor page fails to load due to a server error. Within theConfigure()method - the same method that declaresapp.UseMvc()- add a new line of code:

    Startup.cs

    ...    public void Configure(IApplicationBuilder app)    {        app.UseDeveloperExceptionPage();  //This is the new line of code        ...

    This will produce a friendly error report when Razor fails to load.


Original Link: https://dev.to/saoud/c-web-applications-48en

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To