Not Just My Code: How to debug third party libraries without decompiling them


So I'm back... writing another blogpost. Hope this would be good one.

If you are using any third party library you probably know the pain you are getting if something works not as you expected...

Imagine the most common scenario - you have a website which uses third party library. Basically it's DLL which provides some integration points for you. You try to integrate with it, it doesn't work but you have no idea why. If it was your code you could have debugged it, but what if you don't have the code? Usually in my case this meant reverse engineering and decompiling using tools like ILSpy, and replacing OOTB code to be able to debug it step by step.... But is it really the only way to do it?
Fortunately there is a better way.
Step 1 - Generate symbols using decompiling tool dotPeek.
When library is built in Visual Studio it's it's also supplied with *.PDB files which contains all the information about how to debug it. Unfortunately if you ar…

Graffity for Windows Phone

I would like to advertise an application that I done in my spare time.

The idea behind the app is to create painting using the phone and share them on the web. Currently the number of features is limited, but if the user base will grow I'll extend the functionality. There are a lot of ideas how to make app more useful.


 If you have Windows Phone I'll be happy to recieve feedback, if not please share :)

You can learn more about the app here: http://graffity.cloudapp.net

Backbone.JS + ASP.NET WebAPI

IntroductionBackbone.js is a powerful JS library built on top of Underscore.js library. It enables to create one page javascript applications using MVC pattern.

Backbone.js could be downloaded from http://backbonejs.org/, also there exists plenty of examples and tutorials.

ASP.NET WebAPI is newest Microsoft framework, which is a part  of ASP.NET MVC 4. It provides developers with abilitity to quickly create REST services, which could be available from any device and client.

More information about WebAPI could be found on http://www.asp.net/web-api/overview

In this post I would like to describe how to create basic Backbone.js application, which is using WebAPI as a storage.

Step 1 Create WebAPI REST service

First lets create a REST service which will provide and modify all data in our app.

Our service will be able to provide a list of skills, which we'll be defined by id, title and description. Also service will be able to add new skill to list.

We'll create new WebAPI projec…

6 interesting facts about garbage collection.

1. Don't create big objects with short lifetime Any object in CLR that is more than 85 000 KB in size are stored in the special heap for big objects. Also they are marked as 2nd generation objects from the start. Creating big objects with small lifetime is bad practice. Why? Garbage collector will need to collect 2nd generation objects more often, and this could lead to performance issues.
2. When GC collects garbage it pauses all managed threads When garbage collection starts CLR hijacks all managed threads and pauses them. But in fact it doesn't affect coding, so... nevermind :)
3. You can predict OutOfMemoryException  In some cases if application consume a lot of resources there is a probability of OutOfMemoryException. Not good, yeah? But... you can predict for operations with big memory consumption by using MemoryFailPoint.
Usage example:
   using(MemoryFailPoint mfp = new MemoryFailPoint(1500))    {     //Run code which uses lots of memory.    }
} catch(Insufficient…

Мой год c Sitecore CMS

Более года я не писал в блог не одного поста. В основном из-за отсутствия времени или желания, или просто от банальной лени.

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

О Sitecore Sitecore(www.sitecore.net) - датская компания с главным офисом в Копенгагене и центром разработке в Украине (Днепропетровск).
Sitecore занимается разработкой своего продукта - Sitecore CMS, а также сопутствующих к нему расширений:
Sitecore Intranet Portal - решение для созданий Интранет-вебсайтовSitecore Azure - расширение для публикации Sitecore CMS в облакоWeb Forms For Marketeers - упрощает создание опросников и форм в Sitecore CMSSharepoint Integration - расширение для интеграции с Microsoft Sharepoint Sitecore CMS Sitecore CMS основывается на следующих технологиях: ASP.NETMSSQL - используется для хранения данных и может быть заменено MySQL/Oracle БД.Lucene - используе…

MongoDB + NoRM - первые впечатления

Решил сегодня разобраться с MongoDB.

Т.к. ставить локально сервер не хотелось начал издалека. Нашёл бесплатный сервер MongoDB - MongoHQ. Хостинг обладает вполне адекватными ценовыми планами(16 МБ данных отдаётся в полном распоряжение разработчику бесплатно).

Итого после регистрации я получил полнофункциональный instance MongoDB.

Начал с поиска удобных GUI для просмотра БД. Вначале скачал MongoExplorer, однако тот наотрез отказался подключатся к удалённому серверу, поэтому выбор пал на MongoVUE. Последний подключился вполне успешно.

Далее я следуя советам статьи:

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

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

Cycloid release

Не прошло и года как игра дошла до своего финального состояние - а именно нахождения в Xbox Marketplace.


Случилось это ровно 11 августа - какраз на мой ДР. Вот такой подарок.

Теперь остаётся ждать результатов продаж и надеятся что они окупят вложенные усилия :)

PS: Счастливые владельцы Xbox могут бесплатно скачать триальную версию, а если понравится я с удовольствием поделюсь ключиком на полную версию.