<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wintense.com &#187; .net</title>
	<atom:link href="http://wintense.com/tag/net/feed" rel="self" type="application/rss+xml" />
	<link>http://wintense.com</link>
	<description>Tools, plugins and other cool stuff</description>
	<lastBuildDate>Sun, 07 Feb 2010 02:46:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ArtDoctor for Mac OS X: possible!</title>
		<link>http://wintense.com/257</link>
		<comments>http://wintense.com/257#comments</comments>
		<pubDate>Wed, 06 May 2009 02:13:48 +0000</pubDate>
		<dc:creator>pieceofsummer</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[album art]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://wintense.com/?p=257</guid>
		<description><![CDATA[Some time ago a Mac port of Mono was released, so it made completely possible to run .NET applications there. But ArtDoctor needs to operate directly with device and was strictly tied with iTunesMobileDevice.dll, which has no analog on a Mac. 
And today I&#8217;ve managed to create a fully cross-platform .NET library to deal with [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago a Mac port of <a href="http://mono-project.com/">Mono</a> was released, so it made completely possible to run .NET applications there. But ArtDoctor needs to operate directly with device and was strictly tied with iTunesMobileDevice.dll, which has no analog on a Mac. </p>
<p>And today I&#8217;ve managed to create a fully cross-platform .NET library to deal with Apple devices. It even works without re-compiling for target platform. The trick is to use MobileDevice (dll on Windows and framework on Mac OS X) instead and apply some dll redirections for Mono.</p>
<p>However, it&#8217;s not just to change referenced library name. Unlike iTunesMobileDevice, MobileDevice framework doesn&#8217;t use native threads on both platforms. Also it is more strict about strings, so hand-made CFStrings most likely won&#8217;t do.</p>
<p>P.S. I really have no idea why both of these libraries are included in Windows distribution of Apple Mobile Device Support, &#8217;cause they don&#8217;t even reference each other.</p>
]]></content:encoded>
			<wfw:commentRss>http://wintense.com/257/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ArtDoctor future</title>
		<link>http://wintense.com/199</link>
		<comments>http://wintense.com/199#comments</comments>
		<pubDate>Mon, 16 Mar 2009 23:48:05 +0000</pubDate>
		<dc:creator>pieceofsummer</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[iPod]]></category>

		<guid isPermaLink="false">http://wintense.com/?p=199</guid>
		<description><![CDATA[For some time I thought that current  version (1.0.2) can fix any artwork-related issues. Well, I was wrong: maybe in case of iTunes that&#8217;s true, but other managers could not be trusted a bit.
A few days ago I was trying to resolve a reported issue with &#8220;parameter is not valid&#8221; error.
At first I thought [...]]]></description>
			<content:encoded><![CDATA[<p>For some time I thought that current <a href="http://wintense.com/tools/artdoctor" title="ArtDoctor" rel="bookmark">ArtDoctor</a> version (1.0.2) can fix any artwork-related issues. Well, I was wrong: maybe in case of iTunes that&#8217;s true, but other managers could not be trusted a bit.</p>
<p>A few days ago I was trying to resolve a reported issue with &#8220;<em>parameter is not valid</em>&#8221; error.<br />
At first I thought there were some changes in thumbnail formats (error was got on iTouch 2G, and I&#8217;ve never tested it on that device). Then I looked in ArtworkDB and noticed that it had invalid information inside, like overlapping offsets in cache files.<br />
So I understood ArtDoctor must also be able to rewrite artwork database, not only cache. It still doesn&#8217;t affect main database and is safe for your player. Even if something goes wrong, you won&#8217;t lose your music.<br />
<span id="more-199"></span><br />
Just to make it clear: that iPod was managed by <a href="http://www.mediamonkey.com/">MediaMonkey</a>. I don&#8217;t blame it, but you should be careful when using unofficial managers. There is <em>absolutely no warranty</em> you&#8217;ll get your artwork (or whole media library) working after next sync.</p>
<p>I&#8217;ve already succeeded in complete rewriting artwork information and made a &#8220;lab&#8221; version of ArtDoctor 2.0 (it&#8217;s private, but you could <a href="http://wintense.com/contacts" title="Contacts" rel="bookmark">contact</a> me to get one for testing).<br />
It definitely works, but there are some things to do before release:</p>
<ol>
<li>It has neither GUI, nor settings &ndash; it is a console prototype. Eye-candy UI must be made before going to public.</li>
<li>It supports only iPhone and iTouch cache formats for now. I have no Classic/Nano/etc. models at the moment and don&#8217;t remember which formats do they use. If you have one, please send me your ArtworkDB file (it is located in hidden folder <em>iPod_Control\Artwork</em>). Anyway, there&#8217;s a trick with ticking <a href="http://support.apple.com/kb/TS1883">&#8220;Display album artwork on device&#8221;</a> option off and then on for these devices, so they are not a primary target.</li>
<li><del datetime="2009-03-17T17:42:51+00:00">I didn&#8217;t find a way to notify device about database changed yet. It somehow caches that database, so now you need to restart your device (completely off and then on) to reflect changes correctly. That should be resolved before release.</del> [solved]</li>
</ol>
<p>Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://wintense.com/199/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lost records in DataView</title>
		<link>http://wintense.com/184</link>
		<comments>http://wintense.com/184#comments</comments>
		<pubDate>Fri, 06 Mar 2009 22:38:01 +0000</pubDate>
		<dc:creator>pieceofsummer</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[.net]]></category>

		<guid isPermaLink="false">http://wintense.com/?p=184</guid>
		<description><![CDATA[What should you do if you need to get position of a record in DataView? Generally, DataView implements an IList interface, so you may concider calling ((IList) dataView).IndexOf(dataRowView) would do all the magic for you.
I thought in such a way before I found out, that calling IndexOf on a DataRowView being edited would return &#8220;-1&#8243; [...]]]></description>
			<content:encoded><![CDATA[<p>What should you do if you need to get position of a record in DataView? Generally, DataView implements an IList interface, so you may concider calling ((IList) dataView).IndexOf(dataRowView) would do all the magic for you.<br />
I thought in such a way before I found out, that calling IndexOf on a DataRowView being edited would return &#8220;-1&#8243; (i.e. <em>not found</em>).</p>
<p>It happens because a DataRow creates a temporary copy of itself when calling BeginEdit() and associates a DataRowView with that copy. And calling IndexOf on DataView performs lookup through DataTable&#8217;s index, who has no idea about that temporary copy and returns nothing.</p>
<p>So you should finish with editing before performing any lookup.</p>
]]></content:encoded>
			<wfw:commentRss>http://wintense.com/184/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
