<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tech.It.2.Me-&#62;{By.Anton.Perez} &#187; ASP.NET</title>
	<atom:link href="http://antonperez.com/category/aspnet/feed/" rel="self" type="application/rss+xml" />
	<link>http://antonperez.com</link>
	<description>Technical satisfaction guaranteed...</description>
	<lastBuildDate>Fri, 13 Apr 2012 03:32:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Web Service Reference in Visual Studio 2010</title>
		<link>http://antonperez.com/2011/03/04/web-service-reference-in-visual-studio-2010/</link>
		<comments>http://antonperez.com/2011/03/04/web-service-reference-in-visual-studio-2010/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 22:48:08 +0000</pubDate>
		<dc:creator>anton</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[General Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Resource]]></category>

		<guid isPermaLink="false">http://antonperez.com/2011/03/04/web-service-reference-in-visual-studio-2010/</guid>
		<description><![CDATA[If you’ve used Visual Studio 2008 or 2010, you’ll notice that Web Reference is no longer there (like in VS 2005 and previous), instead, you see Service Reference –- actually, it’s STILL there, just hidden! So, what’s the difference?  Well, according to this post: Add Web Reference is the old-style, deprecated ASP.NET webservices (ASMX) technology [...]]]></description>
			<content:encoded><![CDATA[<p>If you’ve used Visual Studio 2008 or 2010, you’ll notice that <strong>Web Reference is</strong> no longer there (like in VS 2005 and previous), instead, you see <strong>Service Reference –</strong>-<strong> </strong>actually, it’s STILL there, just hidden!</p>
<p>So, what’s the difference?  Well, according to this <a href="http://stackoverflow.com/questions/2158106/web-reference-vs-service-reference">post</a>:</p>
<blockquote><p><strong>Add Web Reference</strong> is the old-style, deprecated ASP.NET webservices (ASMX) technology (using only the XmlSerializer for your stuff) &#8211; if you do this, you get an ASMX client for an ASMX web service. You can do this in just about any project (Web App, Web Site, Console App, Winforms &#8211; you name it).</p>
<p><strong>Add Service Reference</strong> is the new way of doing it, adding a WCF service reference, which gives you a much more advanced, much more flexible service model than just plain old ASMX stuff.</p></blockquote>
<p>So, how do you access it?  Simple &#8212; right-click on <strong>Service References </strong>in the Solution Explorer window and…</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://antonperez.com/wp-content/uploads/2011/03/image.png" border="0" alt="image" width="539" height="440" /></p>
<p>Click on “Advanced…”</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://antonperez.com/wp-content/uploads/2011/03/image1.png" border="0" alt="image" width="555" height="521" /></p>
<p>Then click on “Add Web Reference…”</p>
<p><img style="display: inline; border: 0px;" title="image" src="http://antonperez.com/wp-content/uploads/2011/03/image2.png" border="0" alt="image" width="705" height="496" /></p>
<p>Voila!  You can now consume the web service like you did pre-Visual Studio 2008 era.  Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://antonperez.com/2011/03/04/web-service-reference-in-visual-studio-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hash class using System.Security.Cryptography</title>
		<link>http://antonperez.com/2010/07/29/hash-class-from-system-security-cryptography/</link>
		<comments>http://antonperez.com/2010/07/29/hash-class-from-system-security-cryptography/#comments</comments>
		<pubDate>Thu, 29 Jul 2010 23:57:20 +0000</pubDate>
		<dc:creator>anton</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[How-to]]></category>

		<guid isPermaLink="false">http://antonperez.com/2010/07/29/hash-class-from-system-security-cryptography/</guid>
		<description><![CDATA[Adding for archival purposes… using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Security.Cryptography; namespace Classes { public class Hash { public Hash() { } #region Hash Choices /// &#60;summary&#62;The wanted hash function.&#60;/summary&#62; public enum HashType : int { /// &#60;summary&#62;MD5 Hashing&#60;/summary&#62; MD5, /// &#60;summary&#62;SHA1 Hashing&#60;/summary&#62; SHA1, /// &#60;summary&#62;SHA256 Hashing&#60;/summary&#62; SHA256, /// &#60;summary&#62;SHA384 Hashing&#60;/summary&#62; SHA384, [...]]]></description>
			<content:encoded><![CDATA[<p>Adding for archival purposes…</p>
<pre class="code"><span style="color: blue">using </span>System;
<span style="color: blue">using </span>System.Collections.Generic;
<span style="color: blue">using </span>System.Linq;
<span style="color: blue">using </span>System.Web;
<span style="color: blue">using </span>System.Security.Cryptography;

<span style="color: blue">namespace </span>Classes
{
    <span style="color: blue">public class </span><span style="color: #2b91af">Hash
    </span>{
        <span style="color: blue">public </span>Hash()
        { }

        <span style="color: blue">#region </span>Hash Choices
        <span style="color: gray">/// &lt;summary&gt;</span><span style="color: green">The wanted hash function.</span><span style="color: gray">&lt;/summary&gt;
        </span><span style="color: blue">public enum </span><span style="color: #2b91af">HashType </span>: <span style="color: blue">int
        </span>{
            <span style="color: gray">/// &lt;summary&gt;</span><span style="color: green">MD5 Hashing</span><span style="color: gray">&lt;/summary&gt;
            </span>MD5,
            <span style="color: gray">/// &lt;summary&gt;</span><span style="color: green">SHA1 Hashing</span><span style="color: gray">&lt;/summary&gt;
            </span>SHA1,
            <span style="color: gray">/// &lt;summary&gt;</span><span style="color: green">SHA256 Hashing</span><span style="color: gray">&lt;/summary&gt;
            </span>SHA256,
            <span style="color: gray">/// &lt;summary&gt;</span><span style="color: green">SHA384 Hashing</span><span style="color: gray">&lt;/summary&gt;
            </span>SHA384,
            <span style="color: gray">/// &lt;summary&gt;</span><span style="color: green">SHA512 Hashing</span><span style="color: gray">&lt;/summary&gt;
            </span>SHA512
        } <span style="color: green">/* HashType */
        </span><span style="color: blue">#endregion

        #region </span>Public Methods
        <span style="color: gray">/// &lt;summary&gt;</span><span style="color: green">Generates the hash of a text.</span><span style="color: gray">&lt;/summary&gt;
        /// &lt;param name=&quot;strPlain&quot;&gt;</span><span style="color: green">The text of which to generate a hash of.</span><span style="color: gray">&lt;/param&gt;
        /// &lt;param name=&quot;hshType&quot;&gt;</span><span style="color: green">The hash function to use.</span><span style="color: gray">&lt;/param&gt;
        /// &lt;returns&gt;</span><span style="color: green">The hash as a hexadecimal string.</span><span style="color: gray">&lt;/returns&gt;
        </span><span style="color: blue">public static string </span>GetHash(<span style="color: blue">string </span>strPlain, <span style="color: #2b91af">HashType </span>hshType)
        {
            <span style="color: blue">string </span>strRet;
            <span style="color: blue">switch </span>(hshType)
            {
                <span style="color: blue">case </span><span style="color: #2b91af">HashType</span>.MD5:
                    strRet = GetMD5(strPlain);
                    <span style="color: blue">break</span>;
                <span style="color: blue">case </span><span style="color: #2b91af">HashType</span>.SHA1:
                    strRet = GetSHA1(strPlain);
                    <span style="color: blue">break</span>;
                <span style="color: blue">case </span><span style="color: #2b91af">HashType</span>.SHA256:
                    strRet = GetSHA256(strPlain);
                    <span style="color: blue">break</span>;
                <span style="color: blue">case </span><span style="color: #2b91af">HashType</span>.SHA384:
                    strRet = GetSHA384(strPlain);
                    <span style="color: blue">break</span>;
                <span style="color: blue">case </span><span style="color: #2b91af">HashType</span>.SHA512:
                    strRet = GetSHA512(strPlain);
                    <span style="color: blue">break</span>;
                <span style="color: blue">default</span>:
                    strRet = <span style="color: #a31515">&quot;Invalid HashType&quot;</span>;
                    <span style="color: blue">break</span>;
            }
            <span style="color: blue">return </span>strRet;
        } <span style="color: green">/* GetHash */

        </span><span style="color: gray">/// &lt;summary&gt;</span><span style="color: green">Checks a text with a hash.</span><span style="color: gray">&lt;/summary&gt;
        /// &lt;param name=&quot;strOriginal&quot;&gt;</span><span style="color: green">The text to compare the hash against.</span><span style="color: gray">&lt;/param&gt;
        /// &lt;param name=&quot;strHash&quot;&gt;</span><span style="color: green">The hash to compare against.</span><span style="color: gray">&lt;/param&gt;
        /// &lt;param name=&quot;hshType&quot;&gt;</span><span style="color: green">The type of hash.</span><span style="color: gray">&lt;/param&gt;
        /// &lt;returns&gt;</span><span style="color: green">True if the hash validates, false otherwise.</span><span style="color: gray">&lt;/returns&gt;
        </span><span style="color: blue">public static bool </span>CheckHash(<span style="color: blue">string </span>strOriginal, <span style="color: blue">string </span>strHash, <span style="color: #2b91af">HashType </span>hshType)
        {
            <span style="color: blue">string </span>strOrigHash = GetHash(strOriginal, hshType);
            <span style="color: blue">return </span>(strOrigHash == strHash);
        } <span style="color: green">/* CheckHash */
        </span><span style="color: blue">#endregion

        #region </span>Hashers
        <span style="color: blue">private static string </span>GetMD5(<span style="color: blue">string </span>strPlain)
        {
            <span style="color: #2b91af">UnicodeEncoding </span>UE = <span style="color: blue">new </span><span style="color: #2b91af">UnicodeEncoding</span>();
            <span style="color: blue">byte</span>[] HashValue, MessageBytes = UE.GetBytes(strPlain);
            <span style="color: #2b91af">MD5 </span>md5 = <span style="color: blue">new </span><span style="color: #2b91af">MD5CryptoServiceProvider</span>();
            <span style="color: blue">string </span>strHex = <span style="color: #a31515">&quot;&quot;</span>;

            HashValue = md5.ComputeHash(MessageBytes);
            <span style="color: blue">foreach </span>(<span style="color: blue">byte </span>b <span style="color: blue">in </span>HashValue)
            {
                strHex += <span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">&quot;{0:x2}&quot;</span>, b);
            }
            <span style="color: blue">return </span>strHex;
        } <span style="color: green">/* GetMD5 */

        </span><span style="color: blue">private static string </span>GetSHA1(<span style="color: blue">string </span>strPlain)
        {
            <span style="color: #2b91af">UnicodeEncoding </span>UE = <span style="color: blue">new </span><span style="color: #2b91af">UnicodeEncoding</span>();
            <span style="color: blue">byte</span>[] HashValue, MessageBytes = UE.GetBytes(strPlain);
            <span style="color: #2b91af">SHA1Managed </span>SHhash = <span style="color: blue">new </span><span style="color: #2b91af">SHA1Managed</span>();
            <span style="color: blue">string </span>strHex = <span style="color: #a31515">&quot;&quot;</span>;

            HashValue = SHhash.ComputeHash(MessageBytes);
            <span style="color: blue">foreach </span>(<span style="color: blue">byte </span>b <span style="color: blue">in </span>HashValue)
            {
                strHex += <span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">&quot;{0:x2}&quot;</span>, b);
            }
            <span style="color: blue">return </span>strHex;
        } <span style="color: green">/* GetSHA1 */

        </span><span style="color: blue">private static string </span>GetSHA256(<span style="color: blue">string </span>strPlain)
        {
            <span style="color: #2b91af">UnicodeEncoding </span>UE = <span style="color: blue">new </span><span style="color: #2b91af">UnicodeEncoding</span>();
            <span style="color: blue">byte</span>[] HashValue, MessageBytes = UE.GetBytes(strPlain);
            <span style="color: #2b91af">SHA256Managed </span>SHhash = <span style="color: blue">new </span><span style="color: #2b91af">SHA256Managed</span>();
            <span style="color: blue">string </span>strHex = <span style="color: #a31515">&quot;&quot;</span>;

            HashValue = SHhash.ComputeHash(MessageBytes);
            <span style="color: blue">foreach </span>(<span style="color: blue">byte </span>b <span style="color: blue">in </span>HashValue)
            {
                strHex += <span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">&quot;{0:x2}&quot;</span>, b);
            }
            <span style="color: blue">return </span>strHex;
        } <span style="color: green">/* GetSHA256 */

        </span><span style="color: blue">private static string </span>GetSHA384(<span style="color: blue">string </span>strPlain)
        {
            <span style="color: #2b91af">UnicodeEncoding </span>UE = <span style="color: blue">new </span><span style="color: #2b91af">UnicodeEncoding</span>();
            <span style="color: blue">byte</span>[] HashValue, MessageBytes = UE.GetBytes(strPlain);
            <span style="color: #2b91af">SHA384Managed </span>SHhash = <span style="color: blue">new </span><span style="color: #2b91af">SHA384Managed</span>();
            <span style="color: blue">string </span>strHex = <span style="color: #a31515">&quot;&quot;</span>;

            HashValue = SHhash.ComputeHash(MessageBytes);
            <span style="color: blue">foreach </span>(<span style="color: blue">byte </span>b <span style="color: blue">in </span>HashValue)
            {
                strHex += <span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">&quot;{0:x2}&quot;</span>, b);
            }
            <span style="color: blue">return </span>strHex;
        } <span style="color: green">/* GetSHA384 */

        </span><span style="color: blue">private static string </span>GetSHA512(<span style="color: blue">string </span>strPlain)
        {
            <span style="color: #2b91af">UnicodeEncoding </span>UE = <span style="color: blue">new </span><span style="color: #2b91af">UnicodeEncoding</span>();
            <span style="color: blue">byte</span>[] HashValue, MessageBytes = UE.GetBytes(strPlain);
            <span style="color: #2b91af">SHA512Managed </span>SHhash = <span style="color: blue">new </span><span style="color: #2b91af">SHA512Managed</span>();
            <span style="color: blue">string </span>strHex = <span style="color: #a31515">&quot;&quot;</span>;

            HashValue = SHhash.ComputeHash(MessageBytes);
            <span style="color: blue">foreach </span>(<span style="color: blue">byte </span>b <span style="color: blue">in </span>HashValue)
            {
                strHex += <span style="color: #2b91af">String</span>.Format(<span style="color: #a31515">&quot;{0:x2}&quot;</span>, b);
            }
            <span style="color: blue">return </span>strHex;
        } <span style="color: green">/* GetSHA512 */
        </span><span style="color: blue">#endregion
    </span>}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://antonperez.com/2010/07/29/hash-class-from-system-security-cryptography/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fix to &quot;The handle is invalid&quot; error when ASP.NET writes to the Eventlogs</title>
		<link>http://antonperez.com/2010/07/12/fix-to-the-handle-is-invalid-error-when-asp-net-writes-to-the-eventlogs/</link>
		<comments>http://antonperez.com/2010/07/12/fix-to-the-handle-is-invalid-error-when-asp-net-writes-to-the-eventlogs/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 20:50:19 +0000</pubDate>
		<dc:creator>anton</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[General Development]]></category>
		<category><![CDATA[How-to]]></category>

		<guid isPermaLink="false">http://antonperez.com/2010/07/12/fix-to-the-handle-is-invalid-error-when-asp-net-writes-to-the-eventlogs/</guid>
		<description><![CDATA[Have you ever come across the error below with one of your ASP.NET web apps that is trying to write to the Eventlogs? If so, read on&#8230; By default the ASPNET user cannot access the existing eventlogs categories. To resolve this, you must set the permissions in the Eventlog key in the registry: Launch RegEdit. [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever come across the error below with one of your ASP.NET web apps that is trying to write to the Eventlogs? If so, read on&#8230; </p>
<p><a href="http://antonperez.com/wp-content/uploads/2010/07/image1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://antonperez.com/wp-content/uploads/2010/07/image_thumb1.png" width="244" height="117" /></a> </p>
<p>By default the ASPNET user cannot access the existing eventlogs categories. To resolve this, you must set the permissions in the Eventlog key in the registry: </p>
<ol>
<li>Launch RegEdit. </li>
<li>Navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\. </li>
<li>From the menu, select Edit-&gt;Permissions. </li>
<li>Click the Add button and write ASPNET (if ASP.NET is running under a different User ID, use that ID instead). </li>
<li>Click OK. </li>
<li>Select the newly added user from the list (ASP.NET Machine User by default). </li>
<li>Click on Full Control in the Allow column. 8. Click OK.</li>
</ol>
<p>More info <a href="http://support.microsoft.com/kb/842795">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://antonperez.com/2010/07/12/fix-to-the-handle-is-invalid-error-when-asp-net-writes-to-the-eventlogs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Most Common ASP.NET Support issues</title>
		<link>http://antonperez.com/2010/05/24/most-common-asp-net-support-issues/</link>
		<comments>http://antonperez.com/2010/05/24/most-common-asp-net-support-issues/#comments</comments>
		<pubDate>Mon, 24 May 2010 19:53:32 +0000</pubDate>
		<dc:creator>anton</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://antonperez.com/2010/05/24/most-common-asp-net-support-issues/</guid>
		<description><![CDATA[Below is a summary of the “two top things that cause trouble in production ASP.NET web sites,” per Scott Hanselman, which he obtained from deep within Microsoft Developer Support.&#160; Go here to read the complete article. #1 Issue &#8211; Configuration Seems the #1 issue in support for problems with ASP.NET 2.x and 3.x is configuration.&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Below is a summary of the “two top things that cause trouble in production ASP.NET web sites,” per Scott Hanselman, which he obtained from deep within Microsoft Developer Support.&#160; Go <a href="http://www.hanselman.com/blog/MostCommonASPNETSupportIssuesReportingFromDeepInsideMicrosoftDeveloperSupport.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+ScottHanselmanASPNET+(Scott+Hanselman's+Computer+Zen+-+ASPNET)&amp;utm_content=Google+Reader">here</a> to read the complete article.</p>
<p>#<u><strong>1 Issue &#8211; Configuration</strong></u> </p>
<p>Seems the #1 issue in support for problems with ASP.NET 2.x and 3.x is configuration.&#160; </p>
<table border="1" cellspacing="0" cellpadding="7" width="339">
<tbody>
<tr>
<td valign="top" width="146"><strong>Symptoms </strong></td>
<td valign="top" width="191"><strong>Notes</strong> </td>
</tr>
<tr>
<td valign="top" width="146">OOM          <br />Performance           <br />High memory           <br />Hangs           <br />Deadlocks </td>
<td valign="top" width="191">There are more debug=true cases than there should be.</td>
</tr>
</tbody>
</table>
<p>&#160;</p>
<p><strong><u>#2 Issue &#8211; Problems with an External (non-ASP.NET) Root Cause</u></strong></p>
<p>Sometimes when you&#8217;re having trouble with an ASP.NET site, the problem turns out to not be ASP.NET itself. </p>
<table border="1" cellspacing="0" cellpadding="7" width="522">
<tbody>
<tr>
<td valign="top" width="72"><strong>Issue</strong></td>
<td valign="top" width="47"><strong>Product</strong></td>
<td valign="top" width="71"><strong>Description</strong></td>
<td valign="top" width="144"><strong>Symptoms</strong></td>
<td valign="top" width="186"><strong>Notes</strong></td>
</tr>
<tr>
<td valign="top" width="72">Anti-virus software</td>
<td valign="top" width="47">All</td>
<td valign="top" width="71">Anti-virus software is installed onto Servers and causes all kinds of problems. </td>
<td valign="top" width="144">
<ul>
<li>Application restarting </li>
<li>Slow performance </li>
<li>Session variable are null </li>
<li>Cannot install hotfix </li>
<li>Intermittent time outs </li>
<li>High memory </li>
<li>Session lost </li>
<li>IDE Hangs </li>
<li>Deadlocks </li>
</ul>
</td>
<td valign="top" width="186">
<p>This consists of all AV software reported by our customers. All cases do not report the AV software that is being used so the manufacturer is not always known. </p>
<p>KB821438, KB248013, KB295375, KB817442</p>
</td>
</tr>
<tr>
<td valign="top" width="72">3rd party Vendors</td>
<td valign="top" width="47">All</td>
<td valign="top" width="71">This is a category of cases where the failure was due to a 3rd party manufacturer.</td>
<td valign="top" width="144">
<ul>
<li>Crash </li>
<li>100% CPU </li>
<li>High memory </li>
<li>Framework errors </li>
<li>Hang </li>
</ul>
</td>
<td valign="top" width="186">The top culprits are 3rd party database systems, and 3rd party internet access management systems</td>
</tr>
<tr>
<td valign="top" width="72">Microsoft component</td>
<td valign="top" width="47">All</td>
<td valign="top" width="71">Microsoft software</td>
<td valign="top" width="144">
<ul>
<li>Intermittent time outs </li>
<li>High memory </li>
<li>Deadlocks </li>
<li>100% CPU              <br />Crash </li>
</ul>
</td>
<td valign="top" width="186">Design issues that cause performance issues like sprocs, deadlocks, etc. Profile your applications and the database! (Pro tip: select * from authors doesn&#8217;t scale.) Pair up DBAs and programmers and profile from end to end</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://antonperez.com/2010/05/24/most-common-asp-net-support-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Microsoft Press e-book offer</title>
		<link>http://antonperez.com/2007/12/27/free-microsoft-press-e-book-offer/</link>
		<comments>http://antonperez.com/2007/12/27/free-microsoft-press-e-book-offer/#comments</comments>
		<pubDate>Thu, 27 Dec 2007 00:28:37 +0000</pubDate>
		<dc:creator>anton</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Deals]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Resource]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://antonperez.com/2007/12/27/free-microsoft-press-e-book-offer/</guid>
		<description><![CDATA[Just sign up with your Windows Live/Passport account and you can download all three e-books by Microsoft Press.&#160; It includes the following: Enjoy!]]></description>
			<content:encoded><![CDATA[<p>Just sign up with your Windows Live/Passport account and you can <a href="http://csna01.libredigital.com/?urvs5cn3s8">download all three e-books by Microsoft Press</a>.&nbsp; It includes the following: </p>
<p><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="526" alt="image" src="http://antonperez.com/wp-content/uploads/2008/01/image1.png" width="514" border="0"> </p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://antonperez.com/2007/12/27/free-microsoft-press-e-book-offer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

