Почему F#?
Просто потому что он мне нравится. Решив пару десятков задач на projecteuler я решил найти более практическое применение знаниям и написать нечто не сложное, но осязаемое.
Кому интересно — добро пожаловать под кат.
Читать полностью »
Просто потому что он мне нравится. Решив пару десятков задач на projecteuler я решил найти более практическое применение знаниям и написать нечто не сложное, но осязаемое.
Кому интересно — добро пожаловать под кат.
Читать полностью »
Фреймворк .NET развивается очень быстро, в языки с каждой версией добавляется множество новых возможностей. Однако интересно, как быстро этими обновлениями удаётся воспользоваться.
Краткая историческая справка (неполная):
.NET 4.5 (Windows Vista SP2+): Metro, async/await, Unicode console, generics in MEF, IDN, EAI, ZIP; WPF: Ribbon control, async validation, VirtualizingPanel pixel scrolling, static properties bindings, live shaping, better weak events support.
.NET 4.0 (Windows XP SP3+): Parallel Extensions, Parallel LINQ, Task Parallel Library, dynamic dispatch and DLR, covariance and contravariance, named parameters, optional parameters, indexed properties, code contracts, BigInteger and Complex classes.
Недавно начал работать над проектом, который требует информацию о фильмах, музыке, книгах. Для этого необходимо наполнить базу данных из другого ресурса. Решил воспользоваться свободной базой данных Freebase.
Freebase — большая база знаний, содержащая структурированные данные, собранные из множества различных источников. На данный момент она насчитывает примерно 23 миллиона тем. Каждая тема ассоциирована с одним или несколькими типами (люди, места, фильмы).
Читать полностью »
Исторически разработчики .NET использовали генератор образов в машинном коде Ngen. Это отлично работает, если у вас есть инсталлятор, и вы можете сгенерировать эти образы во время установки приложения. Но в других случаях, например когда у вас нет установщика или вы не имеете доступ к Ngen, ваше приложение будет производить JIT-компиляцию по мере необходимости, что замедлит его загрузку. Разработчики CLR предоставили решение в новой версии .NET – многоядерная JIT-компиляция с возможностью создавать профили оптимизации.
Читать полностью »
И вот минуло уже почти три месяца с момента нашего первого анонса облачная защита для .NET приложений. Все это время мы не теряли времени даром и активно работали над улучшением нашего продукта. В выявлении приоритетных направлений и обнаружении наиболее острых проблем нам очень помогло активно включившееся в испытания первой публичной версии хабросообщество. Большое спасибо Вам, от лица нашей команды!
Для того, чтобы защитить Unity 3D приложение, достаточно отправить на обфускацию сборки с пользовательским кодом из папки Managed, и затем заменить их на защищенные версии.
Идиома RAII (Resource Acquisition Is Initialization) берет свое начало в языке С++ и заключается в том, что некоторый ресурс захватывается в конструкторе объекта, и освобождается в его деструкторе. А поскольку деструктор локальных объектов вызывается автоматически при выходе из метода (или просто из области видимости) не зависимо от причины (нормальное завершение метода или при генерации исключения), то использование этой идиомы является самым простым и эффективным способом написания сопровождаемого C++ кода, безопасного с точки зрения исключений.
При переходе к «управляемым» платформам, таким как .NET или Java, эта идиома в некотором роде теряет свою актуальность, поскольку освобождением памяти занимается сборщик мусора, а именно память была самым популярным ресурсом, о котором приходилось заботиться в языке С++. Однако поскольку сборщик мусора занимается лишь памятью и никак не способствует детерминированному освобождению ресурсов (таких как дискрипторы операционной системы), то идиома RAII все еще применяется и в .NET, и в Java, пусть мало кто из разработчиков знает об этом замысловатом названии.
Читать полностью »