Рубрика «C#» - 135

Семинар по анатомии CLR и .Net Framework. Roslyn, CoreCLR, CoreFx, Nitra, RyuJIT - 1

03-04 Апреля в Москве и 29-30 мая — в Санкт-Петербурге пройдет серия семинаров CLRium. У данного семинара нет определенной целевой аудитории, мы рады всем. И начинающим свою карьеру, разработчикам, и махровым, повидавшим виды, архитекторам.

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

У нас будет:

  • Максимально глубокие, отборные доклады по редко-раскрываемым вопросам
  • Целый вечер, посвященный исключительно ядру .Net. Как с ним работать «без перчаток», напрямую, со структурами в памяти, без рефлексии.

Чем мы гордимся:

  • Наш материал не встретишь в сети Интернет: он полностью авторский
  • Материал освещает самые интересные области .Net, которые почему-то не покрыты материалом.
  • Мы не берем лишних денег с вас и потому у нас — самая дешевая конференция и всех существующих. 2,000 рублей за два дня — такого не предлагает никто. Это ведь как в магазин сходить.

Анатомия CLR

В данном вопросе я варюсь уже около года и достаточно плотно изучил как устроен CLR в качестве структур данных чтобы рассказать вам о них максимально подробно. Интерес к данному мероприятию должен возникнуть как минимум потому что эта тема практически не освещена в Интернете и знания, которые вы получите, помогут Вам взглянуть на платформу под совершенно новым углом. Также данный раздел знаний по CLR является чрезвычайно интересным. Microsoft с каждым днем давит на нас словом «безопасность». А так ли она безопасна, эта CLR? А так ли много там «магии», позволяющей нам не думать о безопасности? Это авторский проект и является результатом исследований с отладчиком: каково строение.Net объектов в памяти и что с этим можно сделать.

  • Во-первых мы посмотрим на реальное строение объектов в памяти
  • Во-вторых мы исследуем структуры данных в памяти, относящиеся к построению виртуальных методов, реализации интерфейсов и классов (этого не было на CLRium #1)
  • Далее, на основе полученных данных мы построим прокси-тип в памяти
  • И исследуем возможность сделать множественное наследование в .Net
  • Также попробуем совместить в одном объекте и Java и .Net объект, запустив одновременно оба рантайма (привет, Xamarin)
  • После чего, воспользовавшись полученным опытом расшарим объект .Net между процессами так чтобы он одновременно существовал бы в обоих мирах.
  • Полученные знания мы используем для ответа на вопрос: какие стандартные конструкции языка приводят к проседанию производительности и каким образом?
  • Подключим компилятор и сделаем собственный JIT с блекджеком Семинар по анатомии CLR и .Net Framework. Roslyn, CoreCLR, CoreFx, Nitra, RyuJIT - 2.

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

Сразу скажу, что статья больше подойдёт людям, желающим познакомиться с поиском в ширину, и новичкам, осваивающим программирование. К тому же, когда мне понадобился этот метод, я нигде не нашёл наглядного рабочего примера на C#.

Устно об алгоритме:

Разберём алгоритм на произвольном графе (для простоты примера рёбра не имеют вес).

Последовательность алгоритма заключается в следующим:

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

Поиск в ширину (BFS) на С# - 1
Читать полностью »

Breeze Server — разграничиваем доступ к объектам при помощи атрибутов - 1
В прошлой статье Breeze.js + Entity Framework + Angular.js = удобная работа с сущностями базы данных прямо из браузера мы рассмотрели создание простейшего приложения, где делали выборки и сохраняли данные в базе прямо из javascript в браузере. Конечно же первыми у читателей возникли вопросы о безопасности. Поэтому сегодня мы рассмотрим, как можно организовать разграничение доступа. Для этого мы немного доработаем наше приложение из прошлой статьи так, чтобы можно было при помощи атрибутов раздать определённые права доступа на добавление, удаление, изменение и просмотр данных определённым пользователям или ролям.
Читать полностью »

С выходом новой версии ASP.NET хочется попробовать, какая же она на практике. А для того, чтобы не писать еще один чатиксоц. сетьблог..., для пилотного проекта выберем логический квест — и фреймворк посмотрим, и поиграть можно.
Результат:
сорсы на гитхабе для тех, кому интересно поиграться с новым ASP.NET
линк на квест для тех, кому интересно что получилось или потратить свое время на еще один логический квест.
Пишем с нуля квест на ASP.NET 5 (vNext) и Angular.js - 1
Читать полностью »

Что Mono 4.0.0 нам готовит - 1

В последнее время многие обсуждают недавние открытие CoreCLR и CoreFX от Microsoft. Напомню, что ядро CLR и реализация базовых классов .NET у нас теперь открытые, кроссплатформенные и распространяются под MIT. Таким образом, вы можете собрать свою собственную версию рантайма, которая будет работать под Windows, Linux и Mac. И многих терзал вопрос: а что же теперь будет с Mono? Недавно появились черновики Mono 4.0.0 Release Notes, из которых мы можем узнать о будущих планах компании Xamarin. Итак, сегодня в номере:

  • Adoption of Microsoft’s open source code
  • Floating point optimizations
  • We dropped support for the 2.0, 3.5 and 4.0 assemblies
  • Updated IKVM

Обсудим грядущие изменения чуть подробней.Читать полностью »

DevCon Digest #1. Погружаемся в .NET - 1

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

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

Всем снова здравствуйте! Дошли руки написать крутую статью на весьма важную тему для разработчиков игр. Итак, поговорим о защите ваших драгоценных игр и приложений, которые вы пилите на Unity в надежде заработать на буханку хлеба, от взлома злобными школьниками. Почему школьниками? Потому что надежной на 100% защиты априори быть не может. И кто захочет, все равно взломает. Вопрос лишь в том, сколько времени и сил он на это потратит. И как любят шутить безопасники — терморектальный криптоанализ никто не отменял.

Итак, в статье я постараюсь максимально доступно рассказать о 3 аспектах (и конечно, предложу реализацию):

  • защита данных приложения (сейвов)
  • защита памяти приложения
  • защита внутриигровых покупок (Google Play)

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

Ядро .Net (GC, JIT, interop, ...) в Open Source! - 1Мы рады сообщить что CoreCLR теперь находится на github и теперь вы имеете доступ ко всем его исходным кодам. CoreCLR является средой исполнения .NET Core, выполняя такие функции как сборку мусора или компиляции в конечный машинный код. .Net Core – это модульная реализация .Net, которая может быть использована как база для огромного количества сценариев, масштабы которых варьируются от простых консольных утилит до вэб-приложений, хостящихся в облаке. Чтобы понять, чем отличается .Net Core от .Net Framework, посмотрите на пост «Введение в .Net Core»

Теперь вы можете скачивать исходники CoreCLR, бранчеваться, и делать pull requests, также вы можете компилировать его прямо на своем ПК. Мы выпустили полную и актуальную реализацию CoreCLR, которая включает RyuJIT, .Net GC, родной Interop и множество других компонент .Net runtime. Данный релиз следует тем же принципам, что и все наши последние релизы библиотек, вышедших в open-source: сделать весь .Net Framework open sourced.
Читать полностью »

В Украине есть такая интересная штука, как Малая Академия Наук. В общем, это что-то вроде конкурса проектов для учащихся по школам. Довольно интересные проекты попадаются, и об одном я вам сейчас поведаю.

Проектик этот — мой, случайно напомнивший о себе, пока наводился порядок в книжном шкафу. Тема его, тогда, 5 лет назад, казалась ужасно крутой и звучала так: «Методы генерации игровых карт». Чуть выше пример того, что у меня получалось. Как видите, это стилизованные под рогалик примеры уровней какой-то там несуществующей игры. Но обо всём по порядку.
Читать полностью »

Вступление

Привет! В среде .NET есть компонент Graphics. Он позволяет рисовать в .NET форме.
Сегодня я расскажу о создании игры Пинг-Понг на C#.

Для начала немного истории о самой игре. Игра был сделана компанией Atari в 1972 году.
Цель игрока отбивать мяч и не промахнуться.

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


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