﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Komentarze do: Shallow copy a deep copy &#8211; klonowanie obiektu z MemberwiseClone oraz przy użyciu serializacji</title>
	<atom:link href="http://andrzej.net.pl/index.php/2010/01/shallow-copy-a-deep-copy-klonowanie-obiektu-z-memberwiseclone-oraz-przy-uzyciu-serializacji/feed/" rel="self" type="application/rss+xml" />
	<link>http://andrzej.net.pl/index.php/2010/01/shallow-copy-a-deep-copy-klonowanie-obiektu-z-memberwiseclone-oraz-przy-uzyciu-serializacji/</link>
	<description>Blog o programowaniu C#, ASP.NET</description>
	<lastBuildDate>Tue, 29 Nov 2011 07:59:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>Autor: a</title>
		<link>http://andrzej.net.pl/index.php/2010/01/shallow-copy-a-deep-copy-klonowanie-obiektu-z-memberwiseclone-oraz-przy-uzyciu-serializacji/comment-page-1/#comment-4821</link>
		<dc:creator>a</dc:creator>
		<pubDate>Tue, 29 Nov 2011 07:59:59 +0000</pubDate>
		<guid isPermaLink="false">http://andrzej.net.pl/?p=692#comment-4821</guid>
		<description>więcej info:
http://developerscon.blogspot.com/2008/06/c-object-clone-wars.html
http://stackoverflow.com/questions/78536/cloning-objects-in-c-sharp</description>
		<content:encoded><![CDATA[<p>więcej info:<br />
<a href="http://developerscon.blogspot.com/2008/06/c-object-clone-wars.html" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/developerscon.blogspot.com/2008/06/c-object-clone-wars.html?referer=');">http://developerscon.blogspot.com/2008/06/c-object-clone-wars.html</a><br />
<a href="http://stackoverflow.com/questions/78536/cloning-objects-in-c-sharp" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/stackoverflow.com/questions/78536/cloning-objects-in-c-sharp?referer=');">http://stackoverflow.com/questions/78536/cloning-objects-in-c-sharp</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: htc</title>
		<link>http://andrzej.net.pl/index.php/2010/01/shallow-copy-a-deep-copy-klonowanie-obiektu-z-memberwiseclone-oraz-przy-uzyciu-serializacji/comment-page-1/#comment-1630</link>
		<dc:creator>htc</dc:creator>
		<pubDate>Wed, 30 Jun 2010 14:00:05 +0000</pubDate>
		<guid isPermaLink="false">http://andrzej.net.pl/?p=692#comment-1630</guid>
		<description>A jak skopiować obiekt, jeśli nie mamy do niego dostępu?
Ot, mamy jakiś obiekt i potrzebujemy wykonać jego kopię, a na dodatek typ obiektu nie jest oznaczony atrybutem Serializable.</description>
		<content:encoded><![CDATA[<p>A jak skopiować obiekt, jeśli nie mamy do niego dostępu?<br />
Ot, mamy jakiś obiekt i potrzebujemy wykonać jego kopię, a na dodatek typ obiektu nie jest oznaczony atrybutem Serializable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: andrzej</title>
		<link>http://andrzej.net.pl/index.php/2010/01/shallow-copy-a-deep-copy-klonowanie-obiektu-z-memberwiseclone-oraz-przy-uzyciu-serializacji/comment-page-1/#comment-1242</link>
		<dc:creator>andrzej</dc:creator>
		<pubDate>Thu, 07 Jan 2010 22:54:27 +0000</pubDate>
		<guid isPermaLink="false">http://andrzej.net.pl/?p=692#comment-1242</guid>
		<description>Wiadomo - wszystko ma swoje plusy i minusy. Jak z wydajnością? Szczerze powiem - nie wiem. Wątpie jednak by w aplikacjach, które mam okazję pisać robiło to wielką różnicę.Nie tworzę żadnych stricte &quot;time critical&quot; aplikacji.. Może kiedyś będzie chciało mi się sprawdzić ;) a może ktoś z Was już sprawdzał?
Co do opcji ICloneable vs serializacja... Ja wychodzę z założenia &quot;po co pisać więcej kodu, skoro można czasem napisać go mniej&quot;.  Z [Serializable] sprawa jest o tyle łatwiejsza, że jest duża szansa, że obiekt jest oznaczony takim atrybutem. Jeśli nie jest to - tak jak zwróciłeś uwagę - może to być niewielka różnica, bo i tak trzeba grzebać i tak. Jest jeden sposób na obejście braku atrybutu Serializable - jednak opiera się on na refleksjach.

Plus klonowania przez serializację jest taki, że jeśli mamy wiele obiektów zależnych w aplikacji którą tworzymy, można po prostu oznaczyć je jako [Serializable] i użyć jednej metody. Skupić można się na logice aplikacji a nie zabawie w implementację ICloneable. Odchodzi nam wtedy dodatkowo problem zależności między obiektami czy &quot;zapętlenia&quot; przy skomplikowanych połączeniach między nimi. BinaryFormatter jest sprytny i dba o to, aby nie wpaść w nieskończoną pętle (nie potrafi tego już np. XMLSerializer).

Nie wskazuję tutaj tego, co jest lepsze do sklonowania obiektu w C#. Pokazuję dwie możliwości. Której z nich użyjemy - zależy tylko od stopnia skomplikowania naszych aplikacji, preferencji itp.

Sam BinaryFormatterem ma kilka niuansów, o których wypadałoby wspomnieć. Może jakiś wpis na ten temat wysmaruję w najbliższych tygodniach.</description>
		<content:encoded><![CDATA[<p>Wiadomo &#8211; wszystko ma swoje plusy i minusy. Jak z wydajnością? Szczerze powiem &#8211; nie wiem. Wątpie jednak by w aplikacjach, które mam okazję pisać robiło to wielką różnicę.Nie tworzę żadnych stricte &#8222;time critical&#8221; aplikacji.. Może kiedyś będzie chciało mi się sprawdzić ;) a może ktoś z Was już sprawdzał?<br />
Co do opcji ICloneable vs serializacja&#8230; Ja wychodzę z założenia &#8222;po co pisać więcej kodu, skoro można czasem napisać go mniej&#8221;.  Z [Serializable] sprawa jest o tyle łatwiejsza, że jest duża szansa, że obiekt jest oznaczony takim atrybutem. Jeśli nie jest to &#8211; tak jak zwróciłeś uwagę &#8211; może to być niewielka różnica, bo i tak trzeba grzebać i tak. Jest jeden sposób na obejście braku atrybutu Serializable &#8211; jednak opiera się on na refleksjach.</p>
<p>Plus klonowania przez serializację jest taki, że jeśli mamy wiele obiektów zależnych w aplikacji którą tworzymy, można po prostu oznaczyć je jako [Serializable] i użyć jednej metody. Skupić można się na logice aplikacji a nie zabawie w implementację ICloneable. Odchodzi nam wtedy dodatkowo problem zależności między obiektami czy &#8222;zapętlenia&#8221; przy skomplikowanych połączeniach między nimi. BinaryFormatter jest sprytny i dba o to, aby nie wpaść w nieskończoną pętle (nie potrafi tego już np. XMLSerializer).</p>
<p>Nie wskazuję tutaj tego, co jest lepsze do sklonowania obiektu w C#. Pokazuję dwie możliwości. Której z nich użyjemy &#8211; zależy tylko od stopnia skomplikowania naszych aplikacji, preferencji itp.</p>
<p>Sam BinaryFormatterem ma kilka niuansów, o których wypadałoby wspomnieć. Może jakiś wpis na ten temat wysmaruję w najbliższych tygodniach.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: Novakov</title>
		<link>http://andrzej.net.pl/index.php/2010/01/shallow-copy-a-deep-copy-klonowanie-obiektu-z-memberwiseclone-oraz-przy-uzyciu-serializacji/comment-page-1/#comment-1241</link>
		<dc:creator>Novakov</dc:creator>
		<pubDate>Thu, 07 Jan 2010 18:04:38 +0000</pubDate>
		<guid isPermaLink="false">http://andrzej.net.pl/?p=692#comment-1241</guid>
		<description>A jak wygląda wydajność tego rozwiązania? Pozatym i tak musimy zmodyfikować klasę dopisując atrybut [Serializable]. Wydaje mi się, że lepszym rozwiązaniem byłoby jednak zaimplementowanie interfejsu ICloneable i sklonowanie odpowiednich składowych</description>
		<content:encoded><![CDATA[<p>A jak wygląda wydajność tego rozwiązania? Pozatym i tak musimy zmodyfikować klasę dopisując atrybut [Serializable]. Wydaje mi się, że lepszym rozwiązaniem byłoby jednak zaimplementowanie interfejsu ICloneable i sklonowanie odpowiednich składowych</p>
]]></content:encoded>
	</item>
	<item>
		<title>Autor: dotnetomaniak.pl</title>
		<link>http://andrzej.net.pl/index.php/2010/01/shallow-copy-a-deep-copy-klonowanie-obiektu-z-memberwiseclone-oraz-przy-uzyciu-serializacji/comment-page-1/#comment-1238</link>
		<dc:creator>dotnetomaniak.pl</dc:creator>
		<pubDate>Thu, 07 Jan 2010 05:38:41 +0000</pubDate>
		<guid isPermaLink="false">http://andrzej.net.pl/?p=692#comment-1238</guid>
		<description>&lt;strong&gt;Shallow copy a deep copy – klonowanie obiektu z MemberwiseClone oraz przy użyciu serializacji : andrzej.net.pl...&lt;/strong&gt;

Dziękujemy za publikację - Trackback z dotnetomaniak.pl...</description>
		<content:encoded><![CDATA[<p><strong>Shallow copy a deep copy – klonowanie obiektu z MemberwiseClone oraz przy użyciu serializacji : andrzej.net.pl&#8230;</strong></p>
<p>Dziękujemy za publikację &#8211; Trackback z dotnetomaniak.pl&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

