<?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>root-project.org</title>
	<atom:link href="http://root-project.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://root-project.org</link>
	<description>The future of working.</description>
	<lastBuildDate>Thu, 06 Jun 2013 08:32:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Git: Using repositories/branches for source separation</title>
		<link>http://root-project.org/work/git-using-repositoriesbranches-for-source-separation/</link>
		<comments>http://root-project.org/work/git-using-repositoriesbranches-for-source-separation/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 11:07:53 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[branch]]></category>
		<category><![CDATA[branching]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[production]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[staging]]></category>
		<category><![CDATA[staging site]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=493</guid>
		<description><![CDATA[
Git is a wonderful and easy way to manage your source code of any kind of project and using GitHub as the central is a smart move. Especially when you developing a web project it is always good to have a staging site where you can see the latest stage of the development in a production-like  [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://root-project.org/wp-content/uploads/2013/04/git_header.png" alt="Git Logo" /></p>
<p><a href="http://git-scm.com/">Git</a> is a wonderful and easy way to manage your source code of any kind of project and using <a href="http://github.com/">GitHub</a> as the central is a smart move. Especially when you developing a web project it is always good to have a <a href="http://en.wikipedia.org/wiki/Staging_site">staging site</a> where you can see the latest stage of the development in a production-like environment.</p>
<p>But what if your company wants you to separate the source code into development, staging and production stages? You can use branches even completely separated repositories to achieve that.</p>
<p>In my current project I&#8217;ve set up this branching system with a single repository:</p>
<ul>
<li>master</li>
<li>protected/development</li>
<li>protected/staging</li>
<li>protected/production</li>
<li>[...] all other branches from my team</li>
</ul>
<p><em>Note: the prefix <code>protected/</code> is a valid prefix for branch names</em></p>
<p>The workflow is:</p>
<ul>
<li>everything that is in <code>master</code> will be pushed periodically to <code>protected/development</code></li>
<li>as soon as changes in <code>protected/development</code> are detected, the development site will be deployed</li>
<li>every morning the latest source from <code>protected/development</code> will be pushed to <code>protected/staging</code> and the staging deployment site is started</li>
<li>once we are happy with the state of the staging site, we decide to manually start the deployment of the production site by pushing the source from <code>protected/staging</code> to <code>protected/production</code></li>
<li>using the <code>protected/*</code> branches directly by the team members is not allowed</li>
</ul>
<p>We are using <a href="http://www.jetbrains.com/teamcity/">JetBrains Teamcity</a> to manage and execute these steps automatically. One of these steps is a shell script to synchronize the git branches.</p>
<script src="https://gist.github.com/5344861.js?file=sync_repos_1branch.sh"></script><noscript><pre><code class="language-shell shell">#!/bin/bash

#./sync_repos_1branch.sh [path_to_work_in] [ssh/http-origin] [ssh/http-destination] [origin-branch] [destination-branch]

echo ScriptName is $0
echo ParamCount is $#

if [ $# -ne 5 ]; then
        echo The parameter count must be 5
        exit 1
fi

echo LocalGitPath is $1
echo GitRemoteOrigin is $2
echo GitRemoteDestination is $3
echo GitBranchOrigin is $4
echo GitBranchDestination is $5

if [ ! -d &quot;$1&quot; ]; then
  echo Local Git path does not exist, creating it
  mkdir &quot;$1&quot;
fi

echo Changing into local git path
cd $1

if [ ! -d &quot;$1/HEAD&quot; ]; then
  echo Local Git Path contains no Git repository, init a new one

  git init --bare &quot;$1&quot;

  if [ $? -ne 0 ]; then
    echo Git init fails, exit
    exit 1
  fi
fi

echo Setting up the remotes
git remote rm origin
git remote rm destination
git remote add origin &quot;$2&quot;
git remote add destination &quot;$3&quot;

echo fetching orign branch &quot;$4&quot; from &quot;$2&quot;
git fetch origin $4:origin/$4 --force

LASTERROR=$?
if [ $LASTERROR -ne 0 ] &amp;&amp; [ $LASTERROR -ne 128 ]; then #128 = no changes found
        echo git fetch operation fails, exit
        exit 1
fi

echo pushing orign branch &quot;$4&quot; to destination &quot;$3&quot; branch &quot;$5&quot;
git push destination origin/$4:$5 --force


LASTERROR=$?
if [ $LASTERROR -ne 0 ] &amp;&amp; [ $LASTERROR -ne 128 ]; then #128 = no changes found
        echo git push operation fails, exit
        exit 1
fi

echo done

exit 0</code></pre></noscript>
<p>you can call this script as following: <code>./sync_repos.sh [path_to_work_in] [ssh/http-origin] [ssh/http-destination] [origin-branch] [destination-branch]</code></p>
<p>example: <code>./sync_repos.sh ~/repos/dev git@github.com:user/project.git git@github.com:user/project.git protected/development protected/staging</code></p>
<p><em>Note: The <code>path_to_work_in</code> is necessary to create a bare repository as working base</em></p>
<p><em>Bonus:</em> <a href="https://gist.github.com/SeriousM/5344861#file-sync_repos_full-bat">here is a script</a> that makes a backup of you whole repository including the tags.</p>
<p>Have fun setting up your own branching system!</p>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/work/git-using-repositoriesbranches-for-source-separation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why you shouldn&#8217;t use Entity Framework with Transactions</title>
		<link>http://root-project.org/work/net/why-you-shouldnt-use-entity-framework-with-transactions/</link>
		<comments>http://root-project.org/work/net/why-you-shouldnt-use-entity-framework-with-transactions/#comments</comments>
		<pubDate>Wed, 16 Jan 2013 17:49:08 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Deadlocks]]></category>
		<category><![CDATA[EntityFramework]]></category>
		<category><![CDATA[Transactions]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=444</guid>
		<description><![CDATA[EntityFramework
This is a .net ORM Mapper Framework from Microsoft to help you talking with your Database in an object oriented manner. Wikipedia
Database Transaction
A database transaction, by definition, must be atomic, consistent, isolated and durable. Database practitioners often refer to these  [...]]]></description>
				<content:encoded><![CDATA[<h2>EntityFramework</h2>
<p>This is a .net ORM Mapper Framework from Microsoft to help you talking with your Database in an object oriented manner. <a href="https://en.wikipedia.org/wiki/Entity_framework">Wikipedia</a></p>
<h2>Database Transaction</h2>
<p>A database transaction, by definition, must be atomic, consistent, isolated and durable. Database practitioners often refer to these properties of database transactions using the acronym <a href="https://en.wikipedia.org/wiki/ACID">ACID</a>. Transactions in a database environment have two main purposes:</p>
<ol>
<li>To provide reliable units of work that allow correct recovery from failures and keep a database consistent even in cases of system failure, when execution stops (completely or partially) and many operations upon a database remain uncompleted, with unclear status.</li>
<li>To provide isolation between programs accessing a database concurrently. If this isolation is not provided, the program&#8217;s outcome are possibly erroneous. <a href="https://en.wikipedia.org/wiki/Database_transaction">Wikipedia</a></li>
</ol>
<h2>.NET Transactions</h2>
<p>A .NET Transaction can be used in different ways by different frameworks to support transactions. The .NET Transaction itself is not connected with the database by any means. <a href="http://msdn.microsoft.com/en-us/library/system.transactions.transaction.aspx">MSDN</a></p>
<h2>.NET Transactions and the EntityFramework</h2>
<p>If you are using the Entity Framework during an opened TransactionScope, EntityFramework will open a new Transaction right with the next command that will be sent to the Database (<a href="https://en.wikipedia.org/wiki/Create,_read,_update_and_delete">CRUD</a> Operation).</p>
<p>Consider this code block:</p>
<script src="https://gist.github.com/e6b30db2b21e7e602655.js?file=bad_example.cs"></script><noscript><pre><code class="language-c# c#">using (var transaction = new System.Transactions.TransactionScope())
{
    // DBC = Database Command

    // create the database context
    var database = new DatabaseContext();

    // search for the user with id #1
    // DBC: BEGIN TRANSACTION
    // DBC: select * from [User] where Id = 1
    var userA = database.Users.Find(1);
    // DBC: select * from [User] where Id = 2
    var userB = database.Users.Find(2);
    userA.Name = &quot;Admin&quot;;

    // DBC: update User set Name = &quot;Admin&quot; where Id = 1
    database.SaveChanges();

    userB.Age = 28;
    // DBC: update User set Age = 28 where Id = 2
    database.SaveChanges();

    // DBC: COMMIT TRANSACTION
    transaction.Complete();
}</code></pre></noscript>
<p>The <code>database.SaveChanges()</code> call sends your changes to the database and executes them but they are not really persisted because you are in the database transaction scope. <code>transaction.Complete()</code> actually finishes the database transaction and your data is saved.</p>
<p>That behavior is actually cool and very useful, right?</p>
<p><strong>NO. Absolutely not. full stop.</strong></p>
<h2>Why not using .NET Transactions along with EntityFramework</h2>
<p>The default isolation mode is <a href="https://en.wikipedia.org/wiki/Isolation_%28database_systems%29#Read_committed"><code>read committed</code></a> and fits perfectly to 99% of your needs, eg. reading data. When you want to save the changes you made to the database (Create, Update, Delete), EntityFramework is smart enough to create a transaction without your notice behind the scenes to wrap the changes. You can be sure that everything will be saved or every change will be discarded (<a href="https://en.wikipedia.org/wiki/Atomicity_(database_systems)#Atomicity_(database_systems)">Atomicity</a>).</p>
<p>By using transactions in EntityFramework, you change that behavior and force every <a href="https://en.wikipedia.org/wiki/Create,_read,_update_and_delete">CRUD</a> operation during a transaction scope to be executed in <a href="https://en.wikipedia.org/wiki/Isolation_(database_systems)#Serializable"><code>serializable</code></a> isolation mode which is the highest and most blocking type. No process will be able to access the tables you have touched (even reading from it) during your transaction. That can lead to <a href="https://en.wikipedia.org/wiki/Deadlock">Deadlocks</a> pretty fast and you want to avoid them at all costs!</p>
<p>That&#8217;s how the code looks like without the explicit usage of transactions:</p>
<script src="https://gist.github.com/e6b30db2b21e7e602655.js?file=good_example.cs"></script><noscript><pre><code class="language-c# c#">// DBC = Database Command

// create the database context
var database = new DatabaseContext();

// search for the user with id #1
// DBC: select * from [User] where Id = 1
var userA = database.Users.Find(1);
// DBC: select * from [User] where Id = 2
var userB = database.Users.Find(2);
userA.Name = &quot;Admin&quot;;
userB.Age = 28;

// DBC: BEGIN TRANSACTION
// DBC: update User set Name = &quot;Admin&quot; where Id = 1
// DBC: update User set Age = 28 where Id = 2
// DBC: COMMIT TRANSACTION
database.SaveChanges();</code></pre></noscript>
<p><strong><em>Rule of Thumb: Save only once per task and don&#8217;t use transactions.</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/work/net/why-you-shouldnt-use-entity-framework-with-transactions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Open Source Sotware</title>
		<link>http://root-project.org/others/free-open-source-sotware/</link>
		<comments>http://root-project.org/others/free-open-source-sotware/#comments</comments>
		<pubDate>Thu, 04 Oct 2012 09:30:31 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[All others]]></category>
		<category><![CDATA[foss]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=422</guid>
		<description><![CDATA[Recently I watched A tour through open source creative tools from Máirín Duffy Strode, Sr. Interaction Designer from Red Hat Inc. and I thought is is a good idea to put this list of GREAT software onto this blog. Enjoy!
Drawing
GIMP
MyPaint
Kitara
InkScape
Photographie / Imaging
Darktable Raw Image  [...]]]></description>
				<content:encoded><![CDATA[<p>Recently I watched <a href="https://www.youtube.com/watch?v=pPULcjeYEqQ">A tour through open source creative tools</a> from <a href="http://blog.linuxgrrl.com/">Máirín Duffy Strode</a>, Sr. Interaction Designer from Red Hat Inc. and I thought is is a good idea to put this list of GREAT software onto this blog. Enjoy!</p>
<h3>Drawing</h3>
<p><a href="http://www.gimp.org/">GIMP</a><br />
<a href="http://mypaint.intilinux.com/">MyPaint</a><br />
<a href="http://krita.org/">Kitara</a><br />
<a href="http://inkscape.org/">InkScape</a></p>
<h3>Photographie / Imaging</h3>
<p><a href="http://www.darktable.org/">Darktable</a> Raw Image Editor<br />
<a href="http://www.blackfiveimaging.co.uk/index.php?article=02Software%2F05CMYKTool">CMYKTool</a> Rich Converter for CMYK from/to RGB</p>
<h3>Office</h3>
<p><a href="http://xournal.sourceforge.net/">Xournal</a><br />
<a href="http://www.calligra.org/">Calligra Suite</a> BrainDump, Flow (Diagram / Flowcharts), Karbon (Vector Graphics), Kexi (Visual Database Creator), Krita (Sketching, Painting), Plan (Project Management), Stages (Presentations), Sheets (Calculation, Spreadsheet), Words (Writing)<br />
<a href="http://www.scribus.net/canvas/Scribus">Scribus</a> Desktop Publishing like InDesign</p>
<h3>Audio</h3>
<p><a href="http://audacity.sourceforge.net/">Audacity</a> Rich Music Editor<br />
<a href="http://www.hydrogen-music.org/">Hydrogen</a> Advanced Drum Machine<br />
<a href="http://www.mixxx.org/">MIXXX</a> Free DJ Software</p>
<h3>3D / Animation / Movies</h3>
<p><a href="http://www.blender.org/">Blender 3D</a> 3D Modeling, Rigging, Animation, Raytrace Rendering, Physics and Particles, Game Engine, UV Editing, Movie editing, Raw Footage tracking, Image Compositing and many many more<br />
<a href="http://www.synfig.org/">Synfig Studio</a><br />
<a href="http://www.kdenlive.org/">Kdenlive</a> Video Editor</p>
<h3>GNOME Specials</h3>
<p><a href="http://projects.gnome.org/gnome-color-manager/">Gnome Color Manager</a><br />
<a href="http://gnomefiles.org/content/show.php/Wacom+Control+Panel?content=104309">Wacom Control Panel</a></p>
<h3>Sharing Service</h3>
<p><a href="http://sparkleshare.org/">Sparkleshare</a> Uses GIT under the hood and can be self hosted.</p>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/others/free-open-source-sotware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wire Ape Wallpaper</title>
		<link>http://root-project.org/work/blender3d/wire-ape-wallpaper/</link>
		<comments>http://root-project.org/work/blender3d/wire-ape-wallpaper/#comments</comments>
		<pubDate>Mon, 13 Aug 2012 13:33:35 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[Blender 3D]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[compositing]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=410</guid>
		<description><![CDATA[Hi there,
just created a Wallpaper, dedicated to the lovely Blender Ape Suzanne.
Hope you like it!

]]></description>
				<content:encoded><![CDATA[<p>Hi there,<br />
just created a Wallpaper, dedicated to the lovely Blender Ape Suzanne.</p>
<p>Hope you like it!</p>
<p><a href="http://root-project.org/wp-content/uploads/2012/08/WireRendering_1920x1200_bl.jpg"><img src="http://root-project.org/wp-content/uploads/2012/08/WireRendering_1920x1200_bl-1024x640.jpg" alt="" title="WireRendering_1920x1200_bl" width="620" height="387" class="aligncenter size-large wp-image-411" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/work/blender3d/wire-ape-wallpaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPF Localization Extension v2.1.0</title>
		<link>http://root-project.org/projects/wpf-localization-extension-v2-1-0/</link>
		<comments>http://root-project.org/projects/wpf-localization-extension-v2-1-0/#comments</comments>
		<pubDate>Thu, 26 Jul 2012 08:52:12 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[WPF Localize Extension]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[resource file]]></category>
		<category><![CDATA[resx]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=365</guid>
		<description><![CDATA[
The new version arrives and I have some highlights to point out:

First of all: ITS FREE (and will stay free)
Obtain stable results in

WPF applications using .NET 3.5 and higher
New: Silverlight 5.0 applications


New: Localization source/provider can be changed freely at arbitrary nodes

Use the  [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://wpflocalizeextension.codeplex.com/" title="WPF Localization Extension"><img src="http://root-project.org/wp-content/uploads/2012/07/WPFLocalizeExtensionLogo.png" alt="" title="WPFLocalizeExtensionLogo" width="578" height="50" class="size-full wp-image-367" /></a></p>
<p>The new version arrives and I have some highlights to point out:</p>
<ul>
<li>First of all: ITS FREE (and will stay free)</li>
<li>Obtain stable results in
<ul>
<li>WPF applications using .NET 3.5 and higher</li>
<li><strong>New</strong>: Silverlight 5.0 applications</li>
</ul>
</li>
<li><strong>New</strong>: Localization source/provider can be changed freely at arbitrary nodes
<ul>
<li>Use the Provider property in LocalizeDictionary to change the provider for the particular sub tree</li>
<li>Use the DefaultProvider property to set the provider for the whole application</li>
<li>Built-in RESX provider for resource file lookup (Default) &#8211; <strong>fully backward compatible to older versions of this extension</strong></li>
<li>Interface for custom providers</li>
<li>Notification about provider changes and errors</li>
<li>Get the list of all available cultures from a provider &#8211; or just take the bindable merged list from LocalizeDictionary</li>
<li>CSV provider project in the Tests folder as an example for custom providers<br />
<span id="more-365"></span></li>
</ul>
</li>
<li>Supports binding-like write style like &#8220;Text = {lex:LocText ResAssembly:ResFile:ResKey}&#8221;
<ul>
<li>Define a default assembly and / or resource file to reduce the key to ResAssembly::ResKey, ResFile:ResKey or even ResKey</li>
<li>If no key is specified, the Name and Property Name of the target are used (e.g. MyButton_Content)</li>
<li>Default assembly, dictionary and culture can be changed dynamically</li>
<li>Default assembly and dictionary inherit along the visual tree and can be redefined at each node</li>
</ul>
</li>
<li>It is available at designtime (MS Expression Blend 3.0 &amp; 4.0, MS VisualStudio 2008 &amp; 2010
<ul>
<li>not for dynamic loaded assemblies which only can be found at runtime and as long the resource (.resx) is built at designtime</li>
<li>Even for Silverlight!</li>
<li>No extra preview application needed</li>
<li>Offers a DesignValue Property to support custom values during design mode</li>
</ul>
</li>
<li>Full support of various application scenarios
<ul>
<li>Works with normal dependency properties</li>
<li>Works with normal properties (e.g. Ribbon)</li>
<li>Works with control/data templates</li>
</ul>
</li>
<li>Various culture setup features
<ul>
<li>Works with the .resx-fallback mechanism (e.g. en-us -> en -> invariant culture)</li>
<li>Supports culture forcing (e.g. &#8220;this object has to be in english all the time&#8221;)</li>
<li>Buffering allows fast switching of the language at runtime</li>
<li>Offers a design language for visual testing at designtime</li>
<li>Offers a &#8220;SpecificCulture&#8221; to use as IFormatProvider (e.g. (123.20).ToString(LocalizeDictionary.SpecificCulture) = &#8220;123.20&#8243; or &#8220;123,20&#8243;)</li>
<li>Does not alter the culture on Thread.CurrentCulture or Thread.CurrentUICulture (can be changed easily)</li>
</ul>
</li>
<li>Code behind features:
<ul>
<li>Can be used in code behind to bind localized values to dynamic generated controls</li>
<li>Implements INotifyPropertyChanged for advanced use</li>
<li>Offers some functionality to check and get resource values in code behind (e.g. ResolveLocalizedValue)</li>
</ul>
</li>
<li>Easy to use
<ul>
<li>Can be used with any resource file (.resx) accross all assemblies (also the dynamic loaded one at runtime)</li>
<li>Does not need any initializing process (like &#8220;call xyz to register a special localize dictionary&#8221;)</li>
<li>Can localize any type of data type, as long a TypeConverter exists for it</li>
</ul>
</li>
<li>Example extensions included for
<ul>
<li>Formating e.g. &#8220;this is the &#8216;{0}&#8217; value&#8221; (not bindable at the moment)</li>
<li>Prefix and suffix values (currently with LocText extension)</li>
<li>Upper and lower Text</li>
</ul>
</li>
<li>Last, but not least
<ul>
<li>Does not create any memory leaks</li>
<li>Leaves the UID property untouched</li>
<li>Does not need an additional build task</li>
<li>Is in use in various productive systems</li>
</ul>
</li>
</ul>
<p><a href="http://www.ukma.de/">Uwe Mayer</a> was so kind to create a short <a href="http://http://www.youtube.com/watch?v=a4s3qAzerMI">Workflow Video</a> about how it works:</p>
<p>http://www.youtube.com/watch?v=a4s3qAzerMI</p>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/projects/wpf-localization-extension-v2-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unique Ball Wallpaper</title>
		<link>http://root-project.org/work/blender3d/unique-ball-wallpaper/</link>
		<comments>http://root-project.org/work/blender3d/unique-ball-wallpaper/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 14:37:40 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[Blender 3D]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[compositing]]></category>
		<category><![CDATA[wallpaper]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=356</guid>
		<description><![CDATA[Hi there,
I&#8217;ve created a wallpaper in a couple of hours playing around with particles and cycles and that was the outcomming:

I used particles, cycles, glowing materials and the compositor.
how do you like it?
]]></description>
				<content:encoded><![CDATA[<p>Hi there,<br />
I&#8217;ve created a wallpaper in a couple of hours playing around with particles and cycles and that was the outcomming:</p>
<p><a href="http://root-project.org/wp-content/uploads/2012/04/Balls-Wallpaper-Cycles-1920x1200.png"><img src="http://root-project.org/wp-content/uploads/2012/04/Balls-Wallpaper-Cycles-1920x1200-1024x640.png" alt="" title="Balls Wallpaper Cycles 1920x1200" width="620" height="387" class="aligncenter size-large wp-image-357" /></a></p>
<p>I used particles, cycles, glowing materials and the compositor.</p>
<p>how do you like it?</p>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/work/blender3d/unique-ball-wallpaper/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WCF &amp; WebAPI JSON Dictionary</title>
		<link>http://root-project.org/work/net/wcf-webapi-json-dictionary/</link>
		<comments>http://root-project.org/work/net/wcf-webapi-json-dictionary/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 09:59:19 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[wcf]]></category>
		<category><![CDATA[webapi]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=318</guid>
		<description><![CDATA[Imagine you want to serialize a Dictionary&#60;string, string for wcf json output.
The JSON output would look like this:
[
    {
        Key: "key1",
        Value: "value1"
    },
    {
        Key: "key2",
        Value: "value2"
    }
]

But you want a correct JSON dictionary format:
{
    "key1":  [...]]]></description>
				<content:encoded><![CDATA[<p>Imagine you want to serialize a <strong>Dictionary&lt;string, string></strong> for wcf json output.<br />
The JSON output would look like this:</p>
<pre><code>[
    {
        Key: "key1",
        Value: "value1"
    },
    {
        Key: "key2",
        Value: "value2"
    }
]
</code></pre>
<p>But you want a correct JSON dictionary format:</p>
<pre><code>{
    "key1": "value1",
    "key2": "value2"
}
</code></pre>
<p><span id="more-318"></span></p>
<p>What happens here? Serializing a dictionary is the same as you would serialize a list of objects.</p>
<p>This means that this:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p318code4'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3184"><td class="code" id="p318code4"><pre class="csharp" style="font-family:monospace;">Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">object</span><span style="color: #008000;">&gt;</span> dic <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">object</span><span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
dic<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;key1&quot;</span>, <span style="color: #666666;">&quot;value1&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
dic<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;key2&quot;</span>, <span style="color: #666666;">&quot;value2&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></pre></td></tr></table></div>

<p>&#8230; is the same as this:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p318code5'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3185"><td class="code" id="p318code5"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> KeyValue
<span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> Key <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> Value <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#91;</span><span style="color: #008000;">...</span><span style="color: #008000;">&#93;</span>
<span style="color: #008000;">&#125;</span>
&nbsp;
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> Dictionary
<span style="color: #008000;">&#123;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> List<span style="color: #008000;">&lt;</span>KeyValue<span style="color: #008000;">&gt;</span> Values <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#91;</span><span style="color: #008000;">...</span><span style="color: #008000;">&#93;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>The serializer takes every item from Dictionary.Values and writes the KeyValue object into the output.<br />
This behaviour is not bad or wrong but it is unsuitable for a JSON dictionary output.</p>
<p>What we want is a &#8220;Key: Value&#8221; output like this:</p>
<pre><code>{
    "key1": "value1",
    "key2": "value2"
}
</code></pre>
<p>What you need to do is implementing a Dictionary-like object that inherits from ISerializable.</p>
<p>Here is the implementation of it:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p318code6'); return false;">View Code</a> CSHARP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p3186"><td class="code" id="p318code6"><pre class="csharp" style="font-family:monospace;"><span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
<span style="color: #008080; font-style: italic;">/// This key value collection is used to serialize a dictionary into json format and back.</span>
<span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
<span style="color: #008000;">&#91;</span>Serializable<span style="color: #008000;">&#93;</span>
<span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #0600FF; font-weight: bold;">sealed</span> <span style="color: #6666cc; font-weight: bold;">class</span> KeyValueCollection <span style="color: #008000;">:</span> ISerializable
<span style="color: #008000;">&#123;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Holds the internal dictionary.</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #0600FF; font-weight: bold;">readonly</span> Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&gt;</span> _dictionary<span style="color: #008000;">;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Initializes a new instance of the &lt;see cref=&quot;KeyValueCollection&quot;/&gt; class.</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> KeyValueCollection<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_dictionary <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span>StringComparer<span style="color: #008000;">.</span><span style="color: #0000FF;">InvariantCultureIgnoreCase</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Initializes a new instance of the &lt;see cref=&quot;KeyValueCollection&quot;/&gt; class.</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;dictionary&quot;&gt;The dictionary.&lt;/param&gt;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> KeyValueCollection<span style="color: #008000;">&#40;</span>Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&gt;</span> dictionary<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_dictionary <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span>dictionary, StringComparer<span style="color: #008000;">.</span><span style="color: #0000FF;">InvariantCultureIgnoreCase</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Initializes a new instance of the &lt;see cref=&quot;KeyValueCollection&quot;/&gt; class.</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;info&quot;&gt;The serialization info.&lt;/param&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;context&quot;&gt;The streaming context.&lt;/param&gt;</span>
    <span style="color: #0600FF; font-weight: bold;">protected</span> KeyValueCollection<span style="color: #008000;">&#40;</span>SerializationInfo info, StreamingContext context<span style="color: #008000;">&#41;</span> <span style="color: #008000;">:</span> <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span>var entry <span style="color: #0600FF; font-weight: bold;">in</span> info<span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_dictionary<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span>entry<span style="color: #008000;">.</span><span style="color: #0000FF;">Name</span>, entry<span style="color: #008000;">.</span><span style="color: #0000FF;">Value</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Gets or sets the &lt;see cref=&quot;System.String&quot;/&gt; with the specified key.</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">&#91;</span><span style="color: #6666cc; font-weight: bold;">string</span> key<span style="color: #008000;">&#93;</span>
    <span style="color: #008000;">&#123;</span>
        get
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0600FF; font-weight: bold;">return</span> <span style="color: #008000;">!</span><span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_dictionary<span style="color: #008000;">.</span><span style="color: #0000FF;">ContainsKey</span><span style="color: #008000;">&#40;</span>key<span style="color: #008000;">&#41;</span> <span style="color: #008000;">?</span> <span style="color: #0600FF; font-weight: bold;">null</span> <span style="color: #008000;">:</span> <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_dictionary<span style="color: #008000;">&#91;</span>key<span style="color: #008000;">&#93;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
        set
        <span style="color: #008000;">&#123;</span>
            <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_dictionary<span style="color: #008000;">&#91;</span>key<span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Gets the internal dictionary as copy.</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;returns&gt;The internal dictionary as copy.&lt;/returns&gt;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&gt;</span> GetDictionary<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">return</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_dictionary<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Populates a SerializationInfo with the data needed to serialize the target object.</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;info&quot;&gt;The SerializationInfo to populate with data.&lt;/param&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;context&quot;&gt;The destination (see StreamingContext) for this serialization.&lt;/param&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;exception cref=&quot;T:System.Security.SecurityException&quot;&gt;The caller does not have the required permission.&lt;/exception&gt;</span>
    <span style="color: #6666cc; font-weight: bold;">void</span> ISerializable<span style="color: #008000;">.</span><span style="color: #0000FF;">GetObjectData</span><span style="color: #008000;">&#40;</span>SerializationInfo info, StreamingContext context<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> key <span style="color: #0600FF; font-weight: bold;">in</span> <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_dictionary<span style="color: #008000;">.</span><span style="color: #0000FF;">Keys</span><span style="color: #008000;">&#41;</span>
        <span style="color: #008000;">&#123;</span>
            info<span style="color: #008000;">.</span><span style="color: #0000FF;">AddValue</span><span style="color: #008000;">&#40;</span>key, <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">.</span>_dictionary<span style="color: #008000;">&#91;</span>key<span style="color: #008000;">&#93;</span>, <a href="http://www.google.com/search?q=typeof+msdn.microsoft.com"><span style="color: #008000;">typeof</span></a><span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #008000;">&#125;</span>
    <span style="color: #008000;">&#125;</span>
&nbsp;
    <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// Adds the item with the specified key.</span>
    <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;key&quot;&gt;The key.&lt;/param&gt;</span>
    <span style="color: #008080; font-style: italic;">/// &lt;param name=&quot;value&quot;&gt;The value.&lt;/param&gt;</span>
    <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> Add<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> key, <span style="color: #6666cc; font-weight: bold;">string</span> value<span style="color: #008000;">&#41;</span>
    <span style="color: #008000;">&#123;</span>
        <span style="color: #0600FF; font-weight: bold;">this</span><span style="color: #008000;">&#91;</span>key<span style="color: #008000;">&#93;</span> <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<dl>
<dt>Note:</dt>
<dd>As you might have seen that i use <em>Dictionary&lt;string, string>(StringComparer.InvariantCultureIgnoreCase);</em><br />
The <em>StringComparer.InvariantCultureIgnoreCase</em> argument helps me to treat all the keys case insensitive.</dd>
<dd>
<p>If you want to work on the directory directly (query) use the method <em>GetDictionary()</em>.</p>
</dd>
<dt>Sources:</dt>
<dd>First <a href="">http://blog.masonchu.com/2012/03/wcf-webapi-dictionary-json.html</a><br />
Second <a href="">http://stackoverflow.com</a></dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/work/net/wcf-webapi-json-dictionary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automated Web Deployment with MSBuild and MSDeploy</title>
		<link>http://root-project.org/work/net/automated-web-deployment-with-msbuild-and-msdeploy/</link>
		<comments>http://root-project.org/work/net/automated-web-deployment-with-msbuild-and-msdeploy/#comments</comments>
		<pubDate>Thu, 13 Oct 2011 14:17:43 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[msbuild]]></category>
		<category><![CDATA[msdeploy]]></category>
		<category><![CDATA[setparam]]></category>
		<category><![CDATA[web deployment]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=310</guid>
		<description><![CDATA[If you are looking for an automated web deployment process you will inevitably come to MSBuild.
There are many tutorials out there how to set up a command line call for MSBuild but you wont find a documentation how to publish a generated package with MSDeploy.
But this is especially needed is you  [...]]]></description>
				<content:encoded><![CDATA[<p>If you are looking for an automated web deployment process you will inevitably come to MSBuild.<br />
There are many tutorials out <a href="http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity_11.html" target="_blank">there </a>how to set up a command line call for MSBuild but you wont find a documentation how to publish a generated package with MSDeploy.</p>
<p>But this is especially needed is you want to use &#8220;-setParam&#8221; for a tokenized (transformed) web.config file and wont / can&#8217;t change the SetParameter.xml!<br />
(The names of the parameters for -setParam can be found in the SetParameter.xml file in the same directory as the Package.zip. They are also act as default values if not set in the command line call. )</p>
<p>So I wrote this quick tutorial how to get command line call for MSDeploy.<br />
(Please consider that the paths you will later use are absolute / relative to the working directory.)</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>Step 1: Get the publish ready with MSBuild</strong></span></p>
<p>Before we will get some further results please get your deployment call working.</p>
<p>msbuild.exe<br />
SomeWebProject.csproj<br />
/P:Configuration=<strong>Release</strong><br />
/P:DeployOnBuild=True<br />
/P:DeployTarget=MSDeployPublish<br />
/P:MsDeployServiceUrl=https://<strong>TargetServer</strong>/MsDeploy.axd<br />
/P:AllowUntrustedCertificate=True<br />
/P:MSDeployPublishMethod=WMSvc<br />
/P:CreatePackageOnPublish=True<br />
/P:UserName=<strong>Username</strong><br />
/P:Password=<strong>Password</strong><br />
/P:DeployIisAppPath=<strong>TargetWebSite</strong>/<strong>TargetWebApp</strong></p>
<p><span style="text-decoration: underline;">Configuration</span>: This is the configuration you will use eg. Debug, Release or a custom one<br />
<span style="text-decoration: underline;">AllowUntrustedCertificate</span>: You will need this if you do not have a valid certificate on the server<br />
<span style="text-decoration: underline;">DeployIisAppPath</span>: The name of the target website eg. &#8220;Default Web Site/MyWebApp&#8221;<br />
<span style="text-decoration: underline;">TargetWebSite/TargetWebApp:</span> Please consider the different usages below!</p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong>Step 2: Get the command line for MSDeploy</strong></span></p>
<p>Append the parameter &#8220;<strong>/P:UseMsdeployExe=True</strong>&#8221; to the msbuild.exe call. If you do so, you will see the call in the console like this:</p>
<p>MSDeployPublish:<br />
Start Web Deploy Publish the Application/package to https:/<strong>TargetServer</strong>/MsDeploy.axd?site=<strong>TargetWebSite</strong> &#8230;<br />
Running msdeploy.exe.<br />
msdeploy.exe -source:package=&#8217;C:\<strong>SomeWebProject</strong>\obj\Release\Package\<strong>SomeWebProject.zip</strong>&#8216; -dest:auto,ComputerName=&#8217;https://<strong>TargetServer</strong>:8172/MsDeploy.axd?site=<strong>TargetWebSite</strong>&#8216;,UserName=&#8217;<strong>Username</strong>&#8216;,Password=&#8217;<strong>Password</strong>&#8216;,IncludeAcls=&#8217;False&#8217;,AuthType=&#8217;Basic&#8217; -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -allowUntrusted -retryAttempts=2</p>
<p>Gotcha! This is the important MSDeploy command line call.</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline;">Step 3: Get the two things together</span></strong></p>
<p>now we can split the automatic deployment of MSBuild into 1. create only the package with MSBuild and 2. only deploy with MSDeploy.</p>
<p>msbuild.exe<br />
SomeWebProject.csproj<br />
/P:Configuration=Release<br />
/P:DeployOnBuild=True<br />
/P:CreatePackageOnPublish=True</p>
<p>msdeploy.exe<br />
-source:package=&#8217;<strong>C:\SomeWebProject\obj\Release\Package\SomeWebProject.zip</strong>&#8216;<br />
-dest:auto,ComputerName=&#8217;https://<strong>TargetServer</strong>:8172/MsDeploy.axd?site=<strong>TargetWebSite</strong>&#8216;,UserName=&#8217;<strong>Username</strong>&#8216;,Password=&#8217;<strong>Password</strong>&#8216;,IncludeAcls=&#8217;False&#8217;,AuthType=&#8217;Basic&#8217;<br />
-verb:sync<br />
-disableLink:AppPoolExtension<br />
-disableLink:ContentExtension<br />
-disableLink:CertificateExtension<br />
-allowUntrusted<br />
-retryAttempts=2<br />
-setParam:&#8217;IIS Web Application Name&#8217;=&#8217;<strong>TargetWebSite</strong>/<strong>TargetWebApp</strong>&#8216;</p>
<p>&nbsp;</p>
<p><strong><em>Have a nice day.</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/work/net/automated-web-deployment-with-msbuild-and-msdeploy/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sunrise Mood Logo</title>
		<link>http://root-project.org/work/blender3d/sunrise-mood-logo/</link>
		<comments>http://root-project.org/work/blender3d/sunrise-mood-logo/#comments</comments>
		<pubDate>Sun, 18 Sep 2011 16:13:00 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[Blender 3D]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[compositing]]></category>
		<category><![CDATA[logo]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=301</guid>
		<description><![CDATA[As i saw the advertisement from Pro7 for the &#8220;Comedy Dienstag&#8221; i want to reproduce this effect:

&#160;
This is my interpretation:

The colors and the strong reflection is my personal taste.
The .blend file can be downloaded HERE.
]]></description>
				<content:encoded><![CDATA[<p>As i saw the advertisement from Pro7 for the &#8220;Comedy Dienstag&#8221; i want to reproduce this effect:</p>
<p><a href="http://www.prosieben.at/" target="_blank"><img class="size-full wp-image-297 alignnone" title="pro7_comedy_dienstag" src="http://root-project.org/wp-content/uploads/2011/09/pro7_comedy_dienstag.jpg" alt="" width="540" height="250" /></a></p>
<p>&nbsp;</p>
<p>This is my interpretation:</p>
<p><a href="http://root-project.org/wp-content/uploads/2011/09/YEAH_1280x720.jpg"><img class="size-large wp-image-294 alignnone" title="YEAH_1280x720" src="http://root-project.org/wp-content/uploads/2011/09/YEAH_1280x720-1024x576.jpg" alt="" width="540" height="302" /></a></p>
<p>The colors and the strong reflection is my personal taste.</p>
<p>The .blend file can be downloaded <a href="http://root-project.org/uploads/red_shiny.blend" target="_blank">HERE</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/work/blender3d/sunrise-mood-logo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sculpt-Brush Tips</title>
		<link>http://root-project.org/work/blender3d/sculpt-brush-tips/</link>
		<comments>http://root-project.org/work/blender3d/sculpt-brush-tips/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 06:05:05 +0000</pubDate>
		<dc:creator>Bernhard Millauer</dc:creator>
				<category><![CDATA[Blender 3D]]></category>

		<guid isPermaLink="false">http://root-project.org/?p=212</guid>
		<description><![CDATA[With Blender 2.59 we got a very new and stable version to play with.
While exploring the new features i found two new functions!
First &#8211; Import brush textures from a dictionary / single brush textures (without add-on!).
After adding, you will have all your brush textures you choose in the selection  [...]]]></description>
				<content:encoded><![CDATA[<p>With Blender 2.59 we got a very new and stable version to play with.</p>
<p>While exploring the new features i found two new functions!</p>
<p><span id="more-212"></span><strong>First &#8211; Import brush textures from a dictionary / single brush textures</strong> (without add-on!).<br />
After adding, you will have all your brush textures you choose in the selection box.</p>
<p><a href="http://root-project.org/wp-content/uploads/2011/08/Screenshot-2011-08-20_07.36.33.png"><img class="size-full wp-image-215 aligncenter" title="Screenshot-2011-08-20_07.36.33" src="http://root-project.org/wp-content/uploads/2011/08/Screenshot-2011-08-20_07.36.33.png" alt="" width="791" height="568" /></a></p>
<p>You can find many nice brush textures at <a href="http://www.pixologic.com/zbrush/downloadcenter/alpha/" target="_blank">Pixologic ZBrush Download Central</a>. (The .psd files can be converted to .png files with free converters.)</p>
<p><strong>Second: Brush Overlay</strong><br />
This shows you where your brush would take influence on the mesh.</p>
<p><a href="http://root-project.org/wp-content/uploads/2011/08/Screenshot-2011-08-20_07.37.59.png"><img class="aligncenter size-full wp-image-217" title="Screenshot-2011-08-20_07.37.59" src="http://root-project.org/wp-content/uploads/2011/08/Screenshot-2011-08-20_07.37.59.png" alt="" width="763" height="489" /></a></p>
<p>And also tiling / rotating (angle) of the brush is supported!</p>
<p><a href="http://root-project.org/wp-content/uploads/2011/08/Screenshot-2011-08-20_07.38.47.png"><img class="aligncenter size-full wp-image-218" title="Screenshot-2011-08-20_07.38.47" src="http://root-project.org/wp-content/uploads/2011/08/Screenshot-2011-08-20_07.38.47.png" alt="" width="877" height="492" /></a></p>
<p>i hope you will find this information useful!</p>
<p>Happy blending <img src='http://root-project.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://root-project.org/work/blender3d/sculpt-brush-tips/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
