<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Justin Saraceno's Blog</title><link>http://weblogs.asp.net/justinsaraceno/default.aspx</link><description>Coding from the Carolinas</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Migrating SSRS Manager to a new IIS Server: Part 2</title><link>http://weblogs.asp.net/justinsaraceno/archive/2009/05/22/migrating-ssrs-manager-to-a-new-iis-server-part-2.aspx</link><pubDate>Fri, 22 May 2009 19:17:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7094907</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=7094907</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2009/05/22/migrating-ssrs-manager-to-a-new-iis-server-part-2.aspx#comments</comments><description>&lt;p&gt;In my &lt;a href="http://weblogs.asp.net/justinsaraceno/archive/2009/05/14/upgrading-ssrs-manager-to-a-new-iis-server.aspx" target="_blank" mce_href="http://weblogs.asp.net/justinsaraceno/archive/2009/05/14/upgrading-ssrs-manager-to-a-new-iis-server.aspx"&gt;previous
post&lt;/a&gt; I blogged about my seemingly not so common problem where an SSRS database
is on one server, the Reports Manager is hosted on another server, and I need
to migrate the Reports Manager to a new IIS server.&amp;nbsp; Sound confusing?&amp;nbsp;
Well it was for someone who has never done that; plus it's no secret that SSRS
isn't the easiest beast to configure.&lt;/p&gt;

&lt;p&gt;After waisting pleanty of time researching what turned out to be oddities
(read: misconfigurations) of the new domain account SSRS services needed to run
under, I finally got it with the help of some online resources.&amp;nbsp; Here's a
play-by-play of what I ran in to when migrating the web end of SSRS to another
server:&lt;/p&gt;

&lt;p&gt;As I mentioned in the previous post, when attempting to initialize SSRS and
pointing to a Reports database already being used by another server's SSRS
service, SSRS assumes you are scaling out your web deployment.&amp;nbsp; Since I
didn't want to do that, I had to shut off the SSRS service on the old IIS box
before I could start it on the new server I was migrating to.&lt;/p&gt;

&lt;p&gt;Once started, I opened SSRS Configuration Manager and navigated to the
Initialization tab.&amp;nbsp; I saw both the old and new servers listed in the
Initialization list and deleted them both.&amp;nbsp; Next, I closed the SSRS
Configuration Manager and re-opened it to get a fresh look.&amp;nbsp; I went back
to the Initialization tab and saw only the new server listed and thought I was on
the road to success.&amp;nbsp; I pressed the Initialize button at the bottom of the
screen and I got an error with the key word in it:
RSReportServerNotActivated.&amp;nbsp; I had no clue what this meant.&amp;nbsp; Was the
server running a trial of SQL Server that wasn't registered?&amp;nbsp; No.&amp;nbsp;
Will the log files help me?&amp;nbsp; They didn't.&amp;nbsp; Well, let's Google
it!&amp;nbsp; And it brought me here:&lt;/p&gt;

&lt;p&gt;This MSDN article explaining &lt;a href="http://msdn.microsoft.com/en-us/library/ms157133%28SQL.90%29.aspx" target="_blank"&gt;how to initialize a Report Server&lt;/a&gt; is where I started.&amp;nbsp;
It's a short article worth a read for anyone doing this.&amp;nbsp; The article
didn't go deep in to my situation of migrating the web end of SSRS to another
server but it did give me another link discussing the RSReportServerNotActivated
error.&lt;/p&gt;

&lt;p&gt;That article was about &lt;a href="http://msdn.microsoft.com/en-us/library/ms159086%28SQL.90%29.aspx" target="_blank" mce_href="http://msdn.microsoft.com/en-us/library/ms159086(SQL.90).aspx"&gt;troubleshooting
initialization and encryption key errors&lt;/a&gt;. &amp;nbsp; What I got out of that
article was the new web server wasn't referencing the SSRS encryption keys (see
the SSRS Configuration Manager's Encryption Keys tab) and was therefore
failing.&amp;nbsp; The answer was to load those encryption keys on the new server
or delete them.&amp;nbsp; Since I didn't know where the key was, I ended up deleting
the reference to the encryption keys.&amp;nbsp; This wasn't as big of a deal as it
sounded because the only encrypted content I had was the connection string in a
report datasource object.&amp;nbsp; So after deleting the keys, I went back to the
initialization tab, initialized the server, and all was good to go - or so it
seemed.&lt;/p&gt;

&lt;p&gt;Now it was time for the moment of truth.&amp;nbsp; I opened up IE and navigated
to the local reports manager site.&amp;nbsp; The home page opened but it was almost
blank.&amp;nbsp; There was no link to add reports, no links for my existing reports.&amp;nbsp;
Time to hit Google again!&amp;nbsp; That's when I found this &lt;a href="http://social.msdn.microsoft.com/forums/en-US/sqlreportingservices/thread/ac4a55f7-6fc8-4099-8de4-6f99ebf0d8da/" target="_blank" mce_href="http://social.msdn.microsoft.com/forums/en-US/sqlreportingservices/thread/ac4a55f7-6fc8-4099-8de4-6f99ebf0d8da/"&gt;MSDN
forum article&lt;/a&gt; where someone had the same exact problem.&amp;nbsp; Turns out the
problem was solved with some IIS configuration setting changes for the Reports
and Reports Manager web sites.&amp;nbsp; Once I disabled anonymous access to those
sites, SSRS was able to authenticate me as a Reports admin and I was able to
see and manage everything.&lt;/p&gt;

&lt;p&gt;The final step was to reconfigure that reports datasource object that got
nuked when I deleted the reference to the encryption key.&amp;nbsp; Once I re-added the conection string to the
datasource, reports were being served from the new IIS box and I was good to
go!&lt;/p&gt;
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7094907" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/Reports+Server/default.aspx">Reports Server</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Migrating SSRS manager to a new IIS server</title><link>http://weblogs.asp.net/justinsaraceno/archive/2009/05/14/upgrading-ssrs-manager-to-a-new-iis-server.aspx</link><pubDate>Fri, 15 May 2009 02:13:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7087525</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=7087525</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2009/05/14/upgrading-ssrs-manager-to-a-new-iis-server.aspx#comments</comments><description>&lt;p&gt;We have a setup where I work where SSRS 2005 is running with the reports database on a database server and the report manager/reports are hosted on a separate IIS server.&amp;nbsp; This works out good because it avoids the need to run SQL Server on the IIS box.&lt;br&gt;&lt;br&gt;Now we’re upgrading to a new IIS web server and the move hasn’t been as straight-forward as I had hoped.&amp;nbsp; Since this isn’t a very common setup or scenario, I’ve been learning things the hard way during this move.&amp;nbsp; We are keeping the current IIS server up and running until the new web server gets tested.&lt;br&gt;&lt;br&gt;So I started out by installing the Report Server components on the new web server.&amp;nbsp; The install went fine until I started in to the Report Server Configuration Manager.&amp;nbsp; In the Config Manager you can set what database the report server should use.&amp;nbsp; I chose the current existing report server database on the separate SQL server.&amp;nbsp; It turns out, that was a mistake.&lt;br&gt;&lt;br&gt;I didn’t realize that because I was adding a second report manager/reports web site to be associated with the one reports database, SSRS assumed I was scaling out the report manager to a web farm.&amp;nbsp; That’s right, you can not have two instances of report manager/reports web site point to one single reports database unless you are scaling out your web operations.&amp;nbsp; It totally makes sense now that I know about it, but I don’t administer SSRS very often so I had no clue.&lt;br&gt;&lt;br&gt;Doing this not only set up SSRS scale-out settings on the new IIS box, but also modified the old IIS box’s SSRS settings to assume a scale-out deployment.&amp;nbsp; The result was all SSRS web interfaces were broken.&amp;nbsp; I proceeded by shutting down the SSRS service from the new IIS box so I could fix things on the older IIS box.&lt;br&gt;&lt;br&gt;On the older IIS box I had to get in to the Reporting Services Configuration Manager and navigate to the Initialization tab.&amp;nbsp; The tab showed it was trying to initialize SSRS on the local box and the new IIS box in order to scale out (which is not what I wanted to do).&amp;nbsp; I had to remove both items from the Initialization list, restart SSRS service, and things were working again the way they were before I started all this.&lt;br&gt;&lt;br&gt;So how am I going to get SSRS running on the new IIS box?&amp;nbsp; I see that I have two options.&amp;nbsp; One would be to shut down the SSRS service on the older IIS box and then reconfigure the new IIS box to use the existing reports database.&amp;nbsp; That will cause some down time that we can’t afford.&amp;nbsp; The other option is to create a new SSRS reports database on the database server and have the new IIS box utilize that.&amp;nbsp; It will be a little more work but seems to be the cleanest way to upgrade to a new IIS box for SSRS.&lt;/p&gt;&lt;p&gt;UPDATE: see the follow-up post to this here: &lt;a href="http://weblogs.asp.net/justinsaraceno/archive/2009/05/22/migrating-ssrs-manager-to-a-new-iis-server-part-2.aspx" mce_href="http://weblogs.asp.net/justinsaraceno/archive/2009/05/22/migrating-ssrs-manager-to-a-new-iis-server-part-2.aspx"&gt;http://weblogs.asp.net/justinsaraceno/archive/2009/05/22/migrating-ssrs-manager-to-a-new-iis-server-part-2.aspx &lt;/a&gt;&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7087525" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/Reports+Server/default.aspx">Reports Server</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>Linkbutton with image and text</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/11/05/linkbutton-with-image-and-text.aspx</link><pubDate>Wed, 05 Nov 2008 21:06:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6722150</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=6722150</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/11/05/linkbutton-with-image-and-text.aspx#comments</comments><description>&lt;p&gt;I ran across the need to have a linkbutton that contained an image and text. A little background... I was creating a file structure-like list in a repeater control.&amp;nbsp; Each row had to be clickable by the folder name or folder icon; just like in Windows Explorer.&lt;br&gt;&lt;/p&gt;&lt;p&gt;By default, the linkbutton has a Text property but this was of no help for trying to also squeeze in an image too.&amp;nbsp; But did you know you could do this with a linkbutton:&lt;/p&gt;&lt;p&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5CJUSTIN%7E1.SAR%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5CJUSTIN%7E1.SAR%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData"&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5CJUSTIN%7E1.SAR%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:DontVertAlignCellWithSp/&gt;
   &lt;w:DontBreakConstrainedForcedTables/&gt;
   &lt;w:DontVertAlignInTxbx/&gt;
   &lt;w:Word11KerningPairs/&gt;
   &lt;w:CachedColBalance/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val="Cambria Math"/&gt;
   &lt;m:brkBin m:val="before"/&gt;
   &lt;m:brkBinSub m:val="&amp;#45;-"/&gt;
   &lt;m:smallFrac m:val="off"/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val="0"/&gt;
   &lt;m:rMargin m:val="0"/&gt;
   &lt;m:defJc m:val="centerGroup"/&gt;
   &lt;m:wrapIndent m:val="1440"/&gt;
   &lt;m:intLim m:val="subSup"/&gt;
   &lt;m:naryLim m:val="undOvr"/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
  DefSemiHidden="true" DefQFormat="false" DefPriority="99"
  LatentStyleCount="267"&gt;
  &lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Normal"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="heading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 7"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 8"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" Name="toc 9"/&gt;
  &lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/&gt;
  &lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/&gt;
  &lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/&gt;
  &lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Strong"/&gt;
  &lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
   UnhideWhenUsed="false" Name="Table Grid"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/&gt;
  &lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/&gt;
  &lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/&gt;
  &lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/&gt;
  &lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
   UnhideWhenUsed="false" Name="Light Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
   UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
   UnhideWhenUsed="false" Name="Dark List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful List Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
   UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/&gt;
  &lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/&gt;
  &lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/&gt;
  &lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
   UnhideWhenUsed="false" QFormat="true" Name="Book Title"/&gt;
  &lt;w:LsdException Locked="false" Priority="37" Name="Bibliography"/&gt;
  &lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt;
&lt;!--
 /* Font Definitions */
 @font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:1;
	mso-generic-font-family:roman;
	mso-font-format:other;
	mso-font-pitch:variable;
	mso-font-signature:0 0 0 0 0 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:-1610611985 1073750139 0 0 159 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
--&gt;
&lt;/style&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:"Times New Roman";
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;asp&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;LinkButton&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="lbYear"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt;&lt;span style="color: red;"&gt;&lt;/span&gt; &lt;span style="color: red;"&gt;CausesValidation&lt;/span&gt;&lt;span style="color: blue;"&gt;="false"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;asp&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;Image&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="imgFolder"&lt;/span&gt;
&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt;
&lt;span style="color: red;"&gt;ImageUrl&lt;/span&gt;&lt;span style="color: blue;"&gt;="~/images/folder.jpg"&lt;/span&gt;
&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="background: yellow none repeat scroll 0% 0%; font-size: 10pt; font-family: 'Courier New'; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;#&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New';"&gt;
Container.DataItem &lt;span style="background: yellow none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;%&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;asp&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;:&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: rgb(163, 21, 21);"&gt;LinkButton&lt;/span&gt;&lt;span style="font-size: 10pt; font-family: 'Courier New'; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Here you see the LinkButton control acts like a template for the image control and text it needed to display.&lt;br&gt;Seriously, I know this isn't rocket science but it took me a few minutes to think about how this works because how often do you do this with the linkbutton control?&amp;nbsp; Enjoy!&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6722150" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/asp.net/default.aspx">asp.net</category></item><item><title>Google's Chrome Browser: First Impressions</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/09/02/google-s-chrome-browser-first-impressions.aspx</link><pubDate>Wed, 03 Sep 2008 02:48:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6594318</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=6594318</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/09/02/google-s-chrome-browser-first-impressions.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;First let me say WOW!&amp;nbsp; Chrome beta looks very promising.&amp;nbsp; I was first impressed before the browser's download was available by the Chrome &lt;A class="" href="http://www.google.com/googlebooks/chrome/" mce_href="http://www.google.com/googlebooks/chrome/"&gt;comic book&lt;/A&gt;.&amp;nbsp; It provides a great developer-centric explination to why Chrome is fast, secure, and quite possibly the future model&amp;nbsp;of all internet browsers.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Once I got it downloaded and installed (very easy process by the way), most of my favorite web sites rendered fast and seemlessly.&amp;nbsp; My favorite feature so far is being able to search from the address bar.&amp;nbsp; For instance, if you type in google and then &amp;lt;tab&amp;gt;, it will prompt you to enter a search term and will search for it via Google.&amp;nbsp; The same principle holds true for any web site you visit that has search enabled for it.&amp;nbsp; Once you visit the site and if it has searching capabilities, you can run a search from the browser address bar.&amp;nbsp; It works for non-search engine sites too; for instance it will work for searching&amp;nbsp;cnn.com.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Of course this beta isn't without its faults (or faults of non-confirming web sites?).&amp;nbsp; Here are some of them I have found so far:&lt;BR&gt;- In other tabbed browsers, if you close the browser and there are multiple tabs open, the browser warns that you are closing everything, not just the current tab.&amp;nbsp; Chrome doesn't do that but I wish it did.&lt;BR&gt;- It's new so some plugins naturally aren't available.&amp;nbsp; Silverlight, for instance.&lt;BR&gt;- I've noticed some very minor CSS conformity problems&lt;BR&gt;- I use a web site that has a free textbox-style editing control and the toolbar to edit the text wasn't visible&lt;BR&gt;- Hotmail: yeah it works but it prompts you that you aren't using a known browser and proceedes to display a stripped-down version of Hotmail.&amp;nbsp; Any site that relies on custom code to target certain browsers will&amp;nbsp;most likly&amp;nbsp;have a similar problem.&lt;/P&gt;
&lt;P mce_keep="true"&gt;So, I'm keeping the browser installed and will use it as much as possible because I see lots of potential here.&amp;nbsp; If you're a web developer: really - take a look at that Chrome comic book for an excellent explination of what Google has done here.&amp;nbsp; It's really impressive and way outside the box.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6594318" width="1" height="1"&gt;</description></item><item><title>ZoomIt</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/04/28/zoomit.aspx</link><pubDate>Mon, 28 Apr 2008 12:46:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6139054</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=6139054</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/04/28/zoomit.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;A couple weeks back &lt;A class="" title=BradA href="http://blogs.msdn.com/brada/default.aspx" mce_href="http://blogs.msdn.com/brada/default.aspx"&gt;Brad Abrams&lt;/A&gt; came to speak to the Triangle .NET Users Group (&lt;A class="" title=TriNUG href="http://www.trinug.org/" mce_href="http://www.trinug.org/"&gt;TriNUG&lt;/A&gt;).&amp;nbsp; During his presentation he used and breifly mentioned ZoomIt, a utility for zooming in to sections of your screen.&lt;BR&gt;I downloaded it and I've got to say ZoomIt is great.&amp;nbsp; I think it was a 3rd party utility at one point but now it's a free &lt;A class="" title=ZoomIt href="http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx" target=_blank mce_href="http://technet.microsoft.com/en-us/sysinternals/bb897434.aspx"&gt;Microsoft download&lt;/A&gt;.&amp;nbsp; If you've got a presentation in your future, it's a must have.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6139054" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/TRINUG/default.aspx">TRINUG</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/ZoomIt/default.aspx">ZoomIt</category></item><item><title>More Rain = Better Developer</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/04/06/more-rain-better-developer.aspx</link><pubDate>Sun, 06 Apr 2008 23:55:25 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6072401</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=6072401</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/04/06/more-rain-better-developer.aspx#comments</comments><description>&lt;p&gt;I think I figured out why Seattle is such a hot spot for technical innovation: it rains a lot.&lt;/p&gt;  &lt;p&gt;Raleigh's been having one of those patterns where it seems to be raining every weekend lately.&amp;#160; Usually that's bad news but we're emerging from a drought so I'm not going to complain.&amp;#160; There's only so much you can do when it's raining so I spent the weekend learning how to use &lt;a href="http://subsonicproject.com/" target="_blank"&gt;Subsonic&lt;/a&gt; and the Ajax Control Toolkit's &lt;a href="http://www.asp.net/AJAX/AjaxControlToolkit/Samples/CascadingDropDown/CascadingDropDown.aspx" target="_blank"&gt;Cascading Dropdown Extender&lt;/a&gt;.&amp;#160; And then I figured out how to use both of them together.&lt;/p&gt;  &lt;p&gt;Subsonic is a DAL code generator.&amp;#160; Usually when I hear the phrase 'code generator' I shudder.&amp;#160; I've dealt with some pretty nightmarish code generation tools in my years of development.&amp;#160; Subsonic has really made me rethink how I view code generation, at least for the DAL.&amp;#160; It is surprisingly easy to use and and I really like their Query Tool; it's very T-SQL orientated.&amp;#160; The fast track to learning Subsonic is viewing and practicing along with their tutorial web casts.&amp;#160; The best ones to start off with are the &lt;a href="http://www.wekeroad.com/ss_setup2.html" target="_blank"&gt;Getting Started&lt;/a&gt; and &lt;a href="http://www.wekeroad.com/query1.htm" target="_blank"&gt;Database Query Tool&lt;/a&gt; web casts.&lt;/p&gt;  &lt;p&gt;As the rain continued I caught the web casts for the Ajax Toolkit's Cascading Dropdown Extender.&amp;#160; The basics are covered in a &lt;a href="http://www.asp.net/learn/ajax-videos/video-77.aspx" target="_blank"&gt;web cast that binds to an XML file data source&lt;/a&gt;.&amp;#160; There is also a &lt;a href="http://www.asp.net/learn/ajax-videos/video-278.aspx" target="_blank"&gt;new web cast&lt;/a&gt; explaining how to bind to a SQL data source.&amp;#160; After watching both of them I was able to do the data binding via Subsonic.&amp;#160; Maybe that should be a future blog post for me?&lt;/p&gt;  &lt;p&gt;So anyway, thanks to the rain and some web casts I'm a little smarter after this weekend.&amp;#160; Sadly, it also helped that my Red Sox were swept by Toronto during this weekend's series.&amp;#160; I just picked up the MLB package on TV for the season but couldn't watch the slaughter.&amp;#160; So that meant more time to watch web casts; oh the fun!&amp;#160; I hope next weekend is sunny.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6072401" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/.net/default.aspx">.net</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/AJAX+Control+Toolkit/default.aspx">AJAX Control Toolkit</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/Subsonic/default.aspx">Subsonic</category></item><item><title>Help Wanted: ASP.NET Experience Not Considered</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/03/27/help-wanted-asp-net-experience-not-considered.aspx</link><pubDate>Fri, 28 Mar 2008 00:54:19 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6038968</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>11</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=6038968</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/03/27/help-wanted-asp-net-experience-not-considered.aspx#comments</comments><description>&lt;p&gt;One way to make sure you're current in your developer skills is to surf the job sites.&amp;#160; I'm very happy with my current position but I know I need to keep my skills current and marketable so every once in a while I surf the job boards and see what technologies are in hot demand.&amp;#160; If I'm unfamiliar with a skill or technology, I make an effort to get on it.   &lt;br /&gt;    &lt;br /&gt;Usually doing this results in no shockers but I just found a recent exception.&amp;#160; One local company is seeking a Principal Software Engineer with strong C# experience in .NET 1.1 and 2.0.&amp;#160; Then the ad goes on to state, &amp;quot;&lt;strong&gt;Please Note: ASP.NET experience not considered&lt;/strong&gt;&amp;quot;.&amp;#160; What?!?&amp;#160; How can this be?&amp;#160; An ASP.NET developer doesn't need to know .NET code?&lt;/p&gt;  &lt;p&gt;Now I can maybe see someone looking for a C# developer not considering Classic ASP experience as relevant, but ASP.NET?&amp;#160; If you are on the level to be considered for a Principal Software Engineer, the font-end interface of your development projects shouldn't matter.&amp;#160; That's the beauty of OO and multi-tiered programming.&amp;#160; A DAL and BAL written in C# should be able to be plugged in to a Windows form app or Web form app with little or no changes.&amp;#160; In today's .NET world a Windows form developer and Web form developer need the same C# skills because it's all the same code base, same objects, same everything until you get to the UI.&amp;#160; I've switched back and forth from Web and Windows forms development and I prefer the stateless challenges of Web form development but never considered either type of app less demanding of coding skills.&lt;/p&gt;  &lt;p&gt;Does anyone else think different?&amp;#160; I can't even come up with a remotely feasible argument why ASP.NET experience should be discounted for a senior level C# coder position.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6038968" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/.net/default.aspx">.net</category></item><item><title>ReorderList with ObjectDataSource</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/02/22/reorderlist-with-objectdatasource.aspx</link><pubDate>Sat, 23 Feb 2008 01:36:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5842165</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=5842165</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/02/22/reorderlist-with-objectdatasource.aspx#comments</comments><description>&lt;P&gt;If you ask me, the AJAX Control Toolkit's ReorderList is the most under appreciated control in the Toolkit.&amp;nbsp; Compared to many of the other controls, it gets no love.&amp;nbsp; The Toolkit demo site's sample for this control isn't really all that helpful and third party samples are sparse.&amp;nbsp; And how do you bind it with an ObjectDataSource control?&amp;nbsp; Read on to find out... &lt;BR&gt;&lt;BR&gt;The ReorderList had a 'real word' use for me.&amp;nbsp; There was a situation where I inherited a web form with a priority ranked list that was composed of a list of items that each had a textbox control to the left of them.&amp;nbsp; The textbox contained the priority order for the item in the list.&amp;nbsp; If the user wanted to change the order, he or she would change the numbers in the textboxes and then press a Save button which updated the priority order for the list.&amp;nbsp; Obviously, the users were having a difficult time making this work. &lt;BR&gt;&lt;BR&gt;In comes the ReorderList, the magical key to this situation.&amp;nbsp; But how does this work; the Toolkit sample site didn't go far enough.&amp;nbsp; I wanted to bind this with an ObjectDataSource control and it just wasn't working.&amp;nbsp; Well I eventually figured it out and the first thing I thought of was I needed to write an article about this.&amp;nbsp; Of course this was over 6 months ago but now that I have this blog I thought that someone may benefit from my pain.&lt;/P&gt;
&lt;P&gt;I am including the sample project for this but let's walk through it. &lt;BR&gt;First thing's first - we need some data to reorder.&amp;nbsp; How about a Wish List?&amp;nbsp; The below image shows a WishList table which is included in the project in a SQLExpress database.&amp;nbsp; There are only three columns: WishID (uniqueidentifier) which is the primary key; WishDescription (varchar) which is the wish text; and WishOrder (int) which holds the order of my wishes.&amp;nbsp; It is pictured here:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DatabseTable_6.jpg" mce_href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DatabseTable_6.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=110 alt=DatabseTable src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DatabseTable_thumb_2.jpg" width=386 border=0 mce_src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DatabseTable_thumb_2.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;So next create a class in App_Code for the ObjectDataSource to bind to.&amp;nbsp; I've called it ReorderClass.&amp;nbsp; First we need to have a method return a DataSet containing the wish data in from the database.&amp;nbsp; Here is the code for that: &lt;BR&gt;&lt;A href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DatasetCode_2.jpg" mce_href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DatasetCode_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=216 alt=DatasetCode src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DatasetCode_thumb.jpg" width=599 border=0 mce_src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DatasetCode_thumb.jpg"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;BR&gt;Since the order number from the ReorderList needs to be saved back in the database, we also need an Update method for our ObjectDataSource control.&amp;nbsp; &lt;STRONG&gt;The key here that many people miss is the Update method MUST have a method parameter for each of the data items that were selected in the above DataSet.&lt;/STRONG&gt;&amp;nbsp; Not only is that true, but the method signatures must also be the same data type of the items returned from the Select method's DataSet.&amp;nbsp; Yes, even if you are not updating all the fields, you still need all the Selected fields in the Update method's signature.&amp;nbsp; So the DataSet in the Select method returned WishID, WishDescription, and WishOrder.&amp;nbsp; So, this Update method needs all three of those fields in its method signature.&amp;nbsp; The three method parameters are WishID which is of type Guid, WishDescription of type string, and WishOrder of type integer.&amp;nbsp; The code for this is here:&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/UpdateCode_4.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=419 alt=UpdateCode src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/UpdateCode_thumb_1.jpg" width=814 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now it's time for the ReorderList control.&amp;nbsp; You can bind data to the ReorderList but unlike the GridView control, there is no built-in auto binding option.&amp;nbsp; You have to create the template to bind the data to.&amp;nbsp; Here I've created a table for that contains the Wish Order number and Wish Description.&amp;nbsp; Also note that the ReorderList has properties including SortOrderField and DataKeyField.&amp;nbsp; The SortOrderField needs to be bound to the data item containing the sort order for your items.&amp;nbsp; The DataKeyField needs to be bound to your data item's identifier field (most likely its primary key in the database).&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/ControlCode_4.jpg"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=557 alt=ControlCode src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/ControlCode_thumb_1.jpg" width=872 border=0&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now we're going to bind this to an ObjectDataSource control.&amp;nbsp; Notice that the Select Method is the method that returns the DataSet.&amp;nbsp; Also notice that the UpdateParameters match the fields that were in the Select statement.&amp;nbsp; Since there is no option for Type of uniqueidentifier, the wishID Parameter has been set to type of Object.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DataSourceCode_2.jpg" mce_href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DataSourceCode_2.jpg"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=153 alt=DataSourceCode src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DataSourceCode_thumb.jpg" width=732 border=0 mce_src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/DataSourceCode_thumb.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Now that it's all together, it will load, reorder, and save the reorder.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/image_2.png" mce_href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/image_2.png"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=108 alt=image src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/image_thumb.png" width=246 border=0 mce_src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/ReorderListwithObjectDataSource_106DA/image_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's not the simplest tool in the Toolkit to use but it is one of the coolest for sure.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5842165" width="1" height="1"&gt;</description><enclosure url="http://weblogs.asp.net/justinsaraceno/attachment/5842165.ashx" length="671204" type="application/x-zip-compressed" /><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/asp.net/default.aspx">asp.net</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/.net/default.aspx">.net</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/AJAX+Control+Toolkit/default.aspx">AJAX Control Toolkit</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/ReorderList/default.aspx">ReorderList</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/ObjectDataSource/default.aspx">ObjectDataSource</category></item><item><title>Code Camp - so what if they'll laugh at you?</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/02/20/code-camp-so-what-if-they-ll-laugh-at-you.aspx</link><pubDate>Wed, 20 Feb 2008 21:51:32 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5830600</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=5830600</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/02/20/code-camp-so-what-if-they-ll-laugh-at-you.aspx#comments</comments><description>&lt;p&gt;I work from my home office so I'm making more of an effort to get out to any .Net developer event in the Raleigh, NC area.&amp;#160; So far this year I have been to an MSDN event, started attending the Triangle .Net Users Group (&lt;a href="http://www.trinug.org" target="_blank"&gt;TRINUG&lt;/a&gt;), and just last weekend went to a Code Camp.    &lt;br /&gt;    &lt;br /&gt;This is the second Code Camp I've actually been to.&amp;#160; Both of them in Raleigh; both put together by TRINUG.    &lt;br /&gt;    &lt;br /&gt;Now I have to admit, when friends asked me what I'm doing on a Saturday and I said, &amp;quot;Code Camp&amp;quot;, well you can imagine the responses I got.&amp;#160; But really, how was I going to miss this Code Camp?&amp;#160; I don't know how TRINUG did it, but it attracted 5 Microsoft Regional Directors, 11 Microsoft MVP's, plus over a half dozen other other speakers to present at Code Camp.&amp;#160; What a lineup!&amp;#160; And to top it off, Carl Franklin from .&lt;a href="http://www.dotnetrocks.com/" target="_blank"&gt;NET Rocks&lt;/a&gt; was the keynote speaker.&amp;#160; AND the crew recorded an episode of &lt;a href="http://www.dnrtv.com/" target="_blank"&gt;dnrTV&lt;/a&gt; during lunch with special guest Migueal Castro.&amp;#160; It was like a .Net nerd rock concert with all the big names in the house; all for free.    &lt;br /&gt;    &lt;br /&gt;The day started at 7:30 am and lasted until about 6:15 with 6 tracks of 5 sessions plus lunch was provided.&amp;#160; It was a great assembly of people sharing ideas and knowledge.&amp;#160; I learned a few new things and met some great people.&amp;#160; It was well worth my Saturday.    &lt;br /&gt;    &lt;br /&gt;So these Code Camps are becoming popular and spring time seems to be a popular Camp date.&amp;#160; Check with your local .Net users group if or when one is being held near you.&amp;#160; Even if you have to travel, it's well worth the effort and expense because you &lt;strong&gt;&lt;em&gt;will&lt;/em&gt;&lt;/strong&gt; learn something and IT training ain't cheap these days!    &lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5830600" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/TRINUG/default.aspx">TRINUG</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/.net/default.aspx">.net</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/Code+Camp/default.aspx">Code Camp</category></item><item><title>VS 2008 Web Development Hotfix Roll-up</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/02/09/vs-2008-web-development-hotfix-roll-up.aspx</link><pubDate>Sat, 09 Feb 2008 14:21:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5744272</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=5744272</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/02/09/vs-2008-web-development-hotfix-roll-up.aspx#comments</comments><description>&lt;SPAN style="FONT-FAMILY: Arial"&gt;&lt;FONT size=3&gt;Scott Guthrie posted about a &lt;/FONT&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2008/02/08/vs-2008-web-development-hot-fix-roll-up-available.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2008/02/08/vs-2008-web-development-hot-fix-roll-up-available.aspx"&gt;&lt;FONT color=#800080 size=3&gt;VS 2008 Web Development Hotfix Roll-up&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt; that is available for download.&lt;BR&gt;I've been using Visual Studio 2008 for about a month and was pleased with its new features but disappointed with its performance.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;At times I wondered if it was my computer but now it is clear: there were bugs in Visual Studio.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I’m glad Microsoft is actively knocking out these problems because I really like VS 2008.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5744272" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Paint.NET</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/01/25/paint-net.aspx</link><pubDate>Sat, 26 Jan 2008 04:20:20 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5653781</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=5653781</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/01/25/paint-net.aspx#comments</comments><description>&lt;p&gt;In the past I haven't really done any of the graphics design for the web sites I work on.&amp;#160; That could be changing with my discovery of open source &lt;a href="http://www.getpaint.net/" target="_blank"&gt;Paint.NET&lt;/a&gt;.     &lt;br /&gt;At first I thought Paint.NET was just MS Paint on steroids.&amp;#160; I've discovered that it is far more advanced like Adobe Photoshop than MS Paint.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tools:&lt;/strong&gt;     &lt;br /&gt;Paint.NET has many of the same tools as many non-freeware applications including the Magic Wand, a curve tool, and gradient tool:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/Paint.NET_14275/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="353" alt="image" src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/Paint.NET_14275/image_thumb_2.png" width="122" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;There is even an unlimited history window to track and undo or redo all of your changes to an image; just like in Photoshop:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/Paint.NET_14275/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="196" alt="image" src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/Paint.NET_14275/image_thumb_3.png" width="185" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;And possibly best of all, you can manage an image's layers.&amp;#160; If you don't know what layers are for images, it's a great time saver and organizer.&amp;#160; You can make each component of an image as a layer.&amp;#160; For example, if you have a photograph and wanted to add text to it, you could add the text in a new layer.&amp;#160; If you needed to remove the text you can simply remove that layer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/Paint.NET_14275/image_10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="196" alt="image" src="http://weblogs.asp.net/blogs/justinsaraceno/WindowsLiveWriter/Paint.NET_14275/image_thumb_4.png" width="185" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Community:&lt;/strong&gt;     &lt;br /&gt;Paint.NET is updated frequently partly as a result of its wide community base support.&amp;#160; There is a very active &lt;a href="http://paintdotnet.forumer.com/index.php" target="_blank"&gt;user forum&lt;/a&gt; group that answer user questions, provides tutorials and examples, and distribute extensions.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt;     &lt;br /&gt;I am by no stretch of the imagination a graphics software expert.&amp;#160; However, I do know that this open source software has the functionality found in many of the high-end graphics software suites.&amp;#160; This has been perfect for me because the price is right and has great community support.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5653781" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/paint.net/default.aspx">paint.net</category></item><item><title>Hello Secure World</title><link>http://weblogs.asp.net/justinsaraceno/archive/2008/01/23/hello-secure-world.aspx</link><pubDate>Thu, 24 Jan 2008 01:24:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:5641541</guid><dc:creator>justinsaraceno</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/justinsaraceno/rsscomments.aspx?PostID=5641541</wfw:commentRss><comments>http://weblogs.asp.net/justinsaraceno/archive/2008/01/23/hello-secure-world.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;First, welcome to my new blog on the &lt;A href="http://www.asp.net/"&gt;www.asp.net&lt;/A&gt; site.&amp;nbsp; It was set up for me by Microsoft's &lt;A class="" href="http://joeon.net/" target=_blank mce_href="http://joeon.net/"&gt;Joe Stagner&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;So what's with Hello Secure World?&amp;nbsp; Well this week &lt;A class="" href="http://www.msdnevents.com/" mce_href="http://www.msdnevents.com"&gt;MSDN Events&lt;/A&gt; brought their roadshow here to Raleigh, NC.&amp;nbsp; I have attended these MSDN events in the past but haven't made it to one in over a year.&amp;nbsp; They usually are packed with an insight to the latest and greatest developer topics but I must admit, this one was a little stale.&amp;nbsp; Content ranged from ASP.NET security (wasn't that a big MSDN event back in 2004) to ASP.NET 2.0 Application Services.&amp;nbsp; Yeah I picked up a few tidbits of info but we are in the ASP.NET 3.5 world now, aren't we?&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;The best thing I got out of the event was a link to Microsoft's &lt;A class="" href="http://www.hellosecureworld.com/" mce_href="http://www.hellosecureworld.com"&gt;Hello Secure World&lt;/A&gt; web site.&amp;nbsp; It's packed with info on how to secure your applications.&amp;nbsp; There are video tutorials, code samples, the works.&amp;nbsp; Everything you need to get started on putting up a defense for XSS, SQL Injection, one-click attacks, and more are right there.&amp;nbsp; The next best thing I walked away with was a Hello Secure World t-shirt.&amp;nbsp; Now I'll never forget that URL!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5641541" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/msdn/default.aspx">msdn</category><category domain="http://weblogs.asp.net/justinsaraceno/archive/tags/asp.net/default.aspx">asp.net</category></item></channel></rss>