<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>publicdomain Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home</link><description>publicdomain Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>http://publicdomain.codeplex.com/Wiki/View.aspx?title=Home&amp;version=53</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;This project is no longer maintained by the original author.&lt;/h1&gt;
&lt;h1&gt;PublicDomain&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more.&lt;br /&gt;&lt;br /&gt;PublicDomain binaries and source code are... in the Public Domain (surprise surprise). Therefore, there is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority, and is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.
&lt;h2&gt;Get right to the code!&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Install PublicDomain.dll and either pick and choose the code you need from the source files, or reference PublicDomain in your .NET project.
&lt;h2&gt;Articles&lt;/h2&gt;Using PublicDomain:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Using_time_zones_in_NET.asp" class="externalLink"&gt;How to use the Olson time zone database in .NET&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/dotnet/PublicDomain_Logging_API.asp" class="externalLink"&gt;PublicDomain Logging description and usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Goals&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;
&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;This package solves these two problems as follows:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;This package becomes a &amp;quot;catch all&amp;quot; for all different types of code, so that there is no dependency hierarchy, and&lt;/li&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)! The code (or any part of it) may be included even in corporate applications. Public domain code is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Download Instructions&lt;/h2&gt;Go to the Releases tab.
&lt;ul&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll, install it, and put it in your project or place it in the GAC and then reference it (by default, binaries and source are installed in C:\Program Files\Public Domain\).&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;High Level Feature List&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Time Zone support&lt;/li&gt;
&lt;li&gt;Logging API&lt;/li&gt;
&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;
&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;
&lt;li&gt;Unzipper Class&lt;/li&gt;
&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;
&lt;li&gt;Screen scraping API&lt;/li&gt;
&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;
&lt;li&gt;And More!&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Feature List&lt;/h2&gt;This is an (&lt;u&gt;undetailed, dated, and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Dynamic code evaluation in C#, VB.NET
&lt;ul&gt;&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;First pure C# implementation of the Olson Time Zone database
&lt;ul&gt;&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C&lt;u&gt;&lt;/u&gt; code&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;
&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;
&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;
&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;
&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;
&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;
&lt;li&gt;Archiver class
&lt;ul&gt;&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Win32 class
&lt;ul&gt;&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;
&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ProcessHelper class
&lt;ul&gt;&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;FileSystemUtilities class
&lt;ul&gt;&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ObjectUtilities class
&lt;ul&gt;&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ReflectionUtilities class
&lt;ul&gt;&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;JStream class
&lt;ul&gt;&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;JInputStream class
&lt;ul&gt;&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;StringUtilities class&lt;/li&gt;
&lt;li&gt;CultureConstants class
&lt;ul&gt;&lt;li&gt;All windows culture constants&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;DisposableReaderWriter class
&lt;ul&gt;&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;InvariantCultureContext class
&lt;ul&gt;&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;RegexUtilities class
&lt;ul&gt;&lt;li&gt;Common regular expressions&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ScreenScraper class
&lt;ul&gt;&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Various ISO Format wrapper classes
&lt;ul&gt;&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;
&lt;li&gt;UnitedStatesUtilities class and USState class
&lt;ul&gt;&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sat, 08 Aug 2009 14:14:29 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090808021429P</guid></item><item><title>Updated Wiki: Home</title><link>http://publicdomain.codeplex.com/Wiki/View.aspx?title=Home&amp;version=52</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;PublicDomain&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more.&lt;br /&gt;&lt;br /&gt;PublicDomain binaries and source code are... in the Public Domain (surprise surprise). Therefore, there is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority, and is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.
&lt;h2&gt;Get right to the code!&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Install PublicDomain.dll and either pick and choose the code you need from the source files, or reference PublicDomain in your .NET project.
&lt;h2&gt;Articles&lt;/h2&gt;Using PublicDomain:
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Using_time_zones_in_NET.asp" class="externalLink"&gt;How to use the Olson time zone database in .NET&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/dotnet/PublicDomain_Logging_API.asp" class="externalLink"&gt;PublicDomain Logging description and usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Goals&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;
&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;This package solves these two problems as follows:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;This package becomes a &amp;quot;catch all&amp;quot; for all different types of code, so that there is no dependency hierarchy, and&lt;/li&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)! The code (or any part of it) may be included even in corporate applications. Public domain code is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Download Instructions&lt;/h2&gt;Go to the Releases tab.
&lt;ul&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll, install it, and put it in your project or place it in the GAC and then reference it (by default, binaries and source are installed in C:\Program Files\Public Domain\).&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;High Level Feature List&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Time Zone support&lt;/li&gt;
&lt;li&gt;Logging API&lt;/li&gt;
&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;
&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;
&lt;li&gt;Unzipper Class&lt;/li&gt;
&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;
&lt;li&gt;Screen scraping API&lt;/li&gt;
&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;
&lt;li&gt;And More!&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Feature List&lt;/h2&gt;This is an (&lt;u&gt;undetailed, dated, and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Dynamic code evaluation in C#, VB.NET
&lt;ul&gt;&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;First pure C# implementation of the Olson Time Zone database
&lt;ul&gt;&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C&lt;u&gt;&lt;/u&gt; code&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;
&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;
&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;
&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;
&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;
&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;
&lt;li&gt;Archiver class
&lt;ul&gt;&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Win32 class
&lt;ul&gt;&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;
&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ProcessHelper class
&lt;ul&gt;&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;FileSystemUtilities class
&lt;ul&gt;&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ObjectUtilities class
&lt;ul&gt;&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ReflectionUtilities class
&lt;ul&gt;&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;JStream class
&lt;ul&gt;&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;JInputStream class
&lt;ul&gt;&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;StringUtilities class&lt;/li&gt;
&lt;li&gt;CultureConstants class
&lt;ul&gt;&lt;li&gt;All windows culture constants&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;DisposableReaderWriter class
&lt;ul&gt;&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;InvariantCultureContext class
&lt;ul&gt;&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;RegexUtilities class
&lt;ul&gt;&lt;li&gt;Common regular expressions&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;ScreenScraper class
&lt;ul&gt;&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Various ISO Format wrapper classes
&lt;ul&gt;&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;
&lt;li&gt;UnitedStatesUtilities class and USState class
&lt;ul&gt;&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Wed, 15 Jul 2009 02:55:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090715025548A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=51</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more.&lt;br /&gt; &lt;br /&gt;PublicDomain binaries and source code are... in the Public Domain (surprise surprise). Therefore, there is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority, and is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Install PublicDomain.dll and either pick and choose the code you need from the source files, or reference PublicDomain in your .NET project.&lt;br /&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Using_time_zones_in_NET.asp" class="externalLink"&gt;How to use the Olson time zone database in .NET&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/dotnet/PublicDomain_Logging_API.asp" class="externalLink"&gt;PublicDomain Logging description and usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This package becomes a &amp;quot;catch all&amp;quot; for all different types of code, so that there is no dependency hierarchy, and&lt;/li&gt;&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)! The code (or any part of it) may be included even in corporate applications. Public domain code is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;To reference PublicDomain, download PublicDomain.dll, install it, and put it in your project or place it in the GAC and then reference it (by default, binaries and source are installed in C:\Program Files\Public Domain\).&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed, dated, and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;First pure C# implementation of the Olson Time Zone database&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-Kevin Grigorenko&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sun, 09 Sep 2007 15:20:44 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070909032044P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=50</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more.&lt;br /&gt; &lt;br /&gt;PublicDomain binaries and source code are... in the Public Domain (surprise surprise). Therefore, there is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority, and is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Install PublicDomain.dll and either pick and choose the code you need from the source files, or reference PublicDomain in your .NET project.&lt;br /&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Using_time_zones_in_NET.asp" class="externalLink"&gt;How to use the Olson time zone database in .NET&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/dotnet/PublicDomain_Logging_API.asp" class="externalLink"&gt;PublicDomain Logging description and usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This package becomes a &amp;quot;catch all&amp;quot; for all different types of code, so that there is no dependency hierarchy, and&lt;/li&gt;&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)! The code (or any part of it) may be included even in corporate applications. Public domain code is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;To reference PublicDomain, download PublicDomain.dll, install it, and put it in your project or place it in the GAC and then reference it (by default, binaries and source are installed in C:\Program Files\Public Domain\).&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed, dated, and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;First pure C# implementation of the Olson Time Zone database&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-Kevin Grigorenko&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sun, 09 Sep 2007 15:20:07 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070909032007P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=49</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more.&lt;br /&gt; &lt;br /&gt;PublicDomain binaries and source code are... in the Public Domain (surprise surprise). Therefore, there is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority, and is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Install PublicDomain.dll and either pick and choose the code you need from the source files, or reference PublicDomain in your .NET project.&lt;br /&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Using_time_zones_in_NET.asp" class="externalLink"&gt;How to use the Olson time zone database in .NET&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/dotnet/PublicDomain_Logging_API.asp" class="externalLink"&gt;PublicDomain Logging description and usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This package becomes a &amp;quot;catch all&amp;quot; for all different types of code, so that there is no dependency hierarchy, and&lt;/li&gt;&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)! The code (or any part of it) may be included even in corporate applications. Public domain code is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;To reference PublicDomain, download PublicDomain.dll, install it, and put it in your project or place it in the GAC and then reference it (by default, binaries and source are installed in C:\Program Files\Public Domain\).&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed, dated, and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;First pure C# implementation of the Olson Time Zone database&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sun, 19 Aug 2007 18:59:27 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070819065927P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=48</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more.&lt;br /&gt; &lt;br /&gt;PublicDomain binaries and source code are... in the Public Domain (surprise surprise). Therefore, there is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority, and is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Install PublicDomain.dll and either pick and choose the code you need from the source files, or reference PublicDomain in your .NET project.&lt;br /&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Using_time_zones_in_NET.asp" class="externalLink"&gt;How to use the Olson time zone database in .NET&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/PublicDomain_Logging_API.asp" class="externalLink"&gt;PublicDomain Logging description and usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This package becomes a &amp;quot;catch all&amp;quot; for all different types of code, so that there is no dependency hierarchy, and&lt;/li&gt;&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)! The code (or any part of it) may be included even in corporate applications. Public domain code is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;To reference PublicDomain, download PublicDomain.dll, install it, and put it in your project or place it in the GAC and then reference it (by default, binaries and source are installed in C:\Program Files\Public Domain\).&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed, dated, and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;First pure C# implementation of the Olson Time Zone database&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sun, 19 Aug 2007 16:18:55 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070819041855P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=47</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more.&lt;br /&gt; &lt;br /&gt;PublicDomain binaries and source code are... in the Public Domain (surprise surprise). Therefore, there is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority, and is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Install PublicDomain.dll and either pick and choose the code you need from the source files, or reference PublicDomain in your .NET project.&lt;br /&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Using_time_zones_in_NET.asp" class="externalLink"&gt;How to use the Olson time zone database in .NET&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/PublicDomain_Logging_API.asp" class="externalLink"&gt;PublicDomain Logging description and usage&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This package becomes a &amp;quot;catch all&amp;quot; for all different types of code, so that there is no dependency hierarchy, and&lt;/li&gt;&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)! The code (or any part of it) may be included even in corporate applications. Public domain code is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;To reference PublicDomain, download PublicDomain.dll, install it, and put it in your project or place it in the GAC and then reference it (by default, binaries and source are installed in C:\Program Files\Public Domain\).&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sat, 18 Aug 2007 16:16:57 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070818041657P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=46</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more.&lt;br /&gt; &lt;br /&gt;PublicDomain binaries and source code are... in the Public Domain (surprise surprise). Therefore, there is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority, and is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Install PublicDomain.dll and either pick and choose the code you need from the source files, or reference PublicDomain in your .NET project.&lt;br /&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Using_time_zones_in_NET.asp" class="externalLink"&gt;How to use the Olson time zone database in .NET&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This package becomes a &amp;quot;catch all&amp;quot; for all different types of code, so that there is no dependency hierarchy, and&lt;/li&gt;&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)! The code (or any part of it) may be included even in corporate applications. Public domain code is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;To reference PublicDomain, download PublicDomain.dll, install it, and put it in your project or place it in the GAC and then reference it (by default, binaries and source are installed in C:\Program Files\Public Domain\).&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sat, 21 Jul 2007 18:08:30 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070721060830P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=45</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more.&lt;br /&gt; &lt;br /&gt;PublicDomain binaries and source code are... in the Public Domain (surprise surprise). Therefore, there is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority, and is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Install PublicDomain.dll and either pick and choose the code you need from the source files, or reference PublicDomain in your .NET project.&lt;br /&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This package becomes a &amp;quot;catch all&amp;quot; for all different types of code, so that there is no dependency hierarchy, and&lt;/li&gt;&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;)! The code (or any part of it) may be included even in corporate applications. Public domain code is provided &amp;quot;AS IS,&amp;quot; without express or implied warranty of any kind.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;To reference PublicDomain, download PublicDomain.dll, install it, and put it in your project or place it in the GAC and then reference it (by default, binaries and source are installed in C:\Program Files\Public Domain\).&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Mon, 21 May 2007 02:53:48 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070521025348A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=44</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more. There is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority. For C# projects, the entire package can be added to an existing project by adding one .cs file that has all the code, therefore avoiding extra DLL dependencies nor installing this package into the GAC.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions (as opposed to the &lt;a href="http://en.wikipedia.org/wiki/GNU_General_Public_License" class="externalLink"&gt;GPL&lt;/a&gt;)! It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Mon, 02 Apr 2007 22:13:42 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070402101342P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=43</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more. There is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority. For C# projects, the entire package can be added to an existing project by adding one .cs file that has all the code, therefore avoiding extra DLL dependencies nor installing this package into the GAC.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp" class="externalLink"&gt;How to set the maximum memory a process can use at the OS level&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Thu, 01 Mar 2007 14:19:54 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070301021954P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=42</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more. There is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority. For C# projects, the entire package can be added to an existing project by adding one .cs file that has all the code, therefore avoiding extra DLL dependencies nor installing this package into the GAC.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Articles
&lt;/h2&gt;Using PublicDomain:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=How%20to%20set%20the%20maximum%20memory%20a%20process%20can%20use%20at%20the%20OS%20level%3ahttp%3a%2f%2fwww.codeproject.com%2fuseritems%2fSetting_Max_Memory_Limit.asp&amp;amp;referringTitle=Home"&gt;How to set the maximum memory a process can use at the OS level:http://www.codeproject.com/useritems/Setting_Max_Memory_Limit.asp&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Thu, 01 Mar 2007 14:19:23 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070301021923P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=41</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more. There is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority. For C# projects, the entire package can be added to an existing project by adding one .cs file that has all the code, therefore avoiding extra DLL dependencies nor installing this package into the GAC.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://en.wikipedia.org/wiki/Public_domain" class="externalLink"&gt;http://en.wikipedia.org/wiki/Public_domain&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Fri, 09 Feb 2007 03:41:29 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070209034129A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=40</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more. There is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority. For C# projects, the entire package can be added to an existing project by adding one .cs file that has all the code, therefore avoiding extra DLL dependencies nor installing this package into the GAC.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://www.copyright.gov/help/faq/faq-definitions.html" class="externalLink"&gt;http://www.copyright.gov/help/faq/faq-definitions.html&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sun, 28 Jan 2007 14:49:46 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070128024946P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=39</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more. There is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority. For C# projects, the entire package can be added to an existing project by adding one .cs file that has all the code, therefore avoiding extra DLL dependencies and installing this package into the GAC.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://www.copyright.gov/help/faq/faq-definitions.html" class="externalLink"&gt;http://www.copyright.gov/help/faq/faq-definitions.html&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sun, 28 Jan 2007 14:48:15 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070128024815P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=38</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more. There is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority. For C# projects, the entire package can be added to an existing project by adding one .cs file that has all the code.&lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://www.copyright.gov/help/faq/faq-definitions.html" class="externalLink"&gt;http://www.copyright.gov/help/faq/faq-definitions.html&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sun, 28 Jan 2007 14:47:26 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070128024726P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=37</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;A completely free, public domain collection of oft-needed code and packages for .NET. Features include Time Zone support, Logging API, Dynamic Code Evaluation (C#, VB.Net), Global Assembly Cache (GAC) API, Unzipper Class, Rss, Atom, and OPML APIs, Screen scraping API, and a milieu of various utilities for strings, arrays, cryptography, and much, much more. There is no license, so the code (or any part of it) may be included even in corporate applications. Public domain code has no authority. For C# projects, the entire package can be added to an existing project by adding one .cs file that has all the code.&lt;br /&gt; &lt;br /&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://www.copyright.gov/help/faq/faq-definitions.html" class="externalLink"&gt;http://www.copyright.gov/help/faq/faq-definitions.html&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sun, 28 Jan 2007 14:47:13 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070128024713P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=36</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://www.copyright.gov/help/faq/faq-definitions.html" class="externalLink"&gt;http://www.copyright.gov/help/faq/faq-definitions.html&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
High Level Feature List
&lt;/h2&gt;This is a bullet point distillation of the full feature list below:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Time Zone support&lt;/li&gt;&lt;li&gt;Logging API&lt;/li&gt;&lt;li&gt;Dynamic Code Evaluation (C#, VB.Net)&lt;/li&gt;&lt;li&gt;Global Assembly Cache (GAC) API&lt;/li&gt;&lt;li&gt;Unzipper Class&lt;/li&gt;&lt;li&gt;Rss, Atom, and OPML APIs&lt;/li&gt;&lt;li&gt;Screen scraping API&lt;/li&gt;&lt;li&gt;Milieu of various utilities for strings, arrays, cryptography&lt;/li&gt;&lt;li&gt;And More!&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Abstracted and powerful Logging API, with formatting interfaces and extensions such as Composite loggers&lt;/li&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Mon, 22 Jan 2007 03:33:42 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070122033342A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=35</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://www.copyright.gov/help/faq/faq-definitions.html" class="externalLink"&gt;http://www.copyright.gov/help/faq/faq-definitions.html&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# implementation of the Olson Time Zone database (experimental)&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list as a collection of IInstallProgram instances. These wrappers include methods like Uninstall()&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: RandomString&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;CodeUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: Eval&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sat, 20 Jan 2007 16:54:05 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070120045405P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/publicdomain/Wiki/View.aspx?title=Home&amp;version=34</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
PublicDomain
&lt;/h1&gt;&lt;h2&gt;
Get right to the code!
&lt;/h2&gt;The latest files are to your right, in the &amp;quot;Current Release&amp;quot; box. Download PublicDomain.cs for the code or PublicDomain.msi to install the DLL&lt;br /&gt;&lt;h2&gt;
Goals
&lt;/h2&gt;Open source libraries in .NET have two problems or annoyances:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;.NET projects and utilities are scattered, difficult to deploy and integrate, difficult to find, difficult to contribute to, and,&lt;/li&gt;&lt;li&gt;Licenses are confusing or restrictive.&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;This package solves these two problems as follows (in reverse order):&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;This code is in the Public Domain (&lt;a href="http://www.copyright.gov/help/faq/faq-definitions.html" class="externalLink"&gt;http://www.copyright.gov/help/faq/faq-definitions.html&lt;/a&gt;), meaning that the code has no legal authority, will ask nothing for its use, and has absolutely no restrictions! That is true open source. It may be included in commercial applications, redistributed, altered, or even eaten without any worries. Its use need not be attributed in any way. This package is inherently provided 'as-is', without any express or implied warranty. In no event will any authors be held liable for any damages arising from the use of this package.&lt;/li&gt;&lt;li&gt;For problem #1, one major design goal is that I should be able to embed a single file into my project and harness this package, without adding too much bloat to my application.&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;For this, precompiler directives are used to include or exclude code that is unnecessary or necessitates DLL dependencies that I cannot take on.&lt;/li&gt;&lt;li&gt;Second, everything is packaged in a single file to make using this package dead simple, especially in a C# context (non-C# projects will need a built version of this file and reference the DLL). There are no obfuscated build or install procedures, or the complexity of managing 10 referenced open source projects in my solution. I simply place or insert this file (&lt;u&gt;or any subset of it&lt;/u&gt;, since any part of it can be edited, removed, or extracted) anywhere I need its useful code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;h2&gt;
Download Instructions
&lt;/h2&gt;Go to the Releases tab.&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;For simple use, download PublicDomain.cs. This file may be inserted into the project &lt;b&gt;or you may simply copy and paste code out of it into your code&lt;/b&gt;.&lt;/li&gt;&lt;li&gt;To reference PublicDomain, download PublicDomain.dll and put it in your project or place it in the GAC and then reference it.&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;
Feature List
&lt;/h2&gt;This is an (&lt;u&gt;undetailed and partial&lt;/u&gt;) sampling of some of the code included in the current release:&lt;br /&gt; &lt;br /&gt;&lt;ul&gt;
&lt;li&gt;Dynamic code evaluation in C#, VB.NET&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Example: PublicDomain.Dynacode.CodeUtilities.EvalSnippet(Language.CSharp, &amp;quot;1*337&amp;quot;)&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;&lt;b&gt;First&lt;/b&gt; pure C# (experimental) implementation of the Olson Time Zone database&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Programmatic access to RULE and ZONE information, instead of obfuscated C and C++ code&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Generic Pair, Triple, ReadOnlyDictionary, and ReadOnlyICollection classes&lt;/li&gt;&lt;li&gt;API for getting a list of programs from the Add/Remove Program list, including running the uninstaller&lt;/li&gt;&lt;li&gt;API for manipulating the GAC (Global Assembly Cache), including installing/uninstalling assemblies into/from the GAC, as well as listing or searching for assemblies&lt;/li&gt;&lt;li&gt;Iso* classes such as Iso8601 for various parsing facilities&lt;/li&gt;&lt;li&gt;Cryptography Utilities, String utilities&lt;/li&gt;&lt;li&gt;Archiver class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Uses J# libraries to extract zip file entries&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Win32 class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Provides PInvoke wrappers to WIN32 functions&lt;/li&gt;&lt;li&gt;Methods: LogoffCurrentUser, Shutdown, RestartWindows&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ProcessHelper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around System.Diagnostics.Process which provides some convenience methods but most importantly deal with the complex nature of getting both StandardOutput and StandardError streams concurrently&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;FileSystemUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: SaveInputStreamToFile, CombineTrackbacksInPath&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ObjectUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;SerializeObjectToBinary, DeserializeObjectFromBinary&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ReflectionUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;GetStrongName, FindTypeByInterface, FindInstanceByInterface&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a .NET System.IO.Stream class where a java.io.InputStream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;JInputStream class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Transparently pass a java.io.InputStream class where a .NET System.IO.Stream class is expected&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;StringUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: RandomString&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;CultureConstants class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;All windows culture constants&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;DisposableReaderWriter class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Wrapper around the .NET ReaderWriterLock to more easily use a reader/writer lock&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;InvariantCultureContext class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;The class can be used in a using() {} block or a try, finally block with a dispose call and allows for setting the current Thread's culture to the invariant culture during the length of the scope. This is useful when it is critical to have invariant culture rules, for example, if you are dependent that a real number is of the form X.XXXX, then you will be thrown off if there is a European culture.&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;RegexUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Common regular expressions&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;CodeUtilities class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Methods: Eval&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;ScreenScraper class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Help in managing GET and POST requests to websites, including cookie handling, HTTP redirects, and output parsing&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Various ISO Format wrapper classes&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Iso3166, Iso6709&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;LatitudeLongitudePoint class&lt;/li&gt;&lt;li&gt;UnitedStatesUtilities class and USState class&lt;/li&gt;&lt;ul&gt;
&lt;li&gt;Static list of U.S. states in object form&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt; &lt;br /&gt;&lt;b&gt;&amp;quot;Be free Jedi, be free!&amp;quot;&lt;/b&gt;&lt;br /&gt;-&lt;a href="mailto:kevgrig@gmail.com" class="externalLink"&gt;Kevin Grigorenko&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>schizoidboy</author><pubDate>Sat, 20 Jan 2007 16:52:25 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20070120045225P</guid></item></channel></rss>