<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Cyberkruz.com</title>
    <description>Life, Opportunity, and Development</description>
    <link>http://cyberkruz.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-US</language>
    <blogChannel:blogRoll>http://cyberkruz.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Matthew Kruskamp</dc:creator>
    <dc:title>Cyberkruz.com</dc:title>
    <geo:lat>40.649280</geo:lat>
    <geo:long>-111.908000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Cyberkruz" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Team Foundation Server on Server 2008</title>
      <description>&lt;p&gt;Installing Team Foundation Server on 2008 is a bit tricky. Here are a couple of notes to take into account before you install. This post is really just an archive for me, but if they are useful to people, yay! These are some of the issues I ran into:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SLIPSTREAM SERVICE PACK 1&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I went to install Team Foundation Server and I got some random errors about inability to connect with Reporting Services. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;blockquote style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border-color: initial; border-style: none; padding: 0px"&gt;	&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #333333; line-height: 16px"&gt;&lt;em&gt;Team Foundation Server could not connect to the SQL Reporting Services WMI provider.&amp;nbsp; Verify that SQL Reporting Services is installed and running.&lt;/em&gt;&lt;/span&gt;&amp;nbsp;&lt;/blockquote&gt;&lt;span class="Apple-style-span" style="font-family: 'Segoe UI', 'Lucida Grande', Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #333333; line-height: 16px"&gt;&lt;/span&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This was actually due to the fact that Team Foundation Server doesn&amp;#39;t work with SQL Server 2008 without Service Pack 1 slipstreamed.&amp;nbsp;&lt;a href="http://www.woodwardweb.com/vsts/creating_a_tfs.html"&gt;http://www.woodwardweb.com/vsts/creating_a_tfs.html&lt;/a&gt;&amp;nbsp;contains a good way to do it.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;SQL Reporting Services on the TFS Machine&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Apparently although Reporting Services uses web service TFS must have reporting services configured on the machine you install TFS on (Application Tier).&amp;nbsp;&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/ca69Dh8mdTk/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Team-Foundation-Server-on-Server-2008.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=e21b6ff4-9f37-4263-9011-5c46b17c8cad</guid>
      <pubDate>Fri, 06 Nov 2009 13:20:00 -0600</pubDate>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=e21b6ff4-9f37-4263-9011-5c46b17c8cad</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=e21b6ff4-9f37-4263-9011-5c46b17c8cad</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Team-Foundation-Server-on-Server-2008.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=e21b6ff4-9f37-4263-9011-5c46b17c8cad</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=e21b6ff4-9f37-4263-9011-5c46b17c8cad</feedburner:origLink></item>
    <item>
      <title>We're on to you!</title>
      <description>&lt;p&gt;
Hey, get back to work!
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://cyberkruz.com/image.axd?picture=2009%2f10%2fone1.jpg" alt="" /&gt;
&lt;img src="http://cyberkruz.com/image.axd?picture=2009%2f10%2ftwo2.jpg" alt="" /&gt;&lt;br /&gt;
&lt;br /&gt;
There is also a direct link for those who want to re-route corporate dns.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://backtowork.cyberkruz.com"&gt;backtowork.cyberkruz.com &lt;/a&gt;
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/fJJPBW4tJ1Q/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Were-on-to-you!.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=ff9f1c16-4303-470e-94d4-8991d0cbdd34</guid>
      <pubDate>Fri, 09 Oct 2009 14:29:00 -0600</pubDate>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=ff9f1c16-4303-470e-94d4-8991d0cbdd34</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=ff9f1c16-4303-470e-94d4-8991d0cbdd34</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Were-on-to-you!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=ff9f1c16-4303-470e-94d4-8991d0cbdd34</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=ff9f1c16-4303-470e-94d4-8991d0cbdd34</feedburner:origLink></item>
    <item>
      <title>Get into Java Part 1: Hello World</title>
      <description>&lt;p&gt;&lt;strong&gt;Forward     &lt;br /&gt;&lt;/strong&gt;Two years ago I developed a number of Java applications. Since then I have been developing exclusively in .Net. I just got a project requiring Java development, and it occurred to me that my Java skills are lacking since my Java prime. This is a series of tutorials designed as a refresher course.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Overview     &lt;br /&gt;&lt;/strong&gt;The intention is to remove the base concepts of object oriented programming and patterns bringing how to develop in the language forward. It is designed for previous developers of Java and advanced developers in other languages trying to jump into Java.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tools     &lt;br /&gt;&lt;/strong&gt;At the time of this writing Java 6 revision 14 JRE is out. For those that don’t know the Java Runtime Environment (JRE) runs on your machine and executes Java applications. The Java Development Kit (JDK) is the development tools for writing Java applications. Eclipse is the primary IDE for Java and will contain the JDK.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.java.com/en/download/index.jsp"&gt;Download JRE&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;Download JDK&lt;/a&gt; – If you aren’t using Eclipse&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/R/eclipse-java-galileo-win32.zip"&gt;Download Eclipse&lt;/a&gt; (I have Eclipse for Java Developers)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Hello World&lt;/strong&gt;    &lt;br /&gt;I’m going to assume you are using eclipse for now. If you would like to compile projects by hand the javac application in the jdk is how you would go about it. Lets get started.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Launch eclipse&lt;/li&gt;    &lt;li&gt;Click File-&amp;gt;New Java Project&lt;/li&gt;    &lt;li&gt;Project Name: HelloWorld&lt;/li&gt;    &lt;li&gt;Click Finish&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This created your application’s directory structure. Now we want to add the actual HelloWorld class.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Click on the arrow next to HelloWorld in the Package Explorer to open the directory tree.&lt;/li&gt;    &lt;li&gt;Right click on src&lt;/li&gt;    &lt;li&gt;Click New-&amp;gt;Class&lt;/li&gt;    &lt;li&gt;Under Package, enter com.cyberkruz&lt;/li&gt;    &lt;li&gt;Under Name, enter HelloWorld&lt;/li&gt;    &lt;li&gt;Under “Which method stubs would you like to create?” check “public static void main(String[] args)”&lt;/li&gt;    &lt;li&gt;Click Finish&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Change your code to the following&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;package com.cyberkruz; &lt;/p&gt;    &lt;p&gt;public class HelloWorld {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public static void main(String[] args) {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.out.println(&amp;quot;Hello World&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Up at the top there is a green button with an arrow, click it and your Console (down below) should say “Hello World.” Success!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Explanation&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;package – &lt;/strong&gt;Defines that the application is located in the com.cyberkruz package. This is used for sorting your code. It is basically the same as a namespace in .Net (I know there are differences, don’t flame me). When the code is organized, it is placed in the corresponding folder structure according to the package.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;class&lt;/strong&gt; – The basis for oop. Not going into oop this is how you define a class in Java. The public keyword defines the access level. Here are the access levels:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;public – class, package, subclass, world&lt;/li&gt;      &lt;li&gt;protected – class, package, subclass&lt;/li&gt;      &lt;li&gt;&lt;em&gt;no modifier&lt;/em&gt; – class, package&lt;/li&gt;      &lt;li&gt;private – class&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;static&lt;/strong&gt; – The static keyword denotes that the method isn’t called from an instance of the class.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So we defined a package com.cyberkruz. We added a class to the package that is visible to the world. We added a method taking in a string array of arguments that can be passed from command line. We then accessed the System.out class and the println method which prints a string to the command line.&lt;/p&gt;  &lt;p&gt;I realize this is incomplete. The intention is to refresh memory and help people jump into Java code without a lot of hassle. More tutorials in this series will be posted soon.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/LF5F6nZZPC4/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Get-into-Java-Part-1-Hello-World.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=2787f8a3-230d-4690-adf2-eb4d6b514442</guid>
      <pubDate>Mon, 27 Jul 2009 01:55:25 -0600</pubDate>
      <category>Java</category>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=2787f8a3-230d-4690-adf2-eb4d6b514442</pingback:target>
      <slash:comments>8</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=2787f8a3-230d-4690-adf2-eb4d6b514442</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Get-into-Java-Part-1-Hello-World.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=2787f8a3-230d-4690-adf2-eb4d6b514442</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=2787f8a3-230d-4690-adf2-eb4d6b514442</feedburner:origLink></item>
    <item>
      <title>IIS7 FTP Issues</title>
      <description>&lt;p&gt;I was installing IIS7 FTP on a server, and I ran into a couple of problems connecting with FileZilla. I am really posting this for archive purposes, but perhaps someone will get some use out of it.&lt;/p&gt;  &lt;p&gt;I used the following articles to set up my ftp:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/303/adding-ftp-to-a-web-site/"&gt;http://learn.iis.net/page.aspx/303/adding-ftp-to-a-web-site/&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://learn.iis.net/page.aspx/320/using-ftp-virtual-host-names/"&gt;http://learn.iis.net/page.aspx/320/using-ftp-virtual-host-names/&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;   &lt;br /&gt;After those installations, I ran into these issues:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;530 Valid Hostname is expected     &lt;br /&gt;&lt;/strong&gt;I first encountered this. I found that when you log in by default, the site name is normal (ex: &lt;a href="ftp://ftp.whatever.com"&gt;ftp.whatever.com&lt;/a&gt;), but the username should be site|username (ex: &lt;a href="ftp://ftp.whatever.com|myUser"&gt;ftp.whatever.com|myUser&lt;/a&gt;). The reasoning behind all of it resides in the link; IIS7 wants full hostname in with the username to discern the site to use.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;150 Opening BINARY mode data connection failure&lt;/strong&gt;    &lt;br /&gt;This was the second issue I ran into. I found out pretty quickly that it is because of the Windows Firewall, but it took a while to find the command to open the dynamic port range. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;netsh advfirewall set global StatefulFtp enable&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I ran that command which tells the Windows Firewall to open up dynamic ports as needed. It all worked great from there. &lt;em&gt;Note: I first opened port 21 for general ftp&lt;/em&gt;.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/d--g-OM4qaY/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Common-issues-with-IIS7-FTP.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=da16331f-126b-4e6d-b977-ed71dabe3f28</guid>
      <pubDate>Sat, 27 Jun 2009 04:05:37 -0600</pubDate>
      <category>IIS7</category>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=da16331f-126b-4e6d-b977-ed71dabe3f28</pingback:target>
      <slash:comments>11</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=da16331f-126b-4e6d-b977-ed71dabe3f28</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Common-issues-with-IIS7-FTP.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=da16331f-126b-4e6d-b977-ed71dabe3f28</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=da16331f-126b-4e6d-b977-ed71dabe3f28</feedburner:origLink></item>
    <item>
      <title>Building ClickOnce with CruiseControl.Net</title>
      <description>&lt;p&gt;I was configuring automated builds with CruiseControl.Net which went relatively good until publishing ClickOnce applications. Since I didn’t have Visual Studio installed on the development machine, I was getting the error:&lt;/p&gt;  &lt;p&gt;error MSB3147: Could not find required file 'setup.bin' in 'ProjectFolder\Engine'&lt;/p&gt;  &lt;p&gt;After searching for the answer for hours online, &lt;a href="http://abdullin.com/journal/2009/2/17/building-vsto-solutions-without-visual-studio.html"&gt;this article&lt;/a&gt; showed me the solution. It was in with some other office building stuff, so I am going to highlight the actual ClickOnce steps.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Copy the bootstrapper files from Visual Studio to the same directory on the build server ‘Program Files\Microsoft SDKs\Windows\v6.0a\Bootstrapper’ &lt;/li&gt;    &lt;li&gt;Create a registry setting to point to the location:      &lt;br /&gt;Key: HKEY_LOCAL_MACHINE\Software\Microsoft\GenericBootstrapper\3.5\       &lt;br /&gt;Value: Path       &lt;br /&gt;Type: REG_SZ       &lt;br /&gt;Data: C:\Program Files\Microsoft SDKs\Windows\v6.0a\Bootstrapper\ &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope this helps. Thank you Rinat Abdullin for the solution.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/Bks0DNsK7Hs/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Building-ClickOnce-with-CruiseControlNet.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=8b7e4a75-3b65-4bb0-884a-f6536e899f05</guid>
      <pubDate>Thu, 14 May 2009 10:21:00 -0600</pubDate>
      <category>CruiseControl.Net</category>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=8b7e4a75-3b65-4bb0-884a-f6536e899f05</pingback:target>
      <slash:comments>9</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=8b7e4a75-3b65-4bb0-884a-f6536e899f05</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Building-ClickOnce-with-CruiseControlNet.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=8b7e4a75-3b65-4bb0-884a-f6536e899f05</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=8b7e4a75-3b65-4bb0-884a-f6536e899f05</feedburner:origLink></item>
    <item>
      <title>Silverlight Zooming and Panning a Canvas</title>
      <description>&lt;p&gt;Zooming and Panning seems to be in great demand for Silverlight projects. I myself searched around through numerous articles trying to figure out good ways to do it. I came up with a solution that hopefully can satisfy some of the demand here on the internets.&lt;/p&gt;  &lt;p&gt;First thing I did was make a control that is the zooming and panning canvas. I called it DesignRender as it applied to the particular project I was developing.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl
    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;
    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;
    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;d&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;
    &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;
    &lt;/span&gt;&lt;span style="color: red"&gt;mc&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Ignorable&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;d&amp;quot;
    &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Class&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;SilverlightApplication2.DesignRender&amp;quot;&amp;gt;
    
    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScrollViewer &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;scrollRoot&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;VerticalScrollBarVisibility&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Disabled&amp;quot; 
                  &lt;/span&gt;&lt;span style="color: red"&gt;HorizontalScrollBarVisibility&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;Disabled&amp;quot;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Canvas &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;canvasRoot&amp;quot;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Canvas &lt;/span&gt;&lt;span style="color: red"&gt;Background&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;#FF00FBF2&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;canvasContainer&amp;quot;
                    &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;1000&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;800&amp;quot;&amp;gt;
                &lt;/span&gt;&lt;span style="color: green"&gt;&amp;lt;!-- This is dummy stuff for zooming/panning --&amp;gt;
                &lt;/span&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Rectangle &lt;/span&gt;&lt;span style="color: red"&gt;Width&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;90&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Height&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;90&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Fill&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;#FFCA1F1F&amp;quot;
                           &lt;/span&gt;&lt;span style="color: red"&gt;Canvas.Left&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;0&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;Canvas.Top&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;0&amp;quot; 
                           &lt;/span&gt;&lt;span style="color: red"&gt;RadiusX&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;2&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;RadiusY&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;2&amp;quot; /&amp;gt;
                &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;Canvas.RenderTransform&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
                    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScaleTransform &lt;/span&gt;&lt;span style="color: red"&gt;x&lt;/span&gt;&lt;span style="color: blue"&gt;:&lt;/span&gt;&lt;span style="color: red"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;scaler&amp;quot; 
                                    &lt;/span&gt;&lt;span style="color: red"&gt;CenterX&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;0&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;CenterY&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;0&amp;quot; 
                                    &lt;/span&gt;&lt;span style="color: red"&gt;ScaleX&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;1&amp;quot; &lt;/span&gt;&lt;span style="color: red"&gt;ScaleY&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;1&amp;quot; /&amp;gt;
                &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Canvas.RenderTransform&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Canvas&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Canvas&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ScrollViewer&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;UserControl&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;I am using a scrollviewer so I can place the UserControl effectively in a parent control. You can change this as desired. The canvasRoot acts as your background and the canvasContainer is the actual content residing in your background. If this was photoshop, the canvasRoot would be the greyed out background and the canvasContainer would be your actual document. Hence the static sizing of the canvasContainer. Now for the code behind.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color: blue"&gt;public partial class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;DesignRender &lt;/span&gt;: &lt;span style="color: #2b91af"&gt;UserControl
&lt;/span&gt;{
    &lt;span style="color: blue"&gt;private bool &lt;/span&gt;isDragging = &lt;span style="color: blue"&gt;false&lt;/span&gt;;
    &lt;span style="color: blue"&gt;private &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Point &lt;/span&gt;offset;
    
    &lt;span style="color: blue"&gt;public &lt;/span&gt;DesignRender()
    {
        InitializeComponent();

        &lt;span style="color: green"&gt;// Handle the mouse click events within the control
        // for panning.
        &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.canvasContainer.MouseLeftButtonUp += 
            &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MouseButtonEventHandler&lt;/span&gt;(canvasContainer_MouseLeftButtonUp);
        &lt;span style="color: blue"&gt;this&lt;/span&gt;.canvasContainer.MouseLeftButtonDown +=
            &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MouseButtonEventHandler&lt;/span&gt;(canvasContainer_MouseLeftButtonDown);
        &lt;span style="color: blue"&gt;this&lt;/span&gt;.canvasContainer.MouseMove += 
            &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;MouseEventHandler&lt;/span&gt;(canvasContainer_MouseMove);
        
        &lt;span style="color: green"&gt;// Handle the scroll wheel events. They are different
        // per browser so we have to attach to a couple of events.     
        &lt;/span&gt;HtmlPage.Window.AttachEvent(&lt;span style="color: #a31515"&gt;&amp;quot;DOMMouseScroll&amp;quot;&lt;/span&gt;, OnMouseWheel);
        HtmlPage.Window.AttachEvent(&lt;span style="color: #a31515"&gt;&amp;quot;onmousewheel&amp;quot;&lt;/span&gt;, OnMouseWheel);
        HtmlPage.Document.AttachEvent(&lt;span style="color: #a31515"&gt;&amp;quot;onmousewheel&amp;quot;&lt;/span&gt;, OnMouseWheel);
    }

    &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;Called when the mouse wheel is used. Zooms
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;in our out depending.
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;OnMouseWheel(&lt;span style="color: blue"&gt;object &lt;/span&gt;sender, HtmlEventArgs e)
    {
        &lt;span style="color: blue"&gt;double &lt;/span&gt;mouseDelta = 0;
        ScriptObject obj = e.EventObject;
        
        &lt;span style="color: green"&gt;// Get what the mouseDelta was in
        // the particular browser being used
        &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(obj.GetProperty(&lt;span style="color: #a31515"&gt;&amp;quot;detail&amp;quot;&lt;/span&gt;) != &lt;span style="color: blue"&gt;null&lt;/span&gt;)
            mouseDelta = ((&lt;span style="color: blue"&gt;double&lt;/span&gt;)obj.GetProperty(&lt;span style="color: #a31515"&gt;&amp;quot;detail&amp;quot;&lt;/span&gt;));
        &lt;span style="color: blue"&gt;else if &lt;/span&gt;(obj.GetProperty(&lt;span style="color: #a31515"&gt;&amp;quot;wheelDelta&amp;quot;&lt;/span&gt;) != &lt;span style="color: blue"&gt;null&lt;/span&gt;)
            mouseDelta = ((&lt;span style="color: blue"&gt;double&lt;/span&gt;)obj.GetProperty(&lt;span style="color: #a31515"&gt;&amp;quot;wheelDelta&amp;quot;&lt;/span&gt;));
        
        &lt;span style="color: green"&gt;// Quick mouse translation
        &lt;/span&gt;mouseDelta = &lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Sign(mouseDelta);

        &lt;span style="color: green"&gt;// calculate the new scale for the canvas
        &lt;/span&gt;&lt;span style="color: blue"&gt;double &lt;/span&gt;newScale = &lt;span style="color: blue"&gt;this&lt;/span&gt;.scaler.ScaleX + (mouseDelta * .25);

        &lt;span style="color: green"&gt;// Don't allow scrolling too big or small
        &lt;/span&gt;&lt;span style="color: blue"&gt;if &lt;/span&gt;(newScale &amp;lt; 0.25)
            &lt;span style="color: blue"&gt;return&lt;/span&gt;;
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(newScale &amp;gt; 10)
            &lt;span style="color: blue"&gt;return&lt;/span&gt;;

        &lt;span style="color: green"&gt;// Set the zoom!
        &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.scaler.ScaleX = newScale;
        &lt;span style="color: blue"&gt;this&lt;/span&gt;.scaler.ScaleY = newScale;
    }
    
    &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;Called when user presses mouse down. Start
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;panning.
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;canvasContainer_MouseLeftButtonDown(
        &lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;MouseButtonEventArgs &lt;/span&gt;e)
    {
        &lt;span style="color: green"&gt;// Say we are dragging
        &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.isDragging = &lt;span style="color: blue"&gt;true&lt;/span&gt;;
        &lt;span style="color: blue"&gt;this&lt;/span&gt;.canvasContainer.CaptureMouse();
        &lt;span style="color: green"&gt;// Calculate the place where they clicked
        &lt;/span&gt;offset = e.GetPosition(&lt;span style="color: blue"&gt;this&lt;/span&gt;.canvasContainer);
        offset.X *= &lt;span style="color: blue"&gt;this&lt;/span&gt;.scaler.ScaleX;offset.Y *= &lt;span style="color: blue"&gt;this&lt;/span&gt;.scaler.ScaleY;
    }
    
    &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;Called when user releases mouse. End panning
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;canvasContainer_MouseLeftButtonUp(
        &lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;MouseButtonEventArgs &lt;/span&gt;e)
    {
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(&lt;span style="color: blue"&gt;this&lt;/span&gt;.isDragging)
        {
            &lt;span style="color: green"&gt;// Say we are done dragging
            &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.isDragging = &lt;span style="color: blue"&gt;false&lt;/span&gt;;
            &lt;span style="color: blue"&gt;this&lt;/span&gt;.canvasContainer.ReleaseMouseCapture();
        }
    }
    
    &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;Called when the user moves there mouse. If
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;they have the mouse button pressed then we
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;pan.
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;private void &lt;/span&gt;canvasContainer_MouseMove(
        &lt;span style="color: blue"&gt;object &lt;/span&gt;sender, &lt;span style="color: #2b91af"&gt;MouseEventArgs &lt;/span&gt;e)
    {
        &lt;span style="color: blue"&gt;if &lt;/span&gt;(&lt;span style="color: blue"&gt;this&lt;/span&gt;.isDragging)
        {
            &lt;span style="color: green"&gt;// Calculate the new drag distance
            &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Point &lt;/span&gt;newPosition = e.GetPosition(&lt;span style="color: blue"&gt;this&lt;/span&gt;.canvasRoot);
            &lt;span style="color: #2b91af"&gt;Point &lt;/span&gt;newPoint = 
                &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;Point&lt;/span&gt;(newPosition.X - offset.X,newPosition.Y - offset.Y);
            
            &lt;span style="color: green"&gt;// Set the values
            &lt;/span&gt;&lt;span style="color: blue"&gt;this&lt;/span&gt;.canvasContainer.SetValue(&lt;span style="color: #2b91af"&gt;Canvas&lt;/span&gt;.LeftProperty,newPoint.X);
            &lt;span style="color: blue"&gt;this&lt;/span&gt;.canvasContainer.SetValue(&lt;span style="color: #2b91af"&gt;Canvas&lt;/span&gt;.TopProperty,newPoint.Y);
        }
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;The code itself should be pretty self explanatory. I use scaling to do the zooming and mouse down events for panning. Now just host this control in your Page.xaml whatever way you would like. This should get everyone started in the right direction. Hope this helps.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/rA7R_3ek_4Q/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Silverlight-Zooming-and-Panning-a-Canvas.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=fa93d492-0792-475e-8940-d14e49c42bfc</guid>
      <pubDate>Tue, 12 May 2009 11:25:00 -0600</pubDate>
      <category>C#</category>
      <category>Silverlight</category>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=fa93d492-0792-475e-8940-d14e49c42bfc</pingback:target>
      <slash:comments>10</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=fa93d492-0792-475e-8940-d14e49c42bfc</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Silverlight-Zooming-and-Panning-a-Canvas.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=fa93d492-0792-475e-8940-d14e49c42bfc</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=fa93d492-0792-475e-8940-d14e49c42bfc</feedburner:origLink></item>
    <item>
      <title>Error performing inpage operation</title>
      <description>&lt;p&gt;I have an external harddrive to which I thought I lost all of the information on. Whenever I plugged it in, the light would come on like it was going to read and then turn back off again. Whenever I tried to access the volume, I would get an error message saying “Error performing inpage operation.” After looking extensively online, I ran&lt;/p&gt;  &lt;p&gt;chkdsk l: /f&amp;#160; &lt;br /&gt;substitute l: for your volume label&lt;/p&gt;  &lt;p&gt;It repaired the drive and works great. Off to buy another terabyte hdd for backups. Hope this can be useful for someone.&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/r2iuGYWSz-k/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Error-performing-inpage-operation.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=d49657cd-017e-42c4-9280-d1590711b46a</guid>
      <pubDate>Sat, 02 May 2009 09:46:20 -0600</pubDate>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=d49657cd-017e-42c4-9280-d1590711b46a</pingback:target>
      <slash:comments>10</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=d49657cd-017e-42c4-9280-d1590711b46a</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Error-performing-inpage-operation.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=d49657cd-017e-42c4-9280-d1590711b46a</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=d49657cd-017e-42c4-9280-d1590711b46a</feedburner:origLink></item>
    <item>
      <title>Serializing and Deserializing XML to files</title>
      <description>&lt;p&gt;This is a simple class for serializing a type to a file and deserializing a type from a file. This code shouldn’t be considered production, but it will show you a very simple way to do it.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: gray"&gt;    /// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="color: green"&gt;Class for saving xml serializable types 
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;to a file.
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
    /// &amp;lt;typeparam name=&amp;quot;T&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The generic serializable
    &lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;type that is going to be serialized or deserialized&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/typeparam&amp;gt;
    &lt;/span&gt;&lt;span style="color: blue"&gt;public class &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TypeSerializer&lt;/span&gt;&amp;lt;T&amp;gt;
    {
        &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
        /// &lt;/span&gt;&lt;span style="color: green"&gt;Serializes and saves the specified item
        &lt;/span&gt;&lt;span style="color: gray"&gt;/// &lt;/span&gt;&lt;span style="color: green"&gt;to a file specified.
        &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;item&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The item to serialize.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;path&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The path to the file.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
        &lt;/span&gt;&lt;span style="color: blue"&gt;public void &lt;/span&gt;Save(T item, &lt;span style="color: blue"&gt;string &lt;/span&gt;path)
        {
            &lt;span style="color: green"&gt;// Create the serializer
            &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XmlSerializer &lt;/span&gt;s = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XmlSerializer&lt;/span&gt;(&lt;span style="color: blue"&gt;typeof&lt;/span&gt;(T));
            &lt;span style="color: green"&gt;// Create the writer
            &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TextWriter &lt;/span&gt;w = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;StreamWriter&lt;/span&gt;(path);
            &lt;span style="color: green"&gt;// Do the work
            &lt;/span&gt;s.Serialize(w, item);
            &lt;span style="color: green"&gt;// Clean up
            &lt;/span&gt;w.Close();
        }

        &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;
        /// &lt;/span&gt;&lt;span style="color: green"&gt;Loads the specified file and serializes it.
        &lt;/span&gt;&lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;path&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The path to the item.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: green"&gt;The serialized type.&lt;/span&gt;&lt;span style="color: gray"&gt;&amp;lt;/returns&amp;gt;
        &lt;/span&gt;&lt;span style="color: blue"&gt;public &lt;/span&gt;T Load(&lt;span style="color: blue"&gt;string &lt;/span&gt;path)
        {
            &lt;span style="color: green"&gt;// Create the serializer
            &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XmlSerializer &lt;/span&gt;s = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;XmlSerializer&lt;/span&gt;(&lt;span style="color: blue"&gt;typeof&lt;/span&gt;(T));
            &lt;span style="color: green"&gt;// The item we are returning
            &lt;/span&gt;T item;
            &lt;span style="color: green"&gt;// The text reader that puts the text in the stream
            &lt;/span&gt;&lt;span style="color: #2b91af"&gt;TextReader &lt;/span&gt;r = &lt;span style="color: blue"&gt;new &lt;/span&gt;&lt;span style="color: #2b91af"&gt;StreamReader&lt;/span&gt;(path);
            &lt;span style="color: green"&gt;// Deserialize the item and cast it
            &lt;/span&gt;item = (T)s.Deserialize(r);
            &lt;span style="color: green"&gt;// Clean up
            &lt;/span&gt;r.Close();
            &lt;span style="color: green"&gt;// return the item
            &lt;/span&gt;&lt;span style="color: blue"&gt;return &lt;/span&gt;item;
        }
    }&lt;/pre&gt;
Simple to use. Just call new TypeSerializer&amp;lt;YourClass&amp;gt;().Save(item, path); to save it or TypeSerializer&amp;lt;YourClass&amp;gt;().Load(path); to load it. Thank you &lt;a href="http://www.codeproject.com/KB/XML/xml_serializationasp.aspx"&gt;CodeProject&lt;/a&gt;for the step in the right direction. I just wanted a simpler example to start people out. I hope this helps.</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/QtSAHjlHYIs/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Serializing-and-Deserializing-XML-to-files.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=7ac32008-6363-497f-9d80-9310d66ff633</guid>
      <pubDate>Tue, 07 Apr 2009 11:16:28 -0600</pubDate>
      <category>C#</category>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=7ac32008-6363-497f-9d80-9310d66ff633</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=7ac32008-6363-497f-9d80-9310d66ff633</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Serializing-and-Deserializing-XML-to-files.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=7ac32008-6363-497f-9d80-9310d66ff633</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=7ac32008-6363-497f-9d80-9310d66ff633</feedburner:origLink></item>
    <item>
      <title>Excel Importer</title>
      <description>&lt;p&gt;I wrote this little WPF application as the demonstration for my previous article on reading excel spreadsheets. I figured everyone should be able to test it and play around with it. Just a note: The code was written very fast and inefficiently so don&amp;rsquo;t consider it anything more than proof of concept. At any rate, here you go.&lt;/p&gt;&lt;p&gt;&lt;a href="http://cyberkruz.com/file.axd?file=2009%2f3%2fExcelImporter.zip"&gt;ExcelImporter.zip (18.51 kb)&lt;/a&gt;&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/y9pw4Hf3kIA/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Excel-Importer.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=2988346f-3d16-4eb0-aae5-651116c7b991</guid>
      <pubDate>Tue, 17 Mar 2009 04:05:00 -0600</pubDate>
      <category>C#</category>
      <category>Excel</category>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=2988346f-3d16-4eb0-aae5-651116c7b991</pingback:target>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=2988346f-3d16-4eb0-aae5-651116c7b991</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Excel-Importer.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=2988346f-3d16-4eb0-aae5-651116c7b991</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=2988346f-3d16-4eb0-aae5-651116c7b991</feedburner:origLink></item>
    <item>
      <title>Blogging with BlogEngine.Net</title>
      <description>&lt;p&gt;I found a few simple applications that make blogging in BlogEngine.Net very easy and convenient. Hopefully you will as well.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Live Writer&lt;/strong&gt;    &lt;br /&gt;&lt;a href="http://get.live.com/writer/overview"&gt;http://get.live.com/writer/overview&lt;/a&gt;    &lt;br /&gt;I didn’t know Live had a blogging application let alone one that will automatically connect to my Blog for me to post on. This application makes things very easy as I prefer desktop applications over web applications.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Paste From Visual Studio&lt;/strong&gt;    &lt;br /&gt;&lt;a href="http://gallery.live.com/liveItemDetail.aspx?li=d8835a5e-28da-4242-82eb-e1a006b083b9&amp;amp;l=8"&gt;http://gallery.live.com/liveItemDetail.aspx?li=d8835a5e-28da-4242-82eb-e1a006b083b9&amp;amp;l=8&lt;/a&gt;    &lt;br /&gt;This little number is my replacement to CodeToHtml plugin I used on VOX. It is a plugin for Windows Live Writer that can paste in things from your Visual Studio clipboard and keep them formatted nicely for your blog. Plus, it is a plugin for Live Writer and not visual studio keeping things on the development end nice and tidy.&lt;/p&gt;  &lt;p&gt;Happy Coding :)&lt;/p&gt;</description>
      <link>http://feedproxy.google.com/~r/Cyberkruz/~3/LFQS8YEgug0/post.aspx</link>
      <author>cyberkruz.nospam@nospam.cyberkruz.com (Cyberkruz)</author>
      <comments>http://cyberkruz.com/post/Blogging-with-BlogEngineNet.aspx#comment</comments>
      <guid isPermaLink="false">http://cyberkruz.com/post.aspx?id=377347c8-ef4b-4640-ba90-f15c06ada210</guid>
      <pubDate>Wed, 25 Feb 2009 03:22:16 -0600</pubDate>
      <category>Visual Studio</category>
      <category>BlogEngine.Net</category>
      <dc:publisher>Cyberkruz</dc:publisher>
      <pingback:server>http://cyberkruz.com/pingback.axd</pingback:server>
      <pingback:target>http://cyberkruz.com/post.aspx?id=377347c8-ef4b-4640-ba90-f15c06ada210</pingback:target>
      <slash:comments>30</slash:comments>
      <trackback:ping>http://cyberkruz.com/trackback.axd?id=377347c8-ef4b-4640-ba90-f15c06ada210</trackback:ping>
      <wfw:comment>http://cyberkruz.com/post/Blogging-with-BlogEngineNet.aspx#comment</wfw:comment>
      <wfw:commentRss>http://cyberkruz.com/syndication.axd?post=377347c8-ef4b-4640-ba90-f15c06ada210</wfw:commentRss>
    <feedburner:origLink>http://cyberkruz.com/post.aspx?id=377347c8-ef4b-4640-ba90-f15c06ada210</feedburner:origLink></item>
  </channel>
</rss>
