<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://pontonetpt.com/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>Guilherme Cardoso, Blog PT</title><link>http://pontonetpt.com/blogs/guilhermecardoso/default.aspx</link><description /><dc:language>pt</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Walppaper - Calendários de Agosto</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/08/02/walppaper-calend-225-rios-de-agosto.aspx</link><pubDate>Mon, 02 Aug 2010 15:04:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39318</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39318</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/08/02/walppaper-calend-225-rios-de-agosto.aspx#comments</comments><description>&lt;p&gt;Mais uma vez vou partilhar alguns calend&amp;aacute;rios publicados na SmashingMagazine do m&amp;ecirc;s de Agosto.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;p&gt;August Sentense - Autor:  &lt;a href="http://sentense.me/"&gt;Temeshi&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/august-sentense.png"&gt;&lt;img style="display:inline;" alt="August-sentense in  Desktop Wallpaper Calendar: August 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/august-sentense.png" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/august-sentense.png"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-calendar-1024x768.png"&gt;1024&amp;times;768&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-calendar-1280x800.png"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-calendar-1280x960.png"&gt;1280&amp;times;960&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-calendar-1280x1024.png"&gt;1280&amp;times;1024&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-calendar-1400x1050.png"&gt;1400&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-calendar-1440x900.png"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-calendar-1600x1200.png"&gt;1600&amp;times;1200&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-calendar-1680x1050.png"&gt;1680&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-calendar-1920x1200.png"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-nocal-1024x768.png"&gt;1024&amp;times;768&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-nocal-1280x800.png"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-nocal-1280x960.png"&gt;1280&amp;times;960&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-nocal-1280x1024.png"&gt;1280&amp;times;1024&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-nocal-1400x1050.png"&gt;1400&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-nocal-1440x900.png"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-nocal-1600x1200.png"&gt;1600&amp;times;1200&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-nocal-1680x1050.png"&gt;1680&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-august-sentense-nocal-1920x1200.png"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Relax, It&amp;rsquo;s Summer - Autora: &lt;a href="http://www.iphonewallpaperdesigns.com/"&gt;Sasha Bell&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/relax-its-summer.jpg"&gt;&lt;img style="display:inline;" alt="Relax-its-summer in  Desktop Wallpaper Calendar: August 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/relax-its-summer.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/relax-its-summer.jpg"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-calendar-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-calendar-2560x1600.jpg"&gt;2560&amp;times;1600&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-nocal-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-relax-its-summer-nocal-2560x1600.jpg"&gt;2560&amp;times;1600&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;M&amp;eacute;xico 1963 - Autor:  &lt;a href="http://www.akimaruri.com/"&gt;Aki&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/mexico-1963.jpg"&gt;&lt;img style="display:inline;" alt="Mexico-1963 in  Desktop Wallpaper Calendar: August 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/mexico-1963.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/mexico-1963.jpg"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-calendar-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-calendar-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-nocal-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-nocal-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-mexico-1963-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SinGiNg SuNFloWeR - Autor: &lt;a href="http://www.pietjeprecies.nl/"&gt;Pietje Precies&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/singingsunflower.jpg"&gt;&lt;img style="display:inline;" alt="Singingsunflower in  Desktop Wallpaper Calendar: August 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/singingsunflower.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/singingsunflower.jpg"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-calendar-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-calendar-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-calendar-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-nocal-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-nocal-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-nocal-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-singingsunflower-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Beach Time - Autor: &lt;a href="http://www.iphonewallpaperdesigns.com/"&gt;Sasha Bell&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/beach-time.jpg"&gt;&lt;img style="display:inline;" alt="Beach-time in  Desktop Wallpaper Calendar: August 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/beach-time.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-august-10/full/beach-time.jpg"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-beach-time-calendar-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-beach-time-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-beach-time-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-beach-time-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-beach-time-nocal-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-beach-time-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-beach-time-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;, &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/august10/august-10-beach-time-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Fonte: &lt;/b&gt;&lt;a target="_blank" href="http://www.smashingmagazine.com/2010/07/31/desktop-wallpaper-calendar-august-2010/"&gt;http://www.smashingmagazine.com/2010/07/31/desktop-wallpaper-calendar-august-2010/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39318" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Wallpappers/default.aspx">Wallpappers</category></item><item><title>LINQ - Agrupar por meses</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/16/linq-agrupar-por-meses.aspx</link><pubDate>Fri, 16 Jul 2010 14:20:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39253</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39253</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/16/linq-agrupar-por-meses.aspx#comments</comments><description>&lt;p&gt;Neste poste vou mostrar um exemplo de uma instru&amp;ccedil;&amp;atilde;o LINQ para agrupar uma lista por meses, contar os registos de cada grupo e somar valores (neste exemplo &amp;eacute; dinheiro).&lt;br /&gt;Est&amp;aacute; a ser primeiro ordenado por anos, e depois por meses.&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;var encomendas &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; from enc &lt;span style="color:#bb7977;font-weight:bold;"&gt;in&lt;/span&gt; Lista&lt;br /&gt;                                 group enc by &lt;span style="color:#bb7977;font-weight:bold;"&gt;new&lt;/span&gt;&lt;br /&gt;                                                  &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                                                      enc&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;DataPagamento&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Value&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Year&lt;span style="color:#ff0080;font-weight:bold;"&gt;,&lt;/span&gt;&lt;br /&gt;                                                      enc&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;DataPagamento&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Value&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Month&lt;br /&gt;                                                  &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;                                 into g&lt;br /&gt;                                 select &lt;span style="color:#bb7977;font-weight:bold;"&gt;new&lt;/span&gt;&lt;br /&gt;                                            &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;                                                Mes &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; g&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Select&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;n &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&amp;gt;&lt;/span&gt; n&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;DataPagamento&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Value&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Month&lt;span style="color:#ff0080;font-weight:bold;"&gt;).&lt;/span&gt;&lt;span style="color:#004466;"&gt;First&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(),&lt;/span&gt;&lt;br /&gt;                                                TotalLiquido &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; g&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Sum&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;n &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&amp;gt; (&lt;/span&gt;Decimal&lt;span style="color:#ff0080;font-weight:bold;"&gt;)&lt;/span&gt; n&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;TotalLiquido&lt;span style="color:#ff0080;font-weight:bold;"&gt;),&lt;/span&gt;&lt;br /&gt;                                                TotalEncomendas &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; g&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Count&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;()&lt;/span&gt;&lt;br /&gt;                                            &lt;span style="color:#ff0080;font-weight:bold;"&gt;};&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39253" width="1" height="1"&gt;</description></item><item><title>ASP.NET - Actualizar UpdatePanel por codebehind com imagem "Loading"</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/07/asp-net-actualizar-updatepanel-por-codebehind-com-imagem-quot-loading-quot.aspx</link><pubDate>Wed, 07 Jul 2010 14:19:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39216</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39216</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/07/asp-net-actualizar-updatepanel-por-codebehind-com-imagem-quot-loading-quot.aspx#comments</comments><description>&lt;p&gt;Por vezes, temos de criar v&amp;aacute;rios UpdatePanel nas nossas p&amp;aacute;ginas, principalmente quando utilizamos v&amp;aacute;rios ContentTemplate na MasterPage.&lt;br /&gt;Actualizar o controlo UpdatePanel por codebehind &amp;eacute; bastante simples.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Primeiro temos de definir o UpdateMode como conditional, de modo a que fique assim:&lt;b&gt; &amp;lt;asp:UpdatePanel ID=&amp;quot;UpdatePanel1&amp;quot; runat=&amp;quot;server&amp;quot; UpdateMode=&amp;quot;Conditional&amp;quot;&amp;gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Quando o quisermos actualizar por codebehind, s&amp;oacute; temos de recorrer ao m&amp;eacute;todo Update e depois fazer DataBind.&lt;br /&gt;&lt;b&gt;UpdatePanel2.Update();&lt;br /&gt;UpdatePanel2.DataBind();&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enquanto ele est&amp;aacute; a actualizar, podemos mostrar uma imagem em no centro do ecr&amp;atilde;. Muitas vezes &amp;eacute; utilizado com c&amp;iacute;rculos em constante movimento, outras vezes com imagens a dizer &amp;quot;Loading..&amp;quot; ou &amp;quot;A Actualizar..&amp;quot;.&lt;br /&gt;Para isto s&amp;oacute; precisamos de utilizar um UpdateProgress que vem incluido na .NET 3.5 e o controlo AlwaysVisibleControlExtender da AjaxControlToolkit (download aqui) para manter sempre a imagem no centro do ecr&amp;atilde; e fixa.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;asp:UpdateProgress&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;DynamicLayout&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;ID&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;UpdateProgress2&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;runat&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;
    &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;ProgressTemplate&amp;gt;&lt;/span&gt;
            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;asp:Image&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;ID&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;ImagemActualizar&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;runat&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;ImageUrl&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;~/Imagens/ajax-loader.gif&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/ProgressTemplate&amp;gt;&lt;/span&gt;
&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/asp:UpdateProgress&amp;gt;&lt;/span&gt;

&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;cc1:AlwaysVisibleControlExtender&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;ID&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;AlwaysVisibleControlExtender1&amp;quot;&lt;/span&gt;
 &lt;span style="color:#8080c0;font-weight:bold;"&gt;runat&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;TargetControlID&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;UpdateProgress2&amp;quot;&lt;/span&gt;
 &lt;span style="color:#8080c0;font-weight:bold;"&gt;HorizontalSide&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;Center&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;VerticalSide&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;Middle&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;HorizontalOffset&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/cc1:AlwaysVisibleControlExtender&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;p&gt;Podemos declarar estes dois controlos no inicio do conte&amp;uacute;do de uma MasterPage, que depois &amp;eacute; aplicado &amp;aacute;s outras p&amp;aacute;ginas todas. &lt;/p&gt;
&lt;p&gt;Para gerarem as imagens, t&amp;ecirc;m bastantes websites com geradores que d&amp;atilde;o logo o endere&amp;ccedil;o da imagem j&amp;aacute; em .gif ou .png:&lt;br /&gt;&lt;a href="http://ajaxload.info/"&gt;http://ajaxload.info/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.loadinfo.net/"&gt;http://www.loadinfo.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sanbaldo.com/wordpress/1/ajax_gif/"&gt;http://www.sanbaldo.com/wordpress/1/ajax_gif/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.webscriptlab.com/"&gt;http://www.webscriptlab.com/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39216" width="1" height="1"&gt;</description></item><item><title>SQL Server 2005 Management Studio Express - Erro 29506 </title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/06/sql-server-2005-management-studio-express-erro-29506.aspx</link><pubDate>Tue, 06 Jul 2010 14:16:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39204</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39204</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/06/sql-server-2005-management-studio-express-erro-29506.aspx#comments</comments><description>&lt;p&gt;Num post anterior (&lt;a target="_blank" href="http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/06/windows-server-2003-express-e-windows-7.aspx"&gt;link&lt;/a&gt;) escrevi sobre um problema de compatibilidade entre o SQL Server 2005 Express e o Windows 7. Al&amp;eacute;m deste problema, podemos receber um erro ao instalar o &lt;b&gt;SQL Server 2005 Management Studio Express&lt;/b&gt;, com o c&amp;oacute;digo &lt;b&gt;29506&lt;/b&gt;.&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;img src="http://wmug.co.uk/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.25/SQLMSE_5F00_Vista.jpg" style="max-width:550px;" border="0" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Este erro deriva do facto de ser um pacote de instala&amp;ccedil;&amp;atilde;o, e n&amp;atilde;o podermos executar como administrador indo &amp;aacute;s propriedades do pacote &lt;i&gt;&amp;quot;Executar como Administrador&amp;quot;&lt;/i&gt;.&lt;br /&gt;No entanto a solu&amp;ccedil;&amp;atilde;o &amp;eacute; bastante simples:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Menu Iniciar -&amp;gt; Todos os Programas -&amp;gt; Acess&amp;oacute;rios&lt;/li&gt;
&lt;li&gt;Com um click na linha de comandos escolhemos &lt;i&gt;&amp;quot;Executar como Administrador&amp;quot;&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;Na consola alteramos a directoria para onde se encontra o pacote de instala&amp;ccedil;&amp;atilde;o (por defeito com o nome &lt;b&gt;SQLServer2005_SSMSEE&lt;/b&gt; ou &lt;b&gt;SQLServer2005_SSMSEE_x64&lt;/b&gt;). Para n&amp;atilde;o complicar muito, o melhor &amp;eacute; colar o pacote de instala&amp;ccedil;&amp;atilde;o na raiz do &lt;b&gt;C:&lt;/b&gt; e para mudar-mos para essa directoria, executamos o comando na linha de comandos &lt;b&gt;cd c:\&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Agora vamos executar o pacote. Se for o pacote normal, fazemos o comando (temos de escrever o ponto final como est&amp;aacute; a negrito)&amp;nbsp; &lt;b&gt;.\SQLServer2005_SSMSEE.msi &lt;br /&gt;&lt;/b&gt;Se for a vers&amp;atilde;o 64 bits, o comando &amp;eacute; .&lt;b&gt;\SQLServer2005_SSMSEE_x64.msi &lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A instala&amp;ccedil;&amp;atilde;o vai correr ent&amp;atilde;o com privil&amp;eacute;gios de Administrador, e sem problemas.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39204" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category></item><item><title>SQL Server 2005 Express e Windows 7</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/06/windows-server-2003-express-e-windows-7.aspx</link><pubDate>Tue, 06 Jul 2010 13:04:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39200</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39200</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/06/windows-server-2003-express-e-windows-7.aspx#comments</comments><description>&lt;p&gt;Para quem utiliza o SQL Server 2005 com o Windows 7 deve ter reparado no aviso no in&amp;iacute;cio da instala&amp;ccedil;&amp;atilde;o. &lt;br /&gt;&amp;Eacute; necess&amp;aacute;rio correr o execut&amp;aacute;vel em modo de compatibilidade. Fica aqui a dica para quem quiser instalar o SQL Server 2005 Express numa m&amp;aacute;quina com o Windows 7 (ou Vista) instalados.&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;a href="http://pontonetpt.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/0042.winserv2003.png"&gt;&lt;img src="http://pontonetpt.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/0042.winserv2003.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;
O download pode ser feito aqui: &lt;a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?familyid=220549b5-0b07-4448-8848-dcc397514b41&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=220549b5-0b07-4448-8848-dcc397514b41&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39200" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/SQL+Server+2005/default.aspx">SQL Server 2005</category></item><item><title>Walppaper - Calendários de Julho</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/02/walppaper-calend-225-rios-de-julho.aspx</link><pubDate>Fri, 02 Jul 2010 08:03:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39191</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39191</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/02/walppaper-calend-225-rios-de-julho.aspx#comments</comments><description>&lt;p&gt;Como fiz no m&amp;ecirc;s de Junho, este M&amp;ecirc;s vou voltar a postar alguns wallpapers.&lt;br /&gt;Podem ver o artigo da SmashingMagazine &lt;a target="_blank" href="http://www.smashingmagazine.com/2010/06/30/desktop-wallpaper-calendar-july-2010/"&gt;aqui (link)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;p&gt;Some Old Stuff - autor: &lt;a href="http://ataldathais.deviantart.com/"&gt;Thais Trizoli&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/some-old-stuff.jpg"&gt;&lt;img style="display:inline;" alt="Some-old-stuff in Desktop Wallpaper Calendar: July 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/some-old-stuff.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/some-old-stuff.jpg"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-calendar-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-calendar-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-nocal-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-nocal-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-some-old-stuff-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Moving Iceberg - Autor: &lt;a href="http://denakeren.deviantart.com/"&gt;M. Nur Lanta Adena&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/moving-iceberg.jpg"&gt;&lt;img style="display:inline;" alt="Moving-iceberg in Desktop Wallpaper Calendar: July 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/moving-iceberg.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/moving-iceberg.jpg"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-calendar-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-nocal-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-moving-iceberg-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Summer Days - Autor: &lt;a href="http://www.thesashabell.deviantart.com/"&gt;Sasha Bell&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/summer-days.jpg"&gt;&lt;img style="display:inline;" alt="Summer-days in Desktop Wallpaper Calendar: July 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/summer-days.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/summer-days.jpg"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-calendar-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-nocal-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-summer-days-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kings New Clothes - Autor: &lt;a href="http://www.yurikleb.com/"&gt;Yuri Klebanov&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/kingsnewclothes.jpg"&gt;&lt;img style="display:inline;" alt="Kingsnewclothes in Desktop Wallpaper Calendar: July 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/kingsnewclothes.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/kingsnewclothes.jpg"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-calendar-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-calendar-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio:&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-nocal-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-nocal-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-kingsnewclothes-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In the Village - Autor:  &lt;a href="http://www.cheloveche.ru/"&gt;NataliyaCS&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/in-the-village.jpg"&gt;&lt;img alt="In-the-village in Desktop Wallpaper Calendar: July 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/in-the-village.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-july-10/full/in-the-village.jpg"&gt;pr&amp;eacute;-visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-calendar-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-calendar-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-calendar-1600x1050.jpg"&gt;1600&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-nocal-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-nocal-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-nocal-1600x1050.jpg"&gt;1600&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/july10/july-10-in-the-village-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;b&gt;Fonte:&lt;/b&gt; &lt;a target="_blank" href="http://www.smashingmagazine.com/2010/06/30/desktop-wallpaper-calendar-july-2010/"&gt;http://www.smashingmagazine.com/2010/06/30/desktop-wallpaper-calendar-july-2010/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39191" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Wallpappers/default.aspx">Wallpappers</category></item><item><title>LINQPad - Um quadro de aprendizagem de LINQ !</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/01/linqpad-um-quadro-de-aprendizagem-de-linq.aspx</link><pubDate>Thu, 01 Jul 2010 17:05:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39186</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39186</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/07/01/linqpad-um-quadro-de-aprendizagem-de-linq.aspx#comments</comments><description>&lt;p&gt;Ao fim de tanto tempo a escrever instru&amp;ccedil;&amp;otilde;es LINQ, correr o c&amp;oacute;digo e preencher Gridviews finalmente veio &amp;agrave; minha vida enquanto programador o &lt;b&gt;LINQPad&lt;/b&gt;!&lt;br /&gt;Esta ferramenta permite-nos mesmo isso: escrever instru&amp;ccedil;&amp;otilde;es LINQ (ou SQL) e atrav&amp;eacute;s de um Click (ou do F5 para aqueles que j&amp;aacute; t&amp;ecirc;m um dedo habituado a ir l&amp;aacute; fazer o debug) o LINQPad corre a instru&amp;ccedil;&amp;atilde;o e devolve-nos logo o resultado numa tabela na mesma janela. Excelente!&lt;/p&gt;
&lt;p&gt;&amp;Eacute; muito boa para treinar-mos LINQ porque n&amp;atilde;o temos de esperar aqueles segundos chatos de correr a aplica&amp;ccedil;&amp;atilde;o, e actualizar a p&amp;aacute;gina. Como &amp;eacute; t&amp;atilde;o r&amp;aacute;pido, fazemos mais tentativas sem acharmos &amp;quot;secantes&amp;quot;. Al&amp;eacute;m que tem incorporado os exemplos do livro &lt;b&gt;C# 3.0 (e 4.0) in a Nutshell&lt;/b&gt;.&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;p&gt;&lt;img src="http://www.linqpad.net/linqpadscreen.png" style="max-width:550px;" border="0" alt="" /&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
Actualmente existem duas vers&amp;otilde;es para download: para a framework 3.5 e 4.0.&lt;br /&gt;No canto inferior esquerdo, se formos &amp;agrave; janela &lt;i&gt;Samples&lt;/i&gt; encontramos bastantes exemplos e ainda a op&amp;ccedil;&amp;atilde;o para fazer download de mais (que falei no inicio).&lt;/p&gt;
&lt;p&gt;Al&amp;eacute;m de ter suporte para C# e VB, tamb&amp;eacute;m suporta Entity Framework (nas conex&amp;otilde;es adicionamos o nosso modelo do EF e ele praticamente faz o resto!).&lt;/p&gt;
&lt;p&gt;&amp;Eacute; tamb&amp;eacute;m importante referir que numa vers&amp;atilde;o paga, temos acesso ao intellisense no LINQPad, isto &amp;eacute;, &amp;agrave; medida que vamos escrevendo o c&amp;oacute;digo ele vai-nos dando as sugest&amp;otilde;es e possibilidades de propriedades/objectos, como o Visual Studio faz.&lt;/p&gt;
&lt;p&gt;Podem fazer download gratu&amp;iacute;to do LINQPad aqui: &lt;a href="http://www.linqpad.net/"&gt;http://www.linqpad.net/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39186" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Ferramentas/default.aspx">Ferramentas</category></item><item><title>Sys undefined - Como resolver</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/30/sys-undefined-como-resolver.aspx</link><pubDate>Wed, 30 Jun 2010 15:10:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39183</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39183</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/30/sys-undefined-como-resolver.aspx#comments</comments><description>&lt;p&gt;Para quem j&amp;aacute; recebeu esta mensagem de erro (Sys undefined) e procurou solu&amp;ccedil;&amp;otilde;es como eu, &amp;eacute; bem prov&amp;aacute;vel que tenham perdido muito tempo a mexer e remexer no Web.Config da vossa aplica&amp;ccedil;&amp;atilde;o mas este erro pode persistir.&lt;/p&gt;
&lt;p&gt;Este erro ocorre quando tentamos aceder cedo demais &amp;agrave; namespace &lt;b&gt;Sys&lt;/b&gt;. Isto porque o ScriptManager (ou ToolScript Manager) injecta Javascript para o AJAX Framework, o ScriptManager e o UpdatePanel mas na posi&amp;ccedil;&amp;atilde;o onde ele se encontra. Vi alguns artigos a explicarem que &amp;eacute; preciso definir dentro da tag head a refer&amp;ecirc;ncia &amp;agrave; namespace &lt;b&gt;Sys&lt;/b&gt;:&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;Sys&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;WebForms&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;PageRequestManager&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;getInstance&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;().&lt;/span&gt;&lt;span style="color:#004466;"&gt;add_endRequest&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;End&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br /&gt;Isto vai continuar a resultar em erro, porque o ScriptManager encontra-se depois da sec&amp;ccedil;&amp;atilde;o onde muitos nos aconselham a recorrer ao &lt;b&gt;Sys&lt;/b&gt;. Uma das formas apresentadas no blog &lt;a href="http://encosia.com/2007/08/16/updated-your-webconfig-but-sys-is-still-undefined/"&gt;Encosia&lt;/a&gt; &amp;eacute; escrever o c&amp;oacute;digo Javascript n&amp;atilde;o na tag head mas sim ap&amp;oacute;s o controlo ScriptManager. &lt;br /&gt;Essa solu&amp;ccedil;&amp;atilde;o funciona, mas mesmo assim h&amp;aacute; outra forma melhor para fazer ist0 (tamb&amp;eacute;m apresentada por eles).&lt;/p&gt;
&lt;p&gt;O controlo ScriptManager (O ToolScriptManager trabalha da mesma forma na declara&amp;ccedil;&amp;atilde;o de ficheiros Javascript) permite-nos declarar ficheiros Javascript para que n&amp;atilde;o sejam usados antes dele.&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;asp:ScriptManager&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;ID&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;ScriptManager1&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;runat&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;Scripts&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;asp:ScriptReference&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;Path&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;Init.js&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/Scripts&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/asp:ScriptManager&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;asp:UpdatePanel&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;ID&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;UpdatePanel1&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;runat&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;ContentTemplate&amp;gt;&lt;/span&gt;&lt;br /&gt;    Conte&amp;uacute;do&lt;span style="color:#ff8000;"&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/ContentTemplate&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/asp:UpdatePanel&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br /&gt;O ficheiro Init.js pode ficar assim:&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;function CarregarTeclado() {&lt;br /&gt;    $(&amp;#39;#TextBoxPass&amp;#39;).keypad();&lt;br /&gt;    $(&amp;#39;#TextBoxReferencia&amp;#39;).keypad();&lt;br /&gt;}&lt;br /&gt;function End(sender, args) { }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function AppInit(sender) {&lt;br /&gt;    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(End);&lt;br /&gt;}&lt;br /&gt;Sys.Application.add_init(AppInit);&lt;br /&gt;Sys.Application.add_load(CarregarTeclado);&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Desta forma estamos a recorrer &amp;agrave; namespace &lt;b&gt;Sys&lt;/b&gt; atrav&amp;eacute;s do pr&amp;oacute;prio controlo ScriptManager, o que implica que n&amp;atilde;o hajam erros por recorremos antes do controlo ser declarado.&lt;br /&gt;Na fun&amp;ccedil;&amp;atilde;o &lt;i&gt;AVossaFuncao&lt;/i&gt; podem carregar os script jQuery que utilizam para menus, efeitos de slideshow, etc. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Actualiza&amp;ccedil;&amp;atilde;o 07/0/2010:&lt;/b&gt; &amp;Eacute; importante que as fun&amp;ccedil;&amp;otilde;es sejam criadas antes de as utilizar-mos com o &lt;b&gt;Sys&lt;/b&gt; (como mostrei no exemplo de cima j&amp;aacute; corrigido).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39183" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/ASP.NET+AJAX/default.aspx">ASP.NET AJAX</category></item><item><title>NHibernate 2.0 - Introdução</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/12/nhibernate-introdu-231-227-o.aspx</link><pubDate>Sat, 12 Jun 2010 21:56:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39113</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39113</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/12/nhibernate-introdu-231-227-o.aspx#comments</comments><description>&lt;p&gt;Nas pr&amp;oacute;ximas semanas vou dedicar algum tempo livre a estudar o NHibernate.&lt;/p&gt;
&lt;p&gt;J&amp;aacute; ouvi falar muito bem deste ORM mas quando comecei a tentar estud&amp;aacute;-lo e aprender a utiliz&amp;aacute;-lo comecei a achar que era bastante complicado! Agora que come&amp;ccedil;o a entender melhor a arquitectura dele come&amp;ccedil;o a reparar que n&amp;atilde;o &amp;eacute; t&amp;atilde;o complicado assim, o meu problema foi encontrar material para estudar. Para ser sincero estou fechado no quarto desde ontem ao final da tarde, s&amp;oacute; para conseguir entender o que vou escrever neste artigo..&lt;/p&gt;
&lt;p&gt;Por isso decidi come&amp;ccedil;ar a escrever uma jornada de artigos sobre a inicia&amp;ccedil;&amp;atilde;o de NHibernate! &amp;Aacute; medida que for aprendendo novos recursos vou postando no meu blog.&lt;br /&gt;No final do post vou deixar alguns links &amp;uacute;teis sobre NHibernate.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline;"&gt;Se acontecer alguem reparar em erros por favor avise-me, ainda estou a iniciar-me neste ORM e gostava de ganhar boas bases nele.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Quem quiser fazer download do projecto pode faz&amp;ecirc;-lo aqui: &lt;a target="_blank" href="http://github.com/guilherme-cardoso/NHibernate---Introdu--o/downloads"&gt;http://github.com/guilherme-cardoso/NHibernate---Introdu--o/downloads&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;NHibernate&lt;/h2&gt;
&lt;p&gt;O NHibernate &amp;eacute; um ORM baseado noutro ORM para Java, o Hibernate. A fun&amp;ccedil;&amp;atilde;o dele &amp;eacute; mapear a classe do nosso projecto com a base de dados sem termos de nos preocupar com comandos SQL.&lt;/p&gt;
&lt;p&gt;Mais abaixo na parte dos m&amp;eacute;todos, vamos reparar em tr&amp;ecirc;s interfaces usadas (&amp;aacute; excep&amp;ccedil;&amp;atilde;o da IQuery que vai ficar mais para a frente):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ISession - representa uma&amp;nbsp; pela conec&amp;ccedil;&amp;atilde;o com a base de dados&lt;/li&gt;
&lt;li&gt;ITransaction - representa uma transac&amp;ccedil;&amp;atilde;o controlada pelo NHibernate&lt;/li&gt;
&lt;li&gt;IQuery - representa uma consulta &amp;aacute; base de dados&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas tr&amp;ecirc;s interfaces pertencem &amp;aacute; assembly NHibernate.dll&lt;/p&gt;
&lt;p&gt;Um bom exemplo que posso mostrar de onde a utiliza&amp;ccedil;&amp;atilde;o de um ORM ia 
facilitar-me bastante a vida enquanto programador &amp;eacute; um post que escrevi 
h&amp;aacute; pouco mais de um ano aqui: &lt;a target="_blank" href="http://pontonetpt.com/blogs/guilhermecardoso/archive/2009/05/19/P29173.aspx"&gt;http://pontonetpt.com/blogs/guilhermecardoso/archive/2009/05/19/P29173.aspx&lt;/a&gt;
 Infelizmente esse m&amp;eacute;todo de uso de DataTables e DataSets ainda &amp;eacute; o 
m&amp;eacute;todo de aprendizagem na maioria das Escolas Profissionais.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Instala&amp;ccedil;&amp;atilde;o&lt;/h2&gt;
&lt;p&gt;Ao contr&amp;aacute;rio do Entity Framework que j&amp;aacute; vem incorporado no Visual Studio, o NHibernate requere uma instala&amp;ccedil;&amp;atilde;o manual.&lt;br /&gt;&amp;Eacute; muito simples, basta fazer-mos download do NHibernate (&lt;a target="_blank" href="http://sourceforge.net/projects/nhibernate/files/NHibernate/"&gt;link&lt;/a&gt;). Quando criar-mos um novo projecto adicionamos as seguintes refer&amp;ecirc;ncias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NHibernate.dll (&lt;i&gt;NHibernate-2.1.2.GA-bin\Fluent NHibernate)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;NHibernate.ByteCode.Castle.dll (&lt;i&gt;NHibernate-2.1.2.GA-bin\Fluent NHibernate&lt;/i&gt;)&lt;/li&gt;
&lt;li&gt;Castle.Core.dll (&lt;i&gt;NHibernate-2.1.2.GA-bin\Fluent NHibernate&lt;/i&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para mais tarde voltar a criar projectos sem ter de fazer download do NHibernate novamente, extra&amp;iacute; o download para uma pasta no C:/ e sempre que quero criar novos projectos, adiciono as refer&amp;ecirc;ncias apartir de l&amp;aacute;.&lt;/p&gt;
&lt;p&gt;O uso de uma proxy &amp;eacute; requirido pelo NHibernate. Neste exemplo estou a usar a Castle mas n&amp;atilde;o vou falar dela neste artigo pois n&amp;atilde;o sei do que se trata! Mais tarde l&amp;aacute; irei.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Configura&amp;ccedil;&amp;atilde;o&lt;/h2&gt;
&lt;p&gt;Para configurar o NHibernate vi em bastantes tutoriais criarem o arquivo &lt;b&gt;hibernate.cfg.xml&lt;/b&gt; e quando &amp;eacute; chamado o m&amp;eacute;todo &lt;b&gt;Configure()&lt;/b&gt; da assembly &lt;b&gt;NHibernate.Cfg.Configuration &lt;/b&gt;o NHibernate vai procurar esse arquivo e aplicar as configura&amp;ccedil;&amp;otilde;es.&lt;/p&gt;
&lt;p&gt;Eu preferi criar dentro do pr&amp;oacute;prio &lt;i&gt;Web.Config&lt;/i&gt;.&lt;br /&gt;Aseguir &amp;aacute; tag &amp;lt;ConfigSections&amp;gt; (percente &amp;agrave; &amp;lt;configuration) adiciona-mos uma nova sec&amp;ccedil;&amp;atilde;o para depois adicionar-mos a configura&amp;ccedil;&amp;atilde;o do NHibernate com o nome dessa sec&amp;ccedil;&amp;atilde;o (hibernate-configuration):&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;&lt;br /&gt;	&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;configSections&amp;gt;&lt;/span&gt;&lt;br /&gt;		&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;section&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;hibernate-configuration&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;type&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;NHibernate.Cfg.ConfigurationSectionHandler, NHibernate&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;	&lt;span style="color:#bb7977;font-weight:bold;"&gt;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/configSections&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Aseguir &amp;aacute; tag &amp;lt;/configSections&amp;gt; &amp;eacute; que inseri a configura&amp;ccedil;&amp;atilde;o do NHibernate.&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;hibernate-configuration&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;xmlns&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;urn:nhibernate-configuration-2.2&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;session-factory&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;property&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;dialect&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                NHibernate.Dialect.MsSql2005Dialect&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;property&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;connection.provider&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                NHibernate.Connection.DriverConnectionProvider&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;property&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;connection.driver_class&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                NHibernate.Driver.SqlClientDriver&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;property&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;connection.connection_string&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                Server=Computador\SQLEXPRESS;&lt;br /&gt;                Database=NHibernate;&lt;br /&gt;                Integrated Security=True;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;property&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;proxyfactory.factory_class&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/session-factory&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/hibernate-configuration&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;V&amp;atilde;o precisar de alterar o nome do vosso servidor SQL na propriedade &lt;b&gt;connection.connection_string&lt;/b&gt;. O nome aparece quando iniciam o SQL Server 2005 (na caixa de di&amp;aacute;logo para conectarem-se ao servidor).&lt;/p&gt;
&lt;p&gt;Estou a usar um servidor SQL Server 2005. Se 
n&amp;atilde;o estiverem a trabalhar com estas base de dados, podem ver um artigo 
que o Leandro Ribeiro escreveu sobre base de dados suportadas pelo 
NHibernate: &lt;a target="_blank" href="http://pontonetpt.com/blogs/leandroribeiro/archive/2008/02/22/P26588.aspx"&gt;http://pontonetpt.com/blogs/leandroribeiro/archive/2008/02/22/P26588.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Mapeamentos&lt;/h2&gt;
&lt;p&gt;Configurado o NHibernate vamos criar os mapeamentos.&lt;br /&gt;Agora a in&amp;iacute;cio vou fazer os mapeamentos usando arquivos .XML (tradicional do NHibernate), mas mais para a frente vou recorrer ao Fluent NHibernate. O Fluent NHibernate permite-nos fazer os nossos mapeamentos em c&amp;oacute;digo (ao inv&amp;eacute;s de arquivos XML)&amp;nbsp; e tamb&amp;eacute;m tem a particularidade de criar mapeamentos autom&amp;aacute;ticos apartir das nossas entidades (n&amp;atilde;o sei se para NHibernate tamb&amp;eacute;m exista algo que crie em XML mas para j&amp;aacute; n&amp;atilde;o vale a pena ver isso).&lt;/p&gt;
&lt;p&gt;Para estruturar melhor o nosso projecto, vamos criar uma pasta com o nome &lt;b&gt;Mapeamentos&lt;/b&gt;. Dentro dessa pasta vamos criar um arquivo XML com o nome &lt;b&gt;Noticias.hbm.xml&lt;/b&gt;. &lt;br /&gt;Um aspecto importante &amp;eacute; a extens&amp;atilde;o &lt;b&gt;.hbm.xml&lt;/b&gt;. O NHibernate vai reconhecer todos os arquivos que contenham &lt;b&gt;hbm&lt;/b&gt; antes da extens&amp;atilde;o &lt;b&gt;.xml&lt;/b&gt; como arquivos de mapeamento.&lt;/p&gt;
&lt;p&gt;Antes de come&amp;ccedil;ar-mos a escrever o nosso mapeamento vamos utilizar um esquema xml que vinha no download que fizemos a &amp;iacute;nicio para que o Visual Studio e o IntellIsense nos facilite o trabalho enquanto estivermos a escrever o c&amp;oacute;digo. O arquivo chama-se &lt;b&gt;nhibernate-mapping.xsd &lt;/b&gt;e est&amp;aacute; dentro da pasta Required_Bins. Para alterar-mos o esquema entramos dentro do ficheiro &lt;b&gt;Noticias.hbm.xml&lt;/b&gt;, metemos o cursor dentro da &amp;aacute;rea de c&amp;oacute;digo como se fossemos escrever algo e na janela das propriedades vai aparecer um campo com o nome &lt;i&gt;Schemas&lt;/i&gt;. A&amp;iacute; vamos indicar onde est&amp;aacute; o ficheiro &lt;b&gt;nhibernate-mapping.xsd&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Para j&amp;aacute; vamos criar apenas uma tabela com o nome &lt;b&gt;Noticias&lt;/b&gt; e tr&amp;ecirc;s colunas: &lt;b&gt;Id, Titulo&lt;/b&gt; e &lt;b&gt;Corpo&lt;/b&gt;.&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;?xml&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;version&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;encoding&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;hibernate-mapping&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;xmlns&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;urn:nhibernate-mapping-2.2&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;assembly&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;NH&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;namespace&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;NH.Dominio&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;class&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;Noticias&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;table&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;Noticias&amp;quot;&lt;/span&gt;&lt;span style="color:#8080c0;font-weight:bold;"&gt;&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;id&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;column&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;generator&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;class&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;native&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;property&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;Titulo&amp;quot;&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;property&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;name&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;Corpo&amp;quot;&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;gt;&amp;lt;/property&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/class&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;/hibernate-mapping&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;A &lt;i&gt;namespace&lt;/i&gt; &lt;b&gt;NH.Dominio&lt;/b&gt; est&amp;aacute; a indicar onde temos a Entidade referente a este mapeamento (que vamos criar aseguir).&lt;br /&gt;A coluna &lt;b&gt;Id&lt;/b&gt; &amp;eacute; representada com a pr&amp;oacute;pria tag &amp;lt;id&amp;gt; e como neste exemplo &amp;eacute; de auto-incrementa&amp;ccedil;&amp;atilde;o, defenimos a&lt;i&gt; &lt;/i&gt;generator com a class native.&lt;/p&gt;
&lt;p&gt;As propriedades s&amp;atilde;o as restantes tabelas.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Entidades&lt;/h2&gt;
&lt;p&gt;As entidades s&amp;atilde;o escritas em c&amp;oacute;digo. S&amp;atilde;o os objectos dos nossos mapeamentos. &lt;br /&gt;Dentro da pasta Dominio vamos criar um arquivo de classe com o nome &lt;b&gt;Noticias.cs&lt;/b&gt;.&lt;br /&gt;Vamos criar uma classe (tabela) com o nome &lt;b&gt;Noticias&lt;/b&gt; e declarar 3 objectos: Id, Titulo e Corpo&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;namespace&lt;/span&gt; NH&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Dominio&lt;br /&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#bb7977;font-weight:bold;"&gt;public class&lt;/span&gt; Noticias&lt;br /&gt;    &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;public virtual&lt;/span&gt; Int32 Id &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;get&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;set&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;}&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;public virtual&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;string&lt;/span&gt; Titulo &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;get&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;set&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;; }&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;public virtual&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;string&lt;/span&gt; Corpo &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;get&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;set&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;}&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;
&amp;Eacute; preciso atribuir a propriedade &lt;b&gt;virtual&lt;/b&gt; &amp;aacute;s vari&amp;aacute;veis para que o NHibernate possa trabalhar com elas.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Contexto&lt;/h2&gt;
&lt;p&gt;Esta camada vai ser respons&amp;aacute;vel liga&amp;ccedil;&amp;atilde;o entre o nosso programa e o NHibernate, que por sua vez se liga &amp;aacute; base de dados.&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;public class&lt;/span&gt; Contexto&lt;br /&gt;    &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;private static&lt;/span&gt; ISessionFactory _sessionFactory&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;private static&lt;/span&gt; ISessionFactory SessionFactory&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;get&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;               &amp;nbsp;&lt;span style="color:#bb7977;font-weight:bold;"&gt;if&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;_sessionFactory &lt;span style="color:#ff0080;font-weight:bold;"&gt;==&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;null&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;)&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color:#8080c0;font-weight:bold;"&gt;string&lt;/span&gt; directoria &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; System&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Web&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;HttpContext&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Current&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Server&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;MapPath&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;@&lt;span style="color:#a68500;"&gt;&amp;quot;~/Dominio/&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;                    NHibernate&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Cfg&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Configuration configuration &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;new&lt;/span&gt; NHibernate&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Cfg&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Configuration&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;();&lt;/span&gt;&lt;br /&gt;                    configuration&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;AddXmlFile&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;directoria &lt;span style="color:#ff0080;font-weight:bold;"&gt;+&lt;/span&gt; &lt;span style="color:#a68500;"&gt;&amp;quot;Noticias.hbm.xml&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;                    configuration&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Configure&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;();&lt;/span&gt;&lt;br /&gt;                    _sessionFactory &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; configuration&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;BuildSessionFactory&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#bb7977;font-weight:bold;"&gt;return&lt;/span&gt; _sessionFactory&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#bb7977;font-weight:bold;"&gt;public static&lt;/span&gt; ISession &lt;span style="color:#004466;"&gt;OpenSession&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;()&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;return&lt;/span&gt; SessionFactory&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;OpenSession&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;();&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Ela apenas vai criar uma nova sess&amp;atilde;o se a mesma ainda n&amp;atilde;o tiver sido criada (na condi&amp;ccedil;&amp;atilde;o &lt;b&gt;_sessionFactory == null)&lt;/b&gt;.&lt;br /&gt;&amp;Eacute; tamb&amp;eacute;m aqui que vamos incluir o nosso mapeamento das &lt;b&gt;Noticias&lt;/b&gt; nas configura&amp;ccedil;&amp;otilde;es do NHibernate. Eu criei a string &lt;i&gt;directoria&lt;/i&gt; para obter indicar o caminho quando adicionei o arquivo XML.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;M&amp;eacute;todos CRUD (Create, Read, Update e Delete)&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;Agora que temos o NHibernate configurado, cri&amp;aacute;-mos os mapeamentos e entidades podemos escrever os m&amp;eacute;todos CRUD.&lt;/p&gt;
&lt;p&gt;Os m&amp;eacute;todos CRUD vamos colocar numa camada &amp;aacute; parte que vamos criar, a camada &lt;b&gt;Dal.cs&lt;/b&gt;. Isto vai ajudar-nos a manter a esturutra do nosso programa organizada.&lt;/p&gt;
&lt;h3&gt;Inserir&lt;/h3&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;public&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;void&lt;/span&gt; &lt;span style="color:#004466;"&gt;Noticias_Adicionar&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;Noticias noticia&lt;span style="color:#ff0080;font-weight:bold;"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;using&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;ISession session &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; Contexto&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;OpenSession&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;())&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;using&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;ITransaction transaction &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; session&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;BeginTransaction&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;())&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;                session&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Save&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;noticia&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;                transaction&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Commit&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;();&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Apagar&lt;/h3&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;public&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;void&lt;/span&gt; &lt;span style="color:#004466;"&gt;Noticias_Apagar&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;Noticias noticia&lt;span style="color:#ff0080;font-weight:bold;"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;using&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;ISession session &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; Contexto&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;OpenSession&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;())&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;using&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;ITransaction transaction &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; session&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;BeginTransaction&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;())&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;                session&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Delete&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;noticia&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;                transaction&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Commit&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;();&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;&lt;br /&gt;&lt;/span&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;span style="text-decoration:line-through;"&gt;O m&amp;eacute;todo para apagar uma not&amp;iacute;cia &amp;eacute; semelhante ao de inserir. A diferen&amp;ccedil;a que notamos &amp;eacute; na interface &lt;b&gt;session&lt;/b&gt;, em vez de salvar-mos chamamos o m&amp;eacute;todo &lt;b&gt;Delete&lt;/b&gt; para apagar a not&amp;iacute;cia em quest&amp;atilde;o.&lt;/span&gt;&lt;br /&gt;Correc&amp;ccedil;&amp;atilde;o: N&amp;atilde;o &amp;eacute; necess&amp;aacute;rio fechar a sess&amp;atilde;o (&lt;b&gt;Session.Close&lt;/b&gt;) como eu a in&amp;iacute;cio expliquei pois ao bloco using, a vari&amp;aacute;vel &lt;b&gt;Session&lt;/b&gt; vai ficar liberada da mem&amp;oacute;ria automaticamente.&lt;/p&gt;
&lt;h3&gt;Actualizar&lt;/h3&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;public&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;void&lt;/span&gt; &lt;span style="color:#004466;"&gt;Noticias_Actualizar&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;Noticias noticia&lt;span style="color:#ff0080;font-weight:bold;"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;using&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;ISession session &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; Contexto&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;OpenSession&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;())&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;using&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;ITransaction transaction &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; session&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;BeginTransaction&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;())&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;                session&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Update&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;noticia&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;                transaction&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Commit&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;();&lt;/span&gt;           &lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;&lt;/span&gt;&lt;span style="color:#004466;"&gt;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
Mais uma vez, a &amp;uacute;nica diferen&amp;ccedil;a que notamos &amp;eacute; o &lt;b&gt;Update&lt;/b&gt;.&lt;/p&gt;
&lt;h3&gt;Ler por ID&lt;/h3&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;public&lt;/span&gt; Noticias &lt;span style="color:#004466;"&gt;Noticias_Devolver_PorId&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#8080c0;font-weight:bold;"&gt;int&lt;/span&gt; id&lt;span style="color:#ff0080;font-weight:bold;"&gt;)&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;using&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;ISession session &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; Contexto&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;OpenSession&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;())&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;                &lt;span style="color:#bb7977;font-weight:bold;"&gt;return&lt;/span&gt; session&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Get&lt;span style="color:#ff0080;font-weight:bold;"&gt;&amp;lt;&lt;/span&gt;Noticias&lt;span style="color:#ff0080;font-weight:bold;"&gt;&amp;gt;(&lt;/span&gt;id&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;h3&gt;Retornar uma Lista&lt;br /&gt;&lt;/h3&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;public&lt;/span&gt; List&lt;span style="color:#ff0080;font-weight:bold;"&gt;&amp;lt;&lt;/span&gt;Noticias&lt;span style="color:#ff0080;font-weight:bold;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#004466;"&gt;Noticias_Devolver&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;()&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#bb7977;font-weight:bold;"&gt;using&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;ISession session &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; Contexto&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;OpenSession&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;())&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;                 return&lt;/span&gt; session&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;CreateCriteria&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#004466;"&gt;typeof&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;Noticias&lt;span style="color:#ff0080;font-weight:bold;"&gt;)).&lt;/span&gt;List&lt;span style="color:#ff0080;font-weight:bold;"&gt;&amp;lt;&lt;/span&gt;Noticias&lt;span style="color:#ff0080;font-weight:bold;"&gt;&amp;gt;();&lt;/span&gt;&lt;br /&gt;            &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br /&gt;
O m&amp;eacute;todo em cima mostra como retornar uma Lista. Se virem este projecto (o link est&amp;aacute; no inicio do artigo), eu estou a preencher uma DropDownListrecorrendo a este m&amp;eacute;todo. Basta indicarmos o DataSource da DropDownLis (DropDownListNoticias.DataSource = dal.NoticiasDevolver();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;E prontos, este foi o meu primeiro artigo relacionado com NHibernate.&lt;br /&gt;Agora vou tentar analisar melhor o que aprendi nestas horas (se soubessem o que foram as minhas &amp;uacute;ltimas 32 horas &amp;aacute; custa disto!) e tentar melhorar o c&amp;oacute;digo que escrevi, nomeadamente o da classe contexto.&lt;/p&gt;
&lt;p&gt;Aproveito para agradecer ao Ricardo Peres por me ter encaminhado um pouco e para pedir desculpas &amp;agrave; Mafalda pelo tempo ausente ;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Alguns links &amp;uacute;teis:&lt;br /&gt;&lt;b&gt;NHibernate Portugal (mailling list na google): &lt;/b&gt;&lt;a target="_blank" href="http://groups.google.com/group/nhpt"&gt;http://groups.google.com/group/nhpt&lt;/a&gt;&lt;br /&gt;&lt;b&gt;NHusers (mailling list na google): &lt;/b&gt;&lt;a target="_blank" href="http://groups.google.com/group/nhusers"&gt;http://groups.google.com/group/nhusers&lt;/a&gt;&lt;br /&gt;&lt;b&gt;NHibernate f&amp;oacute;rum: &lt;/b&gt;&lt;a target="_blank" href="https://forum.hibernate.org/viewforum.php?f=25"&gt;https://forum.hibernate.org/viewforum.php?f=25&lt;/a&gt;&lt;/p&gt;
&lt;div class="addthis_toolbox addthis_default_style"&gt;
&lt;a href="http://addthis.com/bookmark.php?v=250&amp;amp;username=xa-4c1404351dbc81fb" class="addthis_button_compact"&gt;Share&lt;/a&gt;
&lt;span class="addthis_separator"&gt;|&lt;/span&gt;
&lt;a class="addthis_button_facebook"&gt;&lt;/a&gt;
&lt;a class="addthis_button_myspace"&gt;&lt;/a&gt;
&lt;a class="addthis_button_google"&gt;&lt;/a&gt;
&lt;a class="addthis_button_twitter"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=xa-4c1404351dbc81fb"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39113" width="1" height="1"&gt;</description></item><item><title>Resharper 5</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/11/resharper-5.aspx</link><pubDate>Fri, 11 Jun 2010 09:56:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39111</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39111</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/11/resharper-5.aspx#comments</comments><description>&lt;p&gt;Apesar de n&amp;atilde;o ser nenhuma novidade a vers&amp;atilde;o actual do &lt;b&gt;Resharper &lt;/b&gt;decidi criar este artigo para os desactualizados como eu!&lt;/p&gt;
&lt;p&gt;O &lt;b&gt;Resharper&lt;/b&gt; &amp;eacute; um plugin que &amp;eacute; integrado no Visual Studio (actualmente &amp;eacute; compat&amp;iacute;vel com a vers&amp;atilde;o 2010) que adiciona bastantes recursos que aumentam a produtividade e qualidade do c&amp;oacute;digo que escrevemos.&lt;br /&gt;O que me deixou mais surpreendido quando instalei este plugin foi as sugest&amp;otilde;es e dicas que ele me deu para as minhas classes. Pequenos pormenores que eu n&amp;atilde;o notava como alterar o nome do m&amp;eacute;todo &lt;b&gt;Vendedor_ID&lt;/b&gt; para &lt;b&gt;VendedorId&lt;/b&gt;, n&amp;atilde;o declarar os par&amp;acirc;metros com mai&amp;uacute;sculas, entre outros. O exemplo de baixo mostra isso mesmo.&lt;/p&gt;
&lt;div style="text-align:center;"&gt;&lt;a href="http://pontonetpt.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/0777.resharper.png"&gt;&lt;img src="http://pontonetpt.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/0777.resharper.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Para mim, as sugest&amp;otilde;es deste plugin s&amp;atilde;o &amp;oacute;ptimas porque s&amp;atilde;o pormenores que de outra forma eu n&amp;atilde;o saberia se estavam correctos ou n&amp;atilde;o. O mais engra&amp;ccedil;ado &amp;eacute; que tenho no&amp;ccedil;&amp;atilde;o que nem 5% das funcionalidades do &lt;b&gt;Resharper&lt;/b&gt; eu devo estar a usar ou saber que posso usar. Com o tempo... ;)&lt;/p&gt;
&lt;p&gt;Apesar de n&amp;atilde;o ser gratuito, as licen&amp;ccedil;as para estudantes s&amp;atilde;o 49 euros (mais barato que as licen&amp;ccedil;as normais de uso pessoal a 199 euros).&lt;br /&gt;Mais informa&amp;ccedil;&amp;otilde;es: &lt;a target="_blank" href="http://www.jetbrains.com/resharper/"&gt;http://www.jetbrains.com/resharper/&lt;/a&gt;&lt;/p&gt;
&lt;div class="addthis_toolbox addthis_default_style"&gt;
&lt;a href="http://addthis.com/bookmark.php?v=250&amp;amp;username=guilhermecardoso" class="addthis_button_compact"&gt;Share&lt;/a&gt;
&lt;span class="addthis_separator"&gt;|&lt;/span&gt;
&lt;a class="addthis_button_facebook"&gt;&lt;/a&gt;
&lt;a class="addthis_button_myspace"&gt;&lt;/a&gt;
&lt;a class="addthis_button_google"&gt;&lt;/a&gt;
&lt;a class="addthis_button_twitter"&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=guilhermecardoso"&gt;&lt;/script&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39111" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Ferramentas/default.aspx">Ferramentas</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Várias CSS consoante a resolução do Browser ou do monitor</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/09/v-225-rias-css-consoante-a-resolu-231-227-o-do-browser-ou-do-monitor.aspx</link><pubDate>Wed, 09 Jun 2010 08:26:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39090</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39090</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/09/v-225-rias-css-consoante-a-resolu-231-227-o-do-browser-ou-do-monitor.aspx#comments</comments><description>&lt;p&gt;Um problema comum que os Web Designers enfrentam s&amp;atilde;o as diferentes resolu&amp;ccedil;&amp;otilde;es utilizados pelos clientes.&lt;br /&gt;Este aspecto &amp;eacute; bastante importante. Temos de ter em considera&amp;ccedil;&amp;atilde;o que os visitantes do website n&amp;atilde;o v&amp;atilde;o ter a mesma resolu&amp;ccedil;&amp;atilde;o que n&amp;oacute;s, o mesmo dispositivo e muitas vezes javascript activado ou n&amp;atilde;o.&lt;br /&gt;Isto leva-nos a ter de criar v&amp;aacute;rias alternativas para a estrutura do website. Uma delas &amp;eacute; recorrer a percentagens para definir valores de tamanhos. Outra &amp;eacute; aplicar folhas de estilo consoante a largura.&lt;/p&gt;
&lt;p&gt;Neste artigo vou mostrar algumas formas de utilizar folhas de estilo consoante a resolu&amp;ccedil;&amp;atilde;o, seja da janela do browser ou do monitor.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Recorrendo a uma norma W3C (sem Javascript)&lt;/h2&gt;
&lt;h2&gt;&lt;img src="http://www.purbeck.gov.uk/images/css-logo.gif" style="max-width:550px;" border="0" alt="" /&gt;&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;Existe uma &lt;a href="http://www.w3.org/TR/css3-mediaqueries/"&gt;norma W3C&lt;/a&gt; que nos permite utilizar folhas de estilo consoante a largura:&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;link&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;rel&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;media&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;screen and (min-device-width: 800px)&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;href&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;800.css&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;O c&amp;oacute;digo de cima vai aplicar a folha de estilo apenas se o ecr&amp;atilde; tiver 800 pixeis de largura ou mais.&lt;br /&gt;No entanto isso &amp;eacute; a largura do dispositivo (seja ele um monitor de 22 polegadas ou um telem&amp;oacute;vel). Algo tamb&amp;eacute;m interessante &amp;eacute; utilizar consoante o tamanho da janela do navegador &lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;link&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;rel&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;media&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;screen and (min-width: 700px) and (max-width: 900px)&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;href&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;700-900.css&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;O c&amp;oacute;digo de cima vai aplicar a folha de estilo apenas se a janela do navegador tiver uma largura entre 700 e 900 pixeis. A altera&amp;ccedil;&amp;atilde;o usada foi na propriedade da largura, em vez de &lt;b&gt;min-device-width&lt;/b&gt; (em rela&amp;ccedil;&amp;atilde;o ao dispositivo) estamos a usar a &lt;b&gt;min-width&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Fun&amp;ccedil;&amp;atilde;o simples que recorre a jQuery&lt;/h2&gt;
&lt;h2&gt;&lt;img src="http://contented.it/images/content/jquery.gif" style="max-width:550px;" border="0" alt="" /&gt;&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;Outra forma simples de fazer isto &amp;eacute; recorrendo a jQuery. &lt;br /&gt;O que vamos fazer &amp;eacute; criar v&amp;aacute;rias folhas de estilo consoante os tamanhos que quisermos e apenas inclu&amp;iacute;mos uma. &amp;Eacute; importante ao inclu&amp;iacute;r essa folha de estilo, dar-lhe a propriedade do ID para aceder-mos por JavaScript.&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;link&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;id&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;size-stylesheet&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;rel&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;type&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;href&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;menos701.css&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Agora precisamos de defenir as regras a utilizar. Esta fun&amp;ccedil;&amp;atilde;o &amp;eacute; bastante simples, e para ser utilizada apenas temos de ter o jQuery actualizado.&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;function&lt;/span&gt; &lt;span style="color:#004466;"&gt;AjustarTamanho&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;width&lt;span style="color:#ff0080;font-weight:bold;"&gt;) {&lt;/span&gt;&lt;br /&gt;    width &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; &lt;span style="color:#004466;"&gt;parseInt&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;width&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#bb7977;font-weight:bold;"&gt;if&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;width &lt;span style="color:#ff0080;font-weight:bold;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#800080;font-weight:bold;"&gt;701&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;) {&lt;/span&gt;&lt;br /&gt;        $&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&amp;quot;#size-stylesheet&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;).&lt;/span&gt;&lt;span style="color:#004466;"&gt;attr&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&amp;quot;href&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;,&lt;/span&gt; &lt;span style="color:#a68500;"&gt;&amp;quot;menos701.css&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;else if&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;((&lt;/span&gt;width &lt;span style="color:#ff0080;font-weight:bold;"&gt;&amp;gt;=&lt;/span&gt; &lt;span style="color:#800080;font-weight:bold;"&gt;701&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;) &amp;amp;&amp;amp; (&lt;/span&gt;width &lt;span style="color:#ff0080;font-weight:bold;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color:#800080;font-weight:bold;"&gt;900&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;)) {&lt;/span&gt;&lt;br /&gt;        $&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&amp;quot;#size-stylesheet&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;).&lt;/span&gt;&lt;span style="color:#004466;"&gt;attr&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&amp;quot;href&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;,&lt;/span&gt; &lt;span style="color:#a68500;"&gt;&amp;quot;701-900.css&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;else&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;       $&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&amp;quot;#size-stylesheet&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;).&lt;/span&gt;&lt;span style="color:#004466;"&gt;attr&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&amp;quot;href&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;,&lt;/span&gt; &lt;span style="color:#a68500;"&gt;&amp;quot;mais900.css&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;function&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;() {&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#004466;"&gt;AjustarTamanho&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;$&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;this&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;).&lt;/span&gt;&lt;span style="color:#004466;"&gt;width&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;());&lt;/span&gt;&lt;br /&gt;    $&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;window&lt;span style="color:#ff0080;font-weight:bold;"&gt;).&lt;/span&gt;&lt;span style="color:#004466;"&gt;resize&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;function&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;() {&lt;/span&gt;&lt;br /&gt;        &lt;span style="color:#004466;"&gt;AjustarTamanho&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;$&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;this&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;).&lt;/span&gt;&lt;span style="color:#004466;"&gt;width&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;());&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#ff0080;font-weight:bold;"&gt;});&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;});&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;
Pluging jQuery browserSizr&lt;/h2&gt;
&lt;p&gt;&lt;img src="http://www.csslab.cl/wp-content/uploads/2009/07/logo_browsersizr.png" style="max-width:550px;" border="0" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Este plugin jQuery permite-nos na mesma folha de estilo, criar v&amp;aacute;rias classes para diferentes tamanhos da resolu&amp;ccedil;&amp;atilde;o e usa-as consoante o tamanho do Browser.&lt;br /&gt;Podem ver mais informa&amp;ccedil;&amp;otilde;es aqui: &lt;a href="http://www.csslab.cl/2009/07/22/jquery-browsersizr/"&gt;http://www.csslab.cl/2009/07/22/jquery-browsersizr/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Less Framework&lt;/h2&gt;
&lt;p&gt;Less Framework &amp;eacute; uma framework CSS que cria estruturas flex&amp;iacute;veis em colunas.&lt;br /&gt;Em termos de compatibilidade suporta&amp;nbsp; Chrome, Safari 3.0+, Firefox 3.0+, Opera 10+ e Internet Explorer 7+.&lt;/p&gt;
&lt;p&gt;Pessoalmente nunca testei esta framework mas para quem tiver mais curiosidade fica aqui a refer&amp;ecirc;ncia: &lt;a href="http://lessframework.com/"&gt;http://lessframework.com/&lt;/a&gt;&lt;/p&gt;

&lt;div class="addthis_toolbox addthis_default_style"&gt;
&lt;a class="addthis_button_facebook"&gt;&lt;/a&gt;
&lt;a class="addthis_button_email"&gt;&lt;/a&gt;
&lt;a class="addthis_button_favorites"&gt;&lt;/a&gt;
&lt;a class="addthis_button_print"&gt;&lt;/a&gt;
&lt;span class="addthis_separator"&gt;|&lt;/span&gt;
&lt;a href="http://addthis.com/bookmark.php?v=250&amp;amp;username=guilhermecardoso" class="addthis_button_expanded"&gt;More&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=guilhermecardoso"&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39090" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/webdesign/default.aspx">webdesign</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Javascript/default.aspx">Javascript</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/CSS/default.aspx">CSS</category></item><item><title>Walppaper - Calendários de Junho</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/08/walppaper-calend-225-rios-de-junho.aspx</link><pubDate>Tue, 08 Jun 2010 18:17:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39089</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39089</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/08/walppaper-calend-225-rios-de-junho.aspx#comments</comments><description>&lt;p&gt;Todos os meses mudo o meu Walppaper. De certa forma isto quebra um bocado a rotina de olhar para o Ambiente de Trabalho e ver o mesmo fundo, e se escolhermos fundos que estejam relacionados com um tema actual ou o pr&amp;oacute;prio m&amp;ecirc;s, mete a sua piada!&lt;/p&gt;
&lt;p&gt;Este m&amp;ecirc;s vou postar 5 walpappers que a Smashing Magazine publicou. Podem ver o artigo detalhado &lt;a href="http://www.smashingmagazine.com/2010/05/31/desktop-wallpaper-calendar-june-2010/"&gt;aqui (link)&lt;/a&gt;.&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;h3&gt;Spring to Summer - autor: &lt;a href="http://www.natanaelfernandez.com/"&gt;Natanael Fern&amp;aacute;ndez&lt;/a&gt;&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/full/spring-to-summer.jpg"&gt;&lt;img style="display:inline;" alt="Spring-to-summer in Desktop Wallpaper Calendar: June 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/spring-to-summer.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/full/spring-to-summer.jpg"&gt;pr&amp;eacute; visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-calendar-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-calendar-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-calendar-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-calendar-1920x1080.jpg"&gt;1920&amp;times;1080&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rior: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-nocal-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-nocal-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-nocal-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-nocal-1920x1080.jpg"&gt;1920&amp;times;1080&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-spring-to-summer-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;2010 Campeonato Mundial de &amp;Aacute;frica - autor: &lt;a href="http://wallpapers.vintage.it/"&gt;Davide Vicariotto&lt;/a&gt;&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/2010-fifa-world-cup-south-africa.jpg" style="max-width:550px;" border="0" alt="" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/full/2010-fifa-world-cup-south-africa.jpg"&gt;pr&amp;eacute; visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-calendar-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-calendar-1280x960.jpg"&gt;1280&amp;times;960&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-calendar-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-calendar-1600x1200.jpg"&gt;1600&amp;times;1200&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-calendar-1920x1080.jpg"&gt;1920&amp;times;1080&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rior: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-nocal-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-nocal-1280x960.jpg"&gt;1280&amp;times;960&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-nocal-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-nocal-1600x1200.jpg"&gt;1600&amp;times;1200&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-nocal-1920x1080.jpg"&gt;1920&amp;times;1080&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-2010-fifa-world-cup-south-africa-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Seagull - autor:  &lt;a href="http://indeziner.com/"&gt;Indeziner&lt;/a&gt; &lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/full/seagull1.jpg"&gt;&lt;img style="display:inline;" alt="Seagull1 in Desktop Wallpaper Calendar: June 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/seagull1.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/full/seagull1.jpg"&gt;pr&amp;eacute; visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-calendar-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-calendar-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-calendar-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-calendar-1600x1200.jpg"&gt;1600&amp;times;1200&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rior: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-nocal-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-nocal-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-nocal-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-nocal-1600x1200.jpg"&gt;1600&amp;times;1200&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-seagull1-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Live design - autor:  &lt;a href="http://www.toboganstudio.com/"&gt;Klement Grgić&lt;/a&gt;&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/full/june-joys.jpg"&gt;&lt;img style="display:inline;" alt="June-joys in Desktop Wallpaper Calendar: June 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/june-joys.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/full/june-joys.jpg"&gt;pr&amp;eacute; visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-calendar-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-calendar-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-calendar-1280x720.jpg"&gt;1280&amp;times;720&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-calendar-1680x1200.jpg"&gt;1680&amp;times;1200&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-calendar-2560x1600.jpg"&gt;2560&amp;times;1600&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rior: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-nocal-1024x640.jpg"&gt;1024&amp;times;640&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-nocal-1024x768.jpg"&gt;1024&amp;times;768&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-nocal-1280x720.jpg"&gt;1280&amp;times;720&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-nocal-1680x1200.jpg"&gt;1680&amp;times;1200&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-june-joys-nocal-2560x1600.jpg"&gt;2560&amp;times;1600&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;Midnight Moon - autor: &lt;a href="http://designelemental.net/"&gt;Dan 
King&lt;/a&gt;&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/full/midnight-moon.jpg"&gt;&lt;img style="display:inline;" alt="Midnight-moon in Desktop Wallpaper Calendar: June 2010" src="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/midnight-moon.jpg" width="500" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/images/wallpaper-calendar-june-10/full/midnight-moon.jpg"&gt;pr&amp;eacute; visualiza&amp;ccedil;&amp;atilde;o&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;com calend&amp;aacute;rio: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-calendar-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-calendar-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-calendar-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-calendar-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-calendar-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-calendar-1920x1080.jpg"&gt;1920&amp;times;1080&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-calendar-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;sem calend&amp;aacute;rior: &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-nocal-320x480.jpg"&gt;320&amp;times;480&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-nocal-1280x800.jpg"&gt;1280&amp;times;800&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-nocal-1280x1024.jpg"&gt;1280&amp;times;1024&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-nocal-1440x900.jpg"&gt;1440&amp;times;900&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-nocal-1680x1050.jpg"&gt;1680&amp;times;1050&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-nocal-1920x1080.jpg"&gt;1920&amp;times;1080&lt;/a&gt;,
 &lt;a href="http://media.smashingmagazine.com/cdn_smash/wp-content/uploads/uploader/wallpapers/june10/june-10-midnight-moon-nocal-1920x1200.jpg"&gt;1920&amp;times;1200&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;b&gt;Fonte: &lt;/b&gt;&lt;a href="http://www.smashingmagazine.com/2010/05/31/desktop-wallpaper-calendar-june-2010/"&gt;http://www.smashingmagazine.com/2010/05/31/desktop-wallpaper-calendar-june-2010/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;div class="addthis_toolbox addthis_default_style"&gt;
&lt;a class="addthis_button_facebook"&gt;&lt;/a&gt;
&lt;a class="addthis_button_email"&gt;&lt;/a&gt;
&lt;a class="addthis_button_favorites"&gt;&lt;/a&gt;
&lt;a class="addthis_button_print"&gt;&lt;/a&gt;
&lt;span class="addthis_separator"&gt;|&lt;/span&gt;
&lt;a href="http://addthis.com/bookmark.php?v=250&amp;amp;username=guilhermecardoso" class="addthis_button_expanded"&gt;More&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=guilhermecardoso"&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39089" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/webdesign/default.aspx">webdesign</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Wallpappers/default.aspx">Wallpappers</category></item><item><title>ASP.NET Chart Control Pie - Gráfico de Fatias</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/08/asp-net-chart-control-gr-225-fico-de-fatias.aspx</link><pubDate>Tue, 08 Jun 2010 09:19:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39086</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39086</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/06/08/asp-net-chart-control-gr-225-fico-de-fatias.aspx#comments</comments><description>&lt;p&gt;Num &lt;a href="http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/05/21/asp-net-chart-control-durante-um-postback.aspx"&gt;post anterio&lt;/a&gt;r expliquei um problema comum com o controlo do Chart Control da Microsoft.&lt;br /&gt;Neste post vou dar um exemplo de como criar um gr&amp;aacute;fico em fatias (Pie). Cada fatia ir&amp;aacute; corresponder a um distrito, e o valor a apresentar ser&amp;aacute; o volume de encomendas de todos os clientes (consoante o distrito). Para consultar a base de dados estou a usar LINQ To Entities mas facilmente adaptam isto &amp;agrave; ORM que estiverem a usar.&lt;/p&gt;
&lt;p&gt;Para utilizar-mos o &lt;b&gt;Chart Controls&lt;/b&gt; da Microsoft, fazemos este &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=130f7986-bf49-4fe5-9ca8-910ae6ea442c&amp;amp;DisplayLang=en"&gt;download
 (link)&lt;/a&gt;.&lt;br /&gt;Ap&amp;oacute;s feito o download executamos o execut&amp;aacute;vel e se 
necess&amp;aacute;rio reiniciamos o Visual Studio. No nosso projecto adiciona-mos a
 refer&amp;ecirc;ncia &lt;b&gt;System.Web.DataVisualization&lt;/b&gt;. Se formos alojar a 
nossa aplica&amp;ccedil;&amp;atilde;o num servidor Web e n&amp;atilde;o instalar-mos a dll no servidor, 
conv&amp;eacute;m irmos &amp;agrave; lista de refer&amp;ecirc;ncias, seleccionamos a &lt;b&gt;System.Web.DataVisualization&lt;/b&gt;
 e a &lt;b&gt;System.Web.DataVisualization.Design&lt;/b&gt; e na propriedade &lt;i&gt;Copy
 Local&lt;/i&gt; usamos &lt;i&gt;True&lt;/i&gt;.&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;img src="http://1.bp.blogspot.com/_FAEMVQvF9YU/STX3-8Ama3I/AAAAAAAADfs/eLmjoegDJ_c/s400/ChartImg.axd.png" alt="Exemplo Gr&amp;aacute;fico em Fatias" /&gt;
&lt;/div&gt;
&lt;p&gt;As tabelas que estou a usar s&amp;atilde;o 3: &lt;b&gt;&lt;br /&gt;Encomendas&lt;/b&gt; - Na tabela de Encomendas precisamos de um campo com o valor l&amp;iacute;quido dessa encomenda e uma chave prim&amp;aacute;ria&lt;b&gt;&lt;br /&gt;Clientes&lt;/b&gt; - A tabela Clientes vamos precisar de um campo com uma chave prim&amp;aacute;ria para criar-mos uma rela&amp;ccedil;&amp;atilde;o &amp;agrave; tabela Encomendas&lt;b&gt;&lt;br /&gt;Distritos&lt;/b&gt; - Basta-nos um campo com o nome do distrito e outro com a chave prim&amp;aacute;ria&lt;/p&gt;
&lt;p&gt;Um ponto importante ao utilizarmos este controlo &amp;eacute; a directoria onde vamos armazenar as imagens tempor&amp;aacute;rias geradas pelo controlo. No meu caso precisei de alterar as permiss&amp;otilde;es do utilizador para ter acesso &amp;agrave; pasta, e criei-a dentro da &lt;i&gt;App_Data&lt;/i&gt; por uma quest&amp;atilde;o de privacidade.&lt;br /&gt;No nosso &lt;b&gt;Web.Config&lt;/b&gt; adiciona-mos uma nova chave na &lt;b&gt;appSettings &lt;/b&gt;onde definamos as propriedades deste controlo, por exemplo:&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;appSettings&amp;gt;&lt;br /&gt;&amp;lt;add&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;key&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;ChartImageHandler&amp;quot;&lt;/span&gt;  &lt;span style="color:#8080c0;font-weight:bold;"&gt;value&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;storage=file;timeout=20;URL=/App_Data/MicrosoftChartControls/&amp;quot;&lt;/span&gt;  &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;br /&gt;
O valor da propriedade &lt;i&gt;timeout&lt;/i&gt; indica em segundos o tempo que a imagem &amp;eacute; alojada. Como isto &amp;eacute; um projecto Web, 20 segundos chegam bem para o cliente descarregar a imagem para os ficheiros tempor&amp;aacute;rios.&lt;/p&gt;
&lt;p&gt;Configurado o controlo, falta-nos escrever o c&amp;oacute;digo para preencher o gr&amp;aacute;fico.&lt;br /&gt;Como se trata de um gr&amp;aacute;fico em fatias, para lidar com os valores do eixo do X e do eixo do Y vou usar duas arrays: uma &lt;b&gt;string&lt;/b&gt; para o nome dos Distritos (eixo do X) e uma &lt;b&gt;decimal&lt;/b&gt; para o valor l&amp;iacute;quido das encomendas de todos os clientes desse distrito (eixo do Y). &lt;br /&gt;Para saber-mos o tamanho das arrays contamos os Distritos presentes na tabela. Por exemplo:&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;var distritos &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; from dist &lt;span style="color:#bb7977;font-weight:bold;"&gt;in&lt;/span&gt; contexto&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Distritos&lt;br /&gt;                                    select dist&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color:#8080c0;font-weight:bold;"&gt;decimal&lt;/span&gt; aux1&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color:#8080c0;font-weight:bold;"&gt;decimal&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;[]&lt;/span&gt; eixoY &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;new&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;decimal&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;[&lt;/span&gt;distritos&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;ToList&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;().&lt;/span&gt;&lt;span style="color:#004466;"&gt;Count&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;()];&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color:#8080c0;font-weight:bold;"&gt;string&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;[]&lt;/span&gt; eixoX &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;new&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;string&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;[&lt;/span&gt;distritos&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;ToList&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;().&lt;/span&gt;&lt;span style="color:#004466;"&gt;Count&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;()];&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color:#8080c0;font-weight:bold;"&gt;int&lt;/span&gt; index &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; &lt;span style="color:#800080;font-weight:bold;"&gt;0&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
A vari&amp;aacute;vel &lt;b&gt;aux1&lt;/b&gt; vou utilizar como auxiliar para somar o valor das encomendas de cada Distrito, e a index &amp;eacute; para adicionar-mos as entradas nas arrays nos &amp;iacute;ndices correctos.&lt;/p&gt;
&lt;p&gt;O que agora precisamos de fazer &amp;eacute; percorrer todos os Distritos num ciclo, e por cada Distrito vamos seleccionar todas as encomendas cujos Clientes perten&amp;ccedil;am a esse Distrito (vamos unir a tabela &lt;b&gt;Clientes&lt;/b&gt; e &lt;b&gt;Encomendas&lt;/b&gt; na instru&amp;ccedil;&amp;atilde;o). Vamos percorrer noutro ciclo essas mesmas Encomendas, e somando o valor delas (na vari&amp;aacute;vel &lt;b&gt;aux1&lt;/b&gt;), para depois adicionar-mos &amp;agrave; array (da&amp;iacute; a vari&amp;aacute;vel index).&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;foreach&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;var s &lt;span style="color:#bb7977;font-weight:bold;"&gt;in&lt;/span&gt; distritos&lt;span style="color:#ff0080;font-weight:bold;"&gt;)&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;                        var cli &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; from encomendas &lt;span style="color:#bb7977;font-weight:bold;"&gt;in&lt;/span&gt; contexto&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Encomendas&lt;br /&gt;                                  join clientes &lt;span style="color:#bb7977;font-weight:bold;"&gt;in&lt;/span&gt; contexto&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;VendedoresClientes on cl&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;IDcliente equals enc&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;IDcliente&lt;br /&gt;                                  where clientes&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;IDdistrito &lt;span style="color:#ff0080;font-weight:bold;"&gt;==&lt;/span&gt; s&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;IDdistrito&lt;br /&gt;                                  select &lt;span style="color:#bb7977;font-weight:bold;"&gt;new&lt;/span&gt;&lt;br /&gt;                                  &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;                                      IDcliente &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; clientes&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;IDcliente&lt;span style="color:#ff0080;font-weight:bold;"&gt;,&lt;/span&gt;&lt;br /&gt;                                      distrito &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; s&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;distrito&lt;span style="color:#ff0080;font-weight:bold;"&gt;,&lt;/span&gt;&lt;br /&gt;                                      total &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; encomendas&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;total&lt;br /&gt;                                  &lt;span style="color:#ff0080;font-weight:bold;"&gt;};&lt;/span&gt;&lt;br /&gt;                        aux1 &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; &lt;span style="color:#800080;font-weight:bold;"&gt;0&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;                        &lt;span style="color:#bb7977;font-weight:bold;"&gt;foreach&lt;/span&gt; &lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;var pa &lt;span style="color:#bb7977;font-weight:bold;"&gt;in&lt;/span&gt; cli&lt;span style="color:#ff0080;font-weight:bold;"&gt;)&lt;/span&gt;&lt;br /&gt;                        &lt;span style="color:#ff0080;font-weight:bold;"&gt;{&lt;/span&gt;&lt;br /&gt;                            aux1 &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; aux1 &lt;span style="color:#ff0080;font-weight:bold;"&gt;+&lt;/span&gt; Convert&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;ToDecimal&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;pa&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;total&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;                        &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                        eixoY&lt;span style="color:#ff0080;font-weight:bold;"&gt;[&lt;/span&gt;index&lt;span style="color:#ff0080;font-weight:bold;"&gt;] =&lt;/span&gt; aux1&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;                        eixoX&lt;span style="color:#ff0080;font-weight:bold;"&gt;[&lt;/span&gt;index&lt;span style="color:#ff0080;font-weight:bold;"&gt;] =&lt;/span&gt; s&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;distrito&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;ToString&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;();&lt;/span&gt;&lt;br /&gt;                        index &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; index&lt;span style="color:#ff0080;font-weight:bold;"&gt;++;&lt;/span&gt;&lt;br /&gt;                    &lt;span style="color:#ff0080;font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
O c&amp;oacute;digo em cima mostra como criar os dois ciclos e adicionar os valores na arrays. &amp;Eacute; importante na instru&amp;ccedil;&amp;atilde;o SQL ter a clausula onde o cliente tenha que pertencer ao Distrito do ciclo que estamos a percorrer (guardado na vari&amp;aacute;vel &lt;b&gt;s&lt;/b&gt;).&lt;/p&gt;
&lt;p&gt;Por fim, usamos as arrays para preencher o gr&amp;aacute;fico e defenimos algumas propriedades ao gr&amp;aacute;fico para ficar um gr&amp;aacute;fico de Fatias (Pie). Tamb&amp;eacute;m adicionei uma legenda para mostrar os Distritos.&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;ChartDistritos&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Series&lt;span style="color:#ff0080;font-weight:bold;"&gt;[&lt;/span&gt;&lt;span style="color:#800080;font-weight:bold;"&gt;0&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;].&lt;/span&gt;Points&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;DataBindXY&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;eixoX&lt;span style="color:#ff0080;font-weight:bold;"&gt;,&lt;/span&gt; eixoY&lt;span style="color:#ff0080;font-weight:bold;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ChartDistritos&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Series&lt;span style="color:#ff0080;font-weight:bold;"&gt;[&lt;/span&gt;&lt;span style="color:#800080;font-weight:bold;"&gt;0&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;].&lt;/span&gt;ChartType &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; SeriesChartType&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Pie&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;br /&gt;&lt;/span&gt;ChartDistritos&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;ChartAreas&lt;span style="color:#ff0080;font-weight:bold;"&gt;[&lt;/span&gt;&lt;span style="color:#800080;font-weight:bold;"&gt;0&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;].&lt;/span&gt;Area3DStyle&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Enable3D &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;true&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;ChartDistritos&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Legends&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;&lt;span style="color:#004466;"&gt;Add&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;new&lt;/span&gt; &lt;span style="color:#004466;"&gt;Legend&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;(&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&amp;quot;D&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;));&lt;/span&gt;&lt;br /&gt;ChartDistritos&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;ChartAreas&lt;span style="color:#ff0080;font-weight:bold;"&gt;[&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&amp;quot;ChartArea1&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;].&lt;/span&gt;Area3DStyle&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Enable3D &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;true&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;ChartDistritos&lt;span style="color:#ff0080;font-weight:bold;"&gt;.&lt;/span&gt;Legends&lt;span style="color:#ff0080;font-weight:bold;"&gt;[&lt;/span&gt;&lt;span style="color:#a68500;"&gt;&amp;quot;D&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;].&lt;/span&gt;Title &lt;span style="color:#ff0080;font-weight:bold;"&gt;=&lt;/span&gt; &lt;span style="color:#a68500;"&gt;&amp;quot;Distritos&amp;quot;&lt;/span&gt;&lt;span style="color:#ff0080;font-weight:bold;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A equipa da Microsoft que desenvolveu este controlo para .NET disponibilizou-nos um projecto onde eles mostram os exemplos dos gr&amp;aacute;ficos que existem, o c&amp;oacute;digo fonte em C# e VB e tamb&amp;eacute;m nos permitem personalizar gr&amp;aacute;ficos e consultar o c&amp;oacute;digo gerado. Podem fazer download deste projecto &lt;a href="http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?ReleaseId=1591"&gt;aqui (link)&lt;/a&gt;.&lt;br /&gt;Num projecto em que lidemos com Encomendas, a utiliza&amp;ccedil;&amp;atilde;o de gr&amp;aacute;ficos &amp;eacute; muito &amp;uacute;til e f&amp;aacute;cil de recorrer.&lt;/p&gt;

&lt;div class="addthis_toolbox addthis_default_style"&gt;
&lt;a class="addthis_button_facebook"&gt;&lt;/a&gt;
&lt;a class="addthis_button_email"&gt;&lt;/a&gt;
&lt;a class="addthis_button_favorites"&gt;&lt;/a&gt;
&lt;a class="addthis_button_print"&gt;&lt;/a&gt;
&lt;span class="addthis_separator"&gt;|&lt;/span&gt;
&lt;a href="http://addthis.com/bookmark.php?v=250&amp;amp;username=guilhermecardoso" class="addthis_button_expanded"&gt;More&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=guilhermecardoso"&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39086" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Chart+Controls/default.aspx">Chart Controls</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Chart+Control+Pie/default.aspx">Chart Control Pie</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Gr_26002300_225_3B00_fico+Fatias/default.aspx">Gr&amp;#225;fico Fatias</category></item><item><title>Comunidade PontoNetPT há um tempito atrás</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/05/25/comunidade-pontonetpt-h-225-um-tempito-atr-225-s.aspx</link><pubDate>Tue, 25 May 2010 08:40:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39024</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39024</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/05/25/comunidade-pontonetpt-h-225-um-tempito-atr-225-s.aspx#comments</comments><description>&lt;p&gt;Hoje encontrei um site interessante, o &lt;a href="http://www.archive.org/"&gt;Internet Archive &lt;/a&gt;que funciona como biblioteca online onde podemos consultar sites antigos que s&amp;atilde;o guardados.&lt;br /&gt;O mais engra&amp;ccedil;ado &amp;eacute; que ainda encontrei v&amp;aacute;rios registos guardados do www.pontonetpt.com !&lt;/p&gt;
&lt;p&gt;&lt;a href="http://web.archive.org/web/20031215083542/http://www.pontonetpt.com/"&gt;Dezembro
 15, 2003&lt;/a&gt; &lt;br /&gt;&lt;a href="http://pontonetpt.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/6165.1.png"&gt;&lt;img src="http://pontonetpt.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/6165.1.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://web.archive.org/web/20040403090659/http://pontonetpt.com/"&gt;Abril
 03, 2004&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://pontonetpt.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/4401.3.png"&gt;&lt;img src="http://pontonetpt.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/4401.3.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;a href="http://pontonetpt.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/2112.2.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://web.archive.org/web/20061224110707/http://www.pontonetpt.com/"&gt;Dezembro 24, 2006&lt;br /&gt;&lt;/a&gt;&lt;a href="http://pontonetpt.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/6204.2.png"&gt;&lt;img src="http://pontonetpt.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/guilhermecardoso/6204.2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39024" width="1" height="1"&gt;</description></item><item><title>ASP.NET Chart Control - Durante um PostBack</title><link>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/05/21/asp-net-chart-control-durante-um-postback.aspx</link><pubDate>Fri, 21 May 2010 16:24:00 GMT</pubDate><guid isPermaLink="false">9d4b03f4-ce39-4703-ab9d-5b341a2c824e:39004</guid><dc:creator>Guilherme Cardoso</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://pontonetpt.com/blogs/guilhermecardoso/rsscomments.aspx?PostID=39004</wfw:commentRss><comments>http://pontonetpt.com/blogs/guilhermecardoso/archive/2010/05/21/asp-net-chart-control-durante-um-postback.aspx#comments</comments><description>&lt;p&gt;Para se utilizar o controlo &lt;b&gt;Chart &lt;/b&gt;apartir de um &lt;i&gt;PostBack&lt;/i&gt; &amp;eacute; necess&amp;aacute;rio alterar o &lt;i&gt;HttpHandler&lt;/i&gt; do &lt;i&gt;ChartImg.axd&lt;/i&gt;, caso contr&amp;aacute;rio recebemos a mensagem de erro&lt;i&gt;: Erro ao executar pedido subordinado para ChartImg.axd&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;No &lt;b&gt;Web.Config&lt;/b&gt; procuramos a linha:&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;add&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;path&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;ChartImg.axd&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;verb&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;GET,HEAD&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;type&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#8080c0;font-weight:bold;"&gt;validate&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
Alteramos para:&lt;/p&gt;
&lt;pre style="color:#000000;background-color:#eeeeee;font-size:8pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;span style="color:#bb7977;font-weight:bold;"&gt;&amp;lt;add&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;path&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;ChartImg.axd&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;verb&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;GET,HEAD,POST&amp;quot;&lt;/span&gt; &lt;span style="color:#8080c0;font-weight:bold;"&gt;type&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color:#8080c0;font-weight:bold;"&gt;validate&lt;/span&gt;=&lt;span style="color:#a68500;"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; &lt;span style="color:#bb7977;font-weight:bold;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;
O atributo que estamos a adicionar &amp;eacute; o &lt;i&gt;Post&lt;/i&gt;.&lt;br /&gt;Para quem n&amp;atilde;o conhece este controlo &amp;eacute; muito &amp;uacute;til para criar gr&amp;aacute;ficos. Podem ver mais informa&amp;ccedil;&amp;otilde;es &lt;a target="_blank" href="http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx"&gt;aqui&lt;/a&gt;.
&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;p&gt;&lt;img src="http://www.scottgu.com/blogposts/chart/step2.png" style="max-width:550px;" border="0" alt="" /&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://pontonetpt.com/aggbug.aspx?PostID=39004" width="1" height="1"&gt;</description><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://pontonetpt.com/blogs/guilhermecardoso/archive/tags/Chart+Controls/default.aspx">Chart Controls</category></item></channel></rss>