Что такое ASP.NET? Принцип работы и модели разработки

Сергій Бондаренко

Что такое ASP.NET

ASP.NET (Active Server Pages .NET) — это бесплатная веб-платформа, созданная специалистами Microsoft для проектирования интерактивных веб-приложений, которые работают на платформе .NET.

Этот фреймворк предоставляет множество инструментов для разработки веб-приложений, включая:

  • отдельные веб-страницы;
  • веб-службы;
  • управление состоянием;
  • аутентификацию;
  • авторизацию;
  • кэширование;
  • обработку ошибок и многое другое.

История появления ASP.NET

Свое начало платформа ASP.NET берет на заре интернета — в 1990-х годах. Первые веб-страницы сугубо информативными и поэтому статическими. Но довольно быстро возникла необходимость добавлять в них интерактивные элементы. Например, формы для отправки данных на сервер, чаты или корзины для покупок.

Тогда Microsoft начали разрабатывать инструменты для проектирования динамических веб-страниц. Как результат, в 1996 году компания выпустила первую версию Active Server Pages (ASP). Это была серверная платформа для создания динамических веб-страниц на языке скриптов VBScript или JScript.

Сначала первая версия ASP была довольно популярной, но спустя несколько лед устарела и перестала удовлетворять современным (на то время) требованиям веб-разработки. Поэтому в 2000 году Microsoft начали работу над новой версией технологии. Работа над очередным релизом ASP началась с переименования проекта в ASP+.

ASP+ вышел более быстрым и масштабируемым, а также в нем исправили проблемы, связанные с безопасностью, управлением состояния и развертыванием.

Но главным нововведением в ASP+ стала поддержка языка C#, представленного компанией Microsoft в 2000 году. Более того, C# стал основным инструментом создания веб-приложений на платформе .NET.

Начать учить C# можно у наших партнеров — IT-школы Hillel. Базовый курс C# включает 16 занятий и стартует уже в апреле 2023 года.

В 2002 году ASP.NET выпустили вместе с платформой .NET Framework 1.0. Он предоставлял разработчикам мощный инструментарий, включая такие новые инструменты, как:

  • ASP.NET Web Forms;
  • ASP.NET MVC;
  • ASP.NET Web API.

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

Развивая проект ASP.NET, в 2016 году Microsoft выпустила новую версию платформы под названием ASP.NET Core. Разработчики обеспечили более высокую производительность, меньший размер приложения, а также совместимость с разными операционными системами, включая Linux и macOS.

Одно из ключевых изменений в ASP.NET Core — переработка архитектуры и базовых концепций. Вместо использования Application Domain, ASP.NET Core использует пространства имен и сборки для организации и управления кодом приложения.

Кроме того, ASP.NET Core предоставляет интегрированную поддержку для создания микросервисных приложений и API. Это открывает разработчикам возможность проектирования масштабируемых приложений.

Принцип работы ASP.NET

В основе работы ASP.NET лежит принцип клиент-серверной архитектуры и протокол HTTP:

  1. сначала идет запрос от клиента;
  2. когда пользователь отправляет запрос на веб-сервер, ASP.NET принимает этот запрос и начинает его обработку;
  3. проходит цепочка обработчиков, которые могут выполнять разные задачи, например, проверку авторизации или обработку данных формы;
  4. далее ASP.NET выполняет код на сервере, который может генерировать HTML, CSS, JavaScript и другие данные для отправки обратно клиенту;
  5. после генерации страницы ASP.NET отправляет ее обратно клиенту в виде ответа на его запрос.

Дальше платформа поддерживает состояние между запросами и ответами, такие как использование куков (cookies) или сессий (sessions). Состояние может использоваться, например, для сохранения информации о пользователе, чтобы избежать повторной аутентификации при каждом запросе.

Если возникают ошибки в ходе обработки запроса, ASP.NET может создавать специальную страницу ошибок. Эта страница разработчикам разобраться с ситуацией: понять, что произошло и как исправить ошибку.

Для координации работы с базами данных в ASP.NET используется технология ADO.NET (ActiveX Data Objects .NET), которая является частью .NET Framework.

ASP.NET поддерживает работу с такими базами данных (список не полный, перечислены основные БД):

  • Microsoft SQL Server;
  • Oracle;
  • MySQL;
  • PostgreSQL;
  • SQLite.

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

Это огромное преимущество ADO.NET, потому что так программист может сконцентрироваться на бизнес-логике приложения, а не на особенностях работы с конкретной базой данных.

Научиться работать не только с основами C#, но и системой ASP.NET, включая интеграцию технологии с базами данных, можно на курсе C# Advanced от Hillel.

Модели разработки в ASP.NET

Модели разработки в ASP.NET определяют, как приложение будет организовано.

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

Модели разработки в ASP.NET Core

Ниже рассмотрим основные:

Model-View-Controller

Одна из наиболее распространенных моделей разработки в ASP.NET.

Model-View-Controller (MVC) — это популярный шаблон проектирования, который разделяет приложение на три основных компонента: (1) модель, (2) представление и (3) контроллер:

  • модель содержит данные и логику приложения, которая управляет этими данными;
  • представление определяет, как данные будут отображаться на экране;
  • а контроллер управляет потоком данных между моделью и представлением.

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

Web Forms

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

В Web Forms приложение разрабатывается в виде набора веб-страниц, каждая из которых содержит разметку HTML и код на языке C# или VB.NET.

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

В целом существует тенденция отказа от Web Forms в пользу ASP.NET MVC, которая является более продвинутой и предоставляет лучшие возможности для тестирования и управления HTML-разметкой.

Web API

Web API позволяет создавать RESTful веб-сервисы, которые будут обрабатывать HTTP-запросы и возвращать HTTP-ответы. С помощью Web API можно выполнять форматирование ответов (в JSON, XML и других форматах), конфигурировать маршрутизацию запросов, назначать фильтры действий и многое другое.

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

На курсе C# Advanced изучают много дополнительных технологий для того, чтобы работать с ASP.NET эффективно. В том числе курс включает модуль по Rest и API.

Razor Pages

Появилась в последних версиях ASP.NET. Razor Pages обеспечивает простой и интуитивно понятный подход к созданию веб-страниц.

Она задействует упрощенный шаблон «модель-страница», где каждая страница имеет свою модель, которая содержит данные и логику страницы. Эта модель может быть связана с элементами на странице, такими как формы или кнопки:

Разница между MVC и Razor Page

Blazor

Модель разработки Blazor используется как при создании SPASingle Page Applications-приложений (одностраничники), так для многостраничных продуктов.

В Blazor используется концепция компонентов, которые можно сравнить с пользовательскими элементами управления в других технологиях, таких как WPF и WinForms. Каждый компонент содержит свой логический код и пользовательский интерфейс.

Blazor поддерживает две реализации: (1) Blazor Server и (2) Blazor WebAssembly:

  • В Blazor Server приложение запускается на сервере, а пользовательский интерфейс отображается в браузере с помощью SignalR-технологииSignalR — это библиотека, которая позволяет создавать приложения в режиме реального времени. SignalR может использоваться в разных моделях разработки ASP.NET, включая Web Forms, MVC, Web API и Blazor.. Это позволяет создавать динамические пользовательские интерфейсы, не загружая каждый раз новую страницу.

  • В Blazor WebAssembly приложение компилируется в WebAssembly и выполняется непосредственно в браузере. Это позволяет создавать SPA-приложения, которые могут работать в автономном режиме и не требуют постоянного подключения к серверу.

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

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

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

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

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

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

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

<!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-страница с формой для ввода имени и адреса электронной почты:

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

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

<!DOCTYPE html>

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

Результат:

Больше реальных примеров использования модели MVC на ASP.NET вы сможете увидеть и попробовать написать самостоятельно на курсе C# Advanced от Hillel.

Пример использования модели 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>

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

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

Рассмотрим пример, где создается класс MyModel, который содержит метод GetData для выполнения запроса к базе данных и получения данных из столбца ColumnName таблицы MyTable. Для подключения к базе данных используется класс SqlConnection из пространства имен System.Data.SqlClient.

Следующий код на 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["ColumnName"].ToString() + "\n";
                        }
                    }
                }
            }
            return result;
        }
    }
}

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

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

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

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

Что делают с помощью ASP.NET?

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

  • Веб-сайты. Простые и статические сайты, которые не требуют сложной логики и обработки данных.
  • Веб-приложения. Сложные приложения с высокой степенью логики и обработки данных, которые могут быть использованы для управления бизнес-процессами, продажей товаров или предоставления услуг.
  • Сервисы. Приложения, которые могут быть использованы для обмена данными между различными приложениями и системами.
  • API. С помощью ASP.NET можно создавать API для обмена данными с другими приложениями и службами.
  • Мобильные приложения. ASP.NET также может быть использован для создания мобильных приложений с использованием фреймворка Xamarin. Этот фреймворк позволяет разрабатывать кроссплатформенные нативные приложения для iOS и Android.

Как работает Xamarin

Приходите на курс C# Advanced від Hillel, чтобы научиться разрабатывать все виды программ на ASP.NET.

Преимущества и слабые стороны ASP.NET

У ASP.NET есть такие основные достоинства:

  1. Реализация шаблона ООП. Построенная на модульном подходе ООП, платформа дает возможность разработчикам делить исходный проект на более мелкие части. За счет этого уменьшается требуемый объем кода, снижается время разработки, а, следовательно — стоимость работ.Также серверные элементы управления в подходе ООП — это инкапсулированные объекты, которыми разработчики могут манипулировать с помощью кода для настройки их вида, предоставления данных и реакции на события. Благодаря этому программисты могут не тратить время на написание HTML-разметки низкого уровня (она скрыта). Вместо этого инкапсулированные объекты самостоятельно переписываются в соответствующие HTML-элементы после того, как веб-страница будет отображена.
  2. Хорошая производительность. Благодаря использованию JIT-компиляции, кэширования и асинхронной обработки запросов, приложения, создаваемые на ASP.NET, отличает высокая производительность и отзывчивость.
  3. Универсальность. Поддержка различных моделей разработки  позволяет выбрать наиболее подходящий подход для конкретного проекта. Платформа поддерживает интеграцию с другими продуктами Microsoft, такими как SQL Server, SharePoint и Office. ASP.NET также может быть развернут в облачных сервисах Microsoft Azure.
  4. Уверенная поддержка. ASP.NET может похвастаться большим сообществом разработчиков и обширной документацией «на все случаи жизни». В сети можно найти немало обучающего материалов с примерами кода.

Но у ASP.NET есть и слабые стороны.

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

ASP.NET — это серверная технология, которая генерирует HTML-страницы на стороне сервера, а не клиента.

Поэтому ASP.NET сначала обрабатывает запросы от клиента, потом генерирует страницу на стороне сервера, и только затем отправляет ее клиенту в виде HTML-кода.

Высокий порог входа для работы с ASP.NET может стать настоящей проблемой для новичков, от которых требуется знание языка программирования C# или VB.NET и понимание принципов работы веб-приложений. Но с помошью менторов на курсе C# Basic от Hillel вы сможете освоить технологию гораздо быстрее.

Некоторая избыточность языка C# только усложнит процесс изучения технологии. Номинальная система типов в C# может иногда приводить к тому, что нужно писать больше кода, чем в динамических языках программирования, где система типов структурная.

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

Создание первого проекта в ASP.NET

  1. Перед тем, как приступить к созданию своего первого проекта в ASP.NET, установите инструменты для веб-разработки. Скачайте с официального сайта инсталлятор Visual Studio.
  2. Запустите инсталлятор и дождитесь появления окна настроек установки. Одновременно со средой разработки инсталлятор может установить все необходимые для работы компоненты, включая SQL-сервер, поддержку PHP (если необходимо), модули для Python, компоненты для разработки игр на движке Unity и языковые пакеты. Процесс установки может занять достаточно много времени, так как объем загружаемых данных обычно достигает 10 Гб.
  3. Перезагрузите компьютер и запустите среду разработки Visual Studio.
  4. Чтобы ознакомиться со структурой проекта, создадим тестовый код. Выберите File -> New project (или Create new project, если запускаете первый раз).
  5. Откроется окно, в котором необходимо выбрать тип проекта. Выберите, например, ASP.NET Core.
  6. Дайте название проекту и укажите папку для расположения рабочих файлов. В окне Solution Explorer отобразится структура папок созданного проекта. Рассмотрим ее подробнее.

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

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

  • Папка самого верхнего уровня носит название нашего проекта. Это — основная директория, которая содержит все файлы и прочие папки проекта.
  • Файл Connected Services является графическим интерфейсом для подключения различных служб к разрабатываемому веб-приложению. Например, чтобы подключить облачное хранилище, необходимо перейти по ссылке Add a service dependency и выбрать, скажем, Azure Storage.
  • В папке Dependencies находятся библиотеки и плагины, необходимые для работы создаваемого сайта (например, библиотека Microsoft.AspNetCore.Mvc.Analyzers.dll). В эту папку можно самостоятельно добавлять библиотеки, повышая функциональность веб-приложения.
  • Директория wwwroot содержит стили и скрипты проекта.
  • В папке Properties находятся свойства текущего проекта. В ней может быть файл launchSettings.json:
{
  "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>();
                });
    }
}

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

  • Класс 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 и в разделе переменных окружения (ASPNETCORE_ENVIRONMENT) измените значение Development на Production. В этом случае функция IsDevelopment будет возвращать значение false и результатом возможной ошибки будет страница 404.

Заключение

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

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

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

Изучить и усовершенствовать знания C# вы можете на курсах от Hillel: C# Basic и C# Advanced.

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

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

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

А если хотите пойти дальше и писать не только функционирующий, но и чистый и продуктивный код, посетите курс по алгоритмам и структурам данных от robot_dreams. Обучение стартует уже в апреле 2023 года.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

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

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023