• Облачная защита для .NET приложений

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

      Да, C++ был почти идеальным языком в этом плане. Но времена меняются, старые технологии уходят и на их место приходят новые более продуктивные и удобные. Так наша команда перешла на .NET. Но в обмен на простоту разработки и удобство отладки, мы в придачу получили в довесок и простоту декомпиляции нашего ПО. Теперь хакер мог не просто обойти лицензионные ограничения, но и получить почти полный исходник нашей программы просто скормив ее рефлектору.
      Разумеется, в качестве решения этой проблемы на рынке было представлено множество различных обфускаторов. Но, как ни странно, большинство из них разочаровывали меня сразу с двух сторон: и ценовой политикой (даже минимальная лицензия некоторых превосходила стоимость нашего ПО в несколько раз), и «интеллектуальностью» алгоритма. Так, после некоторых обфускаторов, умудрялись падать даже простые WinForms приложения. Что же касалось WPF, то без долгого-долгого черного шаманства над эксклудами, запустить среднего размера программу не представлялось возможным в принципе.

      Так сформировалось понимание проблемы и четкое желание создать свой продукт, сводящий озвученные выше проблемы к минимуму. И появился SaaS обфускатор и протектор .NET кода AppFuscator.com

      Обфускатор и протектор .NET кода appfuscator


      Читать дальше →
    • PDFsharp and MigraDoc Foundation (Основы)

        Так как статья, из-за которой я получил инвайт куда-то пропала, хочу опубликовать ее снова.

        Ввиду небольшого количества бесплатных библиотек для работы с PDF в .Net а также недостаточного освещения их на русском языке хочу рассказать о работе с такой замечательной библиотекой как PDFsharp and MigradDoc
        Читать дальше →
        • +10
        • 12.2k
        • 4
      • Использование счетчиков производительности в приложении Windows Azure

        • Translation
        • Tutorial
        image

        Счетчики производительности можно использовать в приложении Windows Azure для сбора данных, позволяющих определять узкие места системы и настраивать производительность системы и приложений. Windows Azure предоставляет несколько счетчиков производительности, доступных для Windows Server 2008, IIS и ASP.NET. Список счетчиков производительности, которые можно использовать для приложений Windows Azure, см. в разделе «Общие сведения о создании и использовании счетчиков производительности в приложении Windows Azure».

        Для реализации этой задачи выполните следующие действия.

        • Шаг 1. Сбор данных из счетчиков производительности
        • Шаг 2. Создание настраиваемых счетчиков производительности (опция)
        • Шаг 3. Запрос данных от счетчиков производительности

        Шаг 1. Сбор данных от счетчиков производительности


        Для настройки сбора данных от счетчиков производительности в приложении Windows Azure используется метод GetDefaultInitialConfiguration, добавляется источник данных PerformanceCounters с экземпляром PerformanceCounterConfiguration, а затем вызывается метод Start с измененной конфигурацией. Чтобы собрать данные от счетчиков производительности, выполните следующие действия.
        Читать дальше →
      • Упрощение регистрации и работы с DependencyProperty

          При работе с WPF/Silverlight, периодически приходится создавать кастомные DependencyProperty, в основном при создании контролов. Стандартный подход объявления и работы с ними не идеальный и имеет минусы, о которых будет сказано ниже. Соответственно, появилась идея упростить запись регистрации и работы с DependencyProperty.
          Читать дальше →
        • Локализуем Application Title у WindowsPhone приложения: пособие по сокращению геморроя

          Доброго времени суток! Многие здесь разрабатывали приложения, которые попадали в публичный Marketplace, AppStore или еще какой-нибудь репозиторий. Многие из этих приложений полезны для пользователей всего мира. И, чтобы приложение было только не полезно, но и чуть более привлекательно, было бы неплохо дать ему название и описание на родном языке потенциального пользователя. WindowsPhone Marketplace с задачей локализации описаний справляется на ура. Однако, локализация Application Title доставляет… некоторые неудобства.
          Читать дальше →
        • Обзор JS-фреймворков. Путешествие через джунгли JavaScript MVC. Ч. 1

          • Translation
          (от 27 июля 2012)
          При написании нативного веб-приложения легко начать чувствовать себя богом, способным работать просто с библиотекой работы с DOM (такой как jQuery) и горсткой сервисных плагинов. Вскоре возникает проблема в виде груды вложенных возвратных функций jQuery и разбросанных DOM-элементов без всякой структуры вместо приложения.

          Короче, мы застреваем в спагетти-коде. К счастью, есть современные JS-фреймворки (библиотеки, задающие, кроме функций, правила организации кода --прим. перев.), помогающие поддерживать структуру и организованность в проекте, облегчающие ремонтопригодность в будущем.

          ■ Что такое MVC или, лучше сказать, MV*?


          Эти современные библиотеки дают разработчикам простой путь к организации кода, используя вариации паттерна проектирования, известного как MVC (Model-View-Controller). MVC разделяет задачи в приложении на 3 части:
          Читать дальше →
        • Обратная сторона луны

            При написании приложений, одной из важнейших вопросов являются потребление памяти и отзывчивость (скорость работы).

            Считается, что сборщик мусора – черный ящик, работу которого нельзя предугадать.

            А еще говорят, что GC в .NET практически не настраиваемый. А еще, что нельзя посмотреть исходники как классов .NET Framework, так и CLR, GC и т.п.

            А я скажу как бы ни так!

            В данной статье мы рассмотрим:
            • структура организации размещения объектов в памяти
            • CLR 4.5 Background Server GC
            • правильная настройка сборщика мусора
            • эффективный апгрейд приложений до .NET 4.0+
            • правильное ручное управление памятью

            Читать дальше →
          • XNA Draw: улучшаем графику игры

            • Tutorial


            Всем привет.

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

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



            Если интересно — под хабракат.
            Читать дальше →
          • Экономика Windows Store и возможности для разработчиков

              В статье «Разработка приложений под Windows 8: почему и как» мы затронули идею разработки под Windows 8. Как известно и было сказано там, Windows Store – Магазин приложений Windows 8, является одной из ключевых составляющих новой системы и важным слагаемым её успеха, равно как и успеха разработчиков, решивших создать приложения под Windows 8.
              image
              Для тех, кто сомневается в возможностях, которые несет Windows 8 для разработчиков, или не до конца понимает смысл Windows Store, мы решили сделать обзор самой идеи и возможностей, которые дает Магазин.
              Читать дальше →
            • База по языкам программирования: Синтаксический сахар или история развития языков

                Продолжаю выкладывать выдержки из вводного курса нашей компании по промышленному программированию.

                Часть третья: Синтаксический сахар или история развития языков



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

                Читать дальше →
              • Goblin Wars II.NET – история создания сетевой игры на C# с нуля

                  Добрый день, уважаемые хабровчане. Представляю вашему вниманию свой небольшой проект – сетевой 2D-шутер на C#. Несмотря на то, что визуальная составляющая весьма простая – в наш век уже никого не заинтересуешь 2D-играми, некоторые архитектурные решения могут заинтересовать людей, собирающихся написать свою игру. В статье я расскажу о вариантах реализации ключевых моментов игры.
                  Читать дальше →
                • Торговля знает, когда вы ждете ребенка

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

                    «Моя дочь получила это по почте! – прокричал он. – Она еще в школу ходит, а вы посылаете ей купоны на детскую одежду и памперсы? Да как вы смеете! Вы хотите таким способом побудить школьниц рожать?»

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

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

                    Как Target узнал, что дочь беременна до того, как об этом стало известно ее отцу? Ответ прост – благодаря системе прогнозирования беременности (pregnancy prediction system), разработанной аналитиком компании Эндрю Полом. Под катом – обо всем по порядку.
                    Читать дальше →
                  • У прозрачных пикселей тоже есть чувства или артефакты png'шек с прозрачностью

                      Поговорим о 2D-играх. Независимо от платформы, на которой они разрабатываются — почти всегда они будут использовать 3D-акселлераторы для вывода 2D-спрайтов (iOS, Android, PC… даже Flash уже это учится делать).

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



                      Вы попытаетесь наложить тайлы внахлест, но швы все равно останутся… И вы начнете ломать голову.

                      А дело все в злосчастных прозрачных пикселях! Оказывается, у них тоже есть цвет.
                      Читать дальше →
                    • Когда я говорил…

                        Когда я* говорил, что нужно вкладывать в сообщество и User Groups, вы вкладывали в теннисные столы. Теперь у нас много средненьких теннисистов и нет коммюнити.

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

                        Когда я говорил вкладывать деньги в обучение специалистов, вы продолжали раздавать деньги за рекомендации. Теперь у нас никто не работает, а все рекомендуют.
                        Читать дальше →
                      • Укрощаем хоткеи системой плагинов на C#

                        Привет, дорогой хабражитель!

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

                        Вступление


                        Примерно полтора месяца назад пользователь vvzvlad натолкнул меня на идею программы, для перевода различного текста по нажатию хоткея. Я очень долго пользовался этой программкой, но вот пару дней назад мне пришла в голову идея улучшить её.
                        Я решил добавить возможность назначать различные хоткеи на разные действия. Для этого я использовал систему плагинов.
                        В итоге получилась программа HotKeyHelper, которую вы можете скачать здесь.

                        image

                        Файл проекта находится здесь.

                        Под катом вы увидите исходный код программы и пояснения к нему.

                        Читать дальше →
                      • Как один мужик MES-систему купить хотел

                          Это было примерно месяц назад. К нам в офис приехал Василий. Он топ-менеджер компании, производящей оборудование для театральных сцен. С порога заявил, что ему нужна MES-система или APS-система и что он еще не до конца решил, какая из них. «Почему именно MES-система?» — спросил я.

                          — Я уже несколько месяцев занимаюсь изучением вопроса, связанного с решением наших производственных проблем. Встречался с представителями нескольких компаний, производящих MES и APS системы. Они сказали, что их системы как раз и решают наши проблемы. Причем мне сказали, что только такие системы и способны решить наши проблемы. У вас тоже MES система?

                          — Нет, у нас ERP-система. Да это не важно, забудьте про эти всякие аббревиатуры. Давайте просто поговорим о ваших проблемах.

                          Читать дальше →
                        • Техническая препарация одной игры, созданной независимыми разработчиками

                            Здравствуй, суровый, но справедливый хабр!

                            Хочу вместе с тобой препарировать одну игру, написанную мной совместно с моим хорошим другом. По механике игра – это бой в реальном времени между двумя игроками, у каждого из которых колода карт. А карты, в свою очередь, генерируют бойцов, которые уже самостоятельно прут на бункер противника, попутно кроша на фарш вражеских воинов. Помимо боя в игре есть магазин с картами; штаб, где можно формировать колоду и качать персонажей; арена, где можно запустить квест или реальный бой; ну и банк, где можно добыть игровую валюту. Напомню, мы независимые разработчики, поэтому ограничены в ресурсах и многие решения не идеальны.
                            Как начинали придумывать игру здесь: habrahabr.ru/post/142490

                            Начнём препарацию.

                            Читать дальше →
                          • Видеоматериалы, блоги и подкасты для .NET разработчика

                              Видеоматериалы


                              В одной из своих статей Бьёрн Страуструп (папа С++) признался, что он не признает видео материалы в качестве источника для самообразования. И с ним сложно не согласиться, когда речь касается изучения с нуля языка программирования или технологии. Я правда сомневаюсь, что можно одолеть такого монстра, как С++ или стать гуру WPF лежа на диване и просматривая обучающее видео типа «Узнай все за 24 часа». Но если вы ставите себе цель познакомиться с некоторой технологией или новой возможностью языка программирования, или просто послушать философско-компьютерные размышления умного товарища, то в этом случае веб-касты, записи конференций или другой вид видеоматериалов может быть очень кстати.
                              Читать дальше →
                            • WinPhone DevHub — мобильное приложение, которое должно быть под рукой у каждого WP7 разработчика

                                Практически все WP7 разработчики используют в своей работе сторонние библиотеки контролов. Вы, как разработчик, прошли через то, что бы скачивать примеры для конкретной библиотеки, компилировать и устанавливать это на свой телефон? А были ли моменты, когда вы искали подходящую иконку для ApplicationBar? Сколько времени потребовалось, что бы её найти? И, наверное, желали быть в курсе того, когда появляются новые иконки? А хотите, что бы это и кое-что другое было собрано в одном бесплатном приложении для Windows Phone? Если да, то добро пожаловать под кат, где вас ждёт описание приложения WinPhone DevHub и некоторые технические подробности его создания.
                                Читать дальше →