<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11050255</id><updated>2011-11-27T23:45:11.740Z</updated><title type='text'>Etienne's Tech Blog</title><subtitle type='html'>This is my professional blog containing thoughts on Web Development technologies like ASP.NET 2.0, Microsoft AJAX Extensions 1.0, ATLAS, VB.NET, SharePoint, Windows Server, SQL Server 2005...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11050255.post-4944541579767545935</id><published>2009-12-10T13:40:00.002Z</published><updated>2009-12-10T13:58:25.324Z</updated><title type='text'>SharePoint A process serving application pool  terminated unexpectedly. The process id was ''. The process exit code was '0xffffff</title><content type='html'>Oh joys of working in IT...&lt;br /&gt;&lt;br /&gt;Some days are &lt;span style="font-weight: bold;"&gt;really&lt;/span&gt; bl**dy awful.&lt;br /&gt;&lt;br /&gt;This morning my MOSS 2007 staging farm (thank god it was not the live one) was down, not able to go to ANY of the SharePoint sites.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Symptoms:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1. Getting the cryptic "&lt;span style="font-weight: bold;"&gt;Service Unavailable&lt;/span&gt;" in IE when browsing to the SharePoint site (including the Central Admin)&lt;br /&gt;2. Checking out in IIS the &lt;span style="font-weight: bold;"&gt;SP App Pools have crashed&lt;/span&gt;, tried to start them again, IIS reset but whenever I browse to the Central Admin again, the app pool crashes again.&lt;br /&gt;3. The following events are in the &lt;span style="font-weight: bold;"&gt;System &lt;/span&gt;Logs&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A process serving application pool &lt;apppool&gt; terminated unexpectedly. The process id was '&lt;someid&gt;'. &lt;span style="font-weight: bold;"&gt;The process exit code was '0xffffff&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What's that? Never seen it before!?&lt;br /&gt;&lt;br /&gt;And it only appeared at 3am this morning... hang on a minute... 3am?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WINDOWS AUTOMATIC "KILLER" UPDATES&lt;/span&gt;!!!&lt;br /&gt;&lt;br /&gt;Nightmare...&lt;br /&gt;&lt;br /&gt;After checking the almighty logs I worked out what KB was installed:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Restart Required: To complete the installation of the following updates, the computer will be restarted within 15 minutes: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Security Update for Windows Server 2003 (KB974318)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Windows Malicious Software Removal Tool - December 2009 (KB890830)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Security Update for Windows Server 2003 (KB973904)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Update for Windows Server 2003 (KB971737)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Update for Windows Server 2003 (&lt;span style="font-weight: bold;"&gt;KB973917&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Security Update for Windows Server 2003 (KB974392)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- Cumulative Security Update for Internet Explorer 8 for Windows Server 2003 (KB976325)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Doing a quick search in Google harvested the following:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gavin.mclelland.ca/2009/12/09/iis-service-unavailable-aka-windows-security-update-kills-application-pool/"&gt;http://gavin.mclelland.ca/2009/12/09/iis-service-unavailable-aka-windows-security-update-kills-application-pool/&lt;/a&gt;&lt;br /&gt;and&lt;br /&gt;&lt;a href="http://thecrmgrid.wordpress.com/2009/12/09/windows-update-killed-my-app-pool/"&gt;http://thecrmgrid.wordpress.com/2009/12/09/windows-update-killed-my-app-pool/&lt;/a&gt;&lt;br /&gt;and&lt;br /&gt;&lt;a href="http://blogs.msdn.com/jaskis/archive/2009/12/09/after-installing-kb-973917-the-iis-6-0-application-pools-cannot-start-up.aspx"&gt;http://blogs.msdn.com/jaskis/archive/2009/12/09/after-installing-kb-973917-the-iis-6-0-application-pools-cannot-start-up.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(THANK YOU GOOGLE, THANK YOU GOOGLE, THANK YOU GOOGLE...)&lt;br /&gt;&lt;br /&gt;Anyway, tried what was said there and installed Windows Server 2003 SP2 again.&lt;br /&gt;That solved the crashing app pool problems but created a new one:&lt;br /&gt;&lt;br /&gt;1. Now getting an error HTTP 403 when browsing any SharePoint site (including Central Admin)&lt;br /&gt;2. In the IIS logs I get&lt;br /&gt;&lt;br /&gt;2009-12-10 12:27:31 W3SVC1611466368 10.4.4.39 GET / - 1000 DOMAIN\username 10.4.4.39 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.2;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) &lt;span style="font-weight: bold;"&gt;403 14 5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Did some research and that came up&lt;br /&gt;(THANK YOU GOOGLE, THANK YOU GOOGLE, THANK YOU GOOGLE...)&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.hensongroup.com/blogs/archive/2009/05/11/moss-2007-403-forbidden-error-after-net-framework-updates-fail-to-install.aspx"&gt;https://www.hensongroup.com/blogs/archive/2009/05/11/moss-2007-403-forbidden-error-after-net-framework-updates-fail-to-install.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That was my problem...&lt;br /&gt;&lt;br /&gt;Central Admin is back.&lt;br /&gt;&lt;br /&gt;Will try later to re-install the faulty &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;KB973917 &lt;/span&gt;&lt;/span&gt;just for fun and because I really have time to waste in my day like Microsoft seems to think!!!.... NOT&lt;br /&gt;&lt;br /&gt;Thank you very much Microsoft Automatic Updates for wrecking my day once more!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-4944541579767545935?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/4944541579767545935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=4944541579767545935' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/4944541579767545935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/4944541579767545935'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2009/12/sharepoint-process-serving-application.html' title='SharePoint A process serving application pool &lt;AppPool&gt; terminated unexpectedly. The process id was &apos;&lt;SomeID&gt;&apos;. The process exit code was &apos;0xffffff'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-1942999127976176874</id><published>2009-09-14T12:38:00.005+01:00</published><updated>2009-09-14T13:04:07.214+01:00</updated><title type='text'>SharePoint Designer is POO!!! or sh*t, awful, crap, pants, annoying, badly-designed... basically a developer's nightmare!</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;It's been a while and I really feel like I have to shout about something today!&lt;br /&gt;&lt;br /&gt;Hello my name is Etienne, I'm a hardcore SharePoint developer and have been for now 8 years. Just to say that I am starting to know my way around MOSS...&lt;br /&gt;&lt;br /&gt;One thing that hasn't changed though is &lt;span style="font-weight: bold;"&gt;SharePoint Designer&lt;/span&gt; (aka SPD), the "tool" that is supposed to help you do stuff in MOSS 2007 (it was also called SharePoint Designer in 2003 and it's ancestor was FrontPage... have you ever seen/used FrontPage to do web development? If yes you will definitely know what I mean by "POO")&lt;br /&gt;&lt;br /&gt;SharePoint Designer is an &lt;span style="font-weight: bold;"&gt;absolute pile of sh*t&lt;/span&gt; in terms of interface and SOOOOO annoying to use because it:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Has &lt;span style="font-weight: bold;"&gt;very poor interface &lt;/span&gt;goodies unlike his big brother Visual Studio (which is awesome BTW as every .NET/SilverLight/SQL developer knows)&lt;/li&gt;&lt;li&gt;Times out all the time (when it works)&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Tries to mess with your code and really "uglyfies" it&lt;/li&gt;&lt;li&gt; Gives you errors constently for no reason&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Can &lt;span style="font-weight: bold;"&gt;REALLY &lt;/span&gt;break your SharePoint Site if you haven't been properly trained&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Extremely unintuitive whether you're a Monkey or a Genius&lt;/li&gt;&lt;li&gt;... and so much more I'm afraid!&lt;/li&gt;&lt;/ol&gt;The real problem is that without SharePoint Designer you are pretty much stuffed because this is the only app that will allow you to perform certain things in SharePoint such as &lt;span style="font-weight: bold;"&gt;creating DataViews &lt;/span&gt;or &lt;span style="font-weight: bold;"&gt;customising the look &amp;amp; feel &lt;/span&gt;of your site...&lt;br /&gt;&lt;br /&gt;Emile summarises it perfectly (I love his article):&lt;br /&gt;&lt;a href="http://agiledirect.wordpress.com/2007/11/10/developer-awareness-and-the-bad-reputation-of-sharepoint-designer-a-post-to-all-developers/"&gt;http://agiledirect.wordpress.com/2007/11/10/developer-awareness-and-the-bad-reputation-of-sharepoint-designer-a-post-to-all-developers/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;However, let me just say this to &lt;span style="font-weight: bold;"&gt;Microsoft&lt;/span&gt;, please please &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;PLEASE&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;!&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Drop this product and integrate ALL SharePoint development to the Visual Studio Interface!&lt;/span&gt;&lt;br /&gt;Is that the plan for SharePoint 2010?&lt;br /&gt;I really hope so cause I can't imagine myself having to deal with this "pile-of-smelly-stuff" ever again:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_QOur9UN0zUc/Sq4vEkcXtDI/AAAAAAAAADs/5uAEZXF12Ok/s1600-h/SPD_Poo.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 301px;" src="http://2.bp.blogspot.com/_QOur9UN0zUc/Sq4vEkcXtDI/AAAAAAAAADs/5uAEZXF12Ok/s400/SPD_Poo.jpg" alt="" id="BLOGGER_PHOTO_ID_5381290360302974002" border="0" /&gt;&lt;/a&gt;Thanks for listening &amp;amp; please leave comments if you agree with this post!&lt;br /&gt;&lt;br /&gt;I feel alone today...&lt;br /&gt;&lt;br /&gt;Etienne&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-1942999127976176874?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/1942999127976176874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=1942999127976176874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/1942999127976176874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/1942999127976176874'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2009/09/sharepoint-designer-is-poo-or-sht-awful.html' title='SharePoint Designer is POO!!! or sh*t, awful, crap, pants, annoying, badly-designed... basically a developer&apos;s nightmare!'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QOur9UN0zUc/Sq4vEkcXtDI/AAAAAAAAADs/5uAEZXF12Ok/s72-c/SPD_Poo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-2919852284814160929</id><published>2009-03-18T10:42:00.006Z</published><updated>2009-03-18T13:20:16.898Z</updated><title type='text'>One for the SharePoint 2007 community... Please welcome the "SharePoint Farm Browser" (Source Code available)!!!</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_QOur9UN0zUc/ScD0vFIZkZI/AAAAAAAAACg/0nEClmZ-qo4/s1600-h/SharePointFarmBrowser1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5314516649965621650" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 324px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_QOur9UN0zUc/ScD0vFIZkZI/AAAAAAAAACg/0nEClmZ-qo4/s400/SharePointFarmBrowser1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;Dear fellow SharePoint developers and administrators!&lt;br /&gt;&lt;br /&gt;I am pleased to announce the "SharePoint Farm Browser for MOSS 2007" (you're going to love it) :)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;I have been working with SharePoint for nearly 10 years, I actually started with the 2001 version back in the days...&lt;br /&gt;&lt;br /&gt;Since then all my jobs have been around SharePoint and there is a tool that is SOOOOO needed in the MOSS world: &lt;strong&gt;an easy, quick and efficient way to view the ENTIRE SharePoint farm structure and some high level usage data&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Until today, only certain 3rd party tools could do that such as &lt;a href="http://www.avepoint.co.uk/products/sharepoint-administration/sharepoint-discovery#"&gt;AvePoint Discovery tool&lt;/a&gt; and also credits to a few SharePoint bloggers for some code snippets that loop through Web Applications, Site Collections, Webs and SubWebs... but nothing was really doing the job properly FOR FREE!&lt;br /&gt;&lt;br /&gt;The SharePoint Farm Browser is trying to tie everything together in one very simple "one form" win app.&lt;br /&gt;&lt;br /&gt;The beauty of it is that it is a multi-threaded application and allows a SharePoint farm admin to view where the UI is at as it is traversing the SharePoint structure.&lt;br /&gt;&lt;br /&gt;When the tool is finished you can produce 2 types of reports.&lt;br /&gt;&lt;br /&gt;1. An &lt;strong&gt;XML file &lt;/strong&gt;easily opened in IE and showing the farm structure&lt;br /&gt;2. A &lt;strong&gt;CSV file &lt;/strong&gt;showing the complete structure along with some high level usage data&lt;br /&gt;&lt;br /&gt;Here is the code and I will put it on CodePlex when their servers are back up!&lt;br /&gt;&lt;br /&gt;&lt;iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-63b6af0ebc734f5c.skydrive.live.com/embedrowdetail.aspx/Public/SharePointFarmBrowser.zip" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps and saves some of you SharePoint workers some time and money!&lt;br /&gt;&lt;br /&gt;Maybe that will help me become an MVP too... ;)&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Etienne&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-2919852284814160929?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/2919852284814160929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=2919852284814160929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/2919852284814160929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/2919852284814160929'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2009/03/one-for-sharepoint-2007-community.html' title='One for the SharePoint 2007 community... Please welcome the &quot;SharePoint Farm Browser&quot; (Source Code available)!!!'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_QOur9UN0zUc/ScD0vFIZkZI/AAAAAAAAACg/0nEClmZ-qo4/s72-c/SharePointFarmBrowser1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-4019610641780156965</id><published>2008-11-07T10:23:00.005Z</published><updated>2009-01-27T14:22:04.519Z</updated><title type='text'>How to view the raw XML spat out by SharePoint Designer datasources</title><content type='html'>Hi SharePoint Guys &amp;amp; Girls!&lt;br /&gt;&lt;br /&gt;Just a quickie, cause I'm always struggling to find that information.&lt;br /&gt;&lt;br /&gt;Here is a very simple XSLT to view the raw XML spat out by SharePoint Designer's various SPDatasource objects:&lt;br /&gt;&lt;br /&gt;I always forget it and spend hours looking for it on the web...&lt;br /&gt;&lt;br /&gt;The link from the Microsoft website is here:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms546985.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ms546985.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;xsl:output method=&amp;quot;xml&amp;quot; version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;xsl:copy-of select=&amp;quot;*&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Etienne&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-4019610641780156965?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/4019610641780156965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=4019610641780156965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/4019610641780156965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/4019610641780156965'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2008/11/how-to-view-raw-xml-spat-out-by.html' title='How to view the raw XML spat out by SharePoint Designer datasources'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-7564852162522686127</id><published>2008-10-16T09:30:00.013+01:00</published><updated>2008-11-07T10:22:34.067Z</updated><title type='text'>Organise &amp; Manage Multiple Remote Desktop Connections Easily with Windows Out-Of-The-Box!</title><content type='html'>Today is one of these days where I feel proud of myself!&lt;br /&gt;I know there is not much to be proud of but I've saved myself so much time in the long run with this...&lt;br /&gt;&lt;br /&gt;Look at that screenshot mister server man :)&lt;br /&gt;I only need to double click on any of there entries to connect to the server(s) I like.&lt;br /&gt;No need for a crappy 3rd party product, just simple out of the box Windows stuff!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_QOur9UN0zUc/SPcORPNg_CI/AAAAAAAAABM/P_dQNeV0yIk/s1600-h/RDP+Screenshot+1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5257686779282127906" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_QOur9UN0zUc/SPcORPNg_CI/AAAAAAAAABM/P_dQNeV0yIk/s320/RDP+Screenshot+1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You know when you have been in need of a life/time saving tool for ages without really finding exactly what you wanted and one day you come up with this brilliant, easy to implement and shining-by-its-simplicity idea all by yourself... well today is one of these days for me.&lt;br /&gt;&lt;br /&gt;And I'm so excited about it I need to tell you all about it and finally end this very long period of non activity on this "dusty" blog.&lt;br /&gt;&lt;br /&gt;How many of you have to manage more than let's say &lt;strong&gt;5 servers&lt;/strong&gt; from your Windows client?&lt;br /&gt;If you're a network admin or a SharePoint guy just like me, you may even have around &lt;strong&gt;20 servers &lt;/strong&gt;to potentially connect to on a daily basis.&lt;br /&gt;&lt;br /&gt;Also I bet quite a few admins out there are using Windows Remote Destop Connections (RDP) to connect to these servers?&lt;br /&gt;&lt;br /&gt;Now, within that group of people how many of you have saved the RDP connection settings along with connection credentials and created a shortcut on their desktop to be able to instantly connect to the relevant machine by simply double clicking on the icon? (surely I'm not the only one here...)&lt;br /&gt;&lt;br /&gt;If you're like me and you are really lazy that's exactly what you've done so far cause if you're like me and you've got 20 servers that you need to connect to on a daily basis, you don't want to have to type in your password and login details every single time.&lt;br /&gt;&lt;br /&gt;Now, 20 desktop shortcuts can take a lot of room on your desktop:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5257687305092495522" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_QOur9UN0zUc/SPcOv2AeeKI/AAAAAAAAABU/PKvJ_JdMoVs/s320/RDP+Screenshot+2.jpg" border="0" /&gt;&lt;br /&gt;&lt;div&gt;I have been looking for a neat way to organise all these shorcuts for ages and came across a few badly implemented solutions until I re-discovered this fantastic Windows out-of-the-box function that &lt;strong&gt;"New Folder"&lt;/strong&gt; is :)&lt;br /&gt;&lt;br /&gt;For all the admins out there, please try this out:&lt;br /&gt;&lt;br /&gt;1. Create a new folder on your desktop called "RDP"&lt;br /&gt;2. Open Windows Remote Desktop Connection &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5257687875360217058" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_QOur9UN0zUc/SPcPRCa5V-I/AAAAAAAAABc/KyIQFv1L7hk/s320/RDP+Screenshot+5.jpg" border="0" /&gt;&lt;br /&gt;&lt;div&gt;3. Type in the name of the server you wish to connect to and select all your favourite RDP options&lt;br /&gt;4. Don't forget to click the "Allow me to save credentials" box if you're a lazy b**** like me.&lt;br /&gt;5. Hit "Save As..." and save these RDP connection settings to the folder created in step 1&lt;br /&gt;6. Hit "Connect"&lt;br /&gt;7. You may get this warning, tick the "Don't ask me again..." box &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5257688062613101698" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_QOur9UN0zUc/SPcPb7_dnII/AAAAAAAAABk/8h7sQ-xljno/s320/RDP+Screenshot+6.jpg" border="0" /&gt;&lt;br /&gt;&lt;div&gt;8. Then you will get this box if you've completed step 4 successfully &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5257688234449494866" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_QOur9UN0zUc/SPcPl8Ic41I/AAAAAAAAABs/lUZgU2f0rRU/s320/RDP+Screenshot+7.jpg" border="0" /&gt;&lt;br /&gt;&lt;div&gt;9. I can hear you already saying "I thought this article was going to save me some time, but in fact there is more popups I need to click on than on my favourite naughty sites !?" don't worry these popups will only appear once... and no more!&lt;br /&gt;10. You will now get this window and hopefully be able to enter your password correctly (don't forget the old "CAPS LOCK ON"...)&lt;br /&gt;11. Have a cup of tea cause steps 1 to 10 were quite daunting and complex&lt;br /&gt;&lt;br /&gt;Now comes the fun.&lt;br /&gt;&lt;br /&gt;Repeat step 2 to 11 till you have all your servers saved in your newly created folder.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5257688527626106994" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_QOur9UN0zUc/SPcP3ATM-HI/AAAAAAAAAB0/IjsNHcFyAQI/s320/RDP+Screenshot+3.jpg" border="0" /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Then follow this:&lt;br /&gt;&lt;br /&gt;1. In the "View" menu &gt; Toolbars, untick "Standard Buttons", "Link" and "Address" bars&lt;br /&gt;2. Still in the "View" menu, untick "Status Bar" &lt;/div&gt;&lt;div&gt;3. Still in the "View" menu select "List"&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5257688722294940962" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_QOur9UN0zUc/SPcQCVf3pSI/AAAAAAAAAB8/fOY0_6vWFT8/s320/RDP+Screenshot+4.jpg" border="0" /&gt;&lt;br /&gt;4. And the final touch, resize the window to look a little thinner&lt;/div&gt;&lt;div&gt;&lt;br /&gt;If you are a purist you can even do like me and associate a custom icon to this folder so it looks a bit more like an app an meaningful (notice the RDP icon on this desktop). &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;And you can just drag &amp;amp; drop it to the "&lt;strong&gt;Startup&lt;/strong&gt;" folder so it comes up everytime you restart the computer! &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Beautifully simple and efficient, the final result is stunning and is definitely worth this epic blog article ;p&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/_QOur9UN0zUc/SPcORPNg_CI/AAAAAAAAABM/P_dQNeV0yIk/s1600-h/RDP+Screenshot+1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5257686779282127906" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_QOur9UN0zUc/SPcORPNg_CI/AAAAAAAAABM/P_dQNeV0yIk/s320/RDP+Screenshot+1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Have fun people and take care! &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-7564852162522686127?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/7564852162522686127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=7564852162522686127' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/7564852162522686127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/7564852162522686127'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2008/10/organise-manage-multiple-remote-desktop.html' title='Organise &amp; Manage Multiple Remote Desktop Connections Easily with Windows Out-Of-The-Box!'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_QOur9UN0zUc/SPcORPNg_CI/AAAAAAAAABM/P_dQNeV0yIk/s72-c/RDP+Screenshot+1.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-1060367034944229066</id><published>2008-10-16T09:28:00.001+01:00</published><updated>2008-10-16T09:30:30.833+01:00</updated><title type='text'>Microsoft SkyDrive Rocks!</title><content type='html'>Well, what can I say, 5 GB of free storage offered by Microsoft for free with a very funky web interface and upload tool (even if it is an ActiveX) ?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://skydrive.live.com/"&gt;http://skydrive.live.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It would be silly not to make the most of it really...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-1060367034944229066?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/1060367034944229066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=1060367034944229066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/1060367034944229066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/1060367034944229066'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2008/10/microsoft-skydrive-rocks.html' title='Microsoft SkyDrive Rocks!'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-4005006551818954546</id><published>2007-07-05T13:42:00.000+01:00</published><updated>2007-07-05T14:08:37.315+01:00</updated><title type='text'>Personal review of Visual Studio Orcas beta 1</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;I know it's been a while, usual stuff really, swamped in a project up to my neck!&lt;br /&gt;Blogging then becomes less of a priority ;)&lt;br /&gt;&lt;br /&gt;However let me tell you a few things about the new &lt;span style="font-weight: bold;"&gt;Microsoft Visual Studio "Orcas" beta 1&lt;/span&gt; release, which I am currently testing on my huge dual core AMD 64 bit, 4 Gb RAM, 500 Gb hard drive, Vista 64 business monster of a development machine.&lt;br /&gt;&lt;br /&gt;I have to say, this release looks amazing and is packed with functionality that I have really been looking forward to.&lt;br /&gt;&lt;br /&gt;However first impression is : &lt;span style="font-weight: bold;"&gt;very slow&lt;/span&gt; compared to VS 2005 (even on the PC described above). Maybe it's due to all this fancy new intellisense that ships with it, but big pages/controls take longer to be loaded/compiled. Don't even try the design view for complex pages, it's a nightmare... I've just disabled it.&lt;br /&gt;&lt;br /&gt;Still, it's very usable and my general view on this new product is very positive indeed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The good bits:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Much better intellisense&lt;/li&gt;&lt;li&gt;Great client side script step-by-step debugging!!! (F10 works on client side scripts!!!)&lt;/li&gt;&lt;li&gt;LINQ (fantastic)&lt;/li&gt;&lt;li&gt;Support for WPF and SilverLight (still have to be convinced by SilverLight I have to say...)&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;The bad bits:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quite a bit slower than VS 2005 although usable&lt;/li&gt;&lt;li&gt;Had a few nasty crashes when "alt-tabbing" between a resource file (as in localization resource file) and a text editor called &lt;a href="http://www.editpadpro.com/editpadlite.html"&gt;EditPadLight&lt;/a&gt; that I really like.&lt;/li&gt;&lt;li&gt;Other miscellaneous crashes, but nothing too bad for a beta release ;)&lt;/li&gt;&lt;li&gt;The "Copy website" function is still very bad and could have been improved...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;So basically, my initial mark for Visual Studio Orcas beta 1 is: &lt;span style="font-weight: bold;"&gt;85%&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Will definitely make the move when it's released. Thanks for reading!&lt;br /&gt;&lt;br /&gt;Cheers people and take it easy.&lt;br /&gt;&lt;br /&gt;PS: You can find the Visual Studio "Orcas" files here:&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-gb/vstudio/aa700831.aspx"&gt;http://msdn2.microsoft.com/en-gb/vstudio/aa700831.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you need tips to download the huge image files from the Microsoft website, read Jon Galloway's blog otherwise you can use the MSDN Subscriber downloader as explained on the link above:&lt;br /&gt;&lt;a href="http://weblogs.asp.net/jgalloway/archive/2006/09/30/Orcas-VPC-Download-info.aspx"&gt;http://weblogs.asp.net/jgalloway/archive/2006/09/30/Orcas-VPC-Download-info.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-4005006551818954546?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/4005006551818954546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=4005006551818954546' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/4005006551818954546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/4005006551818954546'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2007/07/personal-review-of-visual-studio-orcas.html' title='Personal review of Visual Studio Orcas beta 1'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-9158170852698902058</id><published>2007-05-14T10:58:00.002+01:00</published><updated>2008-10-16T09:28:30.585+01:00</updated><title type='text'>How to get the ASP.NET Commerce Starter Kit 2.0 to run in medium trust !</title><content type='html'>Hi guys,&lt;br /&gt;&lt;br /&gt;I am sure many of you will loooove this article.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;IT IS POSSIBLE TO GET THE COMMERCE STARTER KIT TO WORK IN MEDIUM TRUST!!!&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(51,51,255)"&gt;You can follow the instructions below, alternatively you can &lt;/span&gt;&lt;span style="FONT-WEIGHT: bold; COLOR: rgb(51,51,255)"&gt;download &lt;/span&gt;&lt;span style="COLOR: rgb(51,51,255)"&gt;the C# code from my &lt;/span&gt;&lt;span style="FONT-WEIGHT: bold; COLOR: rgb(51,51,255)"&gt;&lt;a href="http://skydrive.live.com/"&gt;SkyDrive&lt;/a&gt;&lt;/span&gt;&lt;span style="COLOR: rgb(51,51,255)"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe style="BORDER-RIGHT: rgb(221,229,233) 1px solid; PADDING-RIGHT: 0pt; BORDER-TOP: rgb(221,229,233) 1px solid; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; MARGIN: 3px; BORDER-LEFT: rgb(221,229,233) 1px solid; WIDTH: 240px; PADDING-TOP: 0pt; BORDER-BOTTOM: rgb(221,229,233) 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: rgb(255,255,255)" marginwidth="0" marginheight="0" src="http://cid-63b6af0ebc734f5c.skydrive.live.com/embedrowdetail.aspx/Public/CSK.rar" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;I have been now fighting for a while to get the wonderful ASP.NET Commerce Starter&lt;br /&gt;Kit 2.0 to work on my ISP &lt;strong&gt;Shared hosting&lt;/strong&gt; server.&lt;br /&gt;&lt;br /&gt;At first I thought it was a lost battle and started coding the CSK without SubSonic, Entreprise Library or any of this fancy stuff that requires full trust to run properly.&lt;br /&gt;&lt;br /&gt;But after battling harder, I noticed a few things that changed my life yesterday and let me share my findings with you all!&lt;br /&gt;&lt;br /&gt;Here is how I got there :&lt;br /&gt;&lt;br /&gt;1. I added this line in the CSK web.config so it would simulate my hosting service environment on my dev machine :&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;trust&lt;/span&gt; &lt;span class="attr"&gt;level&lt;/span&gt;&lt;span class="kwrd"&gt;="Medium"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I also prevented &lt;strong&gt;SubSonic&lt;/strong&gt; from using the &lt;strong&gt;Entreprise Library&lt;/strong&gt; data access and to use the more supported SqlDataProvider (not sure this made a difference but I would like to mention it) :&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SubSonicService&lt;/span&gt; &lt;span class="attr"&gt;defaultProvider&lt;/span&gt;&lt;span class="kwrd"&gt;="ELib2DataProvider"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;providers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="rem"&gt;&amp;lt;!--&amp;lt;add name="ELib2DataProvider" type="SubSonic.ELib2DataProvider, SubSonic" connectionStringName="CommerceTemplate"/&amp;gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="ELib2DataProvider"&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="SubSonic.SqlDataProvider, SubSonic"&lt;/span&gt; &lt;span class="attr"&gt;connectionStringName&lt;/span&gt;&lt;span class="kwrd"&gt;="CommerceTemplate"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;providers&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;SubSonicService&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2. I updated the ATLAS stuff with the latest from Microsoft (optional):&lt;br /&gt;&lt;a href="http://ajax.asp.net/"&gt;http://ajax.asp.net/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Notes :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;With that step more changes to the web.config are required (cf the web.config of the ajax web extensions). &lt;/li&gt;&lt;li&gt;Also I moved the ScriptManagers to the master pages (admin and site) and removed them from other pages, that way you always have ajax enabled pages :)&lt;/li&gt;&lt;li&gt;There is also an attribute that you need to remove from the ScriptManager or it won't compile.&lt;/li&gt;&lt;li&gt;One last thing you also have to replace the "Mode" attribute of all your UpdatePanels and change it to "UpdateMode".&lt;/li&gt;&lt;/ul&gt;3. In the App_Code\Configuration\&lt;strong&gt;SiteConfig.cs&lt;/strong&gt; change the lines that say:&lt;br /&gt;config.GetSection... to &lt;strong&gt;ConfigurationManager&lt;/strong&gt;.GetSection&lt;br /&gt;And &lt;strong&gt;rem out&lt;/strong&gt; the line that says :&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; config &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Configuration.Configuration = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This will try to access your web.config file and save it, which is NOT allowed in partial trust.&lt;br /&gt;The only pages that use this to write to the file are the Payment, Shipping and Tax configuration pages in the admin. I have simply disabled the "&lt;strong&gt;config.save&lt;/strong&gt;" (i.e. rem'd it out) in those pages and you just need to go and configure those values manually in the web.config before you publish the code.&lt;br /&gt;&lt;br /&gt;4. Next thing is to get rid of the &lt;strong&gt;eWorld.UI&lt;/strong&gt; assembly all together cause it needs full trust to run and to replace the controls used in the CSK by nice new shiny &lt;strong&gt;AjaxControlToolkit&lt;/strong&gt; controls (NumericBox to TextBox and Calendar are the only ones that I found in the project). Best to delete the eWorld.UI.dll from the bin folder and compile to see where we have to make the changes :o)&lt;br /&gt;&lt;br /&gt;In order to use the AjaxControlToolkit you must put the AjaxControlToolKit dll in your bin folder and register it in the page :&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="asp"&gt;&amp;lt;%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then you can replace everywhere it says "ew:NumericBox" by "asp:TextBox" and get rid of the :&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="asp"&gt;&amp;lt;%@ Register Assembly="eWorld.UI" Namespace="eWorld.UI" TagPrefix="ew" %&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Finally for the calendar, replace :&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ew:calendarpopup&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="txtExpirationDate"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ew:calendarpopup&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;By:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="txtExpirationDate"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ajaxToolkit:CalendarExtender&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="CalendarExtender1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;TargetControlID&lt;/span&gt;&lt;span class="kwrd"&gt;="txtExpirationDate"&lt;/span&gt; &lt;span class="attr"&gt;Format&lt;/span&gt;&lt;span class="kwrd"&gt;="dd/MM/yyyy"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Another thing, once you have done that some of your code behind files will stop working and you will have to replace the old "PostedDate" or "SelectedDate" of the old calendar controls by the "Text" property of your textbox.&lt;br /&gt;&lt;br /&gt;Also everytime you need to set a datetime datafield just do DateTime.Parse(textbox.Text) instead of the old eWorldUIOldTextBox.SelectedDate.&lt;br /&gt;&lt;br /&gt;There will also be occurrences of this sort of thing which will not pass the compilation:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;calEnd.SelectedDate = DateTime.Today&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Just replace it with:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;calEnd.Text = &lt;span class="kwrd"&gt;String&lt;/span&gt;.Format(&lt;span class="str"&gt;"{0:dd/MM/yyyy}"&lt;/span&gt;, DateTime.Today)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Or this sort of thing :&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;calEnd.SelectedDate&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Replace it with :&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;DateTime.Parse(calEnd.Text)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;There might be more small code changes that I forgot to document here but I will let you find out by yourself, you've got the general idea!&lt;br /&gt;&lt;br /&gt;Once the project compiles locally with those changes and in medium trust (cf step 1) then you can publish it (Build &gt; Publish Website) and compile it to a location on your hard drive. Copy the files to your ISP with the correct DB connection strings and that's it! (I agree it's actually quite a lot!)&lt;br /&gt;&lt;br /&gt;If you need the code, drop me a line with your email address and I will send it to you.&lt;br /&gt;&lt;br /&gt;I have tried to look at contributing in CodePlex for the CSK but the lack of documentation on how to do that made me loose motivation...&lt;br /&gt;&lt;br /&gt;On the other hand, the changes that I have made so far may have other &lt;strong&gt;impacts&lt;/strong&gt; on other functions of the CSK so &lt;strong&gt;following my advice is at your own risk&lt;/strong&gt;, you are responsible for any change you make to the code :o)&lt;br /&gt;&lt;br /&gt;From what I have seen so far though, everything works like a charm on a shared hosting server!!!&lt;br /&gt;&lt;br /&gt;Good luck and let me know your feedback.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;br /&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;UPDATE 07/01/2008: WHAT TO DO WHEN YOU ARE GETTING THE INFAMOUS &lt;/span&gt;&lt;br /&gt;&lt;span style="COLOR: rgb(255,0,0)"&gt;&lt;span style="FONT-WEIGHT: bold"&gt;"The SqlParameterCollection only accepts non-null SqlParameter type objects, not QueryParameter objects"&lt;/span&gt; ERROR&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I received quite a few emails about this as it is a problem when using the CSK code and the solution is here:&lt;br /&gt;&lt;br /&gt;You need to edit the OrderController.vb (or .cs) to include this function:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Shared&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; GetDBCommand(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; objSubCom &lt;span class="kwrd"&gt;As&lt;/span&gt; SubSonic.QueryCommand) &lt;span class="kwrd"&gt;As&lt;/span&gt; DbCommand&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objDbCom &lt;span class="kwrd"&gt;As&lt;/span&gt; DbCommand&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objSqlCon &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlConnection(ConfigurationManager.ConnectionStrings(&lt;span class="str"&gt;"LocalSqlServer"&lt;/span&gt;).ToString)&lt;br /&gt;&lt;br /&gt;    objDbCom = objSqlCon.CreateCommand()&lt;br /&gt;    objDbCom.CommandText = objSubCom.CommandSql&lt;br /&gt;    objDbCom.CommandType = objSubCom.CommandType&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; par &lt;span class="kwrd"&gt;As&lt;/span&gt; QueryParameter&lt;br /&gt;    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objSqlParam &lt;span class="kwrd"&gt;As&lt;/span&gt; SqlParameter&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; par &lt;span class="kwrd"&gt;In&lt;/span&gt; objSubCom.Parameters&lt;br /&gt;&lt;br /&gt;        objSqlParam = &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlParameter&lt;br /&gt;&lt;br /&gt;        objSqlParam.DbType = par.DataType&lt;br /&gt;        objSqlParam.ParameterName = par.ParameterName&lt;br /&gt;        objSqlParam.Value = par.ParameterValue&lt;br /&gt;&lt;br /&gt;        objDbCom.Parameters.Add(objSqlParam)&lt;br /&gt;    &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Return&lt;/span&gt; objDbCom&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; Function&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then replace all the lines that say:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;order.GetUpdateCommand(Utility.GetUserName()).&lt;b&gt;ToDbCommand&lt;/b&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;With this line calling the new function bypassing the subsonic call:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;GetDBCommand(order.GetUpdateCommand(Utility.GetUserName()))&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The ToDbCommand is the one causing the error and it's a Subsonic function. It is only throwing the error when using the SqlProvider to connect to the DB (from the SubSonic dll). So the new GetDBCommand that I wrote is a workaround that bypasses that function...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-9158170852698902058?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/9158170852698902058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=9158170852698902058' title='28 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/9158170852698902058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/9158170852698902058'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2007/05/how-to-get-aspnet-commerce-starter-kit.html' title='How to get the ASP.NET Commerce Starter Kit 2.0 to run in medium trust !'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>28</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-7803283457036659379</id><published>2007-05-14T09:25:00.000+01:00</published><updated>2007-05-14T10:09:16.817+01:00</updated><title type='text'>Add columns programmatically to a GridView and style the rows</title><content type='html'>A friend of mine asked me how to programmatically add columns to a GridView and I found this great article which I hope will help some of you too :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gridviewguy.com/ArticleDetails.aspx?articleID=29"&gt;http://www.gridviewguy.com/ArticleDetails.aspx?articleID=29&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;He also asked me how to style the Grids the best possible way and to modify the style of some control in it, maybe just one cell.&lt;br /&gt;&lt;br /&gt;As far as the general style is concerned I advise you to use a .skin file in the "Themes" folder of your ASP.NET 2.0 app. In this file the following declaration will map the GridView items to CSS classes :&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt; &lt;span class="attr"&gt;SkinID&lt;/span&gt;&lt;span class="kwrd"&gt;=""&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;CellPadding&lt;/span&gt;&lt;span class="kwrd"&gt;="4"&lt;/span&gt; &lt;span class="attr"&gt;GridLines&lt;/span&gt;&lt;span class="kwrd"&gt;="Both"&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView"&lt;/span&gt; &lt;span class="attr"&gt;Width&lt;/span&gt;&lt;span class="kwrd"&gt;="100%"&lt;/span&gt; &lt;span class="attr"&gt;BorderColor&lt;/span&gt;&lt;span class="kwrd"&gt;="#ECECEC"&lt;/span&gt; &lt;span class="attr"&gt;BorderStyle&lt;/span&gt;&lt;span class="kwrd"&gt;="Solid"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;HeaderStyle&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="GridHeader"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterStyle&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="GridFooter"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;SelectedRowStyle&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="GridSelectedRow"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;AlternatingRowStyle&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="GridAlternatingRow"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;EditRowStyle&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="GridEditRow"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;RowStyle&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="GridRow"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;PagerStyle&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="GridPager"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;EmptyDataRowStyle&lt;/span&gt; &lt;span class="attr"&gt;CssClass&lt;/span&gt;&lt;span class="kwrd"&gt;="GridEmptyRow"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt; &lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In a css file, you can then create the relevant classes like GridHeader, etc.&lt;br /&gt;&lt;br /&gt;If you need to modify a row or some element of it when the Grid is being "written" you should do it in the RowDataBound event as follows:&lt;br /&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;Protected&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; myGridView_RowDataBound(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Web.UI.WebControls.GridViewRowEventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; myGridView.RowDataBound()&lt;br /&gt;        &lt;span class="kwrd"&gt;If&lt;/span&gt; e.Row.RowType = DataControlRowType.DataRow &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objButton &lt;span class="kwrd"&gt;As&lt;/span&gt; Button&lt;br /&gt;            objButton = &lt;span class="kwrd"&gt;CType&lt;/span&gt;(e.Row.FindControl(&lt;span class="str"&gt;"cmdButtonInTheRow"&lt;/span&gt;), Button)&lt;br /&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; IsDBNull(e.Row.DataItem(&lt;span class="str"&gt;"MyDataFieldValue"&lt;/span&gt;)) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                objButton.Enabled = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;ElseIf&lt;/span&gt; e.Row.DataItem(&lt;span class="str"&gt;"MyDataFieldValue"&lt;/span&gt;) = &lt;span class="str"&gt;"SOME_VALUE"&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                objButton.BackColor = System.Drawing.Color.FromName(&lt;span class="str"&gt;"White"&lt;/span&gt;)&lt;br /&gt;            &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;br /&gt;                objButton.BackColor = System.Drawing.Color.FromName(&lt;span class="str"&gt;"Green"&lt;/span&gt;)&lt;br /&gt;                e.Row.BackColor = System.Drawing.Color.FromName(&lt;span class="str"&gt;"Red"&lt;/span&gt;)&lt;br /&gt;                e.Row.Cells(3).BackColor = System.Drawing.Color.FromName(&lt;span class="str"&gt;"Yellow"&lt;/span&gt;)&lt;br /&gt;                e.Row.Cells(4).ForeColor = System.Drawing.Color.FromName(&lt;span class="str"&gt;"Pink"&lt;/span&gt;)&lt;br /&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-7803283457036659379?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/7803283457036659379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=7803283457036659379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/7803283457036659379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/7803283457036659379'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2007/05/add-columns-programmatically-to.html' title='Add columns programmatically to a GridView and style the rows'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-7703027948731966554</id><published>2007-04-10T18:30:00.000+01:00</published><updated>2007-04-10T18:34:46.718+01:00</updated><title type='text'>The coolest shortcut of them all !...</title><content type='html'>Hi people,&lt;br /&gt;&lt;br /&gt;In the shortcut series, I have found the coolest of them all!&lt;br /&gt;The &lt;span style="font-weight: bold;"&gt;new &lt;/span&gt;ALT+TAB in Vista :&lt;br /&gt;&lt;br /&gt;Try the "Windows Key" + TAB and tell me what you think...&lt;br /&gt;&lt;br /&gt;If you want more &lt;a href="http://windowshelp.microsoft.com/Windows/en-US/help/2503b91d-d780-4c80-8f08-2f48878dc5661033.mspx"&gt;here it is&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am really starting to love Vista, the only thing I don't like about it is that I'm going to have to buy 2 more Gb of RAM...&lt;br /&gt;&lt;br /&gt;Oh well... progress hey?&lt;br /&gt;&lt;br /&gt;Thanks to Microsoft for a cool OS!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-7703027948731966554?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/7703027948731966554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=7703027948731966554' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/7703027948731966554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/7703027948731966554'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2007/04/coolest-shortcut-of-them-all.html' title='The coolest shortcut of them all !...'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-7488443419945926435</id><published>2007-03-28T16:08:00.000+01:00</published><updated>2007-03-28T16:22:29.035+01:00</updated><title type='text'>NetSpell checker works in medium trust environment using AllowPartiallyTrustedCallersAttribute</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;just a quickie, I have been using this fantastic open source free spell checker and I am very happy with it as it is completely integrated to the &lt;a href="http://www.freetextbox.com"&gt;FreeTextBox&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It is called &lt;strong&gt;NetSpell&lt;/strong&gt;  and in order to download it you must go to this site :&lt;br /&gt;&lt;a href="http://www.loresoft.com/Applications/NetSpell/default.aspx"&gt;http://www.loresoft.com/Applications/NetSpell/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The problem is when you try to make netspell work in a &lt;strong&gt;shared hosting&lt;/strong&gt; environment that will be more secure than your dev webserver and will more than likely run in medium trust.&lt;br /&gt;&lt;br /&gt;The only problem is that NetSpell &lt;u&gt;does not &lt;/u&gt;by default allow the assembly to run in partial trust and therefore the only way to get it to work is to add :&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;[assembly: AllowPartiallyTrustedCallersAttribute()]&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;line to the AssemblyInfo.cs file of the NetSpell.SpellChecker project&lt;br /&gt;&lt;br /&gt;Soooooo....&lt;br /&gt;&lt;br /&gt;1. I downloaded the code locally to my C: drive,&lt;br /&gt;The full source is available here using the mighty SVN source code manager :&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/netspell/"&gt;http://sourceforge.net/projects/netspell/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Went to the ..\NetSpell\trunk\NetSpell\src\NetSpell.SpellChecker folder,&lt;br /&gt;3. Edited the AssemblyInfo.cs file to include &lt;em&gt;[assembly: AllowPartiallyTrustedCallersAttribute()]&lt;/em&gt;&lt;br /&gt;4. Added a reference at the top of the file to &lt;em&gt;using System.Security;&lt;/em&gt;&lt;br /&gt;(required for the AllowPartiallyTrustedCallersAttribute element to work)&lt;br /&gt;5. Recompiled the project&lt;br /&gt;6. Copied the new NetSpell.SpellChecker.dll to my web project and...&lt;br /&gt;7. &lt;strong&gt;BINGO! everything worked like a charm on my medium trust environment!!!&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Hope those who struggled with this will manage to find my post and solve their problem!&lt;br /&gt;&lt;br /&gt;Cheers,&lt;br /&gt;Etienne&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-7488443419945926435?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/7488443419945926435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=7488443419945926435' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/7488443419945926435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/7488443419945926435'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2007/03/netspell-checker-works-in-medium-trust.html' title='NetSpell checker works in medium trust environment using AllowPartiallyTrustedCallersAttribute'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-454365131694084648</id><published>2007-03-09T12:17:00.000Z</published><updated>2007-03-09T12:22:07.554Z</updated><title type='text'>New tool!</title><content type='html'>I just had a look at Wengo Visio and it seems to be amazing...&lt;br /&gt;I will try it a bit more and let you know how it works but it looks amazing!&lt;br /&gt;&lt;br /&gt;It's like Skype but Flash based and does not require any client install!!!&lt;br /&gt;&lt;br /&gt;Let's try it:&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css" media="all"&gt;@import "http://button.wdeal.com/wvisio_v1-1/common/wengovisio.css";&lt;/style&gt;&lt;br /&gt;&lt;div id="wgo_widget_1"&gt;&lt;/div&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;var wgo_login = 'lambi_uk';&lt;br /&gt;var wgo_http_server = 'http://button.wdeal.com/wvisio_v1-1/common';&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script src="http://button.wdeal.com/wvisio_v1-1/full_wengo_widget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-454365131694084648?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/454365131694084648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=454365131694084648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/454365131694084648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/454365131694084648'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2007/03/new-tool.html' title='New tool!'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-2570493592787916965</id><published>2007-02-21T10:22:00.000Z</published><updated>2007-02-21T10:28:03.251Z</updated><title type='text'>Subsonic or ActionPack the zero code DAL</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;something all the &lt;strong&gt;lazy &lt;/strong&gt;programmers out there have been waiting for :&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/actionpack"&gt;http://www.codeplex.com/actionpack&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is the heaven of dal coding, the only down side is that you need full trust on your web to use its full features (i.e. custom build providers to automatically generate vb or c# classes to access your database structure).&lt;br /&gt;&lt;br /&gt;In other words, the people on shared hosting environments, forget it. However if you have a dedicated server, then the world is your oyster and man this tool is great!&lt;br /&gt;&lt;br /&gt;No more boring data access code to write, &lt;strong&gt;one class per table &lt;/strong&gt;is generated and allows you to query your data in a very efficient way!&lt;br /&gt;&lt;br /&gt;Thanks guys for this... wonder how it's going to compete with LINQ though?&lt;br /&gt;&lt;br /&gt;Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-2570493592787916965?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/2570493592787916965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=2570493592787916965' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/2570493592787916965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/2570493592787916965'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2007/02/subsonic-or-actionpack-zero-code-dal.html' title='Subsonic or ActionPack the zero code DAL'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-3844393383161328052</id><published>2007-02-21T10:17:00.000Z</published><updated>2007-02-21T10:22:25.057Z</updated><title type='text'>AJAX 1.0 is here and will tranform the web</title><content type='html'>I am now working closely with Microsoft AJAX extensions v1.0 and I have to say congratulations to them for developing such a cool programming concept.&lt;br /&gt;&lt;br /&gt;I am using it everywhere I can and have been able to design things that I have dreamt of years ago without any hassle.&lt;br /&gt;&lt;br /&gt;.NET web developers, go there now and watch all the videos, you won't regret it:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ajax.asp.net"&gt;http://ajax.asp.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Happy programming!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-3844393383161328052?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/3844393383161328052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=3844393383161328052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/3844393383161328052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/3844393383161328052'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2007/02/ajax-10-is-here-and-will-tranform-web.html' title='AJAX 1.0 is here and will tranform the web'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-114984804374272091</id><published>2006-06-09T10:59:00.000+01:00</published><updated>2006-06-27T18:07:49.583+01:00</updated><title type='text'>www.netploy.com is here!!!</title><content type='html'>That's it!!!&lt;br /&gt;&lt;br /&gt;My last &lt;strong&gt;ASP.NET 2.0&lt;/strong&gt; project is finally completed. After 6 months of hard work we finally have something up and running and it works like a breeze.&lt;br /&gt;&lt;br /&gt;For those of you you can speak &lt;strong&gt;French&lt;/strong&gt;, here is the &lt;strong&gt;future of employment&lt;/strong&gt;:&lt;br /&gt;&lt;a href="http://www.netploy.com"&gt;http://www.netploy.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For those who can't, an English version is probably going to be out soon. Otherwise, it's always good to learn a new language, especially one as beautiful as French! :)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;netploy&lt;/strong&gt; is a site where you can find work or people who can do a job and make sure that you can work with them remotely with the tools offered :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Microsoft SharePoint Services&lt;/strong&gt; was integrated to the site in Active Directory creation mode as well as host header mode. That basically means that you can create sites with your own URL like "myurl.share.netploy.com"! This provides the freelancer with a "Virtual Desk" accessible from anywhere in the world.&lt;/li&gt;&lt;li&gt;On the other hand we also have integrated a fantastic web conferencing tool called &lt;strong&gt;GatherPlace&lt;/strong&gt; and this provides the employer or employee with online meeting facility. Again the url would be the one you have picked (similar to WebOffice) and like "myvirtualconf.meet.netploy.com"&lt;/li&gt;&lt;/ul&gt;The future is to be able to work from the comfort of your own home!&lt;br /&gt;I have been doing this for the past 6 months and this site is the result, I have never been that productive in my entire life and I am extremely proud of this achievement as I have done it on my own (no development team whatsoever)!&lt;br /&gt;&lt;br /&gt;For those of you who are technical, subscribe to &lt;a href="http://www.netploy.com"&gt;www.netploy.com&lt;/a&gt; and have a look at the amazing functionalities in place, for those of you who are interested in working from home, enter you CV and wait for the right project!&lt;br /&gt;&lt;br /&gt;There is more to come in the near future as we are already looking at improving some functionalities using &lt;strong&gt;ATLAS&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Cheers!&lt;br /&gt;Etienne&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-114984804374272091?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/114984804374272091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=114984804374272091' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/114984804374272091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/114984804374272091'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2006/06/wwwnetploycom-is-here.html' title='www.netploy.com is here!!!'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-113094346159746235</id><published>2005-11-02T14:47:00.000Z</published><updated>2007-02-16T08:27:59.353Z</updated><title type='text'>.NET 2.0 Custom Build Providers</title><content type='html'>&lt;strong&gt;Wow this is soooooooo cool I can't believe it!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;How would you fancy NOT having to write a DataAccess layer in your apps but instead to get the ASP.NET 2.0 engine to automatically serve the code to you straight from the Database Structure?&lt;br /&gt;&lt;br /&gt;If you don't understand the problem, you need to spend a bit more time creating &lt;strong&gt;by hand&lt;/strong&gt; (not allowed to cheat with CodeSmith or other...):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tables&lt;/li&gt;&lt;li&gt;Views&lt;/li&gt;&lt;li&gt;Stored Procedures&lt;/li&gt;&lt;li&gt;.NET Data Access Code that calls everything and performs SELECT, INSERT, UPDATE and DELETE... &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Then you will know what I mean especially if your DB has &lt;strong&gt;250 tables&lt;/strong&gt;, &lt;strong&gt;150 Views &lt;/strong&gt;and &lt;strong&gt;640 Stored Procedures&lt;/strong&gt;!!!&lt;/p&gt;&lt;p&gt;I was lucky enough to come across this article from Fritz Onion and I think it is absolutely &lt;strong&gt;awesome&lt;/strong&gt;. Fritz you're a genius man!&lt;/p&gt;&lt;p&gt;&lt;a href="http://pluralsight.com/blogs/fritz/archive/2004/09/06/2188.aspx"&gt;http://pluralsight.com/blogs/fritz/archive/2004/09/06/2188.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Using that idea, I have been able to build a code generator that creates my DataAccess layer automatically from the Database, then in my code I only need to reference the relevant object and call methods against them like:&lt;/p&gt;&lt;p&gt;Dim objProfile as Profile&lt;/p&gt;&lt;p&gt;objProfile.ID = "1"&lt;/p&gt;&lt;p&gt;objProfile.Name = "Test Name"&lt;/p&gt;&lt;p&gt;objProfile.Update&lt;/p&gt;&lt;p&gt;How cool is that!!!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-113094346159746235?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/113094346159746235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=113094346159746235' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/113094346159746235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/113094346159746235'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/11/net-20-custom-build-providers.html' title='.NET 2.0 Custom Build Providers'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-112479475167393605</id><published>2005-08-23T11:44:00.000+01:00</published><updated>2006-08-22T08:32:27.373+01:00</updated><title type='text'>HtmlInputFile problem uploading large files!</title><content type='html'>God I have spent nearly 4 days solid trying to work that one out!&lt;br /&gt;&lt;br /&gt;Here is the challenge:&lt;br /&gt;Basically there is by a size limit to the file you can upload to a webserver using the good old &lt;strong&gt;HtmlInputFile&lt;/strong&gt; Input. By default this limit is 4Mb and it is set in the &lt;strong&gt;machine.config&lt;/strong&gt; file on the web server:&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#990000;"&gt;httpruntime maxrequestlength="8192"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It is of course possible to override this value in your &lt;strong&gt;web.config&lt;/strong&gt; file and make it web app specific.&lt;br /&gt;&lt;br /&gt;The problem occurs when you try to upload something bigger than that... you will get a nasty DNS error because the asp.net worker process got its knickers in a twist on the webserver. It basically reached a memory threshold before it could do anything with the file!&lt;br /&gt;&lt;br /&gt;A full explanation can be found here:&lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;295626"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;295626&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Anyway the bottom line is that it displays a nasty error to the user and the people I work for don't like that at all.&lt;br /&gt;&lt;br /&gt;As a Google group lover I looked for an answer to that one for a lot longer than I originally thought I would have to and finally found this &lt;strong&gt;EXCELLENT&lt;/strong&gt; article by &lt;strong&gt;Jesse Chunn&lt;/strong&gt;:&lt;br /&gt;&lt;a href="http://www.standardio.org/article.aspx?id=213"&gt;http://www.standardio.org/article.aspx?id=213&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jesse you're the man! The little code snippet you posted is awesome in simplicity and it works great.&lt;br /&gt;&lt;br /&gt;The trick is to use the global.asax file and to test the file contentLength for every single request made to the web server.&lt;br /&gt;&lt;br /&gt;I post the code again:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;&lt;strong&gt;' Fires at the beginning of each request &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;Dim i As Integer &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;&lt;strong&gt;'this number is in bytes, NOT kilobytes!! &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;Dim iMaxFileSize As Integer = 8000000 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;For i = 0 To Request.Files.Count - 1 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;If Request.Files.Item(i).ContentLength &gt; iMaxFileSize Then &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;Response.Redirect("FileToBig.aspx?filesize=" &amp;amp; Request.Files.Item(i).ContentLength)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;Exit For&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;End If&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;color:#3366ff;"&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;A massive thank you to you my friend, you're a star in the developer's world!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-112479475167393605?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/112479475167393605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=112479475167393605' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/112479475167393605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/112479475167393605'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/08/htmlinputfile-problem-uploading-large.html' title='HtmlInputFile problem uploading large files!'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-112383811929021574</id><published>2005-08-12T10:12:00.000+01:00</published><updated>2005-08-23T12:30:24.110+01:00</updated><title type='text'>Enterprise Library, not always the best option!</title><content type='html'>I had to say it, the Enterprise Library which I think is a brilliant repository of coding practices from Microsoft, is not always the best option!&lt;br /&gt;&lt;br /&gt;I struggled a lot with it when trying to deploy it to a shared hosting environment and I finally gave up. I had to write this on the GotDotNet Message board:&lt;br /&gt;&lt;br /&gt;"&lt;strong&gt;Enterprise Library and shared hosting&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Posted on: 08/12/2005 02:11:21 &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Hi guys, ok I have now developed 2 reasonably big ASP.NET applications built on the Enterprise Library. One of them uses Data Access, Configuration, Caching and Security (DB) and the other one uses the Data Access and Caching. They are both intranets and although it took me quite some time to suss out how to get everything to work and to code/debug my VB.NET calls to the EL, I finally managed to get the sites working very well and I am quite impressed with some of the functionality in EL.&lt;br /&gt;&lt;br /&gt;However I have to emphasize on the fact that I did struggle, it is not always developer friendly and you have a few obstacles to overcome (I guess it's still quite new so people are getting used to it!) and even though it is packed with very cool functionality I still think it is a sledgehammer to crack a nut. Compared to the old DAAB and the ever so friendly SqlHelper class, there is quite a big gap! Maybe you should think about the Enterprise Library Lite! (.NET Framework 2.0?)&lt;br /&gt;&lt;br /&gt;The Enterprise Library is awesome when it comes to hosting a very complex web app yourself on your very powerful W3K Server on an AD Domain. But when your designing a very simple secure site hosted on a shared hosting environment with a simple SQL server backend, like it is the case 99% of the time (for me anyway), you are in for a big ride!!! No way I could run "InstallServices.bat" on the 3rd party shared hosting network of course, so you get the nice "Access Denied error" when you try to run the blocks because of the Instrumentation and Logging trying to access the EventLog...&lt;br /&gt;&lt;br /&gt;I read Tom's blog: &lt;a href="http://blogs.msdn.com/tomholl/archive/2005/02/18/376187.aspx" target="_blank"&gt;http://blogs.msdn.com/tomholl/archive/2005/02/18/376187.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tried what he suggested but was still getting errors from the Caching block even after turning off the Instrumentation altogether. After many hours of frustration, I just chose to give up, got rid of EL DLLs altogether and replaced them with the good old SqlHelper! Rewrote my data access layer, implemented a simple SQL server authentication mechanism with password encryption and swore I would never use EL again.&lt;br /&gt;&lt;br /&gt;So end of story for me, a lot of time wasted, no will to get a dedicated server solution (too expensive) and therefore back to a normal plain old SqlHelper class, which I have to say now I kind of prefer to the EL!&lt;br /&gt;&lt;br /&gt;At least it deploys to any server.&lt;br /&gt;&lt;br /&gt;Sorry guys but I had to say it! On a different note, I still think the Enterprise Library Code is probably one of the best open source I have seen in terms of architecture and new ways of thinking blocks. Just make sure it is developer friendly and that you can deploy it to any .NET environment, especially remote with limited access rights!&lt;br /&gt;&lt;br /&gt;Cheers, Etienne "&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-112383811929021574?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/112383811929021574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=112383811929021574' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/112383811929021574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/112383811929021574'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/08/enterprise-library-not-always-best.html' title='Enterprise Library, not always the best option!'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-111640520141965774</id><published>2005-05-18T09:31:00.000+01:00</published><updated>2005-05-18T16:41:42.563+01:00</updated><title type='text'>Crystal reports for .NET</title><content type='html'>I have just found some extremely useful info on how to implement and easily generate fantastic looking reports from within the VS.NET IDE!&lt;br /&gt;&lt;br /&gt;Check this out!&lt;br /&gt;&lt;a href="http://aspalliance.com/articleViewer.aspx?aId=265&amp;pId=2"&gt;http://aspalliance.com/articleViewer.aspx?aId=265&amp;amp;pId=2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks to &lt;strong&gt;Josh Robinson&lt;/strong&gt; I have also been able to plug the Crystal Report Viewer to the almighty MS Enterprise Library Data Access block!!!&lt;br /&gt;&lt;br /&gt;For that you need to use &lt;strong&gt;strongly typed datasets &lt;/strong&gt;and Josh explains how to do that in a very simple and clear way:&lt;br /&gt;&lt;a href="http://weblogs.asp.net/josh.robinson/archive/2005/03/30/396311.aspx"&gt;http://weblogs.asp.net/josh.robinson/archive/2005/03/30/396311.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Josh you're the man!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-111640520141965774?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/111640520141965774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=111640520141965774' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/111640520141965774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/111640520141965774'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/05/crystal-reports-for-net.html' title='Crystal reports for .NET'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-111339830461408379</id><published>2005-04-13T14:18:00.000+01:00</published><updated>2005-04-13T14:18:24.613+01:00</updated><title type='text'>Classic ASP Datagrid class</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/84837942@N00/9307718/" title="photo sharing"&gt;&lt;img src="http://photos4.flickr.com/9307718_65a02a5f37_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/84837942@N00/9307718/"&gt;Classic ASP Datagrid class&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/84837942@N00/"&gt;Etienne L&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;To complete my posting of the ASP.NET User Control datagrid, here is the older version...&lt;br /&gt;&lt;br /&gt;This is a classic ASP datagrid implementing a hell of a lot of functionality and making sure everything is in a class and no images are required.&lt;br /&gt;&lt;br /&gt;Basically only an include and some dead simple code can display data from a datasource on a webpage.&lt;br /&gt;&lt;br /&gt;This example includes:&lt;br /&gt;&lt;br /&gt;* Sorting&lt;br /&gt;* Paging&lt;br /&gt;* Styling (CSS)&lt;br /&gt;&lt;br /&gt;I will post the code as soon as I have some space somewhere...&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-111339830461408379?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/111339830461408379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=111339830461408379' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/111339830461408379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/111339830461408379'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/04/classic-asp-datagrid-class.html' title='Classic ASP Datagrid class'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-111339149513083901</id><published>2005-04-13T12:24:00.000+01:00</published><updated>2005-04-13T12:24:55.130+01:00</updated><title type='text'>ASP.NET User Control Datagrid</title><content type='html'>&lt;div style="float: right; margin-left: 10px; margin-bottom: 10px;"&gt; &lt;a href="http://www.flickr.com/photos/84837942@N00/9301029/" title="photo sharing"&gt;&lt;img src="http://photos6.flickr.com/9301029_ca644782a2_m.jpg" alt="" style="border: solid 2px #000000;" /&gt;&lt;/a&gt; &lt;br /&gt; &lt;span style="font-size: 0.9em; margin-top: 0px;"&gt;  &lt;a href="http://www.flickr.com/photos/84837942@N00/9301029/"&gt;ASP.NET User Control Datagrid&lt;/a&gt;  &lt;br /&gt;  Originally uploaded by &lt;a href="http://www.flickr.com/people/84837942@N00/"&gt;Etienne L&lt;/a&gt;. &lt;/span&gt;&lt;/div&gt;This is an example of my latest ASP.NET user control datagrid. I will post the code for it very soon... only need to clean it up a bit. &lt;br /&gt;&lt;br /&gt;This is NOT a server control (dll), it's simply an .ascx file. Dead easy. The features I have implemented are: &lt;br /&gt;&lt;br /&gt;* Easy column sorting &lt;br /&gt;* Paging (page numbers or triangles, no images required) &lt;br /&gt;* Alternate coloring &lt;br /&gt;* Custom ItemDataBound and ItemCommand events &lt;br /&gt;* CSS Styles for the look and feel &lt;br /&gt;&lt;br /&gt;It's not the most amazing one I have ever seen but it does the job extremely well and I use it all over my latest project! &lt;br /&gt;&lt;br /&gt;Code will follow very soon...&lt;br clear="all" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-111339149513083901?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/111339149513083901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=111339149513083901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/111339149513083901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/111339149513083901'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/04/aspnet-user-control-datagr_111339149513083901.html' title='ASP.NET User Control Datagrid'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-111269629103160727</id><published>2005-04-05T10:55:00.000+01:00</published><updated>2005-04-13T10:04:35.193+01:00</updated><title type='text'>Golden Shortcuts...</title><content type='html'>As a developer, you constantly have to use keyboard shortcuts to save time and to impress your colleagues ;)&lt;br /&gt;&lt;br /&gt;There is the obvious &lt;strong&gt;ctrl+x&lt;/strong&gt;, &lt;strong&gt;ctrl+c&lt;/strong&gt; and &lt;strong&gt;ctrl+v&lt;/strong&gt; that I use 1000 times a day, the &lt;strong&gt;ctrl+s&lt;/strong&gt; (save), &lt;strong&gt;alt+tab&lt;/strong&gt;, &lt;strong&gt;alt+shift+tab&lt;/strong&gt;, &lt;strong&gt;ctrl+F4&lt;/strong&gt; (close inside window), &lt;strong&gt;alt+F4&lt;/strong&gt; (close window)... and so on.&lt;br /&gt;&lt;br /&gt;Actually let me put a list of the ones I use constantly and tell me if you can think of others:&lt;br /&gt;ctrl+x = cut&lt;br /&gt;ctrl+c = copy&lt;br /&gt;ctrl+v = paste&lt;br /&gt;ctrl+z = undo&lt;br /&gt;ctrl+y = redo&lt;br /&gt;ctrl+b (with text highlighted) = make bold&lt;br /&gt;ctrl+F4 = close inside window&lt;br /&gt;alt+F4 = close window&lt;br /&gt;alt+tab = switch to next app&lt;br /&gt;alt+shift+tab = switch to previous app&lt;br /&gt;shift+click (on URL in IE) = open URL in new window&lt;br /&gt;ctrl+s = save&lt;br /&gt;ctrl+shift+s = save all&lt;br /&gt;F5 (in Query Analyzer) = execute (highlighted text or ALL if nothing highlighted)&lt;br /&gt;&lt;br /&gt;But there is also the &lt;strong&gt;gold dust&lt;/strong&gt;, shortcuts that take you years to work out and things you had no idea existed... and today I found one!!!&lt;br /&gt;&lt;br /&gt;The first one that I did find about a year ago answers the question "How do you make a field NULL in SQL Server using the entreprise manager manual data edit within table?" the answer is to put the cursor in the relevant field (that you want to blank out) and press &lt;strong&gt;ctrl+0&lt;/strong&gt; (number "zero"). I have to say, I was pleased to finally get that one after years of "UPDATE tablename SET field = NULL WHERE ID = 11111"!&lt;br /&gt;&lt;br /&gt;Today is one of those days where I am happy to add a new addition to my list of favourite shortcuts, the one I'm on about is probably one that VB developers like me will find extremely useful! It is &lt;strong&gt;ctrl+k and c&lt;/strong&gt; or &lt;strong&gt;ctrl+k and u&lt;/strong&gt;! What is it for are you going to ask... well have you ever tried to turn 50 lines of uncommented code to comments in VB?&lt;br /&gt;&lt;br /&gt;It takes about 2 minutes to rem it, and 3 to rem it out cause you need to work out what lines are real code and what should remain comments.&lt;br /&gt;&lt;br /&gt;ctrl+k and c will comment any highlighted text (multiple lines) in VS.NET!!! The other uncomments it... how brilliant is that!&lt;br /&gt;&lt;br /&gt;For those who are anal like me about windows shortcuts, here is a VERY extensive list&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxurfvisualstudio70defaultshortcutkeys.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxurfvisualstudio70defaultshortcutkeys.asp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps! Happy shortcutting!...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-111269629103160727?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/111269629103160727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=111269629103160727' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/111269629103160727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/111269629103160727'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/04/golden-shortcuts.html' title='Golden Shortcuts...'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-110992419735260088</id><published>2005-03-04T08:16:00.000Z</published><updated>2005-03-04T08:21:18.923Z</updated><title type='text'>skmMenu</title><content type='html'>Have you ever wanted to create a really cool &lt;strong&gt;DHTML&lt;/strong&gt; &lt;strong&gt;menu&lt;/strong&gt; automatically generated from an &lt;strong&gt;XML&lt;/strong&gt; file (treeview) without having to worry about any of the code... but if you wanted to change the code/styles for whatever reason you could!!!&lt;br /&gt;&lt;br /&gt;This is an amazing little &lt;strong&gt;ASP.NET&lt;/strong&gt; open source app with an online &lt;strong&gt;GotDotNet&lt;/strong&gt; community that rocks! I wish I had seen this before. It's already in the new project I am working on.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#9999ff;"&gt;&lt;span style="color:#993300;"&gt;Awesome, brilliant work guys!!!&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.skmmenu.com/menu/"&gt;skmMenu Homepage&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-110992419735260088?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/110992419735260088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=110992419735260088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/110992419735260088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/110992419735260088'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/03/skmmenu.html' title='skmMenu'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-110934183589166565</id><published>2005-02-25T14:30:00.000Z</published><updated>2005-03-04T08:22:14.946Z</updated><title type='text'>Firefox</title><content type='html'>I am trying &lt;strong&gt;Firefox&lt;/strong&gt;, the alternative browser for the first time today.&lt;br /&gt;It looks good and seems to be packed with cool ideas...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mozilla.org/"&gt;Firefox&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I like the "&lt;strong&gt;BlogThis&lt;/strong&gt;" Extension, which I am using to post this blog!&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;I will keep you up to date with my findings!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-110934183589166565?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/110934183589166565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=110934183589166565' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/110934183589166565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/110934183589166565'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/02/firefox.html' title='Firefox'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-110924923982216753</id><published>2005-02-24T12:20:00.000Z</published><updated>2005-03-04T08:23:28.926Z</updated><title type='text'>Introduction</title><content type='html'>Let me introduce myself, I am a French guy living in the UK since &lt;strong&gt;1998&lt;/strong&gt;, I am now 29... nearly 30.&lt;br /&gt;&lt;br /&gt;I have been working with computers since I was about 12 and programming in basic on a &lt;strong&gt;Sinclair ZX 81&lt;/strong&gt;!!! Originally it had 1Kb of RAM but I soon extended that to a massive 16Kb !&lt;br /&gt;After that I went to &lt;strong&gt;Amstrad CPC 6128&lt;/strong&gt; with a... floppy disk. That was a big improvement from tapes.&lt;br /&gt;&lt;br /&gt;Of course and just like everyone interested in computers I then acquired a &lt;strong&gt;PC&lt;/strong&gt;. learnt DOS and was amazed when I first saw Windows 3.11 running on a 30Mb Hard drive... 95 was another biggy and NT the ultimate OS. I have to say, for my sins, I have always used &lt;strong&gt;Microsoft&lt;/strong&gt; technologies to develop. I like user friendly and good looking stuff, I try and avoid command lines... unfortunately it's not always possible! :o)&lt;br /&gt;&lt;br /&gt;Anyway, I am now swimming in the &lt;strong&gt;.NET&lt;/strong&gt; pool and developing professional applications for various people in the UK. My main skills lie definitely in ASP.NET, VB.NET and SQL Server 2000 (learning Yukon as well, but as always, it's just the same as before, with more functionality!!!). I have to say I became very good at my job and there is no challenge so far that I have not been able to break (touch wood). With computers, everything is possible and the creative power is endless. When you build a house, you need bricks, mortar, contractors, tools... it takes time and a lot of effort. On the web you can create a site in no time, you are the man, all the tools and pretty much available for free and you can also learn to build a bigger and better looking house if you want to! The best thing if we keep this analogy with houses, you can change the color of your roof with a single mouse click :o)&lt;br /&gt;&lt;br /&gt;I am starting this blog to share my technical thoughts &amp;amp; findings. All to do with code, .NET computers and the Internet.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;I hope you enjoy it and that it brings some answers to your questions!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-110924923982216753?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/110924923982216753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=110924923982216753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/110924923982216753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/110924923982216753'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/02/introduction.html' title='Introduction'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11050255.post-110924347108278371</id><published>2005-02-24T11:09:00.000Z</published><updated>2005-02-24T11:11:11.083Z</updated><title type='text'>First Post</title><content type='html'>That's it, I'm no longer a blog virgin! What a feeling...&lt;br /&gt;Let's see what we can do with this new amazing power!!!&lt;br /&gt;&lt;br /&gt;The world is now mine ;o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11050255-110924347108278371?l=etiennel.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://etiennel.blogspot.com/feeds/110924347108278371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11050255&amp;postID=110924347108278371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/110924347108278371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11050255/posts/default/110924347108278371'/><link rel='alternate' type='text/html' href='http://etiennel.blogspot.com/2005/02/first-post.html' title='First Post'/><author><name>Etienne</name><uri>http://www.blogger.com/profile/06810240366576017302</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='21' src='http://static.flickr.com/55/151931711_a398dd38ae_m.jpg'/></author><thr:total>0</thr:total></entry></feed>
