<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>
			DigitallyCreated Blog
			(Tagged: "Open Source")
				
		</title>
		<link>http://www.digitallycreated.net/Blog/Tags/Open%20Source</link>
		<atom:link href="http://www.digitallycreated.net/Blog/Tags/Open%20Source/Rss" rel="self" type="application/rss+xml" />
		<description>
			Daniel Chambers' adventures in the world of software development and beyond.
			
			
				This feed will only contain blogs that are tagged with "Open Source".
			
		</description>
		<lastBuildDate>Sun, 05 Feb 2012 13:14:33 GMT</lastBuildDate>
		
		
			<item>
				<title>DigitallyCreated Utilities v1.0.0 Released</title>
				<link>http://www.digitallycreated.net/Blog/53/digitallycreated-utilities-v1.0.0-released</link>
				<guid isPermaLink="false">DigitallyCreated Blog ID: 53</guid>
				<dc:creator>Daniel Chambers</dc:creator>
				<comments>http://www.digitallycreated.net/Blog/53/digitallycreated-utilities-v1.0.0-released#Comments</comments>
				<slash:comments>0</slash:comments>
				<pubDate>Wed, 24 Mar 2010 14:43:39 GMT</pubDate>
				
				
					<category>Software Development</category>
				
				
				<description>
					&lt;p&gt;After a hell of a lot of work, I am happy to announce that the 1.0.0 version of &lt;a href=&quot;http://dcutilities.codeplex.com/&quot;&gt;DigitallyCreated Utilities&lt;/a&gt; has been released! DigitallyCreated Utilities is a collection of many neat reusable utilities for lots of different .NET technologies that I’ve developed over time and personally use on this website, as well as on others I have a hand in developing. It’s a fully open source project, licenced under the &lt;a href=&quot;http://dcutilities.codeplex.com/license&quot;&gt;Ms-PL licence&lt;/a&gt;, which means you can pretty much use it wherever you want and do whatever you want to it. No viral licences here.&lt;/p&gt;  &lt;p&gt;The main reason that it has taken me so long to release this version is because I’ve been working hard to get all the wiki documentation on CodePlex up to scratch. After all, two of the project values are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;To provide fully XML-documented source code &lt;/li&gt;    &lt;li&gt;To back up the source code documentation with useful tutorial articles that help developers use this project &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;And truly, nothing is more frustrating than code with bad documentation. To me, bad documentation is the lack of a unifying tutorial that shows the functionality in action, and the lack of decent XML documentation on the code. Sorry, XMLdoc that’s autogenerated by tools like &lt;a href=&quot;http://submain.com/products/ghostdoc.aspx&quot;&gt;GhostDoc&lt;/a&gt;, and never added to by the author, just doesn’t cut it. If you can auto-generate the documentation from the method and parameter names, it’s obviously not providing any extra value above and beyond what was already there without it!&lt;/p&gt;  &lt;p&gt;So what does DCU v1.0.0 bring to the table? A hell of a lot actually, though you may not need all of it for every project. Here’s the feature list grouped by broad technology area:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;ASP.NET MVC and LINQ&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;Sorting and paging of data in a table made easy by HtmlHelpers and LINQ extensions (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Basic%20Sorter%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;ASP.NET MVC&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;HtmlHelpers          &lt;ul&gt;           &lt;li&gt;TempInfoBox - A temporary &amp;quot;action performed&amp;quot; box that displays to the user for 5 seconds then fades out (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=TempInfoBox%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;            &lt;li&gt;CollapsibleFieldset - A fieldset that collapses and expands when you click the legend (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=CollapsibleFieldset%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;            &lt;li&gt;Gravatar - Renders an img tag for a &lt;a href=&quot;http://www.gravatar.com&quot;&gt;Gravatar&lt;/a&gt; (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Gravatar%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;            &lt;li&gt;CheckboxStandard &amp;amp; BoolBinder - Renders a normal checkbox without MVC's normal hidden field (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=CheckboxStandard%20and%20BoolBinder%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;            &lt;li&gt;EncodeAndInsertBrsAndLinks - Great for the display of user input, this will insert &amp;lt;br/&amp;gt;s for newlines and &amp;lt;a&amp;gt; tags for URLs and escape all HTML (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=EncodeAndInsertBrsAndLinks%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;IncomingRequestRouteConstraint - Great for supporting old permalink URLs using ASP.NET routing (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=IncomingRequestRouteConstraint%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;Improved JsonResult - Replaces ASP.NET MVC's JsonResult with one that lets you specify JavaScriptConverters (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Improved%20JsonResult%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;Permanently Redirect ActionResults - Redirect users with 301 (Moved Permanently) HTTP status codes (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Permanently%20Redirect%20ActionResults%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;Miscellaneous Route Helpers - For example, RouteToCurrentPage (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Route%20Helpers%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;LINQ&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;MatchUp &amp;amp; Federator LINQ methods - Great for doing diffs on sequences (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=MatchUp%20and%20Federator%20LINQ%20Methods%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Entity Framework&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;CompiledQueryReplicator - Manage your compiled queries such that you don't accidentally &lt;a href=&quot;http://www.digitallycreated.net/Blog/43/entity-framework-compiled-queries-bake-in-the-mergeoption&quot;&gt;bake in the wrong MergeOption&lt;/a&gt; and create a difficult to discover bug (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=CompiledQueryReplicator%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;Miscellaneous Entity Framework Utilities - For example, ClearNonScalarProperties and Setting Entity Properties to Modified State (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Miscellaneous%20Entity%20Framework%20Utilities%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Error Reporting&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;Easily wire up some simple classes and have your application email you detailed exception and error object dumps (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Basic%20Error%20Reporting%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Concurrent Programming&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;Semaphore/FifoSemaphore &amp;amp; Mutex/FifoMutex (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Semaphore%2fFifoSemaphore%20%26%20Mutex%2fFifoMutex%20Tutorial%20and%20Implementation%20Discussion&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;ReaderWriterLock (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=ReaderWriterLock%20Tutorial%20and%20Implementation%20Discussion&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;ActiveObject - Easily inherit from ActiveObject to separately thread your class (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Active%20Object%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Unity &amp;amp; WCF&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;WCF Client Injection Extension - Easily use dependency injection to transparently inject WCF clients using Unity (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Basic%20WCF%20Channel%20Injection%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Miscellaneous Base Class Library Utilities&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;SafeUsingBlock and DisposableWrapper - Work with IDisposables in an easier fashion and avoid the bug where using blocks &lt;a href=&quot;http://www.digitallycreated.net/Blog/51/c%23-using-blocks-can-swallow-exceptions&quot;&gt;can silently swallow exceptions&lt;/a&gt; (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=SafeUsingBlock%20and%20DisposableWrapper%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;Time Utilities - For example, TimeSpan To Ago String, TzId -&amp;gt; Windows TimeZoneInfo (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Time%20Utilities%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;        &lt;li&gt;Miscellaneous Utilities - Collection Add/RemoveAll, Base64StreamReader, AggregateException (see &lt;a href=&quot;http://dcutilities.codeplex.com/wikipage?title=Miscellaneous%20Utilities%20Tutorial&amp;amp;referringTitle=Home&quot;&gt;tutorial&lt;/a&gt;) &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;DCU is split across six different assemblies so that developers can pick and choose the stuff they want and not take unnecessary dependencies if they don’t have to. This means if you don’t use Unity in your application, you don’t need to take a dependency on Unity just to use the Error Reporting functionality.&lt;/p&gt;  &lt;p&gt;I’m really pleased about this release as it’s the culmination of rather a lot of work on my part that I think will help other developers write their applications more easily. I’m already using it here on DigitallyCreated in many many places; for example the Error Reporting code tells me when this site crashes (and has been invaluable so far), the CompiledQueryReplicator helps me use compiled queries effectively on the back-end, and the ReaderWriterLock is used behind the scenes for the Twitter feed on the front page.&lt;/p&gt;  &lt;p&gt;I hope you enjoy this release and find some use for it in your work or play activities. You can download it &lt;a href=&quot;http://dcutilities.codeplex.com/releases/view/42474&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
				</description>
			</item>
			
		
			<item>
				<title>DigitallyCreated Utilities Now Open Source</title>
				<link>http://www.digitallycreated.net/Blog/42/digitallycreated-utilities-now-open-source</link>
				<guid isPermaLink="false">DigitallyCreated Blog ID: 42</guid>
				<dc:creator>Daniel Chambers</dc:creator>
				<comments>http://www.digitallycreated.net/Blog/42/digitallycreated-utilities-now-open-source#Comments</comments>
				<slash:comments>0</slash:comments>
				<pubDate>Wed, 05 Aug 2009 14:00:00 GMT</pubDate>
				
				
					<category>Software Development</category>
				
				
				<description>
					&lt;p&gt;My part time job for 2009 (while I study at university) has been working at a small company called &lt;a href=&quot;http://www.onset.com.au&quot;&gt;Onset&lt;/a&gt; doing .NET development work. Among other things, I am (with a friend who also works there) re-writing their website in ASP.NET MVC. As I wrote code for their website I kept copy/pasting in code from previous projects and thinking about ways I could make development in ASP.NET MVC and Entity Framework even better.&lt;/p&gt;  &lt;p&gt;I decided there needed to be a better way of keeping all this utility code that I kept importing from my personal projects into Onset's code base in one place. I also wanted a place that I could add further utilities as I wrote them and use them across all my projects, personal or commercial. So I took my utility code from my personal projects, implemented those cool ideas I had (on my time, not on Onset's!) and created the &lt;a href=&quot;http://dcutilities.codeplex.com/&quot;&gt;DigitallyCreated Utilities&lt;/a&gt; open source project on CodePlex. I've put the code out there under the &lt;a href=&quot;http://dcutilities.codeplex.com/license&quot;&gt;Ms-PL&lt;/a&gt; licence, which basically lets you do anything with it.&lt;/p&gt;  &lt;p&gt;The project is pretty small at the moment and only contains a handful of classes. However, it does contain some really cool functionality! The main feature at the moment is making it really really easy to do paging and sorting of data in ASP.NET MVC and Entity Framework. MVC doesn't come with any fancy controls, so you need to implement all the UI code for paging and sorting functionality yourself. I foresaw this becoming repetitive in my work on the Onset website, so I wrote a bunch of stuff that makes it ridiculously easy to do.&lt;/p&gt;  &lt;p&gt;This is the part when I'd normally jump into some awesome code examples, but I already spent a chunk of time writing up a &lt;a href=&quot;http://dcutilities.codeplex.com/Wiki/View.aspx?title=Basic%20Sorter%20Tutorial&quot;&gt;tutorial on the CodePlex wiki&lt;/a&gt; (which is really good by the way, and &lt;a href=&quot;http://wikiplex.codeplex.com/&quot;&gt;open source&lt;/a&gt;!), so go over there and check it out.&lt;/p&gt;  &lt;p&gt;I'll be continuing to add to the project over time, so I thought I might need some &amp;quot;project values&amp;quot; to illustrate the quality level that I want the project to be at:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;To provide useful utilities and extensions to basic .NET functionality that saves developers' time &lt;/li&gt;    &lt;li&gt;To provide fully XML-documented source code (nothing is more annoying than undocumented code) &lt;/li&gt;    &lt;li&gt;To back up the source code documentation with useful tutorial articles that help developers use this project &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;That's not just guff: all the source code is fully documented and that tutorial I wrote is already up there. I hate open source projects that are badly documented; they have so much potential, but learning how they work and how to use them is always a pain in the arse. So I'm striving to not be like that.&lt;/p&gt;  &lt;p&gt;The &lt;a href=&quot;http://dcutilities.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=31209&quot;&gt;first release&lt;/a&gt; (v0.1.0) is already up there. I even learned how to use &lt;a href=&quot;http://sandcastle.codeplex.com/&quot;&gt;Sandcastle&lt;/a&gt; and &lt;a href=&quot;http://www.codeplex.com/SHFB&quot;&gt;Sandcastle Help File Builder&lt;/a&gt; to create a CHM copy of the API documentation for the release. So you can now view the XML documentation in its full MSDN-style glory when you download the release. The assemblies are accompanied by their XMLdoc files, so you get the documentation in Visual Studio as well.&lt;/p&gt;  &lt;p&gt;Setting all this up took a bit of time, but I'm really happy with the result. I'm looking forward to adding more stuff to the project over time, although I might not have a lot of time to do so in the near future since uni is starting up again shortly. Hopefully you find what it has got as useful as I have.&lt;/p&gt;
				</description>
			</item>
			
		
	</channel>
</rss>
