<?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>Enterprise Software Development</title>
	<atom:link href="http://www.devprise.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devprise.com</link>
	<description>by devprise.com</description>
	<lastBuildDate>Sat, 08 May 2010 20:53:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Configuring VyprVPN on Android 2.1</title>
		<link>http://www.devprise.com/2010/05/08/configuring-vyprvpn-on-android-21/</link>
		<comments>http://www.devprise.com/2010/05/08/configuring-vyprvpn-on-android-21/#comments</comments>
		<pubDate>Sat, 08 May 2010 20:53:18 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Operating System]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.devprise.com/?p=105</guid>
		<description><![CDATA[We all know that NOTHING is private on an Open Wi-Fi network (like at starbucks, book stores, airports &#8230; and yes even hotel rooms) (see this article for more information: What is a Wi-Fi Hotspot and How Do I Use It? and this one How to Stay Safe on Public Wi-Fi) So how do you [...]]]></description>
			<content:encoded><![CDATA[<p>We all know that NOTHING is private on an Open Wi-Fi network (like at starbucks, book stores, airports &#8230; and yes even hotel rooms) (see this article for more information: <a href="http://www.groovypost.com/howto/geek-stuff/what-is-a-wi-fi-hotspot-and-how-do-i-use-it/">What is a Wi-Fi Hotspot and How Do I Use It?</a> and this one <a href="http://www.reuters.com/article/idUS112621650120100413">How to Stay Safe on Public Wi-Fi</a>)</p>
<p>So how do you protect your information? on your shiny new Android phone? &#8230; <a href="http://www.giganews.com/vyprvpn/">Use a service like VyprVPN</a><br />
I did the following steps on my new <a href="http://www.google.com/phone">Nexus One</a> (Android version 2.1)</p>
<h3>How to configure VyprVPN on Android 2.1</h3>
<ul>
<li>go into settings</li>
<li>
Wireless &#038; networks</li>
<li>
VPN settings</li>
<li>
Add VPN</li>
<li>
Add PPTP VPN</li>
<li>
set the VPN name: VyprVPN (or whatever you want doesn&#8217;t make a difference)</li>
<li>
set the VPN server to one of the following: </p>
<ol>
<li>us1.vpn.giganews.com for Los Angeles, CA</li>
<li>us2.vpn.giganews.com for Washington, DC</li>
<li>eu1.vpn.giganews.com for Amsterdam</li>
</ol>
</li>
<li>
YES! Enable encryption (otherwise whats the point)</li>
<li>
do not need any DNS search domains (this is for corporate VPNs)</li>
</ul>
<p>thats IT &#8230; Menu &#8230; Save</p>
<p>to use it remember to:<br />
Type your Giganews Username and Password in their respective fields</p>
<p><a href="http://www.giganews.com/vyprvpn/setup.html?type=windowsxp&#038;x=17&#038;y=12">I used this for the reference</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2010/05/08/configuring-vyprvpn-on-android-21/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Convert from a .NET Int32 to EBCDIC Signed Integer</title>
		<link>http://www.devprise.com/2009/09/11/how-to-convert-from-a-net-int32-to-ebcdic-signed-integer/</link>
		<comments>http://www.devprise.com/2009/09/11/how-to-convert-from-a-net-int32-to-ebcdic-signed-integer/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 14:19:10 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[.NET Programming]]></category>
		<category><![CDATA[ERP]]></category>

		<guid isPermaLink="false">http://www.devprise.com/2009/09/11/how-to-convert-from-a-net-int32-to-ebcdic-signed-integer/</guid>
		<description><![CDATA[Many of us have had to write data exports from our PC based management systems that are in some strange formats. Signed Integers (which smells of COBOL and EBCDIC on a main frame) are no exception. Now I know all you Computer and Mini Computer (mid range) guys out there are like &#8216;strange format&#8217;? YOUR [...]]]></description>
			<content:encoded><![CDATA[<p>Many of us have had to write data exports from our PC based management systems that are in some strange formats. Signed Integers (which smells of COBOL and EBCDIC on a main frame) are no exception.</p>
<p>Now I know all you Computer and Mini Computer (mid range) guys out there are like &#8216;strange format&#8217;? YOUR STRANGE TONY!!! . well maybe <img src='http://www.devprise.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway here is my C# method for converting from System.Int32 to a signed integer string.</p>
<div style="font-family: courier new; background: white; color: black; font-size: 10pt">
<p style="margin: 0px"><span style="color: blue">public</span> <span style="color: blue">static</span> <span style="color: blue">string</span> GetSignedInt(<span style="color: blue">int</span> i)</p>
<p style="margin: 0px">{</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: blue">if</span> (i == 0)</p>
<p style="margin: 0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color: blue">return</span> <span style="color: #a31515">&quot;0&quot;</span>;</p>
<p style="margin: 0px">&#160;</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: blue">char</span>[] c = i.ToString().ToCharArray();</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: #2b91af">Encoder</span> enc = System.Text.<span style="color: #2b91af">Encoding</span>.GetEncoding(37).GetEncoder();</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: blue">byte</span>[] b = <span style="color: blue">new</span> <span style="color: blue">byte</span>[1];</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: blue">int</span> usedChars;</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: blue">int</span> usedBytes;</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: blue">bool</span> completed;</p>
<p style="margin: 0px">&#160;&#160;&#160; enc.Convert(c, c.Length &#8211; 1, 1, b, 0, 1, <span style="color: blue">true</span>, <span style="color: blue">out</span> usedChars, <span style="color: blue">out</span> usedBytes, <span style="color: blue">out</span> completed);</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: blue">if</span> (i &gt; 0)</p>
<p style="margin: 0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160; b[0] = (<span style="color: blue">byte</span>)(b[0] &#8211; 48);</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: blue">else</span></p>
<p style="margin: 0px">&#160;&#160;&#160;&#160;&#160;&#160;&#160; b[0] = (<span style="color: blue">byte</span>)(b[0] &#8211; 32);</p>
<p style="margin: 0px">&#160;&#160;&#160; c[c.Length - 1] = (<span style="color: blue">char</span>)b[0];</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: #2b91af">Decoder</span> dec = System.Text.<span style="color: #2b91af">Encoding</span>.GetEncoding(37).GetDecoder();</p>
<p style="margin: 0px">&#160;&#160;&#160; dec.Convert(b, 0, 1, c, c.Length &#8211; 1, 1, <span style="color: blue">true</span>, <span style="color: blue">out</span> usedBytes, <span style="color: blue">out</span> usedChars, <span style="color: blue">out</span> completed);</p>
<p style="margin: 0px">&#160;&#160;&#160; <span style="color: blue">return</span> <span style="color: blue">new</span> <span style="color: blue">string</span>(c);</p>
<p style="margin: 0px">}</p>
</p></div>
<p>Basically I&#8217;m converting to EBCDIC first, then do the simple math that offsets us into either a positive number or negative number, then convert back to ASCII. It might be expensive to do it this way, but I&#8217;d rather it cost more if there is one less logic tree to debug <img src='http://www.devprise.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2009/09/11/how-to-convert-from-a-net-int32-to-ebcdic-signed-integer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resolution to QUOTED_IDENTIFIER Error when using SqlCacheDependancy’s</title>
		<link>http://www.devprise.com/2009/07/17/resolution-to-quoted_identifier-error-when-using-sqlcachedependancys/</link>
		<comments>http://www.devprise.com/2009/07/17/resolution-to-quoted_identifier-error-when-using-sqlcachedependancys/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 14:51:41 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.devprise.com/2009/07/17/resolution-to-quoted_identifier-error-when-using-sqlcachedependancys/</guid>
		<description><![CDATA[At work we are building a medium sized ASP.NET web application. We are using ASP.NET forms authentication for the membership. I then decided to implement a custom role provider (implementing ProviderBase) based on our [Employee] application table. Implementing this was really easy! Along the way I realized that out database was going to get hammered [...]]]></description>
			<content:encoded><![CDATA[<p>At work we are building a medium sized ASP.NET web application. </p>
<p>We are using ASP.NET forms authentication for the membership. I then decided to implement a custom role provider (implementing <a href="http://msdn.microsoft.com/en-us/library/8fw7xh74.aspx" target="_blank">ProviderBase</a>) based on our [Employee] application table. Implementing this was really easy! Along the way I realized that out database was going to get hammered unless I implemented some kind of caching. Fortunate for me ASP.NET has a great <a href="http://msdn.microsoft.com/en-us/library/ms178597.aspx" target="_blank">application cache</a> framework.</p>
<p>Enter <a href="http://msdn.microsoft.com/en-us/library/system.web.caching.sqlcachedependency.aspx" target="_blank">SqlCacheDependancy</a> : Were running this on SQL 2005, so I set <a href="http://msdn.microsoft.com/en-us/library/ms190249.aspx" target="_blank">ENABLE_BROKER</a> (which enables the <a href="http://msdn.microsoft.com/en-us/library/bb522893.aspx" target="_blank">Service Broker</a>) on my database.</p>
<p>About once or twice a day we started seeing the following error in our <a href="http://msdn.microsoft.com/en-us/library/ms998306.aspx" target="_blank">Health Monitoring</a> logs:</p>
<p>  <code>Process information:<br />
    Process ID: 3804<br />
    Process name: w3wp.exe<br />
    Account name: NT AUTHORITY\NETWORK SERVICE</p>
<p>Exception information:<br />
    Exception type: System.Data.SqlClient.SqlException<br />
    Exception message: UPDATE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or query notifications and/or xml data type methods.</code></p>
<p>Since many of the tables are created by <a href="http://msdn.microsoft.com/en-us/library/x28wfk74.aspx" target="_blank">aspnet_regsql.exe</a> . I didn&#8217;t want to monkey around with the MS tables.</p>
<p>You need to set the QUOTED_IDENTIFIER option at the database level BEFORE you install the aspnet tables.</p>
<pre>ALTER DATABASE [db] SET QUOTED_IDENTIFIER ON WITH NO_WAIT</pre>
<p>note on the NO_WAIT option: (<a href="http://msdn.microsoft.com/en-us/library/aa933082(SQL.80).aspx" target="_blank">from msdn</a>)</p>
<blockquote><p><b>NO_WAIT</b></p>
<p>NO_WAIT checks for connections before attempting to change the database state and causes the ALTER DATABASE statement to fail if certain connections exist. When the transition is to SINGLE_USER mode, the ALTER DATABASE statement fails if any other connections exist. When the transition is to RESTRICTED_USER mode, the ALTER DATABASE statement fails if any unqualified connections exist. </p></blockquote>
<p>&#160;</p>
<p>So here is the order in which I build the database:</p>
<ol>
<li>create database</li>
<li>alter database, set enable_broker</li>
<li>alter database, set QUOTED_IDENTIFIER</li>
<li>install aspnet_regsql.exe tables</li>
<li>install application tables, view, sprocs, etc . . .</li>
</ol>
<p>That is it, I hope this helps you out in your adventures!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2009/07/17/resolution-to-quoted_identifier-error-when-using-sqlcachedependancys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Killall Equivalent in Windows Vista</title>
		<link>http://www.devprise.com/2009/07/07/linux-killall-equivalent-in-windows-vista/</link>
		<comments>http://www.devprise.com/2009/07/07/linux-killall-equivalent-in-windows-vista/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 21:06:15 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Operating System]]></category>

		<guid isPermaLink="false">http://www.devprise.com/2009/07/07/linux-killall-equivalent-in-windows-vista/</guid>
		<description><![CDATA[While working on a midsized ASP.NET project today, I finally got fed up having to kill &#8216;by hand&#8217; (or by clicking) the ASP.NET Development Servers (4 run for my project). I found this Linux Killall equivalent in Windows Vista today: TASKKILL TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid &#124; /IM [...]]]></description>
			<content:encoded><![CDATA[<p>While working on a midsized ASP.NET project today, I finally got fed up having to kill &#8216;by hand&#8217; (or by clicking) the ASP.NET Development Servers (4 run for my project).</p>
<p>I found this Linux Killall equivalent in Windows Vista today:</p>
<h5>TASKKILL</h5>
<pre>
TASKKILL [/S system [/U username [/P [password]]]]
         { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]

Description:
    This tool is used to terminate tasks by process id (PID) or image name.

Parameter List:
    /S    system           Specifies the remote system to connect to.

    /U    [domain\]user    Specifies the user context under which the
                           command should execute.

    /P    [password]       Specifies the password for the given user
                           context. Prompts for input if omitted.

    /FI   filter           Applies a filter to select a set of tasks.
                           Allows &quot;*&quot; to be used. ex. imagename eq acme*

    /PID  processid        Specifies the PID of the process to be terminated.
                           Use TaskList to get the PID.

    /IM   imagename        Specifies the image name of the process
                           to be terminated. Wildcard '*' can be used
                           to specify all tasks or image names.

    /T                     Terminates the specified process and any
                           child processes which were started by it.

    /F                     Specifies to forcefully terminate the process(es).

    /?                     Displays this help message.

Filters:
    Filter Name   Valid Operators           Valid Value(s)
    -----------   ---------------           -------------------------
    STATUS        eq, ne                    RUNNING |
                                            NOT RESPONDING | UNKNOWN
    IMAGENAME     eq, ne                    Image name
    PID           eq, ne, gt, lt, ge, le    PID value
    SESSION       eq, ne, gt, lt, ge, le    Session number.
    CPUTIME       eq, ne, gt, lt, ge, le    CPU time in the format
                                            of hh:mm:ss.
                                            hh - hours,
                                            mm - minutes, ss - seconds
    MEMUSAGE      eq, ne, gt, lt, ge, le    Memory usage in KB
    USERNAME      eq, ne                    User name in [domain\]user
                                            format
    MODULES       eq, ne                    DLL name
    SERVICES      eq, ne                    Service name
    WINDOWTITLE   eq, ne                    Window title

    NOTE
    ----
    1) Wildcard '*' for /IM switch is accepted only when a filter is applied.
    2) Termination of remote processes will always be done forcefully (/F).
    3) &quot;WINDOWTITLE&quot; and &quot;STATUS&quot; filters are not considered when a remote
       machine is specified.

Examples:
    TASKKILL /IM notepad.exe
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM cmd.exe /T
    TASKKILL /F /FI &quot;PID ge 1000&quot; /FI &quot;WINDOWTITLE ne untitle*&quot;
    TASKKILL /F /FI &quot;USERNAME eq NT AUTHORITY\SYSTEM&quot; /IM notepad.exe
    TASKKILL /S system /U domain\username /FI &quot;USERNAME ne NT*&quot; /IM *
    TASKKILL /S system /U username /P password /FI &quot;IMAGENAME eq note*&quot;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2009/07/07/linux-killall-equivalent-in-windows-vista/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a ASP.NET Rounded Panel</title>
		<link>http://www.devprise.com/2009/03/20/creating-a-aspnet-rounded-panel/</link>
		<comments>http://www.devprise.com/2009/03/20/creating-a-aspnet-rounded-panel/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 16:26:33 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[.NET Programming]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.devprise.com/2009/03/20/creating-a-aspnet-rounded-panel/</guid>
		<description><![CDATA[These days using a Rounded Panel on your web site is almost a given. Here is an example to creating a Rounded Panel that inherits from System.Web.Ui.Panel, in a WebControls class library. First thing I did was fire up Jasc Paintshop Pro and created some rounded rectangles (with a 4px radius) &#8230; then I cut [...]]]></description>
			<content:encoded><![CDATA[<p>These days using a Rounded Panel on your web site is almost a given. Here is an example to creating a Rounded Panel that inherits from System.Web.Ui.Panel, in a WebControls class library.</p>
<p>First thing I did was fire up Jasc Paintshop Pro and created some rounded rectangles (with a 4px radius) &#8230; then I cut the corners off, and pasted all of them into a new image (16&#215;4) [its a PNG with a transparent background]</p>
<p>The Image I used for the corners (4corners-c.png) [the image go in your web project]</p>
<p>
<img src="http://www.devprise.com/wp-content/uploads/2009/03/4corners-c.png" alt="4corners-c" title="4corners-c" width="16" height="4" class="alignnone size-full wp-image-93" />
 </p>
<p>The C# code [this goes in your class library]</p>
<div style="overflow: auto; height: 300px">
<pre class="code"><span style="color: blue">using </span>System.Web.UI;
<span style="color: blue">using </span>System.Web.UI.WebControls;

<span style="color: blue">namespace </span>MyWebControls
{
    [<span style="color: #2b91af">ToolboxData</span>(
        <span style="color: #a31515">"&lt;{0}:RoundedPanel runat=\"server\"&gt;&lt;/{0}:RoundedPanel&gt;"</span>)]
    <span style="color: blue">public class </span><span style="color: #2b91af">RoundedPanel </span>: <span style="color: #2b91af">Panel
    </span>{
        <span style="color: blue">public override void </span>RenderBeginTag(<span style="color: #2b91af">HtmlTextWriter </span>writer)
        {
            writer.WriteBeginTag(<span style="color: #a31515">"table"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"RoundedPanel"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"cellpadding"</span>, <span style="color: #a31515">"0"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"cellspacing"</span>, <span style="color: #a31515">"0"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);

            writer.WriteBeginTag(<span style="color: #a31515">"tr"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);

            writer.WriteBeginTag(<span style="color: #a31515">"td"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"tl"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);
            writer.Write(<span style="color: #a31515">"&lt;div style='width:1px;height:1px;overflow:hidden;'&gt;&lt;/div&gt;"</span>);
            writer.WriteEndTag(<span style="color: #a31515">"td"</span>);

            writer.WriteBeginTag(<span style="color: #a31515">"td"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"top"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);
            writer.Write(<span style="color: #a31515">"&lt;div style='width:1px;height:1px;overflow:hidden;'&gt;&lt;/div&gt;"</span>);
            writer.WriteEndTag(<span style="color: #a31515">"td"</span>);

            writer.WriteBeginTag(<span style="color: #a31515">"td"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"tr"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);
            writer.Write(<span style="color: #a31515">"&lt;div style='width:1px;height:1px;overflow:hidden;'&gt;&lt;/div&gt;"</span>);
            writer.WriteEndTag(<span style="color: #a31515">"td"</span>);

            writer.WriteEndTag(<span style="color: #a31515">"tr"</span>);
        }
        <span style="color: blue">public override void </span>RenderEndTag(<span style="color: #2b91af">HtmlTextWriter </span>writer)
        {
            writer.WriteBeginTag(<span style="color: #a31515">"tr"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);

            writer.WriteBeginTag(<span style="color: #a31515">"td"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"bl"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);
            writer.Write(<span style="color: #a31515">"&lt;div style='width:1px;height:1px;overflow:hidden;'&gt;&lt;/div&gt;"</span>);
            writer.WriteEndTag(<span style="color: #a31515">"td"</span>);

            writer.WriteBeginTag(<span style="color: #a31515">"td"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"bottom"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);
            writer.Write(<span style="color: #a31515">"&lt;div style='width:1px;height:1px;overflow:hidden;'&gt;&lt;/div&gt;"</span>);
            writer.WriteEndTag(<span style="color: #a31515">"td"</span>);

            writer.WriteBeginTag(<span style="color: #a31515">"td"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"br"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);
            writer.Write(<span style="color: #a31515">"&lt;div style='width:1px;height:1px;overflow:hidden;'&gt;&lt;/div&gt;"</span>);
            writer.WriteEndTag(<span style="color: #a31515">"td"</span>);

            writer.WriteEndTag(<span style="color: #a31515">"tr"</span>);

            writer.WriteEndTag(<span style="color: #a31515">"table"</span>);
        }
        <span style="color: blue">protected override void </span>RenderContents(<span style="color: #2b91af">HtmlTextWriter </span>writer)
        {
            writer.WriteBeginTag(<span style="color: #a31515">"tr"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);

            writer.WriteBeginTag(<span style="color: #a31515">"td"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"left"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);
            writer.Write(<span style="color: #a31515">"&lt;div style='width:1px;height:1px;overflow:hidden;'&gt;&lt;/div&gt;"</span>);
            writer.WriteEndTag(<span style="color: #a31515">"td"</span>);

            writer.WriteBeginTag(<span style="color: #a31515">"td"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"content"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);
            <span style="color: blue">base</span>.RenderContents(writer);
            writer.WriteEndTag(<span style="color: #a31515">"td"</span>);

            writer.WriteBeginTag(<span style="color: #a31515">"td"</span>);
            writer.WriteAttribute(<span style="color: #a31515">"class"</span>, <span style="color: #a31515">"right"</span>);
            writer.Write(<span style="color: #2b91af">Html32TextWriter</span>.TagRightChar);
            writer.Write(<span style="color: #a31515">"&lt;div style='width:1px;height:1px;overflow:hidden;'&gt;&lt;/div&gt;"</span>);
            writer.WriteEndTag(<span style="color: #a31515">"td"</span>);

            writer.WriteEndTag(<span style="color: #a31515">"tr"</span>);
        }
    }
}
</pre>
</div>
<p>I chose to inherit from Panel, that way I didn&#8217;t have to deal with the complexities of creating a Container Control (a control than can contain other controls), also you can treat my panel as a regular Panel, so your code behind pretty much can stay the same.</p>
<p>You can see that I am using some CSS classes for the styling, you could extend those string literals as public properties if you didn&#8217;t want the class names to be hard coded.</p>
<p>&nbsp;</p>
<p>The CSS [this goes in your web project]</p>
<div style="overflow: auto; height: 300px">
<pre class="code"><span style="color: #a31515">.RoundedPanel
</span>{
}
<span style="color: #a31515">.RoundedPanel .tl
</span>{
    <span style="color: red">background-image</span>: <span style="color: blue">url("images/4corners-c.png")</span>;
    <span style="color: red">background-repeat</span>: <span style="color: blue">no-repeat</span>;
    <span style="color: red">width</span>:<span style="color: blue">4px</span>;
    <span style="color: red">height</span>:<span style="color: blue">4px</span>;
}
<span style="color: #a31515">.RoundedPanel .top
</span>{
    <span style="color: red">border-top</span>: <span style="color: blue">1px solid #c0c0c0</span>;
    <span style="color: red">height</span>:<span style="color: blue">3px</span>;
}
<span style="color: #a31515">.RoundedPanel .tr
</span>{
    <span style="color: red">background-position</span>: <span style="color: blue">-3px 0px</span>;
    <span style="color: red">background-image</span>: <span style="color: blue">url("images/4corners-c.png")</span>;
    <span style="color: red">background-repeat</span>: <span style="color: blue">no-repeat</span>;
    <span style="color: red">width</span>:<span style="color: blue">4px</span>;
    <span style="color: red">height</span>:<span style="color: blue">4px</span>;
}
<span style="color: #a31515">.RoundedPanel .left
</span>{
    <span style="color: red">border-left</span>: <span style="color: blue">1px solid #c0c0c0</span>;
    <span style="color: red">width</span>:<span style="color: blue">4px</span>;
}
<span style="color: #a31515">.RoundedPanel .content
</span>{
}
<span style="color: #a31515">.RoundedPanel .right
</span>{
    <span style="color: red">border-right</span>: <span style="color: blue">1px solid #c0c0c0</span>;
    <span style="color: red">width</span>:<span style="color: blue">4px</span>;
}
<span style="color: #a31515">.RoundedPanel .bl
</span>{
    <span style="color: red">background-position</span>: <span style="color: blue">-8px 0px</span>;
    <span style="color: red">background-image</span>: <span style="color: blue">url("images/4corners-c.png")</span>;
    <span style="color: red">background-repeat</span>: <span style="color: blue">no-repeat</span>;
    <span style="color: red">width</span>:<span style="color: blue">4px</span>;
    <span style="color: red">height</span>:<span style="color: blue">4px</span>;
}
<span style="color: #a31515">.RoundedPanel .bottom
</span>{
    <span style="color: red">border-bottom</span>: <span style="color: blue">1px solid #c0c0c0</span>;
    <span style="color: red">height</span>:<span style="color: blue">3px</span>;
}
<span style="color: #a31515">.RoundedPanel .br
</span>{
    <span style="color: red">background-position</span>: <span style="color: blue">-11px 0px</span>;
    <span style="color: red">background-image</span>: <span style="color: blue">url("images/4corners-c.png")</span>;
    <span style="color: red">background-repeat</span>: <span style="color: blue">no-repeat</span>;
    <span style="color: red">width</span>:<span style="color: blue">4px</span>;
    <span style="color: red">height</span>:<span style="color: blue">4px</span>;
}
</pre>
</div>
<p>&nbsp;</p>
<p>Also &#8230; if you wanted to you could embed your images and CSS in your WebControl library &#8230; but I will leave that to another post. (hint search for Page.ClientScript.GetWebResourceUrl())</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2009/03/20/creating-a-aspnet-rounded-panel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ADO.NET Entity Framework</title>
		<link>http://www.devprise.com/2009/03/03/adonet-entity-framework/</link>
		<comments>http://www.devprise.com/2009/03/03/adonet-entity-framework/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 16:48:40 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[.NET Programming]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Databases]]></category>

		<guid isPermaLink="false">http://www.devprise.com/?p=71</guid>
		<description><![CDATA[I just started reading Programming Entity Framework&#160; The subjects include:&#160; Data Binding with WPF, LINQ to Entities Queries, Utilizing the ASP.NET EntityDataSource Control, Using Entity Objects with Web and WCF Services, Using the Entity Framework with n-Tier Windows Forms or WPF Applications, a bit on Data Transfer Objects (DTO), Customizing Entities, Using the Entity Framework [...]]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td valign="top"><iframe style="width: 120px; height: 240px" marginwidth="0" marginheight="0" src="http://rcm.amazon.com/e/cm?t=enterprises0e-20&amp;o=1&amp;p=8&amp;l=as1&amp;asins=059652028X&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" scrolling="no"></iframe></td>
<td valign="top">
<p>I just started reading <a type="amzn" asin="059652028X">Programming Entity Framework</a>&#160; </p>
<p>The subjects include:&#160; Data Binding with WPF, LINQ to Entities Queries, Utilizing the ASP.NET EntityDataSource Control, Using Entity Objects with Web and WCF Services, Using the Entity Framework with n-Tier Windows Forms or WPF Applications, a bit on Data Transfer Objects (DTO), Customizing Entities, Using the Entity Framework with n-Tier ASP.NET Applications, Using Stored Procedures with the EDM, Handling Entity Framework Exceptions, Performance, Security, Multithreaded Applications, Data Binding with Windows Forms . there are many other topics discussed </p>
<p>So far I love the layout of the book. I also looked at <a type="amzn" asin="047018261X">Professional ADO.NET 3.5 with LINQ and the Entity Framework (Wrox Programmer to Programmer) (Paperback)</a> &#8230; but I decided to go with this newer <a type="amzn" asin="059652028X">Programming Entity Framework</a> book &#8230;</p>
</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2009/03/03/adonet-entity-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Burn ISO Images on Windows Server 2008</title>
		<link>http://www.devprise.com/2008/09/25/how-to-burn-iso-images-on-windows-server-2008/</link>
		<comments>http://www.devprise.com/2008/09/25/how-to-burn-iso-images-on-windows-server-2008/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 18:03:24 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.devprise.com/2008/09/25/how-to-burn-iso-images-on-windows-server-2008/</guid>
		<description><![CDATA[You can use the CDBurn.exe tool from Microsoft. It is included in the Windows Server 2003 Resource Tools. You can even use this tool to erase CDRW discs. Command Line Syntax: Usage: cdburn &#60;drive&#62; -erase [image [options]]&#160; cdburn &#60;drive&#62; image [options] Options: &#160;&#160;&#160; -erase&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Erases the disk before burning (valid for R/W only) &#160;&#160;&#160; -sao&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>You can use the CDBurn.exe tool from Microsoft. It is included in the <a href="http://www.petri.co.il/download_windows_2003_reskit_tools.htm">Windows Server 2003 Resource Tools</a>.</p>
<p>You can even use this tool to erase CDRW discs.</p>
<p>Command Line Syntax:</p>
<p>Usage: </p>
<div class="box" style="font-size: 8pt; font-family: courier"><strong>cdburn</strong> &lt;drive&gt; <strong>-erase</strong> [image [options]]&#160; <br /><strong>cdburn</strong> &lt;drive&gt; <strong>image</strong> [options]     <br />Options:     <br />&#160;&#160;&#160; -erase&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Erases the disk before burning (valid for R/W only)     <br />&#160;&#160;&#160; -sao&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Writes the image out in &quot;session at once&quot;, or cue&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; sheet, mode (default is &quot;track at once&quot;)     <br />&#160;&#160;&#160; -speed&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Speed of burn, or &#8216;max&#8217; for maximum speed     <br />&#160;&#160;&#160; -imagehaspostgap&#160; Use if your image already contains a 150 sector postgap     </p>
<p>The [image] must be provided unless the -erase flag is set.     <br />If both an image and -erase are provided, the media will be     <br />erased prior to burning the image to the disc.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2008/09/25/how-to-burn-iso-images-on-windows-server-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ, SqlMetal, Nesting The Generated Code File</title>
		<link>http://www.devprise.com/2008/07/07/linq-sqlmetal-nesting-the-generated-code-file/</link>
		<comments>http://www.devprise.com/2008/07/07/linq-sqlmetal-nesting-the-generated-code-file/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 03:26:54 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[.NET Programming]]></category>
		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">http://www.devprise.com/2008/07/07/linq-sqlmetal-nesting-the-generated-code-file/</guid>
		<description><![CDATA[LINQ is really cool, SqlMetal has been my code generator of choice (for a book on LINQ, SqlMetal and all of the cool new features)&#8230; I like to keep my class file names the same as the class contained in the file. Since SqlMetal generates partial classes, and we don&#8217;t want to modify the generated [...]]]></description>
			<content:encoded><![CDATA[<p>LINQ is really cool, SqlMetal has been my code generator of choice (<a type="amzn" asin="1590598849">for a book on LINQ, SqlMetal and all of the cool new features</a>)&#8230; I like to keep my class file names the same as the class contained in the file. Since SqlMetal generates partial classes, and we don&#8217;t want to modify the generated file directly, well now we are stuck creating a new file name that doesn&#8217;t match our naming convention.&nbsp; (note: you could stick the generated code in a generated directory or something, which is what I had done in the past&#8230; UNTIL NOW <img src='http://www.devprise.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>Enter the DependentUpon element tag in your project file. Real quick open a Windows Forms, or Web project. Notice how the webforms or windows forms classes have a *.designer.cs code file nested underneath the actual form. Not only does it help us keep the files grouped together, but it allows us to keep naming conventions and keeps the project solution clean&#8230; Now that you have your project open, unload it, then Edit the project file directly (so you can see the XML)&#8230; Scroll down to the Compile items collection&#8230; Ah Ha! do you see that? Its the DependentUpon element nested underneath the *.designer.cs files.</p>
<p>You can use this for your Linq DataProvider class library projects. Here&#8217;s the system that I use.</p>
<h2>A Regenerate batch file (DbGen.cmd)</h2>
<div class="box">sqlmetal &#x200b;/server:.\sqlexpress &#x200b;/database:website &#x200b;/code:website.sqlmetal.cs &#x200b;/namespace:Devprise.dataProvider &#x200b;/views
</div>
<h2>Modify your csproj file to use the DependentUpon directive on your generated code file.</h2>
<div class="box">&nbsp; &lt;ItemGroup&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Compile Include=&#8221;website.cs&#8221; /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;Compile Include=&#8221;website.sqlmetal.cs&#8221;&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DependentUpon&gt;website.cs&lt;/DependentUpon&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/Compile&gt;</div>
<p>All of your custom code goes into the base named code file (website.cs in my example)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2008/07/07/linq-sqlmetal-nesting-the-generated-code-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Install Windows Live Writer on Windows Server 2008</title>
		<link>http://www.devprise.com/2008/06/18/howto-install-windows-live-writer-on-windows-server-2008/</link>
		<comments>http://www.devprise.com/2008/06/18/howto-install-windows-live-writer-on-windows-server-2008/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 14:40:32 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.devprise.com/2008/06/18/howto-install-windows-live-writer-on-windows-server-2008/</guid>
		<description><![CDATA[So this is my first post using Windows Live Writer from a Windows Server 2008 workstation. I was not able to install Windows Live Writer 2008 on my server workstation, it would give the error: Sorry, Windows Live programs cannot be installed on Windows Server, Windows XP Professional x64 Edition, or Windows operating systems earlier [...]]]></description>
			<content:encoded><![CDATA[<p>So this is my first post using Windows Live Writer from a <a href="http://weblogs.asp.net/israelio/archive/2008/02/21/windows-server-2008-as-workstation.aspx">Windows Server 2008 workstation</a>.</p>
<p>I was not able to install Windows Live Writer 2008 on my server workstation, it would give the error:</p>
<p><font color="#ff0000">Sorry, Windows Live programs cannot be installed on Windows Server, Windows XP Professional x64 Edition, or Windows operating systems earlier than Windows XP Service Pack 2.</font></p>
<p>BUT you <strong>CAN</strong> install the <a href="http://windowslivewriter.spaces.live.com/blog/cns!D85741BB5E0BE8AA!1508.entry">Technical Preview version</a> on Windows Server 2008 !!!</p>
<p>Need a good book on Windows Server 2008, see <a type="amzn" asin="0672329301">Windows Server 2008 Unleashed</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2008/06/18/howto-install-windows-live-writer-on-windows-server-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Copy / Clone a Hyper-V Virtual Machine</title>
		<link>http://www.devprise.com/2008/06/17/how-to-copy-clone-a-hyper-v-virtual-machine/</link>
		<comments>http://www.devprise.com/2008/06/17/how-to-copy-clone-a-hyper-v-virtual-machine/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 15:24:03 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.devprise.com/?p=60</guid>
		<description><![CDATA[You can create a copy or clone of an existing virtual machine (VM) quite easily in Hyper-V &#8230; The process is a little different than you might think though. The basic procedure is to export and import a virtual machine. I use my VM&#8217;s primarily for separate development sandboxes and test machines, so here&#8217;s the [...]]]></description>
			<content:encoded><![CDATA[<p>You can create a copy or clone of an existing virtual machine (VM) quite easily in Hyper-V &#8230; The process is a little different than you might think though. The basic procedure is to export and import a virtual machine. I use my VM&#8217;s primarily for separate development sandboxes and test machines, so here&#8217;s the steps I used:</p>
<ol>
<li>Sysprep the guest VM (for windows machines)</li>
<li>Shut down the guest</li>
<li>Rename the VM to &#8220;Dev Ws &#8211; Base&#8221; (in Hyper-V Manager)</li>
<li>Hyper-V Export Virtual Machine</li>
<li>Rename the original VM back to the original name</li>
<li>Make a copy of the exported directory in windows explorer (optional if you want more than one copy) (i used robocopy from an administrator command prompt [robocopy /s "Dev Ws - Base" "Dev Ws - SplendidCRM"])</li>
<li>Import the one of the directories</li>
<li>Rename the new VM to your new VM name, in my case it was &#8220;Dev Ws &#8211; DotNetNuke&#8221;</li>
</ol>
<p>Now you should have multiple copies of your original VM. <a type="amzn" asin="0470174595">Check out Microsoft Windows Server 2008: Implementation and Administration</a> for more information on Hyper-V!</p>
<p>Oh and if you want to move the exported folder for any reason before you re-import it, you might need to stop the Hyper-V service, other wise you may get a &#8220;destination folder access denied&#8221; error box.</p>
<p>If you want a scripted solution to this (like to make lets say 10 machines) <a href="http://blogs.technet.com/virtualization/archive/2008/06/07/hyper-v-wmi-cloning-virtual-machines-using-import-export.aspx">check out this post</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.devprise.com/2008/06/17/how-to-copy-clone-a-hyper-v-virtual-machine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
