Как стать автором
Поиск
Написать публикацию
Обновить
107.17

.NET *

Хаб со знаниями про .NET

Сначала показывать
Период
Уровень сложности

Нюансы при работе с EF миграциями

Время на прочтение3 мин
Количество просмотров9.6K

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

Читать далее

Персонализация сайта на максималках: знакомим с Sitefinity CMS, про которую мало кто знает, а зря

Время на прочтение7 мин
Количество просмотров3.8K
Мы разработали несколько веб-сайтов на платформе CMS Sitefinity и получаем положительные отзывы пользователей, которые любят платформу за простоту и удобство работы. Я Даша Максимова, разработчик ПО Digital Design, покажу, как выглядит CMS Sitefinity для тех, кто занимается первичной настройкой и размещением контента на примере демоверсии сайта, познакомлю с основными фичами и инструментами работы. Мы создадим страницу сайта, персонализируем её и вы удивитесь, насколько это быстро и просто!


Читать дальше →

RBAC? ABAC?.. PERM! Новый подход к авторизации в облачных веб-службах и приложениях

Время на прочтение11 мин
Количество просмотров32K

Принципиальная схема процесса авторизации с помощью Casbin


Данная статья преследует цель рассказать о новом походе к авторизации в облачных решениях, в основе которого лежит использование интерпретируемого языка определения политики управления доступом — который называется языком моделирования PERM (PML). Данный язык можно использовать для выражения различных моделей управления доступом, таких как список управления доступом (ACL), управление доступом на основе ролей (RBAC), управление доступом на основе атрибутов (ABAC) и других. А также рассказать о практическом воплощении этого подхода в виде конкретной реализации кросс-языковой библиотеки авторизации Casbin

Читать дальше →

Полное руководство по повышению безопасности вашего Asp.Net Core веб-приложения и API

Время на прочтение8 мин
Количество просмотров10K
Салют, хабровчане! Подготовили для вас перевод полезного руководства в преддверии старта курса «C# ASP.NET Core разработчик».





С каждым обновлением .Net Core Microsoft доказывает тот факт, что .Net Core является самым мощным, универсальным и полным фреймворком, доступным для разработки мощных десктопных, мобильных, облачных и веб-приложений. В отличие от десктопного или мобильного приложения, веб-приложение работает по общедоступному адресу, что является одной из причин, по которым безопасность веб-приложения имеет огромную важность. Хотя Asp.Net Core разработан с учетом лучших практик безопасности, тем не менее, все же существуют некоторые уязвимости, за которыми мы должны следить до и после релиза нашего Asp.Net Core приложения.

В этой статье мы рассмотрим несколько пробелов в безопасности Asp.Net Core веб-приложений и их возможные решения. Давайте начнем с перечисления некоторых важных моментов для обеспечения безопасности нашего .Net Core приложения.
Читать дальше →

Обновления .NET Core за июль 2020 года — 2.1.20 и 3.1.6

Время на прочтение2 мин
Количество просмотров2.9K
На прошлой неделе вышло июльское обновление .NET Core. Оно содержит исправления безопасности и улучшения надежности. См. индвидуальные примечания к выпуску для получения подробной информации об обновленных пакетах. В этой статье расскажем об улучшениях безопасности в совокупности.

Читать дальше →

Blazor Client Side Интернет Магазин: Часть 1 — Авторизация oidc (oauth2) + Identity Server4

Время на прочтение11 мин
Количество просмотров12K

Привет, Хабр! Таки да, в прошлой своей статье я попробовал сделать Todo List на Blazor Wasm и остался доволен. Теперь я решил взяться за что-то по серьезней, чтобы опробовать его в деле. Буду делать простенький SPA UI на Blazor для простого вымышленного интернет магазина. Максимально приближенный к боевому применению вариант. Начну я с того что запилю авторизацию пользователей и разделения их по ролям т. е. чтобы админ и обычный пользователь видели немного разный интерфейс. Еще я это все в docker образы собрал и на docker registry выложил. За подробностями добро пожаловать под кат.
Читать дальше →

ASP.NET MVC — Entity Framework, MySQL и использование Dependency Resolver для выбора репозитория

Время на прочтение7 мин
Количество просмотров8.6K
Legacy технологии
Предупреждение: ASP.NET MVC уже устарел. Рекомендуется использовать ASP.NET Core. Но если вам интересно, то читайте.

Решил немного расширить предыдущую статью про ASP.NET MVC и MySQL. В ней речь шла про работу с MySQL в ASP.NET MVC не через практически стандартный ORM Entity Framework (EF), а с помощью прямого доступа к СУБД через ADO.NET. И была приведена реализация этого метода доступа. И хотя метод устаревший и не рекомендуемый к использованию, но иногда полезен: например, в высоконагруженных приложениях или когда разработчик сталкивается с ситуацией, когда ORM не может сгенерировать корректно работающий SQL-запрос. И иногда можно совмещать в приложении оба способа — и через ORM и через ADO.NET. В итоге я подумал, и решил дописать приложение: добавив в него реализацию репозитория для Entity Framework и сделать выбор из них зависимым от параметра приложения с помощью Dependency Resolver.

Весь код можно взять вот по этому адресу, ниже этот код будет частично презентован с небольшими ссылками и пояснениями по отношению к предыдущему проекту. А здесь можно посмотреть на работу приложения.
Читать дальше →

Почему по статистике Яндекс и StackOverfow C# программисты самые дешёвые?

Время на прочтение2 мин
Количество просмотров22K
В общем недавно тут публиковалось статистика Яндекса по зарплатам в IT в России и еще на StackOverfow можно посмотреть на статистику по ЗП в США и тут грустный факт можно увидеть.
Читать дальше →

Выполнение запросов GraphQL с помощью OdataToEntity

Время на прочтение3 мин
Количество просмотров3.3K


В статье рассказывается как транслировать запросы GraphQL в OData и выполнять их написав
совсем немного кода на C#.

Читать дальше →

DotVVM — Первый взгляд

Время на прочтение5 мин
Количество просмотров4.8K
Я бы хотел начать серию статей на Хабре о фреймворке DotVVM. Для ознакомления начнем с простого TODO списка.
Фреймворк разработан на базе ASP.NET. Он прост в изучении и позволяет создавать бизнес-приложения и SPA без JavaScript кода. Все за счет большого количества готовых элементов управления.
Следующие статьи будут посвящены тому, с чего все началось, каково было писать собственный фреймворк и его поддержку в Visual Studio, а также какие фичи есть в последнем релизе, который вышел в начале этого года.
Читать дальше →

Windows сервера для задач 24x7 — миф или мои «кривые руки»?

Время на прочтение5 мин
Количество просмотров8K
История последних дней. Есть у нас два SQL Server'а (2016 c SSD диском) и Express Edition (2012 с традиционным HDD). Аппаратно оба компьютеры примерно похожи (CPU/RAM/LAN). В целом 2016 «отдает» данные в 2-5 раз быстрее, за исключением некоторого набора таблиц, для которых 2012 работает быстрее в 1,5-2 раза. Такое поведение полностью противоречит какой бы то ни было логике. Любые манипуляции с настройками базы данных только ухудшают ситуацию. 2016 все более замедляется, но только для этого набора таблиц.

Для понимания парадоксальности ситуации — на обоих серверах развернута одна и та же база (с одного и того же файла backup'a). В этой базе порядка 600 таблиц. Те 5-6 которые ведут себя удивительно ничем не отличаются от десятков подобных (по структуре и количеству записей) с которыми такой проблемы нет. На обоих «серверах» — Windows 10 с последними обновлениями (это сервера разработок, а не продуктивные). На обоих SQL Server'ах последние сервис паки (без hot fix'ов). Никакие специальные «режимы» (trace flags и пр.) SQL Server'ов не включены.

Загадка сия была велика, но мой коллега ее решил. Вы даже знаете как…

Программирование как искусство или как написать «Калькулятор» за 30 дней

Время на прочтение5 мин
Количество просмотров1.6K

Доводилось ли тебе, дорогой читатель, когда-нибудь писать рассказы? Может быть это было сочинение в школе или эссе на тему «Как я провел Лето» «Смысл жизни» на факультете психологии в университете. Всегда от пишущего требовали одного, донести свои мысли четко и, по возможности, интересно. Мне хотелось бы поделиться с тобой историей о том, как я писал рассказ, в котором объяснял почему $2+2=4$ и почему $2+2*2=6$. Статья несет в себе цель не сколько описать техническую сторону программирования, сколько ее эстетическую часть и, что главное, описать психологию программирования. Сопровождаться сия статья будет ссылками на коммиты в GitHub.

Читать дальше →

Бесплатные билеты на In-Memory Computing Summit 2017 – Europe

Время на прочтение1 мин
Количество просмотров1.9K
Всем привет! Возможно, вы знаете, что 20-21 июня в Амстердаме пройдет In-Memory Computing Summit 2017 – Europe. Все детали тут.



Мероприятие, ставшее уже традиционным в США, с этого года также будет ежегодно собирать экспертов из Европы и Азии на новой европейской площадке. На различных секциях конференции выступят представители компаний ING, Intel, Tata Consultancy Services, The Glue, Redis Labs, ScaleOut Software и WSO2.

У меня есть несколько бесплатных билетов, которыми я с удовольствием поделюсь с вами.
Напишите мне на почту mkuznetsov@gridgain.com или в личные сообщения на Хабре. От вас — ФИО и название компании на английском языке, адрес электронной почты и мобильный телефон.

Приезжайте, будет круто!

Ближайшие события

Как написать простой блог с помощью Asp .Net MVC, Nhibernate и Ninject.Часть 1

Время на прочтение13 мин
Количество просмотров27K
Перевод
  1. Введение


    Существуют различные способы изучения технологий: чтение книг, участие в конференциях, создание примеров и другие. Я считаю одним из лучших способов — создать что-то полезное для себя с использованием изучаемой технологии. Блог одна из полезных вещей, которую вы можете легко сделать. В серии статей, мы изучим ASP.NET MVC, шаг за шагом, путем создания блога с нуля.
Читать дальше →

Опыт внедрения NetBackup 7.6

Время на прочтение12 мин
Количество просмотров24K
В этой статье мы постараемся кратко рассказать об опыте внедрения системы резервного копирования Symantec NetBackup.

Для повышения защищенности внутрикорпоративных систем от потери информации и уменьшения производственных затрат на восстановление в случае сбоев заказчик принял решение о внедрении системы резервного копирования на базе NetBackup 7.6. Описание процесса выбора заказчиком конкретного решения мы оставляем за рамками данной статьи.
Читать дальше →

Entity Framework или почему я реализую Repository

Время на прочтение4 мин
Количество просмотров22K
Абстракции? Кому нужны абстракции?
EF наикрутейшая ORM от MS. habrahabr.ru/post/157267 это действительно круто. Разработать такую систему очень затратно по всем направлениям. CodeFirs вещь, знания проектирования БД, да какой там! Не нужны сами знания SQL – и это круто. Но так ли все радужно?
Julie Lerman может много рассказать msdn.microsoft.com/en-us/magazine/ff898427.aspx
image
Ничего не напоминает?
Читать дальше →

Тернии вокруг золота

Время на прочтение4 мин
Количество просмотров4.2K
Примечание автора: это перевод статьи Боба Мартина.
На написание этой статьи меня вдохновила статья Марка Симана «The IsNullOrWhiteSpace trap» (@ploeh). Статья Марка кратко и хорошо изложена. Пожалуйста, прочитайте сначала её, прежде чем продолжать читать данную.
Ловушка, о которой рассказывает Марк, это частный случай более общей ловушки, которую я называю воровством золота. Я могу продемонстрировать эту ловушку, возвращаясь обратно к статье Марка.

Заметьте, что первый тест, который написал Марк выглядел следующим образом:

[InlineData("Seven Lions Polarized"  , "LIONS POLARIZED SEVEN"  )]
[InlineData("seven lions polarized"  , "LIONS POLARIZED SEVEN"  )]
[InlineData("Polarized seven lions"  , "LIONS POLARIZED SEVEN"  )]
[InlineData("Au5 Crystal Mathematics", "AU5 CRYSTAL MATHEMATICS")]
[InlineData("crystal mathematics au5", "AU5 CRYSTAL MATHEMATICS")]

Он уже попал в ловушку. Почему? Потому что он уже украл золото.
Читать дальше →

Как я писал свой чат

Время на прочтение13 мин
Количество просмотров66K
Привет, Хабр!
В статье я написал, о том как разрабатывал чат. О его архитектуре и о технических решениях принятых в ходе его разработки.

Чат представляет собой клиент-серверное приложение с элементами p2p.
С поддеркжой:
  • Личных сообщений.
  • Комнат.
  • Передачи файлов.
  • Голосового чата.




Исходный код проекта: GitHub
Читать дальше →

Защита .NET-приложений при помощи Sentinel LDK Envelope

Время на прочтение9 мин
Количество просмотров23K
Утилита Sentinel LDK Envelope, о которой пойдет речь в этой статье, предназначена для установки навесной защиты на исполняемые модули (EXE и DLL) для платформ Win32, Windows x64, .NET, а так же, на Java-приложения (JAR и WAR). Защита осуществляется путем «привязывания» кода приложения к ключу защиты Sentinel (новое поколение ключей HASP), причем, ключ может быть как аппаратным (HL), так и программным (SL). Обработанный таким образом исполняемый модуль, будет работать только в присутствии требуемого ключа со всеми необходимыми лицензиями. Помимо проверки наличия ключа, внедренный в приложение код защиты, так же, обеспечит активное противодействие отладке и затруднит реверс-инжиниринг приложения, включая статический анализ кода.

Цель данной статьи – рассмотреть способы и особенности защиты .NET-приложений, причем, с упором на максимальную автоматизацию процесса установки защиты. Поэтому, далее мы будем рассматривать только тот функционал Envelope, который касается защиты именно .NET-приложений.

Читать дальше →

Microsoft и HP присоединяются к санкциям в отношении России

Время на прочтение2 мин
Количество просмотров4.2K
Крупнейшие американские IT-гиганты грозят российским банкам отключением части программного обеспечения. Microsoft, Symantec, Oracle и Hewlett-Packard намерены присоединиться к санкциям относительно ряда российских банков и компаний, и могут полностью прекратить сотрудничать с ними. Об этом рассказали источники Газеты.Ру в IT-подразделениях двух российских банков, также это подтверждает секретарь комиссии Госдумы по стратегическим информационным системам Андрей Черногоров.


Читать дальше →

Вклад авторов