Результати пошуку за запитом: mvc
Легкий старт в ІТ. Знижка на навчання 30%
Автор: Редакція ITVDN
Дорогие друзья!
В связи с карантином у многих из нас появилось свободное время, которое мы вынуждены проводить дома. Лучшее, что мы можем делать сейчас – это обучение и саморазвитие. Карантин закончится и очень важно, чтобы мы вышли из него сильнее и лучше, чем были раньше.
Для всех, кого интересует программирование, мы создаем отличные условия для легкого старта в освоении новых знаний и новой специальности.
С 23 по 30 апреля 2020 года на ITVDN скидка на обучение 30%.
Чему можно научиться на ITVDN
В Каталоге ITVDN более 180 видео курсов по всем языкам программирования и информационным технологиям. И в каждом курсе первый урок в свободном доступе для знакомства с технологией и автором курса. Вы можете изучать все, что хотите в любой последовательности.
Пакет Стартовый – это доступ ко всем курсам и сервисам ITVDN сроком на 3 месяца. Его чаще всего выбирают новички, которые еще не определились со специальностью и хотят попробовать себя в нескольких направлениях, а также программисты, которые хотят изучить новые технологии по своей специальности.
Во время акции стоимость Пакета Стартовый – 35 USD (вместо 49,99 USD)
12 IT специальностей на ITVDN со скидкой 30%
Верстальщик сайтов - 28 USD - 19 курсов на 4 мес.
Frontend Developer - 49 USD - 37 курсов на 6 мес.
JavaScript Developer - 28 USD - 8 курсов на 3 мес.
Angular Developer - 28 USD - 8 курсов на 3 мес.
Python Developer - 35 USD - 13 курсов на 5 мес.
C#/.NET Developer - 56 USD - 50 курсов на 8 мес.
ASP.NET Core Developer - 35 USD - 13 курсов на 5 мес.
ASP.NET MVC Developer - 28 USD - 19 курсов на 4 мес.
Java Developer - 42 USD - 25 курсов на 6 мес.
Android Developer - 28 USD - 14 курсов на 3 мес.
PHP Developer - 28 USD - 15 курсов на 4 мес.
Unity/Game Developer - 28 USD - 19 курсов на 4 мес.
Программы обучения ITVDN разработаны профессионалами и соответствуют требованиям IT компаний к начинающим разработчикам. А система обучения на ITVDN - теория, практика, общение, тестирование и сертификация – позволяет достичь отличных результатов в короткие сроки.
Как проходит обучение по специальности?
Вы смотрите видео уроки
Вы выполняете практические задания к каждому уроку.
Вы учитесь писать код в интерактивном тренажере.
Вы проходите тесты после каждого урока, чтобы проверить, как усвоен материал.
Если что-то осталось не понятым – смотрите видео уроки повторно или обращаетесь за помощью к тренеру.
Вы проходите курс за курсом, изучая все технологии, который должен знать специалист.
После изучения всех обязательных технологий Вы сдаете финальный экзамен по специальности и получаете диплом.
Пусть ваш путь в программирование будет легким и успешным с ITVDN!
Купить подписку по акционной цене
Час вчитися онлайн
Автор: Редакція ITVDN
Дорогие друзья! Чтобы поддержать вас в это не простое время, мы решили сделать большие скидки на все наши пакеты услуг. Изучайте программирование! Это реальная возможность изменить вашу жизнь к лучшему.
С 26 марта по 3 апреля 2020 года действуют специальные цены.
Универсальные пакеты с доступом ко всем курсам:
Стартовый (3 месяца) – 35 USD (вместо 49,99 USD)
Базовый (6 месяцев) – 63 USD (вместо 89,99 USD)
Премиум (12 месяцев) – 119 USD (вместо 169,99 USD)
Пакеты курсов по специальностям:
Java Developer - 42 USD - 25 курсов на 6 мес.
Python Developer - 35 USD - 11 курсов на 5 мес.
C#/.NET Developer - 56 USD - 50 курсов на 8 мес.
ASP.NET Core Developer - 28 USD - 13 курсов на 4 мес.
ASP.NET MVC Developer - 28 USD - 19 курсов на 4 мес.
Верстальщик сайтов - 28 USD - 19 курсов на 4 мес.
Frontend Developer - 49 USD - 36 курсов на 7 мес.
JavaScript Developer - 28 USD - 8 курсов на 3 мес.
Angular Developer - 28 USD - 8 курсов на 3 мес.
PHP Developer - 28 USD - 15 курсов на 4 мес.
Android Developer- 28 USD - 14 курсов на 3 мес.
Unity/Game Developer - 28 USD - 19 курсов на 4 мес.
Программы обучения ITVDN разработаны профессионалами и соответствуют требованиям IT компаний к начинающим разработчикам. А система обучения на ITVDN -теория, практика, общение, тестирование и сертификация – позволяет достичь отличных результатов в короткие сроки.
Как проходит обучение по специальности?
Вы смотрите видео уроки
Вы выполняете практические задания к каждому уроку.
Вы учитесь писать код в интерактивном тренажере.
Вы проходите тесты после каждого урока, чтобы проверить, как усвоен материал.
Если что-то осталось не понятым – смотрите видео уроки повторно или обращаетесь за помощью к тренеру.
Вы проходите курс за курсом, изучая все технологии, который должен знать специалист.
После изучения всех обязательных технологий Вы сдаете финальный экзамен по специальности и получаете диплом.
С чего начать?
Если Вы хотите стать программистом, но еще не определились с выбором специальности, смотрите записи вебинаров из серии «Как стать программистом?».
Самые востребованные специальности по итогам 2019 года – FrontEnd, .NET, Java, Python.
По завершению обучения Вы сможете сдать финальный экзамен и получить Диплом по выбранной специальности. Экзамен будет включать в себя задания и вопросы по всем курсам, которые являются обязательными к изучению.
Берегите себя и Ваших близких. Меняйте Вашу жизнь к лучшему с ITVDN!
Купить подписку по акционной цене.
IT спеціальності за супер ціною
Автор: Редакція ITVDN
Лучшая новость уходящей зимы – на ITVDN снижены цены на все специальности!
Вы можете пройти комплексное обучение с нуля до уровня специалиста и при этом ваши затраты на обучение составят всего 6,5 USD в месяц! Максимальные скидки будут только 2 дня – 20 и 21 февраля!
По какой специальности можно пройти обучение на ITVDN?
Java Developer - 39 USD - 16 курсов на 6 мес.
Python Developer - 32 USD - 11 курсов на 5 мес.
C#/.NET Developer - 52 USD - 50 курсов на 8 мес.
ASP.NET Core Developer - 26 USD - 9 курсов на 4 мес.
ASP.NET MVC Developer - 26 USD - 16 курсов на 4 мес.
Верстальщик сайтов - 26 USD - 18 курсов на 4 мес.
Frontend Developer - 45 USD - 35 курсов на 6 мес.
JavaScript Developer - 26 USD - 8 курсов на 3 мес.
Angular Developer - 26 USD - 8 курсов на 3 мес.
PHP Developer - 26 USD - 12 курсов на 4 мес.
Android Developer- 26 USD - 11 курсов на 3 мес.
Unity/Game Developer - 26 USD - 19 курсов на 4 мес.
Программы обучения ITVDN разработаны профессионалами и соответствуют требованиям IT компаний к начинающим разработчикам. А система обучения на ITVDN -теория, практика, общение, тестирование и сертификация – позволяет достичь отличных результатов в короткие сроки.
Как проходит обучение по специальности?
Вы смотрите видео уроки
Вы выполняете практические задания к каждому уроку.
Вы учитесь писать код в интерактивном тренажере.
Вы проходите тесты после каждого урока, чтобы проверить, как усвоен материал.
Если что-то осталось не понятым – смотрите видео уроки повторно или обращаетесь за помощью к тренеру.
Вы проходите курс за курсом, изучая все технологии, который должен знать специалист.
После изучения всех обязательных технологий Вы сдаете финальный экзамен по специальности и получаете диплом.
С чего начать?
Если Вы хотите стать программистом, но еще не определились с выбором специальности, смотрите записи вебинаров из серии «Как стать программистом?».
Самые востребованные специальности по итогам 2019 года – FrontEnd, .NET, Java, Python.
Внимание! Скидки тают
Акция продлится 7 дней - с 20 по 26 февраля 2020 года, но торопитесь – максимальные скидки будут только 2 дня.
- 20-21 февраля – скидка 35%
- 22-24 февраля – скидка 30%
- 25-26 февраля – скидка 25%
По завершению обучения Вы сможете сдать финальный экзамен и получить Диплом по выбранной специальности. Экзамен будет включать в себя задания и вопросы по всем курсам, которые являются обязательными к изучению.
Меняйте Вашу жизнь к лучшему с ITVDN!
Купить подписку по акционной цене.
.NET Core та C# - технології, за якими майбутнє
Автор: Редакція ITVDN
Я работал с .NET Core около года и сейчас могу сказать, что был очень впечатлен. Поскольку наша компания создает приложения для разработчиков, которые базируются на .NET Core, я ощущаю нас причастными к тому, что сейчас происходит. Каждый день мы общаемся с клиентами, которые уже используют .NET Core в своих разработках. .NET Core быстро завоевывает популярность, и я уже предсказываю огромную потребность в разработчиках на C# и .NET Core в 2018 году.
Согласно индексу программирования TIOBE, C# уже входит в пятерку наиболее популярных языков программирования.
6 вещей, которые стоит знать о C# и .NET Core
Узнайте, почему .NET Core возводит C# в топ списка наиболее популярных языков программирования.
1) Простота в изучении
Если вы уже работали с С, Java или даже JavaScript, синтаксис C# покажется Вам довольно знакомым. Сам синтаксис достаточно прост в понимании и чтении. Исходя из индекса TIOBE, приведенного выше, уже сейчас большинство разработчиков могут легко перейти с Java или C.
В сети существует много онлайн-ресурсов для изучения C#. Большинство из них – бесплатные, другие же можно использовать за умеренную плату.
Pluralsight – Отличный обучающий контент за доступную цену
Microsoft Virtual Academy – Бесплатные видео и оценивание
Microsoft Getting Started with C# - Бесплатные интерактивные туториалы
2) Современные возможности языка
.NET существует на протяжении длительного времени и за последние 15 лет достаточно сильно преобразился и улучшился. На протяжении лет я отмечал такие прекрасные нововведения как MVC, обобщения, LINQ, async/await операторы и многое другое. Как человеку, который лично посвятил себя изучению языка, я рад наблюдать, как он модернизируется. Многое претерпело изменения с появлением .NET Core. Взять тому примером стек технологий ASP.NET. Все эти 15 лет язык C# был с нами, и он продолжает совершенствоваться.
Вот некоторые наиболее примечательные особенности:
Строгая типизация
Качественные библиотеки классов
Асинхронное программирование – шаблон async/await
Сборка мусора, автоматическое управление памятью
LINQ – интегрированный язык запросов
Обобщения – примером List<T>, Dictionary<T, T>
Управление пакетами
Общие бинарные файлы для разных платформ и фреймворков
Простота в использовании фреймворков для создания MVC веб-приложений и REST API.
3) Универсальность: веб, мобильные, серверные, настольные приложения
Одним из наиболее значимых плюсов C# в частности и .NET в целом, я считаю, является его многогранность. Я могу писать программы для ПК, вести веб-разработку, создавать фоновые сервисы или даже мобильные приложения (спасибо Xamarin!). Кроме того, все, что мне нужно знать, дабы скомпоновать все UI-коды вместе (чего я все же стараюсь избегать), это, кроме C#, всего лишь немного JavaScript’а (+ TypeScript). Шаблоны ASP.NET Core в свою очередь при создании клиентских библиотек даже используют макеты Бутстрапа и npm.
Универсальность языка - довольно весомый плюс, так как ваш вклад в его изучение может найти применение в широком спектре возможностей. Ваши навыки очень мультиплатформенные. Если пожелаете, Вы можете легко «перескочить» с разработки веб-приложений на мобильные. Пожалуй, это уникальное отличие от других языков, заточенных только под серверную часть.
Не стоит забывать о первоклассной поддержке Microsoft Azure. Нужно задеплоить проект на облако? Нет ничего проще: сия операция осуществляется всего лишь в пару кликов. Поддержка Docker-контейнеров также присутствует, что значительно упрощает деплой приложений на AWS или другие хостинги на Ваше усмотрение.
4) Качественные инструменты разработчика
Visual Studio всегда считалась одной из лучших сред разработки. Это прекрасный редактор кода, поддерживающий такие фичи, как компиляцию, отладку, профилирование, git-репозиторий, юнит-тестирование и многое другое.
Плюс, за вами всегда остается возможность писать коды для .NET Core в любом текстовом редакторе в виде обычных текстовых файлов. Вы также можете использовать Visual Studio Code на любой ОС в качестве отличного редактора кода. Даже те из нас, кто никогда не желает расставаться с этим Vim или Emacs, могут вести разработку на C#. Можно также установить плагины для Visual Studio и добавлять свои «горячие клавиши».
Вся экосистема .NET изобилует прекрасными инструментами. К примеру, вряд ли я смогу представить жизнь без Resharper`а или JetBrains. Существуют десятки классных инструментов, включая смеси открытого кода и коммерческих продуктов.
5) Обобщение навыков
.NET обладает очень хорошим набором базовых библиотек. В отличие от Node.js, такие простые строковые функции, как LeftPad(), уже встроены. Подобное разнообразие стандартных библиотек значительно уменьшает потребность в сторонних пакетах. Также благодаря вмешательству Microsoft, мы можем использовать такие технологии, как JSON.NET и прочее.
Microsoft обеспечивает качественный набор шаблонов и их реализаций на .NET. К примеру, сервис для работы с данными (Entity Framework) и MVC уже встроены. Большинство разработчиков именно ими и пользуется. Подобный подход значительно упрощает взаимодействие между командами и ускоряет понимание, как проект работает. Благодаря этому, Ваши знания и навыки становятся более универсальными.
6) Код .NET Core в свободном доступе
Одним из наиболее значимых событий, которое когда-либо происходило на .NET, является публикация исходного кода. Теперь каждый на GitHub’е может просматривать, вносить правки и дополнять его. Пожалуй, большинство людей даже никогда не думали о том, что подобное может когда-либо произойти.
Как разработчику, время от времени Вам необходимо «заглядывать за ширму», дабы понимать, как на самом деле работает код. К примеру, раньше я мог только гадать, закрывает ли вызов метода Dispose() на базе данных соединение или нет. Если же Вы можете заглянуть в исходный код, большинство схожих вопросов отпадает.
Даже если Вы не дополняете исходники, так или иначе Вы получаете пользу от тех, кто это делает. Проблемы и возможные улучшения быстро обсуждаются, реализуются и публикуются в свободный доступ. Прошли теперь те дни, когда на ожидание сколь-либо значительных улучшений или незначительных правок уходили годы.
Заключение
На протяжении лет я читал о программистах-полиглотах и о новых классных языках. В разное время люди писали на Ruby, Python, Scala, Go, Node.js, Swift и прочем. Приятно видеть, что Microsoft, сообщество сделали с .NET Core и как он вознесся в ранг первоклассной платформы. Я даже портировал .NET приложения на Maрc!
Проблемой многих существующих языков программирования является то, что они узкоспециализированы. Ruby и PHP прекрасно подходят для веб-приложений. Swift или Objective C лучшего всего использовать для IOS или MacOS. Если нужно написать серверное приложение, можно использовать Python, Java и так далее. Пожалуй, кроме C#, только JavaScript и Java могут считаться языками широкого профиля.
Мне бы было трудно применить навыки для решения различных задач, если бы я был вынужден работать со многими языками программирования. Это ограничивает возможности. Мне нравится универсальность C#, нравится то, что его можно использовать для разных типов приложений. Теперь, поскольку .NET Core так же подходит и для MacOS и Linux, больше нет никаких лимитов на его применение.
Автор перевода: Евгений Лукашук
Источник
Основи AngularJS на практиці
Автор: Редакція ITVDN
Введение
AngularJS – фреймворк-библиотека Javascript, разработанная для создания одностраничных приложений на основе MVC (Model-View-Controller) шаблона.
Будем осваивать данную технологию на практике.
Создадим HTML страничку со стандартной структурой. Далее нам нужно преобразовать ее в одностраничное приложение. Для этого подключим AngularJS к своей странице, добавив в
тег с данным кодом:
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
script>
Следующим шагом мы явно укажем на то, что наша страница является AngularJS приложением. Нужно добавить ng-app директиву, которой мы обозначим корневой элемент приложения. Зачастую таким элементом выступает тег или же тег . Добавим эту директиву к :
<!DOCTYPE html>
<html ng-app="">
<head>
<title>title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
script>
head>
<body>
body>
html>
Проверим, все ли работает, добавив небольшое выражение для подсчета произведения чисел 123 и 45. В AngularJs все выражения записываются в двойных скобках. Добавим в параграф со следующим содержимым:
<p>Результат произведение чисел 123 и 45 равен : {{ 123 * 45 }}p>
Запустим в браузере:
Теперь у нас есть готовый шаблон приложения, который мы будем использовать во всех последующих примерах.
AngularJS позволяет разработчику легко взаимодействовать с пользовательским вводом. Для этого есть соответствующая директива ng-model, которая связывает значения HTML элементов контроля (teaxtarea, input etc.) с приложением. Использовать эти данные поможет директива ng-bind, добавив эти данные во View (элемент MVC) и отобразив их на странице.
Применим полученные знания на практике. В созданный ранее шаблон добавим поле для ввода <input> с директивой ng-model и параграф для вывода данных c директивой ng-bind.
Код странички:
<!DOCTYPE html>
<html ng-app="">
<head>
<title>title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
script>
head>
<body>
<p>Ввведте свое имя:p>
<input type="text" ng-model="yourName">
<p>Здравствуй, <span ng-bind="yourName">span>p>
body>
html>
Откроем в браузере:
Теперь попробуйте ввести свое имя в поле для ввода.
Давайте добавим в данный пример дефолтное значение имени, к примеру Анна. Сделаем это, конечно же, с помощью директивы ng-init, которая позволяет инициализировать любую переменную AngularJS приложения.
В строку добавим директиву ng-init.
<input type="text" ng-model="yourName" ng-init="yourName='Aнна'">
Посмотрим изменения в браузере:
Теперь мы имеем значение по дефолту – Анна, но все так же можем изменять его:
Вывод данных в этом примере можно сделать еще одним способом, а именно, использовав выражение. Заменим на {{yourName}}.
<p>Здравствуй, {{ yourName }}p>
Открыв страницу, мы не увидим абсолютно никаких изменений, а все потому, что выражения в AngularJS связывают данные со страничкой точно так же, как и ng-bind директива.
Как упоминалось в статье ранее, AngularJS строит приложения на основе MVC. Часть модель – представление (Model - View) определяется с помощью директивы ng-app. Контроллер в свою очередь определяется директивой ng-controller.
Рассмотрим пример с использованием контроллера страницы.
Создадим страничку со списком гостей, которых Вы пригласите на свой день рождения.
К созданному ранее шаблону добавим контроллер, а так же установим имя для приложения. В тег внесем следующие изменения:
<html ng-app="firstApp" ng-controller="firstController">
Далее добавим с типом text для введения имени гостя и еще один с типом submit для добавления гостя в список. Также добавим
с полем для вывода списка и чекбоксом с типом checkbox для того, чтобы можно было удалять тех, кто не придет на ваш праздник. В данный
добавим директиву ng-repeat, отвечающую за повторение данных в обозначенном контейнере.
<!DOCTYPE html>
<html>
<head>
<title>title>
<meta type="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">script>
head>
<body ng-app="firsApp" ng-controller="firstController">
<h2>Мои гости:h2>
<form ng-submit="addGuest()">
<input type="text" ng-model="guestsInput" size="50" placeholder="Введите имя гостя">
<input type="submit" value="Добавить гостя">
form>
br>
<div ng-repeat="guest in listOfGests">
<input type="checkbox" ng-model="guest.come"> <span ng-bind="guest.guestName">span>
div>
<p><button ng-click="remove()">Удалить гостя button>p>
body>
html>
Осталось добавить скрипт, который будет содержать функции для работы с элементами нашего приложения. Замечу, что все функции будут расположены в контроллере приложения.
Скопируйте и добавьте после закрывающегося тега параграфа с кнопкой
<p><button ng-click="remove()">Удалить гостя button>p>
следующий код:
<script>
var app = angular.module('firsApp', []);
app.controller('firstController', function($scope) {
$scope.listOfGests = [{guestName:'Я любимый', come:false}];
var countOfGuests = 1;
$scope.addGuest = function() {
$scope.listOfGests.push({guestName:$scope.guestsInput, come:false});
$scope.guestsInput = "";
countOfGuests++;
checkNumberOfGuests();
};
$scope.remove = function() {
var oldGuests = $scope.listOfGests;
$scope.listOfGests = [];
angular.forEach(oldGuests, function(guest) {
if (!guest.come) $scope.listOfGests.push(guest);
countOfGuests--;
});
checkNumberOfGuests()
};
function checkNumberOfGuests(){
if(countOfGuests <= 2){
alert("Маленькая вечеринка тоже не плохо! Не печалься! Лучших друзей не бывает много!");
}else if(countOfGuests >= 9){
alert("Праздник?! ВЕЧЕРИНИЩЕ!");
}else{
alert("Узкий круг самых близких, это всегда хорошо!");
}
} script>
В данном коде у нас есть три функции: добавление и удаление гостя и проверка количества гостей.
В функции добавления мы берем введенные данные guestsInput и добавляем их в лист listOfGests. Устанавливаем значение чекбокса в false (в нашем случае, это значит, что человек придет / если значение true, то есть галочка стоит - значит не придет), после чего очищаем поле ввода. Далее увеличиваем счетчик гостей и вызываем функцию проверки их количества.
В функции удаления мы берем список гостей listOfGests и проверяем значение чекбокса каждого гостя, определяя, кто придет, а кто нет. Удаляем тех, кто отмечен галочкой (не пойдет) и уменьшаем счетчик элементов.
Функция проверки количества гостей очень проста, поэтому подробнее мы ее разбирать не будем.
Давайте откроем пример в браузере и поработаем с ним:
Добавим несколько гостей:
С изменением количества гостей содержимое оповещений будет меняться.
Когда вы добавите больше 9 друзей, тогда увидите такое оповещение:
Поздравляем, вот Вы и создали свое первое одностраничное приложение с помощью AngularJS!
ASP.NET Core vs Node.JS
Автор: Guillaume Jacquart
Я работал с .NET-платформой на протяжении 5 лет – как в плане профессиональной необходимости в качестве бек-енд разработчика и архитектора, так и в плане определенных личных задач - таких как открытые и закрытые сторонние проекты.
После нескольких лет работы с экосистемой PHP и имея солидный стаж в плане Java, я пришел к выводу, что язык C# для меня представляет, пожалуй, наибольший интерес – благодаря своему удобству и эффективности. Этот язык комплексный, тщательно продуманный и лично для меня в работе с C# лучшую среду программирования, нежели Visual Studio, человечество еще не изобрело. Более того, ASP.NET уже содержит в себе все, что необходимо веб-разработчику, не требуя установки дополнительных фрейморков и библиотек.
Единственное, что меня не очень устраивало в плане .NET-системы, это ее «закрытость» и использование преимущественно Microsoft-платформы (хотя и существуют специальные Mono, которые позволяют в качестве альтернативы запускать шарп-проекты и под Linux, но достигается это ценой утраты целого ряда полезных фичей).
По этой причине я обратил свое внимание на Node.JS, хотя мои коллеги называли JavaScript бесполезным языком, а Node.JS – хламом. Я был очарован однопоточной каллбэк-системой, я наслаждался, создавая REST API, используя ExpressJS.
Но затем Microsoft выпустила кроссплатформенную технологию ASP.NET Core, и я призадумался, что же и когда стоит использовать.
После чего я решил собрать как можно больше информации касательно возможностей и реализации тех или иных фичей двух технологий, после чего выбрал для себя, по моему мнению, наиболее удобную технологию, в рамках которой и развернул свой новый проект. Надеюсь, эта публикация вам тоже поможет прийти к определенному решению.
Модель обработки запроса
Node.JS
Node.JS успел зарекомендовать себя как однопоточный обработчик запросов. Что это значит? Это значит, что вместо обработки каждого поступившего http-запроса внутри отдельного потока или процесса (наподобие Apache), обработка производится внутри одного потока.
Подобный подход делает обработку запросов однопоточной, тогда как в Apachi\PHP обработка является многопоточной. Однако, что касательно Node.JS, здесь преимущество заключается в асинхронной работе системного ввода-вывода, которое, соответственно, не блокирует требуемый поток. Операция ввода\вывода производится в рамках отдельного потока, в то время как основной продолжает свою работу. Как только вторичный поток завершает свою работу, вызывается callback, который, соответственно, передает в контекст основного потока результат.
С одной стороны, использование подобного подхода прекрасно подходит для приложений, интенсивно работающих с вводом\выводом. С другой стороны, появляется вероятность так называемого «ада обратных вызовов», который провялятся в цикличной сложности кода. Будем надеяться, что новая версия введёт в обиход полноценные async\await.
Однопоточная модель обработки запросов Node.JS может быть сгруппирована при помощи использования нативной кластеризации, Nginx или PM2.
ASP.NET (синхронный)
Исторически так сложилось, что обработка запросов ASP.NET MVC (или Web Api) производится подобно Apache / PHP: каждый запрос обрабатывается внутри своего собственного потока пула потоков. И каждая команда ввода-вывода производится синхронно внутри каждого из потоков.
В контексте жесткой работы с вводом-выводом подобный подход, конечно, менее удобный, если сравнивать со схемой Node.JS.
Хвала Небесам, .NET Framework 4.5 вводит в C# async\await, что также исправляет сложившуюся ситуацию.
ASP.NET Core (асинхронный)
Паттерн async\await позволяет в полной мере ощутить все прелести асинхронного программирования. Действительно, теперь появилась возможность указать каждый обработчик запросов как асинхронный, благодаря чему работа с системой ввода-вывода будет производиться в контексте своего потока. Это позволит не блокировать основной поток.
Подобная модель на базе Task`ов позволяет использовать обратные вызовы, ощутить все прелести асинхронности и прочее.
.NET Core часто применяет паттерн async\await при интенсивной работе с системой ввода-вывода.
Async\await Node.JS VS Async\await ASP.NET Core
Пример кода Node.JS для асинхронного запроса в базу данных:
Пример того же кода на ASP.NET Core (фрагмент класса Startup):
Разница между двумя моделями в том, что ASP.NET Core способен обрабатывать большее количество запросов благодаря своей дефолтной параллельности. В то же время переключение между асинхронными потоками может занимать время в случае использования большого количества общих для многих потоков переменных. В такой ситуации все же Node.JS будет быстрее.
Много современных языков программирования, вроде того же C#, реализуют асинхронный ввод-вывод, который часто недооценен сообществом Node.JS-разработчиков, но который может приводить к приятным неожиданностям.
В этом случае Node.JS в значительно меньшей мере технологичный, если сравнивать его с ASP.NET Core.
Язык программирования
Особенности и безопасность
Вращаться в среде C#-разработчиков – значит выслушать множество критики в адрес динамической типизации и удивительных булевых преобразований JavaScript. Впрочем, эта критика является обоснованной, если учитывать, что JavaScript был разработан всего за 10 дней для динамического контента HTML.
С другой стороны, с того времени язык очень даже «вырос», и новая спецификация привносит такие фичи, как:
Классы
Новые идентификаторы (const, let), повышающие надежность кода
Указательные функции
Интерполяцию строк
Генераторы
Элементы рефлексии
Впрочем, C# все равно остается намного более мощным языком программирования, ибо все вышеперечисленное – всего лишь небольшая часть того, чем может похвастаться строго-типизированный объектно-ориентированный язык программирования. Мне кажется, что для C# лучшей среды работы, нежели Visual Studio, просто не найти.
Однако, если учитывать рост спроса на рынок микросервисов, большинство из особенностей подобных гигантов здесь не найдут свое применение.
Изучение
Если вы раньше работали с классической MVC-архитектурой, переход на Node.JS \ Express затребует некоторое время, чтобы привыкнуть. Некоторые же вещи могут вообще оказаться в новинку. Также нужно будет время для того, чтобы «переварить» событийно-ориентированную парадигму Node.JS.
Что действительно может показаться запутанным впервые при работе со средними или большими приложениями, так это паттерны рефакторинга кода и, собственно говоря, архитектура кода. Так как функциональность Express.js очень гибкая, выбор «правильной» архитектуры и файловой структуры может быть затруднительным. С другой стороны, для создания качественного приложения без этого – никак.
Что же касается ASP.NET (Core) MVC / WebApi, то тут уже предоставляется готовая файловая структура. Да, разработчик может применить немного «креативности» при создании бизнес-логики и слоя для работы с базой, но предопределенность архитектуры упрощает разработку.
Однако, в случае с маленькими приложениями, JS-платформа более предпочтительна, так как позволяет написать сайт-визитку с использованием одного лишь js-файла и одного лишь package.json.
Продуктивность
Я обнаружил, что написание простого кода является более быстрым при использовании Node.JS. Причина в том, что простые приложения тут проявляют большую «гибкость».
Также возникают вопросы касательно типизации языка, так как в некоторых случаях оказывается, что динамическая типизация является скорее плюсом, чем минусом.
С другой стороны, я заметил, что при написании объемного кода, более читабельным он оказывается при работе с C#, чем с JavaScript. Думаю, причина этому – строгие ооп-парадигмы.
Что касается отладки и юнит-тестирования, тут C# / Visual Studio также показывают лучшую продуктивность, хотя и сказать, что JavaScript совместно с Visual Studio Code пасет задних, нельзя. Время построения маленьких js-приложений также меньше.
Екосистема
В этом плане две технологии отличаются больше всего. Node.JS обязана своим развитием в основном сообществу, которое и разработало для неё большее количество существующих популярных библиотек.
С одной стороны, вы чувствуете себя очень свободно в выборе модулей для разработки. С другой же, внезапное обновление одного из пакетов, отсутствие надлежащей проверки на ошибки и стабильность, в некоторых случаях могут легко привести к обвалу всего приложения.
ASP.NET Core технология разработана проверенной командой профессионалов из Microsoft. И она предоставляет абсолютно все, что необходимо разработчику веб-приложений любых направлений. Кроме того, сторонние библиотеки также качественно выполнены и разработаны другими крупными проверенными компаниями.
Один из многочисленных примеров – ORM-инструменты. Entity Framework, официальный инструментарий для работы с базой данных, предоставляет абсолютно все, что необходимо разработчику.
Публикация и запуск
А вот это та область, где Node.JS, без сомнения, лидирует. Технология является открытой, кросс-платформенной, поддерживает докеризацию. Это значит, что вы запросто сможете запустить свое приложение под такими платформами:
На собственном Linux, Windows или Mac-сервере. Все, что для этого нужно – это движок Node.JS и реверсивный прокси-сервер (наиболее популярный – Nginx).
Докер-контейнер.
Большинство PaaS-провайдеров (AWS, Google App Engine, Azure, Heroku, …)
Сервис Now, который позволяет провести запуск Node.JS-приложения в одну строчку без предварительной конфигурации.
Также есть много подходящих CI & CD – платформ.
Что же в случае ASP.NET-стека, тут все обстоит несколько печальнее. Хотя и ASP.NET Core также кросс-платформенная, количество сервисов для публикации несоизмеримо меньшее.
Вот какие хостинги я знаю на данный момент:
Собственный Windows-сервер с классическим IIS.
Собственный Linux-сервер с реверсивным прокси.
Докер-контейнер под Windows. Работает отлично, но занимает много места.
Некоторые облачные сервисы PaaS. В основном, Azure, но есть также некоторые неофициальные билды Heroku.
Заключение
Node.JS обладает асинхронной событийно-ориентированной моделью обработки запросов, которая не очень то и уступает многопоточной async\await модели ASP.NET.
Производительность Node.JS – приложений не всегда лучше, чем ASP.NET Core. Можно сказать, она даже хуже.
Язык JavaScript не так уж и плох (и становится лучше!). А использование его вместе с Node.JS может дать приятный результат.
ASP.NET (Core) лучше всего подходит для объемных приложений и предоставляет все необходимые разработчику инструменты высшего качества.
Для микро- или среднеразмерных сервисов Node.JS предоставляет широкие возможности в плане публикации.
И, как всегда, не существует одного лучшего инструмента «на все случаи жизни». Попробуйте доступные и подберите для себя тот, который лучше всего отвечает вашим требованиям.
Автор перевода: Евгений Лукашук
Источник
Новий відеокурс – Entity Framework 6
Автор: Редакція ITVDN
Робота з базами даних у .NET-застосунках — це не просто виконання SQL-запитів. Це правильна архітектура доступу до даних, контроль транзакцій, оптимізація продуктивності та підтримка масштабованості проєкту. Якщо ви хочете професійно працювати з реляційними базами даних у C# — вам необхідно впевнено володіти Entity Framework.
Новий відеокурс «Entity Framework 6» — це комплексний практичний гайд з використання одного з найпопулярніших ORM-інструментів у .NET. Ви навчитеся будувати повноцінний шар доступу до даних, працювати з різними СУБД, реалізовувати CRUD-функціонал, оптимізувати запити та тестувати застосунки.
Автор курсу: Андрій Рижков, .NET Software Developer
Курс складається з 11 відеоуроків, загальна тривалість відео 4 години 19 хвилин
Курс охоплює такі теми:
Основи ORM та принципи роботи Entity Framework 6.
Підходи Code-First, Database-First та Model-First.
Створення моделей даних, робота з DbContext і DbSet.
Підключення до баз даних та реалізація CRUD-операцій.
Написання запитів за допомогою LINQ.
Налаштування зв’язків між таблицями (Primary Key, Foreign Key, Fluent API, Data Annotations).
Робота з транзакціями та принципами ACID.
Оптимізація запитів і підвищення продуктивності.
Робота з JSON, XML та зберіганням зображень у БД.
Міграції та управління змінами схеми бази даних.
Тестування та відлагодження застосунків з EF 6.
Інтеграція з ASP.NET та ASP.NET Core.
Протягом навчання ви не просто ознайомитесь з можливостями EF 6, а навчитеся правильно проєктувати та реалізовувати шар доступу до даних у реальних .NET-проєктах. Ви опануєте роботу з різними СУБД (SQL Server, MySQL, PostgreSQL), навчитеся керувати транзакціями, використовувати міграції та забезпечувати референційну цілісність даних.
Завдяки великій кількості практичних прикладів ви зможете одразу застосовувати знання на практиці: створювати консольні та веб-застосунки, реалізовувати складні запити, працювати зі збереженими процедурами та оптимізувати продуктивність додатків.
Структура курсу:
Початок роботи з EF 6.
Створення моделей даних.
Перший додаток з використанням Entity Framework.
Основи LINQ.
Зв’язки між таблицями.
Транзакції та оптимізація запитів.
Робота зі сховищем даних і функцій.
Робота з різними форматами даних.
Тестування та відлагодження.
Робота з іншими базами даних та міграції.
Entity Framework 6 та ASP.NET.
Чого ви навчитеся на курсі:
Створювати та підтримувати бази даних за допомогою C# та EF 6.
Використовувати Code-First, Database-First та Model-First підходи.
Реалізовувати CRUD-функціонал у застосунках.
Писати ефективні LINQ-запити.
Налаштовувати зв’язки між таблицями та забезпечувати цілісність даних.
Керувати транзакціями та оптимізувати продуктивність.
Використовувати міграції для автоматичного оновлення схеми БД.
Працювати з JSON, XML та різними СУБД.
Тестувати та відлагоджувати застосунки з EF 6.
Попередні вимоги
Для комфортного проходження курсу необхідні базові знання C#, розуміння принципів роботи реляційних баз даних та основ SQL.
Готові вивести роботу з базами даних у .NET на професійний рівень? Долучайтеся до курсу вже сьогодні та опануйте один із ключових інструментів .NET-розробника.
Курс входить до комплексних програм підготовки за спеціальностями .NET Developer та ASP.NET MVC Developer.
Новий відео курс – Породжуючі патерни проєктування
Автор: Редакція ITVDN
Друзі, привіт!
Ми з гарними новинами для тих, хто хоче поглибити свої знання стеку C#/.NET та створювати якісний код, з яким буде легко здійснювати роботу та масштабування – новий відео курс “Породжуючі патерни проєктування” вже на сайті в повному обсязі. Курс українською мовою!
Патерни проєктування – це стандартизовані і загальноприйняті способи розв’язання поширених проблем у коді.
У класичному каталозі «Патерни об'єктно-орієнтованого проєктування» так звана “банда чотирьох” виділяє породжуючі, структурні та поведінкові патерни. Абстрактна Фабрика (Abstract Factory), Фабричний Метод (Factory Method), Будівельник (Builder), Прототип (Prototype), Одинак (Singleton) – породжуючі патерни (Creational patterns), які розв’язують проблеми, пов'язані зі створенням об'єктів та екземплярів класів. Вони забезпечують гнучкість коду та ізолюють систему від способу створення, компонування та передачі об'єктів.
Даний курс познайомить вас із тим, як використання патернів позбавляє певних проблем. Ви дізнаєтесь, що застосування відповідних патернів може значно покращити дизайн програмного забезпечення, зробити його більш гнучким і підтримуваним, а також зменшити зв'язаність між компонентами системи.
Автор курсу – Владислав Рибніков, Senior .NET Developer у Innovecs, понад 6 років досвіду в розробці.
Курс складається з 8 уроків загальною тривалістю 3 години 46 хвилин.
Структура курсу:
Початок роботи з патернами.
Породжуючі патерни та Патерн Одинак.
Патерн Прототип.
Використання Singleton та Prototype.
Патерн Будівельник.
Патерн Фабричний Метод.
Патерн Абстрактна Фабрика.
Builder та Factory Method.
Що ви дізнаєтесь на даному курсі:
Як за допомогою породжуючих патернів вирішуються проблеми створення об'єктів. Як саме патерни забезпечують гнучкість та ізолюють систему від способу створення, компонування та передавання об'єктів.
Як породжуючі патерни дозволяють приховати складності створення об'єктів від клієнтського коду та як це допомагає спростити код клієнта і уникнути прямих залежностей від конкретних класів.
Як патерн Singleton і його версія Multiton гарантують, що в системі буде тільки один екземпляр певного класу або конкретна обмежена кількість екземплярів. Як це допомагає, коли необхідно забезпечити глобальний доступ до ресурсів або керувати станом програми.
Познайомитесь з альтернативними методами розв’язання проблеми контролю життя об’єктів за допомогою Dependency Injection та IoC контейнерів.
Як Фабричні методи та Абстрактні фабрики дозволяють делегувати створення об'єктів підкласам чи фабрикам, що дозволяє вибирати потрібний тип об'єкта, залежно від контексту виконання.
Познайомитесь з тим, як породжуючі патерни дозволяють створювати об'єкти таким чином, що зміни в ваших класах не впливають на клієнтський код. Дізнаєтесь, як це знижує залежність між клієнтом та вашими класами і робить систему більш гнучкою та легкою для підтримки.
Зрозумієте, як саме патерни Builder і Prototype забезпечують контроль над життєвим циклом об'єктів і як це корисно при створенні складних або змінюваних об'єктів.
Попередні вимоги
Для комфортного проходження курсу необхідні базові знання C#/.NET та розуміння принципів ООП.
Курс “Породжуючі патерни проєктування” буде корисним як тим, хто тільки починає вивчення патернів проєктування, так і тим, хто вже має певні знання, проте хотів би їх структурувати та повторити окремі теми.
Дивіться перший урок у вільному доступі. Курс вже доступний на нашому сайті в повному обсязі – до кожного уроку є практичні завдання та опорний конспект. Якщо у вас є активна підписка, ви можете дивитися його прямо зараз.
Курс входить до комплексних програм підготовки за спеціальностями:
C#/.NET Developer;
ASP.NET Core розробник;
ASP.NET MVC розробник.
Вивчай JavaScript з нуля українською мовою
Автор: Редакція ITVDN
Добрий день, друзі!
Сьогодні хочемо вас порадувати новим відео курсом, який обов'язково стане в нагоді кожному FrontEnd розробнику, а також BackEnd програмістам та Automation QA, які використовують мову JavaScript в якості основного інструменту написання коду. На ITVDN опубліковано всі уроки нового курсу “JavaScript Стартовий”. Курс українською мовою!
JavaScript – це одна з найпопулярніших мов програмування. Вона користується великим попитом як серед новачків, так і серед досвідчених девелоперів, оскільки:
простіша у вивченні в порівнянні з іншими загальновідомими мовами програмування (С#, Java, C++/C тощо);
успішно використовується для створення клієнтської сторони веб-застосунків (FrontEnd), але також поширена і на серверній стороні в тандемі з Node.js (BackEnd);
може використовуватися в геймдеві, розробці мобільних та настільних застосунків, тестуванні ПЗ тощо;
має великий попит на ІТ-ринку.
Вивчення JavaScript – це інвестиції в майбутнє, що окуплять себе з лихвою, оскільки досвідчені JavaScript розробники щедро оплачуються, мають широкий спектр проєктів та кар’єрних можливостей, а також можуть вести професійну діяльність дистанційно.
Курс “JavaScript Стартовий” є першою сходинкою у вивченні програмування мовою JavaScript.
Він спрямований на вивчення головних синтаксичних конструкцій JavaScript. Ви дізнаєтеся, як працювати зі змінними, використовувати умовні та циклічні конструкції, масиви та об'єкти. Отримаєте необхідні знання для написання алгоритмів та підготуєте базу, після якої можна розвивати свої навички у веб-розробленні або почати використовувати JS для інших цілей.
Автор курсу – Дмитро Охріменко, CEO CyberBionic Systematics, сертифікований тренер Microsoft та автор курсів з .NET та FrontEnd розробки. У записаних відео уроках Дмитро ділиться ефективними техніками роботи з мовою JavaScript, які актуальні та потрібні на сьогоднішній день.
Тривалість курсу – 8 годин 40 хвилин.
Структура курсу:
Вступ.
Структура коду.
Змінні та типи даних.
Рядки та перетворення типів.
Оператори.
Умовний оператор if.
Switch та тернарний оператор.
Цикли.
Масиви.
Методи масивів.
Функції. Частина 1.
Функції. Частина 2.
Об'єкти. Частина 1.
Об'єкти. Частина 2.
Чого ви навчитеся на даному курсі:
Створювати мовою JavaScript базовий динамічний контент для web-сторінок.
Працювати зі змінними та типами даних.
Працювати з умовними та циклічними конструкціями.
Розуміти особливості використання масивів та працювати з методами оброблення даних у масивах.
Використовувати функції (розуміти та використовувати області видимості, контекст, рекурсію).
Працювати з об'єктами.
Попередні вимоги
Для успішного проходження даного курсу необхідно володіти мовами верстання HTML & CSS на базовому рівні.
Якщо ви вже займаєтеся розробкою іншою мовою програмування та хочете вивчити JavaScript – ці відео матеріали вам ідеально підійдуть: просто швидко перегляньте перші уроки і сконцентруйте увагу на особливостях роботи JavaScript.
Якщо ви займаєтеся тестуванням ПЗ, “JavaScript Starter” допоможе вам розібратися з синтаксисом мови та стане першим кроком у освоєнні автоматизації тестування.
Дивіться перший урок у вільному доступі. Курс вже доступний на нашому сайті в повному обсязі – до кожного уроку є практичні завдання, опорний конспект та онлайн тести для більш глибокого засвоєння матеріалу. Якщо у вас є активна підписка, ви можете дивитися його прямо зараз.
Курс входить до комплексних програм підготовки за спеціальностями:
Frontend Developer
Верстальник сайтів
JavaScript Developer
React Developer
Python Developer
ASP.NET Core Developer
ASP.NET MVC Developer
PHP Developer
Ruby Developer
Новий курс "Spring Security"
Автор: Редакція ITVDN
Всем привет!
Спешим порадовать тех, кто занимается изучением Java-фреймворка Spring. На ITVDN появился новый курс, который ориентирован на решение вопросов безопасности веб-приложений — Spring Security. В первую очередь этот курс заинтересует Java разработчиков, которые специализируются на разработке серверной стороны веб-сервисов, но также будет полезен и тем, кто на стадии изучения главных технологий Java.
Что такое Spring Security?
Spring Security — это фреймворк, который спроектирован для решения вопросов безопасности приложений: авторизация, аутентификация, защита от различного рода атак и другие способы обеспечения безопасности для корпоративных приложений, реализованных с использованием Spring. К его преимуществам можно отнести:
Комплексную и расширяемую поддержку как аутентификации, так и авторизации
Защиту от таких видов атак, как: кликджекинг, фиксация сессии, межсайтовая подделка запроса и т. д.
Возможность применения как в веб-приложениях, так и в настольных проектах
Возможность интеграции с Servlet API
Возможность интеграции с Spring Web MVC
многое другое
Чем полезен данный видео курс?
Курс “Spring Security” от ITVDN будет полезен тем, кто хочет совершенствовать свои навыки Java разработки и применять современные средства для обеспечения безопасности пользователей и их персональных данных.
Автор курса — Андрей Губаренко, Java Developer.
На уроках будут рассмотрены основные моменты подключения Spring Security к приложениям и настройка фреймворка для качественного обеспечения безопасности приложений. Автор познакомит вас с различными вариантами источников данных для аутентификации, вы изучите главные принципы их конфигурации, рассмотрите конфигурацию системы фильтров, через которые будут проходить запросы к системе, конфигурацию защиты отдельных методов для ограничения доступа к ним, а также познакомитесь со способами работы с данными аутентификации на стороне пользователя.
Также, на уроках будут рассмотрены возможности фреймворка Spring Security по шифрованию паролей, возможности защиты приложения от межсайтовой подделки запросов (CSRF) и механизм настройки совместного использования ресурсов между разными источниками (CORS).
Чему вы научитесь?
По окончании курса вы сможете успешно подключать модуль Security фреймворка Spring к приложению, конфигурировать системы фильтров для веб-запросов, ограничивать доступ пользователей к отдельным методам приложения, а также будете иметь представление о возможностях отображения информации об аутентифицированном пользователе на веб-странице.
Таким образом, вы научитесь:
Понимать принципы систем безопасности в web-приложениях.
Подключать фреймворк Security Spring к вашим приложениям.
Настраивать источник данных для аутентификации пользователя.
Подключать как стандартные настройки и формы для аутентификации, так и собственные.
Создавать систему фильтрации запросов по адресу, роли пользователя или состоянию аутентификации.
Ограничивать доступ к отдельным методам/функциям приложения.
Использовать встроенные методы Spring Security для защиты от CSRF атак.
Использовать в работе Spring Expression Language – язык выражений, созданный для Spring Framework и поддерживающий запросы и управление графом объектов во время выполнения.
Настраивать Cross-Origin Resource Sharing (CORS) Spring Security.
Организовывать доступ к данным с помощью протокола LDAP.
Использовать методы шифрования для хранения паролей в базе данных.
Использовать возможности AOP (Aspect-Oriented Programming) для усложнения модели ограничений доступа к ресурсам.
Предварительные требования
Необходимый бэкграунд для понимания материала курса: язык программирования Java, инструмент для сборки Java-проекта Maven, контейнер сервлетов с открытым исходным кодом Tomcat, среда разработки IntelliJ IDEA (либо аналоги).
Курс входит в специальность Java Developer.
Смотрите первый урок курса в свободном доступе.