Разработка бэкенд веб-API с использованием C#: пошаговый учебник

ASP.NET Core Developer

Данная специализация отличается от предыдущей тем, что использует более продвинутую платформу — .NET Core, которая вобрала в себя все самое лучшее с .NET и существенно расширила ее возможности. От предшественницы .NET Core отличается:

  • открытым исходным кодом — любой желающий может просмотреть код, лежащий в основе платформы;
  • кроссплатформенностью — теперь приложения могут без проблем разрабатываться и запускаться не только на Windows, но также на Linux и macOS;
  • модульностью;
  • возможностью использования облачных технологий;
  • другими нововведениями.

Качественное преобразование платформы дало мощный толчок разработке на .NET и открыло массу возможностей перед разработчиками.

Давайте рассмотрим стек технологий ASP.NET Core девелопера. На самом деле он очень похож на стек предыдущего специалиста, правда там добавляется частичка “Core” (о преимуществах которой мы уже рассказали):

  • NET Core (для изучения пригодятся курсы уровня Essential и Advanced от ITVDN);
  • NET Core Web API (ссылка на курс);
  • NET Core MVC (ссылка);
  • Entity Framework Core (ссылка).

Однако, важно подметить еще одну технологию, которая полезна для ASP.NET Core разработчика — ASP.NET Core SignalR. Это библиотека с открытым исходным кодом, позволяющая создавать клиент-серверные приложения, работающие в режиме реального времени, такие как: чаты, видеоконференции, игровые приложения, приложения для мониторинга данных и другие (курс от ITVDN)

.NET Core разработка набирает обороты и все больше решений концентрируется именно вокруг “кора”

Поэтому, если вы желаете работать с передовыми веб-технологиями от Microsoft, лучше обратите внимание именно на специальность .NET Core

Структура проекта

Созданный проект изначально упорядочен. Его структура показана в окне Solution Explorer (с англ. «обозреватель решений»):

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:8645",
      "sslPort": 44311
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "mytest": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Код файла launchSettings.json описывает локальный сервер и содержит номер порта для работы сайта. Если запустить проект с помощью кнопки IIS Express, откроется пустая тестовая страница в браузере по адресу, прописанному в этом коде.

Файл appsettings.json служит для описания самого проекта. По умолчанию выбран тип проекта Information, но, если вы занимаетесь отладкой, то можете прописать Debug:

{
  "Logging": {
    "LogLevel": {
      "Default": "Debug",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

Далее в структуре сайта отображен класс program.cs. Любое приложение C# должно иметь точку входа main и, если мы раскроем папку класса, то найдем как раз эту команду. Код этого файла по умолчанию выглядит так:

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace mytest
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
}

С функции начинается запуск нашего приложения, срабатывает функция , создающая сам веб-хост, запускающая все классы и контроллеры проекта.

Класс Startup.cs служит для дополнительных настроек, таких как, например, отслеживания URL-адресов. Пока вы работаете  в режиме отладки, функция IsDevelopment будет возвращать значение true, благодаря чему будут отображаться все ошибки проекта:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace mytest
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
            app.UseHttpsRedirection();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Index}/{id?}");
            });
        }
    }
}

Когда ваш сайт будет готов к публикации, нужно изменить его свойства и включить другой режим, например, Production. Для этого в окне Explorer Solution выделите основную папку и нажмите ALT+Enter.

Выделите раздел Debug и в разделе переменных окружения () измените значение Development на Production. В этом случае функция будет возвращать значение и результатом возможной ошибки будет страница 404.

How It Works

Your server sends some data to the visitor’s browser in the form of a cookie. The browser may accept the cookie. If it does, it is stored as a plain text record on the visitor’s hard drive. Now, when the visitor arrives at another page on your site, the cookie is available for retrieval. Once retrieved, your server knows/remembers what was stored.

Cookies are a plain text data record of 5 variable-length fields −

  • Expires − This shows date the cookie will expire. If this is blank, the cookie will expire when the visitor quits the browser.

  • Domain − This shows domain name of your site.

  • Path − This shows path to the directory or web page that set the cookie. This may be blank if you want to retrieve the cookie from any directory or page.

  • Secure − If this field contains the word «secure» then the cookie may only be retrieved with a secure server. If this field is blank, no such restriction exists.

  • Name = Value − Cookies are set and retrieved in the form of key and value pairs.

Примеры загрузки файлов

Чтобы загрузить файл, HTML форма должна ENCTYPE набор атрибутов длямультисекционного / form-данные.тег ввода с типом файла создаст кнопку «Обзор».

<html>
<body>
   <form enctype="multipart/form-data" 
            action="/cgi-bin/cpp_uploadfile.cgi" 
            method="post">
   <p>文件:<input type="file" name="userfile" /></p>
   <p><input type="submit" value="上传" /></p>
   </form>
</body>
</html>

Результаты этого кода является следующий вид:

Примечание: Приведенный выше пример был намеренно отключен в сохраненные на наших серверах , чтобы загрузить файлы.Вы можете попробовать приведенный выше код на вашем сервере.

Ниже используются для обработкиcpp_uploadfile.cpp сценария загрузки файлов:

#include <iostream>
#include <vector>  
#include <string>  
#include <stdio.h>  
#include <stdlib.h> 

#include <cgicc/CgiDefs.h> 
#include <cgicc/Cgicc.h> 
#include <cgicc/HTTPHTMLHeader.h> 
#include <cgicc/HTMLClasses.h>

using namespace std;
using namespace cgicc;

int main ()
{
   Cgicc cgi;

   cout << "Content-type:text/html\r\n\r\n";
   cout << "<html>\n";
   cout << "<head>\n";
   cout << "<title>CGI 中的文件上传</title>\n";
   cout << "</head>\n";
   cout << "<body>\n";

   // 获取要被上传的文件列表
   const_file_iterator file = cgi.getFile("userfile");
   if(file != cgi.getFiles().end()) {
      // 在 cout 中发送数据类型
      cout << HTTPContentHeader(file->getDataType());
      // 在 cout 中写入内容
      file->writeToStream(cout);
   }
   cout << "<文件上传成功>\n";
   cout << "</body>\n";
   cout << "</html>\n";
   
   return 0;
}

Приведенный выше пример записи вCOUT поток, но вы можете открыть файловый поток, и содержимое загруженного файла в файл на целевом местоположении.

Предыдущий: многопоточность C ++
Далее: C ++ STL Учебное пособие

Первая программа CGI

Рассмотрим следующую программу C ++:

#include <iostream>
using namespace std;
 
int main ()
{
    
   cout << "Content-type:text/html\r\n\r\n";
   cout << "<html>\n";
   cout << "<head>\n";
   cout << "<title>Hello World - 第一个 CGI 程序</title>\n";
   cout << "</head>\n";
   cout << "<body>\n";
   cout << "<h2>Hello World! 这是我的第一个 CGI 程序</h2>\n";
   cout << "</body>\n";
   cout << "</html>\n";
   
   return 0;
}

Обобщение предыдущего кода, исполняемый файл с именем cplusplus.cgi, и этот файл сохраняется в / Var / WWW / CGI-BIN каталога. Перед запуском программы CGI, пожалуйста , используйтеCHMOD 755 cplusplus.cgi команду UNIX, чтобы изменить режим файла, убедитесь , что файл является исполняемым. Доступ исполняемый файл, вы увидите следующий вывод:

ASP.NET Core MVC 2 с примерами на C# для профессионалов. Адам Фримен

Книга содержит подробное описание функций и возможностей Core MVC. Версия позволяет программистам создавать приложения, оптимизированные под виртуальное облако и мобильные устройства на основе платформы .NET. Автор делится собственными секретами, как использовать ASP.NET Core MVC на максимум.

Достоинства:

  • текст книги полностью соответствует названию;
  • весь материал крайне полезен;
  • развернутые ответы на вопросы, но без лишней воды;
  • хороший, неиспорченный перевод (что большая редкость);
  • удобная структура текста и стиль написания;
  • хорошее качество книги.

Недостатки:

книга может быстро потерять свою актуальность, так как технология APS.NET достаточно быстро развивается.

Hello World: How to create an ASP.NET web app

Now, let’s get hands-on and write your first . For this example, we’ll use Razor Pages and .Net Core CLI as these are the default tools. You’ll also need .NET Core 3.1 SDK or later for everything to work properly.

Create a project

Open your command shell, and enter the following command:

This will create a new web app, indicated by the parameter.

The parameter creates a directory named with all the source files for our app.

Trust the development certificate

Now enter:

This sets your computer to trust the HTTPS development certificate. Without this step, later commands will be blocked.

Run the app

Next, enter:

This selects the web app project created in step 1, then tells .NET to run it.

Once the command shell tells you it has started, copy the following into your browser bar: .

Edit Razor Page

Open and modify the text to say:

Afterward, your file should look like this:

Once you’re done, save the file and refresh your browser to the same IP. You’ll see a nice welcome message!

How It Works

The visitor’s browser receives a cookie from your server. A cookie may be accepted.

If so, it’s kept on the visitor’s hard disk as plain text. The cookie is now retrievable when the visitor visits another page.

Your server side remembers what’s saved once retrieved.

Cookies are a plain text data record of 5 variable-length fields −

Expires − The cookie’s expiration date. If blank, the cookie expires when the visitor closes the browser.

Domain − This displays your website’s domain.

Path − This indicates the directory or web page from which the cookie was set. This may be left blank if the cookie is to be retrieved from any directory or page.

Secure − If this field includes the term “secure,” only a secure server may obtain the cookie. If this field is empty, there is no such limitation.

Name = Value −Setting and retrieving cookies involves key-value pairs.

Prerequisites

First of all, as we are working with C#, you need to use Microsoft Visual Studio (you can get it at the official Microsoft website).

Also, you will need to enable IIS (Internet Information Services):

  • Open Control Panel in Windows 10, click Programs, then find the «Programs and Features» section and click «Turn Windows features on or off».

  • Here, find the Internet Information Services. Click the + icon in front of it to expand all the available options under it. You can find the FTP Server, Web Management Tools, and World Wide Web Services. Now enable the Web Management Tools. Click OK and the selected feature (or features) will be added and applied to your Windows.

Step 1: Create a New Project

Open Microsoft Visual Studio and create a new project (File -> New -> Project). Select the «Installed» Templates, select Visual C#, then select Web. In the list of available templates, select ASP.NET Web Application (.NET Framework). Give your project a name (for my demo, I put «webapi»), then click OK.

In the next modal dialog, you may choose any suitable template. Let’s select Web API, so it will prepare all the basic, initial files for the project. Click OK.

Done. Now you can browse the generated folders and files in the Solution Explorer. There are application configs, help page data, a few controllers, fonts, and CSS and JS files.

Caching WebServices

Often a WebService will return the same results over multiple calls, so it
makes sense to cache the information to speed things up a little. Doing so in
ASP.NET is as simple as adding a attribute to your
WebMethod:

C#

public ClientData[] GetClientData(int Number)
{

The CacheDuration attribute specifies the length of time in seconds that the
method should cache the results. Within that time all responses from the
WebMethod will be the same.

You can also specify the using a constant member variable in your class:

C#

private const int CacheTime = 30;	


public ClientData[] GetClientData(int Number)
{

Примеры работы с ASP.NET

Вариант простейшего приложения

Код для создания простейшего веб-приложения в ASP.NET с использованием фреймворка MVC может выглядеть, например, так:

using System.Web.Mvc;
namespace MyWebApp.Controllers
{
    public class HomeController : Controller
    {
        // Отображение домашней страницы
        public ActionResult Index()
        {
            return View();
        }
        // Обработка информации, введенной в форму
        
        public ActionResult FormSubmit(string name, string email)
        {
            // Действия с данными
            return View("FormSubmitted");
        }
    }
}

Мы добавили , который содержит два действия:

  • для отображения домашней страницы;
  • и для обработки данных из формы.

Для отображения представлений (Views)
Интерфейс, через который пользователь взаимодействует с системой. применяется фреймворк MVC. Представление для действия может выглядеть так:

<!DOCTYPE html>

<html>
<head>
    <meta charset="utf-8" />
    <title>Демонстрация</title>
</head>
<body>
    <h1>Вас приветствует Highload Today!</h1>
    <form action="/Home/FormSubmit" method="post">
        <label for="name">Имя:</label>
        <input type="text" name="name" id="name" required />
        <label for="email">E-mail:</label>
        <input type="email" name="email" id="email" required />
        <button type="submit">Отправить</button>
    </form>
</body>
</html>

Результатом будет простая HTML-страница с формой для ввода имени и адреса электронной почты:

Когда пользователь отправляет форму, данные отправляются на действие контроллера .

Представление для действия выглядит как простое сообщение, которое отображается после успешной отправки формы:

<!DOCTYPE html>

<html>
<head>
    <meta charset="utf-8" />
    <title>Форма отправлена</title>
</head>
<body>
    <h1>Спасибо за отправку формы!</h1>
</body>
</html>

Результат:

Пример использования модели Razor

Cинтаксис Razor впервые появился в ASP.NET MVC 3 и с тех пор стал основным синтаксисом для создания представлений в ASP.NET. Представления с использованием Razor должны выглядеть как HTML-страницы, но с возможностью добавлять динамические элементы (циклы, условные выражения и т.д).

Razor позволяет разработчикам легко создавать HTML-страницы, используя C# или VB.NET, и добавлять логику на стороне сервера в представлениях.

Пример создания HTML-страницы с использованием Razor: 

<!DOCTYPE html>

<html>
    <head>
        <title>Пример Razor-страницы</title>
    </head>
    <body>
        @if (DateTime.Now.Hour < 12) {
            <p>Доброе утро!</p>
        } else {
            <p>Добрый день!</p>
        }
    </body>
</html>

В этом примере кода условное выражение используется для вывода сообщения «Доброе утро!» или «Добрый день!», в зависимости от текущего времени. Код C# расположен внутри блока и автоматически интерпретируется и преобразуется в соответствующий HTML-код.

Пример подключения к базе данных

Рассмотрим пример, где создается класс , который содержит метод для выполнения запроса к базе данных и получения данных из столбца таблицы . Для подключения к базе данных используется класс из пространства имен .

Следующий код на C# демонстрирует, как ASP.NET позволяет легко подключаться к базам данных и работать с ними в коде приложения:

using System.Data.SqlClient;

namespace MyWebApp.Models
{
    public class MyModel
    {
        private readonly string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;";
        public string GetData()
        {
            string result = "";
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                connection.Open();
                string query = "SELECT * FROM MyTable";
                using (SqlCommand command = new SqlCommand(query, connection))
                {
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            result += reader.ToString() + "\n";
                        }
                    }
                }
            }
            return result;
        }
    }
}

Насколько быстро работает ASP.NET

Скорость работы ASP.NET зависит от ряда факторов. Среди них конкретная реализация приложения, конфигурация сервера, размер базы данных, объем трафика и т. д. При этом на сегодняшний день ASP.NET Core позиционируется как один из самых быстрых веб-фреймворков.

За счет чего это происходит?

  • При старте приложения .NET-код компилируется в нативный код машинного языка, что позволяет ускорить загрузку и выполнение приложения. Этот процесс называется JIT-компиляция.
  • ASP.NET позволяет кэшировать данные, что снижает время доступа к ним и повышает производительность приложений.
  • ASP.NET задействует механизмы оптимизации запросов к базе данных. Это уменьшает количество обращений к базе данных и ускоряет выполнение запросов. Асинхронные операции и обработка запросов эффективно сказываются на использовании ресурсов сервера и дают возможность обрабатывать большое количество запросов одновременно.
  • Среди инструментов ASP.NET есть такой инструмент для оптимизации памяти, как сборщик мусора. Он позволяет уменьшить нагрузку на систему и улучшить производительность.

HTML5, CSS3, JavaScript

Изучение веб-разработки для .NET девелопера начинается с изучения базовых веб-технологий, а именно — известной триады HTML, CSS и JavaScript.

HTML и CSS — это фундаментальные технологии, которые формируют внешний вид веб-страниц. Язык гипертекстовой разметки HTML позволяет создать разметку (каркас) любой страницы в интернете, а язык стилей CSS всячески преображает созданный костяк сайта, принося жизнь HTML-структуре и делая страницу привлекательной и эффектной.

JavaScript — язык программирования, который используется для реализации клиентской логики в веб-приложениях. Благодаря JS можно: вносить изменения в разметку сайта динамически, реализовывать взаимодействие с пользователями, анимировать изображения, осуществлять валидацию форм и многое другое. Это классический язык, используемый каждым FrontEnd разработчиком.

HTML и CSS учатся легко — да и знать нужно только базовые моменты. JavaScript также не составит проблем в освоении, так как многие принципы кодинга схожи с теми, которые вы к этому моменту пройдете по C#. JS придется выучить более основательно, чем HTML и CSS. В изучении данной триады помогут курсы: “HTML5 & CSS3 Starter”, “JavaScript Essential”, “JavaScript Advanced”.

Web Browsing

To understand CGI, consider what happens when we click a hyperlink to visit a website.

The HTTP web server contacts the browser and requests the URL (filename). If it finds the requested file, the web server sends it to the browser; otherwise, it provides an error message.

The response from the web server is read by the web browser, which shows either the file that was sent or an error message.

The HTTP server may be adjusted to not send back a requested file from a specified directory.

Instead, it’s executed as a program and transmitted to your browser.

CGI is a common protocol that allows web applications to connect to Web servers and clients side.

Write CGI scripts in Python, PERL, Shell, C, or C++.

Benefits of C# for Web Development

More than 30% of developers regularly use C# for their websites and web apps. Why is this?

  1. C# has a vast library that provides a higher level of functionality than other programming languages.
  2. If your business works with other Microsoft technologies, it has great integration capabilities.
  3. The overall system is accessible and flexible, making it a user-friendly language to work with.
  4. For developers, it might be nice to know that native and manage code blocks are supported by C#.
  5. It is a cross-platform and object-oriented language, which is attractive for businesses that use different platforms and web design concepts. 

C# is a programming language that can serve any company’s purpose with their web development project

Fundamentals of C# Web Development

Developers built C# as a simple, object-oriented programming language, with the idea that it would support software components. 

C# is designed for Common Language Infrastructure (CLI), which consists of the executable code and runtime environment that allows different architectures and wireframes.

Read this: ‘4 Benefits of Annotated Wireframes for Mobile Apps’

To compete with other programming languages, the goal of C# for developers was to make programming easy to learn and develop solutions faster.

The programming language offers tools and systems that are all supported by Microsoft. 

It was also developed to support updated functionalities for different software activities and enable higher productivity in web apps. 

веб-браузер

Чтобы лучше понять концепцию CGI, давайте нажмите на гиперссылку, просматривать определенную страницу или URL, и посмотреть, что происходит.

  • Ваш браузер ссылки на веб-сервере HTTP и запрашивает URL, то есть имя файла.
  • Веб-сервер разрешает URL, и найти имя файла. Если вы нашли требуемый файл, веб-сервер будет посылать файл обратно в браузер, в противном случае отправить сообщение об ошибке, указывающее, что вы спрашиваете неправильный файл.
  • Веб-браузер, чтобы получить ответ от веб-сервера, а также на основании полученного ответа, чтобы отобразить файл или сообщение об ошибке.

Тем не менее, таким образом, чтобы создать сервер HTTP, независимо от того, когда запросить каталог файлов, сервер HTTP, не отправляет обратно файл, но в форме выполнения программы и реализации вывода сгенерированного отправляется обратно в окне браузера вне.

Common Gateway Interface (CGI), чтобы сделать приложение (так называемые программы CGI или CGI-скрипты) для работы с Web-серверы и клиенты взаимодействуют стандартные протоколы. Эти программы CGI можно использовать Python, Perl, Shell, C или C ++, и т.д., чтобы подготовиться.

WPF/UWP (Desktop) Developer


WPF/UWP (Desktop) Developer

Последней идет специальность разработчика настольных приложений. Сейчас она менее популярна, чем веб-разработка — тем не менее спрос на данных специалистов есть и зарплаты не сильно уступают тем, кто программирует для веба.

Если учесть, что подавляющее большинство заказчиков и обычных пользователей использует операционную систему Windows, а также то, что .NET имеет прекрасный инструментарий разработки под эту ОС, можно сделать вывод — .NET разработчики настольных приложений имеют массу удобств и инструментов для создания целевого софта. Давайте же их рассмотрим.

WPF

Windows Presentation Foundation — платформа для создания клиентских десктопных приложений, поддерживающая большой набор компонентов.

Пройдя курс от ITVDN, посвященный WPF (начальный уровень), вы получите необходимые базовые навыки для создания desktop-приложений для Windows, которые могут использовать ваш авторский дизайн, поддерживать несколько языков интерфейса и одинаково хорошо отображаться как на дисплеях с высоким разрешением, так и на планшетных ПК.

Углубленный курс предусматривает такие темы, как: привязка и шаблоны данных; работа с документами, мультимедиа и пользовательскими элементами; анимация и 3D графика; применение паттерна MVVM (Model-View-ViewModel) в разработке приложений. Данный курс поможет вам создавать сложные desktop-приложения.

UWP

Universal Windows Platform — платформа для создания приложений под любое устройство с установленной ОС Windows 10 на нем. Предоставляет очень гибкий и многофункциональный инструментарий, который дарит массу возможностей и удобностей разработчику.

Также, важно владеть и таким инструментом, как UWP Community Toolkiit. Это набор вспомогательных функций, пользовательских элементов управления и служб, который позволит углубить ваши познания UWP и создавать более продуманный, комплексный и качественный программный продукт

Весь необходимый багаж знаний можно найти в базовом и продвинутом курсе на ITVDN.

Заключение

В данной статье мы рассказали о путеводителе по .NET разработке, который предлагает образовательная платформа ITVDN. Если вас заинтересовало обучение у нас по предложенной нами программе, ждем ваших заявок! Для более детального знакомства с программой по специальности .NET Developer оставляем соответствующую ссылку.

Успехов в освоении программирования и информационных технологий!

Возможно вам будет интересна подборка Youtube-каналы для Frontend-разработчика.

Roadmap для .NET разработчика

What is CGI?

The CGI stands for Common Gateway Interface, a set of standards describing how the web server and a custom script share information.

The NCSA is in charge of keeping the CGI specs up to date, and this is how the NCSA defines CGI:

The current version is CGI/1.1, and CGI/1.2 is in progress.

Please enable JavaScript

Asset Management System Project in Django with Source Code | Django Projects with Source Code

Most server root folders have a cgi-bin directory.

Scripts in the cgi-bin directory has file executable permissions, but files outside the directory may not.

A CGI script may request SERVER PROTOCOL and REMOTE HOST as input variables.

Инструменты для работы с C#

Чтобы работать с C#, вам понадобятся следующие инструменты.

Visual Studio — среда разработки, созданная специально для C#. На этой площадке можно писать код и разворачивать приложения. Встроенный функционал проверяет код и подсказывает, если вы совершили ошибку, выдает справочную информацию, если вы что-то забыли.

Так выглядит интерфейс среды разработки Visual Studio. Источник

ASP.NET — фреймворк для веб-разработки на C#, который позволяет быстро и просто связывать серверную часть приложения с клиентской.

WPF (Windows Presentation Foundation) — софт для программирования графических интерфейсов для разных экранов.

LINQ (Language Integrated Query) — встроенный в C# язык запросов, напоминающий SQL. Помогает работать с данными из разных источников, сортировать и группировать их.

Entity Framework — фреймворк, который позволяет работать с данными как с объектами и использовать для запросов язык LINQ.

Retrieving Cookies

It is easy to retrieve all the set cookies. Cookies are stored in CGI environment variable HTTP_COOKIE and they will have following form.

key1 = value1; key2 = value2; key3 = value3....

Here is an example of how to retrieve cookies.

#include <iostream>
#include <vector>  
#include <string>  
#include <stdio.h>  
#include <stdlib.h> 

#include <cgicc/CgiDefs.h> 
#include <cgicc/Cgicc.h> 
#include <cgicc/HTTPHTMLHeader.h> 
#include <cgicc/HTMLClasses.h>

using namespace std;
using namespace cgicc;

int main () {
   Cgicc cgi;
   const_cookie_iterator cci;

   cout << "Content-type:text/html\r\n\r\n";
   cout << "<html>\n";
   cout << "<head>\n";
   cout << "<title>Cookies in CGI</title>\n";
   cout << "</head>\n";
   cout << "<body>\n";
   cout << "<table border = \"0\" cellspacing = \"2\">";
   
   // get environment variables
   const CgiEnvironment& env = cgi.getEnvironment();

   for( cci = env.getCookieList().begin();
   cci != env.getCookieList().end(); 
   ++cci ) {
      cout << "<tr><td>" << cci->getName() << "</td><td>";
      cout << cci->getValue();                                 
      cout << "</td></tr>\n";
   }
   
   cout << "</table><\n";
   cout << "<br/>\n";
   cout << "</body>\n";
   cout << "</html>\n";
   
   return 0;
}

Now, compile above program to produce getcookies.cgi, and try to get a list of all the cookies available at your computer −

This will produce a list of all the four cookies set in previous section and all other cookies set in your computer −

UserID XYZ 
Password XYZ123 
Domain www.tutorialspoint.com 
Path /perl 

Вводная информация

Согласно W3C: Веб-сервис — это программная система, обеспечивающая совместимое межмашинное взаимодействие через сеть:1.    Он имеет интерфейс, описанный в машинно-обрабатываемом формате (а именно WSDL).2.    Другие системы взаимодействуют с веб-сервисом способом, установленным его описанием, с помощью сообщений SOAP, обычно передаваемых с помощью HTTP с сериализацией XML в сочетании с иными веб-стандартами.

Свойства веб-сервисов:1.    Веб-сервисы работают через любую сеть (Интернет или закрытый Интранет) для выполнения конкретных задач.2.    Задачи, выполняемые веб-сервисом, являются методами или функциями, которые другие приложения могут вызывать и использовать.3.    Запросы/ответы веб-сервиса могут отправляться/приниматься между разными приложениями на разных компьютерах, относящихся к разным предприятиям.

Веб-сервис содержит три основных компонента:1.    Механизм для отыскания и регистрации интереса к сервису2.    Определение входных и выходных параметров сервиса3.    Механизм передачи для обращения к сервису

Веб-сервисы также содержат иные технологии, предоставляющие дополнительные функции, такие как защита, обработка транзакций и другие.

С чего начать изучение C#

Руководство по C# и Visual Studio от Microsoft — упорядоченная официальная документация от компании-разработчика с примерами кода, инструкцией, как создать первое приложение на C#, и учебниками.

Поток C# на Хабре — новости и кейсы от разработчиков.

Поток C# на сайте Metanit — очень понятное объяснение практически всех основных тем с примерами кода

DotNetRu — YouTube-канал на русском с подкастами и докладами с конференций.

Книга Эндрю Стиллмена «Head first C#»  — хорошая книга для начинающих, которая не задавит сложной информацией и даст все необходимое. Дополнить можно справочником по C# Бена и Джозефа Албахари.

Книга Джеффри Рихтера «CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#» — библия C#, в которой описаны все тонкие моменты языка. Будьте осторожны, с нее лучше не начинать, иначе можно испугаться и бросить.

Вывод:

Данная статья показывает стандарты, используемые веб-сервисами, затрагивая базовый механизм реализации.

Рассмотренный здесь пример использует ряд свойств веб-сервисов, перечисленных ниже:•    Автономный: Веб-сервис не требует дополнительных программ:

a.    Сторона клиента: Язык программирования с поддержкой клиента XML/HTML.b.    Сторона сервера: Нужны веб-сервер и сервер SOAP.

•    Слабосвязанный: Клиент и сервер знают только о сообщениях – простой уровень взаимодействия, позволяющий более гибко менять конфигурацию.•    Веб-ориентированный: Веб-сервис публикуется, находится и вызывается через сеть с помощью утвержденных легких интернет-стандартов.•    Независимый от языка и совместимый: Клиент и сервер могут быть реализованы в разных средах и на разных языках.•    Компонуемый: Веб-сервисы могут объединяться с помощью средств потока операций для выполнения высокоуровневых бизнес-функций.•    Динамически связываемый: С помощью UDDI и WSDL можно автоматизировать обнаружение и связывание веб-сервисов.•    Программный доступ: Подход веб-сервисов не предоставляет графический интерфейс пользователя, но работает на командном уровне.•    Оборачивает существующие приложения: Автономные приложения легко объединяются путем реализации веб-сервиса в качестве интерфейса.

Аналогично можно создавать веб-сервисы на C# и вызывать их через клиентское приложение веб-сервиса, написанное на Java.

Заключение

ASP.NET – мощный и гибкий фреймворк для создания веб-приложений и сервисов, который обладает высокой производительностью.

Благодаря различным моделям разработки, программисты могут выбрать оптимальный подход для своих проектов и решать любые поставленные задачи, создавая масштабируемые и высокопроизводительные веб-приложения.

При этом использование платформы ASP.NET может быть сопряжено с рядом трудностей. Например, необходимо уверенное знание C#. Это основной язык для разработки на платформе .NET, и его использование позволяет получить доступ к большинству возможностей .NET Framework и .NET Core.

Также для работы с технологией необходимо:

  • понимание принципов работы клиент-серверных приложений;
  • знание SQL для работы с базами данных;
  • и умение работать с языком запросов LINQ для работы с коллекциями и базами данных в коде приложения.

В заключение мы рекомендуем вам ознакомиться с курсом по ASP.NET Core, где вас научат быстро и просто делать веб-приложения, а также использовать инструментарий платформы:

Понравилась статья? Поделиться с друзьями: