středa 27. července 2011

WCF Notifikace

WCF Transakce

Info:
http://msdn.microsoft.com/en-us/magazine/cc163688.aspx#S3


V každé literatuře o .NET se dočtete o podpoře transakcí uvniřt .NETu. A všechny příklady zabívající se touto problematikou jsou ukazovány na databázích. Nebudu zde popisovat jednotlivé programovací konstrukce, kterých se na netu v příkladech vyskytuje hodně. Zmíním jen konstrukci tzv. ambientní transakce, což je blok, uvnitř kterého probíhá automaticky transakce. Tato transakce se sama zahájí a na konci voláním metody Complete() se potvrdí.


using (TransactionScope sc = new TransactionScope)
{
sc.Complete();
}


Ale nyní přichází požadavek. Potřeboval bych naprogramovat pole objektů, které spravuji v paměti a potřebuji aby nad tímto polem fungovalo transakční zpracování. Je to možné? Funguje to? 
Odpověď zní ANO i NE.


Samozřejmě je o možné naprogramovat, ale nefunguje to automaticky. Nelze deklarovat před blokem proměnou, pak uvnitř bloku nastavit nějakou hodnotu této proměnné. Nakonec transakci nepotvrdit. Hodnota se nevrátí do původního stavu.


Proč?
Transakce můžeme využívat pouze transakčním zdrojem dat, nad transakčním modelem. Takovým transakčním zdrojem je například nějaké databázové připojení - SqlConnection. Pokud chceme transakce využívat pro jednoduché datové typy nebo objekty, musíme pro ně naprogramovat transakční zdroj. Na internetu lze stáhnout již naprogramované transakční zdroje:





Developer blog

... od nynějška zde budu psát své vývojářské postřehy

středa 9. února 2011

Co se u mně děje v číslech

2+1 v 3+1; 50mm; 30 let

Už je únor ...

Už je únor a já v novém roce nenapsal ani řádku do blogu. Těžce se mi píše, protože se mi rozpíjí inkoust na stářím zašlém html blogovém papíře. Tak alespoň sfouknu prach .... ah, už je to dobré