Рубрика «.net» - 62

В данной статье речь пойдет о том, как расширить процесс сборки проекта с помощью MSBuild.

Меню

Читать полностью »

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

  1. ограничение доступа к данным для пользователей не прошедших аутентификацию
  2. ограничение доступа к данным для аутентифицированных, но не обладающих необходимыми привелегиями пользователей
  3. предотвращение несанкционированного доступа с помощью прямых обращений к API
  4. фильтрация данных в поисковых запросах и списковых элементах UI (таблицы, списки)
  5. предотвращение изменения данных, принадлежащих одному пользователю другими пользователями

Сценарии 1-3 хорошо описаны и обычно решаются с помощью встроенных средств фреймворков, например role-based или claim-based авторизации. А вот ситуации, когда авторизованный пользователь может по прямому url получить доступ к данным «соседа» или совершить действие в его аккаунте случаются сплошь и рядом. Происходит это чаще всего из-за того что программист забывает добавить необходимую проверку. Можно понадеяться на код-ревью, а можно предотвратить такие ситуации применив глобальные правила фильтрации данных. О них и пойдет речь в статье.
Читать полностью »

Это перевод первой части статьи. Статья была написана в 2008 году. Спустя 10 лет почти не потеряла актуальности.

Детерминированное освобождение ресурсов — необходимость

В течение более чем 20-летнего опыта кодирования я иногда разрабатывал собственные языки для решения задач. Они варьировались от простых имеративных языков до специализрованных регулярных выражений для деревьев. При создании языков есть множество рекомендаций и некоторые простые правила не должны нарушаться. Одно из них:

Никогда не создавай язык с исключениями, в котором нет детерминированного освобождения ресурсов.

Угадайте какой рекомендации не следует рантайм .NET, и как следствие все языки на его базе?

Читать полностью »

Каждая компания, которая посещает IT-конференции, старается приковать внимание гостей к своему стенду. Способов для этого много, здесь срабатывает принцип “Кто во что горазд” — от интересных задачек для программистов и символических призов до розыгрыша какого-то серьезного приза, или просто веселых конкурсов с настолками.

Само собой, мы в Альфе все это время двигались в том же направлении. Но в этом году решили немного поменять стратегию: собрали единую команду из HR-департамента и департамента IT (центры компетенций .NET и Javascript) и совместно выдвинулись на DotNext и HolyJS соответственно.

IT-бренд. О чем говорить с людьми на конференциях - 1

Что из этого вышло — под катом.
Читать полностью »

C# and JavaScript

Мой более-менее серьезный путь в программировании начался с написания программ на языке C#, иногда я пробовал писать на JavaScript, и то и дело впадал в ступор в таких ситуациях, когда неверно указывал имя переменной и узнавал об этом спустя много много лет час отладки, так как со мной рядом не было моего компилятора, который бы меня выручил в трудную минуту. Через некоторое время, помимо C# я начал писать много кода на JavaScript и в настоящее время могу делать это без особых трудностей, меня больше не смущает неявное приведение типов и динамическая типизация.

В данной статье я бы хотел систематизировать свои базовые знания об этих языках и рассмотреть их сходства и различия. Данная статья может служить руководством для C# разработчиков, которые хотят изучить JavaScript и наоборот. Также хочу заметить, что в данной статье описываются возможности клиентского JS, так как опыта разработки на Node.js у меня нет. Итак, если вы все ещё не потеряли интерес — приступим.

Читать полностью »

Здравствуйте, коллеги!

Напоминаем всем, что у нас вышла отличная книга Марка Прайса "C# 7 и .NET Core. Кросс-платформенная разработка для профессионалов". Обратите внимание: перед вами уже третье издание, первое издание было написано по версии 6.0 и на русском языке не выходило, а 3-е издание вышло в оригинале в ноябре 2017 года и охватывает версию 7.1.

C#: обратная совместимость и перегрузки - 1

После выхода такого компендиума, который прошел отдельную научную редактуру для проверки обратной совместимости и прочей корректности изложенного материала, мы решили перевести интересную статью Джона Скита о том, какие известные и малоизвестные сложности с обратной совместимостью могут возникать в языке C#. Приятного чтения.
Читать полностью »

Можно ли «хакнуть» ASP инфраструктуру? - 1

Как говорят специалисты по информационной безопасности «Ломают всё, всех и всегда». При этом, атаки на ASP.NET — вещь достаточно редкая. Поэтому всегда крайне любопытно узнавать про это что-то новое. Под катом рассказ специалиста отдела информационной безопасности Rambler Group Алексея Морозова о сильных и слабых сторонах данной технологии.Читать полностью »

Наш опыт миграции расширения Visual Studio на платформу Visual Studio code - 1

Всего три года назад для программиста на стэке технологий от Microsoft не существовало проблемы выбора иструмента разработки. Сегодня картина поменялась и Visual Studio Code выступает в качестве реальной альтернативы классическому Visual Studio и предостовляет функциональность которая ставит его гораздо ближе к IDE, чем к текстовому редактору. Бесплатный, кросс-платформенный и с открытым исходным кодом, этот редактор пользуется заслуженным уважением коммьюнити разработчиков ПО.

Данная статья описывает наш опыт в оценке возможности миграции одной из функций нашего внутреннего VS плагина на платформу Visual Studio Code.
Читать полностью »

Запланированные новые возможности C# 8.0 - 1

Все ранее представленные в минорных версиях C# средства, разработаны так, чтобы не сильно изменять язык. Они представляют собой скорее синтаксические улучшения и небольшие дополнения к новым возможностям C# 7.0.

Этот подход был преднамеренным, и он остается в силе.

Более серьезные изменения, которые требуют большей работы на всех этапах разработки (проектировании, внедрении и тестировании), по-прежнему будут выпускаться только с основными релизами языка. И хотя окончательная минорная версия C# 7 еще не выпущена, команда уже активно работает над следующей основной версией языка: C# 8.0.

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

Читать полностью »

При выполнении последнего проекта на работе мы с коллегой столкнулись с тем, что некоторые методы и конструкторы в System.Drawing падают с OutOfMemory в совершенно обычных местах и когда памяти свободной ещё очень и очень много.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js