Pull to refresh
0
0
Владимир @enrichment

Пользователь

Send message

Использование выражений для фильтрации данных из БД

Reading time6 min
Views25K
Статья основана на ответе в StackOverflow. Начну с описания проблемы, с которой я столкнулся. Есть несколько сущностей в базе данных, которые нужно отображать в виде таблиц на UI. Для доступа к базе данных используется Entity Framework. Для этих таблиц есть фильтры, по полям этих сущностей. Нужно написать код для фильтрации сущностей по параметрам.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments38

Нормализация отношений. Шесть нормальных форм

Reading time8 min
Views1.4M
В данной теме я затрону 6 нормальных форм и методы приведения таблиц в эти формы.

Процесс проектирования БД с использование метода НФ является итерационным и заключается в последовательном переводе отношения из 1НФ в НФ более высокого порядка по определенным правилам. Каждая следующая НФ ограничивается определенным типом функциональных зависимостей и устранением соответствующих аномалий при выполнении операций над отношениями БД, а также сохранении свойств предшествующих НФ.
Читать дальше →
Total votes 37: ↑22 and ↓15+7
Comments14

Нет никакого потока

Reading time4 min
Views42K
Важная правда об асинхронности в своей первозданной форме: нет никакого потока.

Тех, кто возразит, несть числа. «Нет», кричат они, «если я ожидаю операцию, должен быть поток, в котором выполняется ожидание! Возможно это поток из пула. Или поток операционной системы! Или что-то, связанное с драйвером устройства...»

Не внемлем этим крикам. Если операция по-настоящему асинхронная, то никакого потока нет.

Скептики не убеждены. Высмеем же их.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments24

15 ресурсов по Git. Что почитать/посмотреть?

Level of difficultyEasy
Reading time2 min
Views22K

Всем привет! В этот раз собрали подборку вспомогательных материалов для изучения Git. Удобство и гибкость сделали Git стандартом для большинства современных IT-компаний. Поэтому умение работать с ним критично для любого программиста.

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

Читать далее
Total votes 12: ↑8 and ↓4+4
Comments6

Передача и обработка IAsyncEnumerable в Typescript с ASP.NET Core Web

Level of difficultyEasy
Reading time17 min
Views3.3K

Всем привет, Меня зовут Олег и я .NET разработчик в компании Bimeister. Я хотел поделиться своим интересным опытом по связи проекта на ASP.NET Core Web App с использованием IAsyncEnumerable коллекций и современного фронт-енд SPA приложения на Typescript.и Vue.js 3 версии.

Все эти технологии не новы и, на самом деле, фреймворк и технологии для веб части могут быть любые на ваш вкус: Angular, или React, или что-либо еще. Весь интерес представляет собой именно унификация процесса обмена с бэкендом на C# с современной асинхронной коллекцией. Я не буду заострять внимание на структуре обеих половин приложения подробно, скажу лишь, что использовал один из сложившихся в моей практики шаблонов для запуска  ASP.NET Core Web приложения с SPA. Все детали можно будет посмотреть в приложенном репозитории.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments7

Баблишко для тех, кто вкатывается в айтишку

Reading time3 min
Views111K

Алярма! Тут раздают баблишко тем, кто вкатывается в айтишечку!

В России есть три пути: вебкам, закладки и айти. Конечно, любые профессии нужны, любые профессии важны, но я бы хотел помочь тем, кто пытается вкатиться в айти (кстати, необязательно в России).

Читать далее
Total votes 209: ↑171 and ↓38+133
Comments178

Как отправлять пользовательский интерфейс по API

Reading time7 min
Views6.7K
image

Есть приём, позволяющий совершенно по-новому представить работу с пользовательскими интерфейсами (UI). Можно передавать UI на клиент через различные API – так получаются серверно-управляемые пользовательские интерфейсы. Такой метод позволяет выйти на новый уровень гибкости и динамичности, трансформирует традиционные парадигмы разработки UI.

Серверно-управляемые UI существуют совсем не только в теории. Их внедряют некоторые крупнейшие игроки технологической индустрии. В качестве примеров можно привести Lyft и Airbnb. Они активно используют серверно-управляемые UI, чтобы выдавать миллионам пользователей во всём мире динамический контент и быстро предоставлять обновления.

Но что же собой представляют серверно-управляемые UI? Как они работают и почему приобретают такую важность в современной разработке на JavaScript? В данном посте мы постараемся ответить на эти вопросы и углублённо рассмотреть серверно-управляемые UI, их достоинства, а также как можно реализовать такой интерфейс в вашем собственном проекте.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments11

Разработка REST-серверов на Go. Часть 1: стандартная библиотека

Reading time9 min
Views77K
Это — первый материал из серии статей, посвящённой разработке REST-серверов на Go. В этих статьях я планирую описать реализацию простого REST-сервера с использованием нескольких различных подходов. В результате эти подходы можно будет сравнить друг с другом, можно будет понять их относительные преимущества друг перед другом.

Первый вопрос разработчиков, которые только начинают применять Go, часто выглядит так: «Какой фреймворк стоит использовать для решения задачи X». И хотя это — совершенно нормальный вопрос, если задавать его, имея в виду веб-приложения и серверы, написанные на многих других языках, в случае с Go при ответе на этот вопрос нужно принять во внимание множество тонкостей. Существуют серьёзные аргументы как «за», так и «против» использования фреймворков в Go-проектах. Я, работая над статьями из этой серии, вижу своей целью объективное разностороннее исследование этого вопроса.


Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments8

ASP.NET MVC Урок E. Тестирование

Reading time32 min
Views51K
Цель урока. Научиться создавать тесты для кода. NUnit. Принцип применения TDD. Mock. Юнит-тесты. Интегрированное тестирование. Генерация данных.

Тестирование, принцип TDD, юнит-тестирование и прочее.

Тестирование для меня лично – это тема многих размышлений. Нужны или не нужны тесты? Но никто не будет спорить, что для написания тестов нужны ресурсы.
Рассмотрим два случая:
  1. Мы делаем сайт, показываем заказчику, он высылает список неточностей и дополнительных пожеланий, мы их бодро правим и сайт отдаем заказчику, т.е. выкладываем на его сервер. На его сервер никто не ходит, заказчик понимает, что чуда не произошло и перестает платить за хостинг/домен. Сайт умирает. Нужны ли там тесты?
  2. Мы делаем сайт, показываем заказчику, он высылает список правок, мы их бодро правим, запускаем сайт. Через полгода на сайте 300 уников в день и эта цифра растет изо дня в день. Заказчик постоянно просит новые фичи, старый код начинает разрастаться, и со временем его всё сложнее поддерживать.


Читать дальше →
Total votes 125: ↑86 and ↓39+47
Comments0

Обучаем нейросеть распознавать цифры на выборке от MNIST. Реализация алгоритма обратного распространения на C#

Reading time17 min
Views17K

Привет!

Будем обучать нейросеть распознавать рукописные цифры

Читать далее
Total votes 18: ↑16 and ↓2+14
Comments15

Как я проходил опросник по c#

Level of difficultyMedium
Reading time3 min
Views8.7K

Только что мне предложили пройти анкету с вопросами по c#, ну я быстро ответил и довольный отправил. Удивило потом то что я оказывается мало на что ответил правильно. Было странно, вопросы то вроде простые, ну я начал разбираться и сравнивать правильные ответы с неправильными. Итак вот что было:

Читать далее
Total votes 18: ↑13 and ↓5+8
Comments34

10 бесплатных курсов для продвинутых специалистов от Microsoft

Reading time6 min
Views17K
Привет, Хабр! Совсем недавно мы делились подборками наших бесплатных курсов для начинающих специалистов в IT. Ну и теперь, конечно же, пришла очередь продвинутых коллег. В этой статье мы подобрали курсы для уровней upper-intermediate и advanced. Среди тем — SQL Server на Linux, облачная разработка, безопасность, Microsoft 365, DevOps, бессерверные приложения и другое.

Кстати!

  • Все курсы бесплатные (вы даже сможете попробовать платные продукты бесплатно);
  • 9/10 на русском языке;
  • Начать обучение можно мгновенно;
  • По окончании вы получите бейдж об успешном прохождении обучения.

Присоединяйтесь, подробности под катом!

Эта серия статей


Предыдущая серия статей, начало 2020 года


Более ранняя серия статей, 2019 год


Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments0

Создание CLI-приложений при помощи System.CommandLine в .NET

Level of difficultyEasy
Reading time5 min
Views7.2K

В .NET уже несколько лет существует библиотека System.CommandLine, позволяющая быстро создавать CLI-приложения. Несмотря на то, что библиотека ещё в стадии beta, её активно используют и сами разработчики Microsoft, например, в утилите dotnet из пакета .NET SDK. 

Преимущества этой библиотеки в том, что она позволяет сосредоточиться на разработке полезного функционала приложения и не тратить время на создание парсера команд, опций и аргументов, а также имеет широкие возможности для кастомизации.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments3

ООП с примерами (часть 2)

Reading time5 min
Views677K
Волею судьбы мне приходится читать спецкурс по паттернам проектирования в вузе. Спецкурс обязательный, поэтому, студенты попадают ко мне самые разные. Конечно, есть среди них и практикующие программисты. Но, к сожалению, большинство испытывают затруднения даже с пониманием основных терминов ООП.

Для этого я постарался на более-менее живых примерах объяснить базовые понятия ООП (класс, объект, интерфейс, абстракция, инкапсуляция, наследование и полиморфизм).

Первая часть посвящена классам, объектам и интерфейсам.
Вторая часть, представленная ниже, иллюстрирует инкапсуляцию, полиморфизм и наследование

Читать дальше →
Total votes 50: ↑37 and ↓13+24
Comments37

Приручение черного дракона. Этичный хакинг с Kali Linux. Часть 8. Методы и средства внешней разведки

Reading time7 min
Views18K

Приветствую тебя, дорогой читатель, в восьмой части серии статей «Приручение черного дракона. Этичный хакинг с Kali Linux».

В одной из прошлых частей мы затронули первую фазу любой атаки, именуемую футпринтингом (footprinting) и разобрали несколько простых примеров сбора информации об объекте расположенном в локальной сети. Однако, мы так и не рассмотрели подробно методы и средства для проведения внешней разведки, и сбора информации. Самое время это исправлять! Поэтому данная статья будет полностью посвящена именно этой теме.

Думаю, что тебе часто попадалась на глаза аббревиатура OSINT (open-source intelligence), являющая собой миру отдельное направление, посвященное сбору информации из открытых источников. В рамках данной статьи я попытаюсь наглядно продемонстрировать каким образом злоумышленник проводит первичный сбор информации из открытых источников о цели и какие инструменты в составе Kali нам в этом помогут. В качестве примера я буду проводить сбор информации о коммерческом Банке с которым у меня заключен договор.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments5

Пишем модель угроз

Reading time19 min
Views223K


Всем привет, мы продолжаем свой цикл статей по «бумажной безопасности». Сегодня поговорим о разработке модели угроз. Если цель прочтения этой статьи в получении практических навыков, то лучше сразу скачать наши шаблоны документов, в котором есть и шаблон модели угроз. Но и без шаблона под рукой со статьей тоже можно ознакомиться в общеобразовательных целях.

Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments8

Некоторые аспекты работы с Dictionary при разработке нагруженных приложений

Reading time8 min
Views14K

На написание этой небольшой заметки меня подтолкнуло несколько проведенных в последнее время собеседований на должность ведущего разработчика в нашу компанию. Некоторые соискатели, как оказалось, недостаточно разбираются в том, что же это за механизм такой, Dictionary, и как его нужно использовать. Столкнулся даже с весьма радикальным мнением: мол, словарь работает очень медленно, причем из-за того, что при создании сразу же помещается в куче больших объектов (LOH), использовать его в коде нельзя и лучше применять запросы к обычным коллекциям с помощью фильтров LINQ!

Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments27

Создание и обновление списков рассылки в Zimbra Collaboration OSE на основе групп и пользователей Active Directory

Reading time10 min
Views11K
image

1. Пара слов от автора


Статья обновлена. Скрипты изменены. Добавлен скрипт для обновления одного списка рассылки.

В комментариях к прошлой статье мне задали интересный вопрос об автоматическом формировании списков рассылки на основе групп безопасности AD. Есть задача – есть решение. Итак, поехали.

2. Исходные данные


ОС сервера: CentOS 7

По поводу ОС
На самом деле разница между CentOS7 и любой другой системой будет заключаться исключительно в командах серверу на установку пакетов, и, возможно, расположении некоторых файлов. Работа ведется в основном с командлетами Zimbra, так что отличия настройки будут минимальны.

Домен Zimbra: zimbramail.home.local
Путь монтирования шары на хосте Zimbra: /mnt/ZM/

3. Настройка


  1. Монтируем шару Windows к нашему Linux серверу. Это нужно для упрощения и автоматизации передачи данных из Windows PowerShell в Linux Bash. Процедура монтирования была описана в предыдущей статье. Не буду повторяться.
  2. Создаем в AD отдельное OU, в котором создаем группы, на основе которых будут созданы списки рассылки в Zimbra. Имя группы = имя списка рассылки.
  3. Добавляем в группы, созданные в новом OU, пользователей или группы безопасности, на основе которых будут наполняться списки рассылки в Zimbra. Скрипт отрабатывает рекурсивно, что значит, что он соберет все данные о пользователях, состоящих в группах, которые добавлены в группы в целевом OU. Подробнее о выводе команды Get-ADGroupMember.
  4. Создаем скрипт сбора данных из Active Directory.
  5. Создаем скрипт добавления листов рассылки и их наполнения пользователями на основе полученных данных в предыдущем скрипте.
  6. Наслаждаемся.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments6

Загрузочный образ Acronis + VNC + VPN

Reading time5 min
Views8.3K

Мы в компании давно используем готовые образы систем для быстрого разворачивания рабочего места, но появилась проблема как это сделать удаленно. Попытки объяснить человеку на другом конце страны в каком порядке и что делать - утомили. Проще научить загружаться с флешки, а дальше уже самому поставить разворачиваться образ или наоборот сделать его. Для этого пришлось немного дополнить образ стандартного загрузочного диска Acronis Bootable PE добавив VNC и подключение по VPN до нашего шлюза.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity