Pull to refresh
11
0
Алексей Ануфриев @Razaz

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

Send message

Ядро .Net (GC, JIT, interop, ...) в Open Source

Reading time5 min
Views36K
Мы рады сообщить что 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.

Сегодня ядро .Net компилируется и отрабатывает (видимо имеется в виду CI) на Windows. Мы добавим имплементации для специфических для Mac и Linux платформенных вещей в ближайшие пару месяцев. Также мы уже имеем некоторый специфический для Linux код в .Net Core, однако мы только начали портировать с Windows на остальные платформы. Напротив, мы хотели открыть исходные тескты с самого начала, чтобы вы вместе с нами пропутешествовали бы к другим платформам, возможно, внося свой вклад.
Читать дальше →
Total votes 74: ↑64 and ↓10+54
Comments40

Flux для глупых людей

Reading time6 min
Views257K
Пытаясь разобраться с библиотекой от Facebook ReactJS и продвигаемой той же компанией архитектурой «Flux», наткнулся на просторах интернета на две занимательные статьи: «ReactJS For Stupid People» и «Flux For Stupid People». Чуть раньше я поделился с хабравчанами переводом первой статьи, настала очередь второй. Итак, поехали.

Flux для глупых людей


TL;DR Мне, как глупому человеку, как раз не хватало этой статьи, когда я пытался разобраться с Flux. Это было не просто: хорошей документации нет и многие ее части перемещаются.

Это продолжение статьи «ReactJS For Stupid People».
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments35

Использование TypeScript (на примере angularjs) в Visual Studio 2015

Reading time4 min
Views26K
Решение этой проблемы заняло у меня несколько часов, поэтому, дабы сэкономить время другим участникам .Net сообщества, решил написать небольшую статью на хабр.

Первым делом, открываем packages.json и добавляем пакеты tsd (TypeScript Definition manager) и grunt-tsd (для взаимодействия с grunt).
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments15

Продолжаем кромсать CLR: пул объектов .Net вне куч SOH/LOH

Reading time6 min
Views19K
Добрый день, уважаемые разработчики (просто не знал, с чего начать пост). Предлагаю перед тем как начнется трудовая неделя немного подразмять мозги (совсем немного) и построить свой Small Objects Heap для .Net. Вернее даже не Small Objects Heap, а Custom Objects Heap.

Как все мы знаем, в .Net существует две группы куч: для больших и малых объектов. Как выяснить, во сколько нам обойдется объект можно при помощи кода из этой статьи (он нам пригодится): Ручное клонирование потока, а получить указатель на объект и по указателю получить сам объект можно научиться, прочтя эту статью: Получение указателя на объект .Net. Также нам понадобится статья корейского (южно-) программиста по перенаправлению указателя на скомпилированную часть метода на другой метод: 실행 시에 메서드 가로채기 — CLR Injection: Runtime Method Replacer 개선

Так что давайте поэкспериментируем и напишем библиотеку, которая позволит:
  • Аллоцировать участок памяти
  • Разметить его как набор объектов определенного .Net типа
  • Выделять объекты с этой памяти
  • Возвращать их обратно


Ссылка на проект на GitHub: DotNetEx

Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments15

Встреча .Net сообщества на CLRium #2. Как устроен и работает CLR, Roslyn, RyuJIT, CoreFx

Reading time4 min
Views8.5K
Я не люблю заезженное слово «конференция». Это — встреча разработчиков с общими интересами, которые хотят послушать о трюках, которые позволяют обходить правила, установленные в.Net Framework, которым интересна тема использования меняющих и создающих языки, тулов. А также, что можно получить если знаешь как компилировать и декомпилировать приложение. Об этом не говорят. Потому что разговор на эту тему слишком долгий чтобы уместить в формат одного часа стандартного выступления на конференциях. Я пробовал выступать на .NEXT, и помимо положительных отзывов были «галопом по Европам». Согласен, за час не уложиться. Добро пожаловать в полный формат!

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

Теперь у нас целых два дня. Причем вы можете купить билет как на один, так и на оба дня. Первый день — как в прошлый раз: много хардкора, не практичного, но очень интересного… Позволяющего еще лучше понять как все работает и как этим можно воспользоваться… Тем со временем еще немного накидаю. Много мяса на любителя. И второй — практика. Второй длиннее первого. На час =). Во второй день будет очень много Roslyn, JetBrains Nitra (он же N2, он же Nemerle2)? RyuJIT, .Net Framework open sourced. Вот честно, я бы сам сходил

Почитать и зарегистрироваться



cool Примеры статей и полный список тем выступлений — под катом
Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments0

Jump Start в PowerShell (часть II)

Reading time10 min
Views173K
Кто, если не ты? Когда, если не сейчас?



В предыдущей части мы научились запускать PowerShell, разобрались с политикой выполнения сценариев. Поняли, что такое командлеты, знаем, как передавать их по конвейеру и как получить их свойства. Узнали, что PowerShell имеет огромный Help.

В этой части мы разберёмся с переменными, узнаем, что они за типы и как к ним обращаться, как их сравнивать и выводить всевозможными способами. Обязательно разберёмся с циклами и напишем несколько функций.
Читать дальше →
Total votes 49: ↑31 and ↓18+13
Comments16

Jump Start в PowerShell (часть I)

Reading time5 min
Views250K
Только автоматизация. Только PowerShell.



Предисловие


В качестве хобби и при наличии времени преподаю студентам в УКИТ (бывший Московский государственный колледж информационных технологий). На данный момент у меня мало времени, чтобы уделить его группе студентов, зато вполне достаточно, чтобы подготовить пост здесь, на Хабре.

Я работаю системным администратором в крупной не ИТ-компании с большой завязкой на ИТ ресурсы. По роду деятельности представляется решать большое количество однотипных задач по обслуживанию пользователей.

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

Внимание: PowerShell вызывает привыкание.
Читать дальше →
Total votes 46: ↑37 and ↓9+28
Comments63

Использование SmtpClient для отправления почты через SMTP сервер Яндекса с SSL

Reading time2 min
Views83K
Если вы используете Яндекс.Почту для домена, то скорее всего уже знаете что неделю назад с 16 сентября 2014 г. SMTP сервер Яндекса smtp.yandex.ru полностью перешел на SSL, о чем компания добросовестно уведомила клиентов (говорю безо всякого сарказма, действительно сработали добросовестно). В почтовой рассылке были приведены инструкции для популярных почтовых клиентов о том, какие изменения в них необходимо произвести, чтобы почта работала после перехода на SSL: Шифрование передаваемых данных. Если кратко, то в настройках SMTP надо указать порт 465 и включить опцию шифрование SSL. Однако, если у вас есть свое .Net приложение, в котором для отправления почты используется стандартный класс System.Net.Mail.SmtpClient, то при попытке использовать эти инструкции возникнет исключение с сообщением о превышении времени ожидания.
Далее
Total votes 17: ↑13 and ↓4+9
Comments14

EMET 5.0 вышел в релиз

Reading time1 min
Views6.1K
Компания Microsoft выпустила в релиз пятую версию инструмента EMET (EMET 5.0), о котором мы подробно писали здесь и здесь. Релизная версия заменяет собой EMET 5.0 Technical Preview 3, который был доступен пользователям до выхода этой версии в релиз. На новых технических возможностях EMET 5.0 мы подробно останавливались здесь, они включают в себя механизмы Attack Surface Reduction (ASR) и Export Address Table Filtering Plus (EAF+). Кроме этого, разработчики добавили более дружественный интерфейс (впервые был введен в EMET 5.0 TP3). Теперь вместо сухих таблиц с галочками, которые включают необходимые опции безопасности, по двойному щелчку на процессе можно посмотреть включенные для него опции с их минимальным разъяснением.



Инструмент EMET является бесплатным в использовании и продвигается Microsoft как одно из основных средств для защиты от эксплойтов, в т. ч. 0day. Во многих Security Advisory, выпускаемых компанией, вы можете увидеть отсылку именно к EMET. Инструмент, в большей степени, ориентирован на технических специалистов и содержит различные настройки, некоторые из которых выключены по умолчанию для обеспечения необходимого уровня совместимости с приложениями (EMET выполняет т. н. inline patching кода защищаемых процессов, перехватывая там API вызовы, см. ссылки выше). Тем не менее, даже для обычного пользователя, который не может разобраться со всеми настройками, EMET может быть очень полезен с настройками по-умолчанию.

Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments0

Альфа-Банк и Visa запускают программу развития финтех-стартапов

Reading time2 min
Views8.4K
На Хабре всегда интересовались программами, с помощью которых можно не только пройти обучение, но и построить свой бизнес. Лучшим примером таковой на данный момент считаю программу от Яндекса Tolstoy Startup Camp. О ней был хороший пост. Но я хотел бы рассказать о новой подобной программе, которая ориентирована на финансы и платежные системы, Альфа Кемп — первая в России программа поиска и развития финтех-стартапов. За 5 недель(17 августа — 22 сентября) интенсивной программы можно будет создать основу для развития своего бизнеса в области финансовых технологий и, возможно, получить инвестиции. Участие в программе бесплатно.

Участники кемпа смогут консультироваться со специалистами АльфаБанка (бухгалтеры, юристы, технологи, маркетологи), специалистами стартап-акселератора MetaBeta, компании Visa и любыми другими специалистами, которые понадобятся.

Для разработки сервисов Альфа-Банк предоставит участникам программы доступ к использованию своих технологий через API,— в частности, API интернет-эквайринга для проведения интернет-платежей, API для организации P2P-переводов, API для выпуска виртуальных предоплаченных карт, API для перевода с номера счета юридического лица на любую карту российского банка.
Читать дальше →
Total votes 22: ↑16 and ↓6+10
Comments6

Spring: Реализация TaskExecutor c поддержкой транзакций

Reading time7 min
Views20K
Spring, позаботившись о разработчиках, предлагает удобный и простой фасад для взаимодействия с менеджером транзакций. Однако всегда ли стандартного механизма будет достаточно для реализации изощрённых архитектурных идей? Очевидно — нет.

В этом посте пойдёт речь о возможностях Spring —
  • взглянем на примеры стандартного управления транзакциями с помощью аннотаций,
  • поймём — когда решить задачу с помощью аннотаций не получится,
  • и, судя по заголовку статьи, дадим пример реализации транзакционного исполнения кода в новом потоке, создавемых с помощью Spring TaskExecutor.

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

DevCon 2014: как это было (+ много фото)

Reading time4 min
Views11K
В конце мая в одном из природных курортов Подмосковья прошла конференция DevCon 2014, которая собрала свыше 900 разработчиков и тестировщиков ПО на месте и более 40000 зрителей онлайн.



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

В этом году DevCon 2014 предложила участникам следующий формат:

  • 2 дня, с 28 по 29 мая, на базе природного курорта;
  • Пленарный доклад, десятки докладов основной программы в пяти параллельных треках;
  • Мастер-классы, круглые столы и хакатоны "Ночь кодирования" и “F# Coding Dojo”;
  • Выставка партнеров и гостевой дом Microsoft c новыми девайсами;
  • Вечерняя программа и живой концерт группы Uma2rmaH;
  • Активности на свежем воздухе и спортивные мероприятия.

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

Ниже вы найдете много фотографий с конференции. Если вы были вместе с нами на DevCon 2014, то делитесь впечатлениями в комментариях. Необработанные записи конференции уже можно посмотреть на сайте http://www.msdevcon.ru/. Вскоре мы опубликуем готовые записи докладов на Channel9 и TechDays.ru.
очень много фото
Total votes 39: ↑23 and ↓16+7
Comments18

Никто не умеет обрабатывать ошибки

Reading time9 min
Views113K
Из одной книги в другую, из статьи в статью кочует мнение о том, что выражение

try {
   //do something
}
catch(Exception ex) {
}

является плохой практикой. Возврат кодов – также плохая практика. Но становится ли нам, программистам, жить легче с этими знаниями и так уж ли они неоспоримы? И самый забавный вопрос – кто-нибудь в мире умеет грамотно обрабатывать ошибки, возникающие по ходу работы приложения? (под этим я понимаю обработку только тех ошибок, которые имеет смысл обрабатывать и вывод сообщений об ошибках, которые соответствуют действительно произошедшей, которые не вводят пользователя в замешательство, а в идеале и предлагают решение возникшей проблемы).
Подробности под катом
Total votes 70: ↑59 and ↓11+48
Comments121

Профайлер для Entity Framework

Reading time22 min
Views25K


Приветствую!

Продолжу серию статей про программирование. На этот раз, я хочу рассказать о написанном мной бесплатном профайлере для Entity Framework-а ( далее EF) c 4-й по 6-ю версию, а также о некоторых примененных мной решениях, таких как декомпилирование .NET кода на лету, форма для обработки исключений и прочее.
Nuget пакет для EF6: https://www.nuget.org/packages/EFlogger-For6/
Nuget пакет для EF4 — 5: https://www.nuget.org/packages/EFlogger-For4/

Подробности под катом.
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments13

Шпаргалка по шаблонам проектирования

Reading time2 min
Views1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Total votes 192: ↑179 and ↓13+166
Comments66

Windows Azure Pack — что за зверь и с чем его есть?

Reading time5 min
Views34K
Всем согревающий привет от Лорда Огня!
В этот замечательный, солнечный и морозный (ух! — лад-хлад!) день уж очень хочется рассказать про что-нибудь облачное (банально, не правда ли? — смайл).
Вот как раз на тему облачности думаю я пора рассказать про такую интересную штуку как Windows Azure Pack! Это как WIndows Azure, только как-бы «у вас в кармане»! Интересно? Тогда милости прошу продолжить чтение!



Читать дальше →
Total votes 33: ↑21 and ↓12+9
Comments6

C#. Сортировка членов типа с помощью ReSharper

Reading time6 min
Views15K

Существуют некоторые соглашения касаемые структуры класса, и того, в каком порядке должны располагаться его члены.
Вот, например, правила которые использует StyleCop, возможно, в вашей компании есть свои собственные.
Поддерживать структуру вручную довольно тяжело, скучно и отнимает много времени, особенно когда в классе довольно большое количество свойств, полей, методов и.т.д.
В этом посте речь пойдет о том, как с помощью ReSharper автоматизировать этот процесс.
Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments11

Длинная арифметика от Microsoft

Reading time9 min
Views117K

Введение


Известно, что компьютер может оперировать числами, количество бит которых ограниченно. Как правило, мы привыкли работать с 32-х и 64-х разрядными целыми числами, которым на платформе .NET соответствуют типы Int32 (int) и Int64 (long) соответственно.

А что делать, если надо представить число, такое как, например, 29! = 8841761993739701954543616000000? Такое число не поместится ни в 64-х разрядный, ни тем более 32-х разрядный тип данных. Именно для работы с такими большими числами существует длинная арифметика.

Длинная арифметика — в вычислительной технике операции (сложение, умножение, вычитание, деление, возведение в степень и т.д.) над числами, разрядность которых превышает длину машинного слова данной вычислительной машины. Эти операции реализуются не аппаратно, а программно, используя базовые аппаратные средства работы с числами меньших порядков.
Читать дальше →
Total votes 79: ↑66 and ↓13+53
Comments33

Настройка TeamCity для новичков

Reading time9 min
Views160K
Эта статья в первую очередь пригодится тем, кто использует тот же стек технологий, что и наша команда, а именно: ASP.NET, C#, NUnit, Selenium 2, git, MSBuild. Будут рассмотрены такие задачи, как интеграция с git, сборка C#-проектов, NUnit-тесты (как модульные, так и тесты UI), а также деплой на сервер. Впрочем, наверняка найдётся интересное и для других пользователей, кроме разве что съевших на этом вопросе собаку. Но они опять же смогут обратить внимание на ошибки в статье или что-то посоветовать: например, как оптимизировать фазу деплоя.
Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments12

Генерация PDF из WPF-приложения «для всех, даром, и пусть никто не уйдет обиженный»

Reading time7 min
Views24K
Пару недель назад на проекте появилась задача генерации PDF.
Разумеется, я, как разработчик WPF UI, сразу был против сурового подхода кодирования отрисовки всех примитивов PDF в коде C#.
И заказчик был непротив покупки некоего платного конвертера из HTML в PDF, например.
Вроде бы все просто — генерируем строку с HTML-разметкой, используя DotLiquid для шаблонизации, и конвертируем в PDF с помощью одного из множества платных конвертеров.
Единственная засада — плохая совместимость HTML со страничной структурой PDF-документа.
Только я начал закапываться в поисках решения этой проблемы, как один коллега поделился ссылкой на статью с альтернативным решением.
Из статьи я узнал, что есть возможность сгенерировать PDF из XPS-документа (этот формат поддерживается в WPF FlowDocument).
К тому же, для генерации использовалась бесплатная библиотека PDFSharp.

Исходники можете скачать с GitHub.

UPD: уже не первый раз наблюдаю как статью плюсуют (первые минусы были сразу после публикации и вряд ли относятся к основному контенту), при этом сливая карму. Мне интересна мотивация, обратная связь. Отпишитесь, кто чем недоволен / доволен, если не затруднит.
Пошаговые инструкции под катом
Total votes 29: ↑21 and ↓8+13
Comments5

Information

Rating
Does not participate
Date of birth
Registered
Activity