pondělí 13. ledna 2014

.NET Memory leaks

Problém: Zdravím, máme celkem rozsáhlý projekt v .NET, který také volá nativní dll. Aplikaci neustále narůstá paměť.

úterý 31. prosince 2013

Nový rok 2014

Všechno nejlepší do Nového roku 2014, hodně čistého a znovupoužitého kódu, který přežije nejeden projekt.

A hlavně zdravíčko a dobré přátele.

středa 4. prosince 2013

Immutable collections in .NET



http://blogs.msdn.com/b/dotnet/archive/2013/09/25/immutable-collections-ready-for-prime-time.aspx
http://msdn.microsoft.com/en-us/library/dn467185(v=vs.110).aspx
http://blogs.msdn.com/b/ericlippert/archive/2007/11/13/immutability-in-c-part-one-kinds-of-immutability.aspx

Spojování dvou a více .NET Assembly.

Pokud programujete v C nebo C++, tak jistě víte, že knihovny lze linkovat do výsledné aplikace staticky nebo dynamicky. Pokud linkujete staticky, tak se vám knihovny připojí k výsledné aplikaci a nepotřebujete nic dalšího k aplikaci přidávat. Pokud linkujete dynamicky musíte mít společně s aplikací také dynamické knihovny dll.

V prostředí .NET ale jsou knihovny referencované dynamicky a s aplikací teda potřebujete i .NET dll knihovny.

Tak mě napadlo, jestli by nešlo .NET assembly slinkovat také staticky. Vše nasvědčuje tomu, že žádné statické slinkování nenní možné jak jsme byli zvyklí z céčka.
Googloval jsem na netu a řešením je spojení více assembly do jedné použitím utility ILMerge.exe

ILMerge

čtvrtek 28. listopadu 2013

GIT - aplikace patche

Na správu mého GIT repozitáře, použivam SourceTree od Atlassianu. Aktuální verze 1.3.2 neumí vytvářet patche do souboru a následně je aplikovat v jiné větvi. Přes git konzoli to alr není žádný problém.

$ git format-patch BruceLee --stdout > z:/lib.patch

Git vytvořil z podsledního komitu větve BruceLee rozdílový soubor a uložil ho do z:/lib.patch.

Nyní se můžete přepnout do větve, kde chcete patch aplikovat.
Aplikaci patche můžete otestovat.

$git apply --check z:/lib.patch

A pokud je vše v pořádku, můžeme patch aplikovat.

git am --signoff < z:/lib.patch