<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.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>Paulo Morgado : VisualBasic</title><link>http://msmvps.com/blogs/paulomorgado/archive/tags/VisualBasic/default.aspx</link><description>Tags: VisualBasic</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>LINQ With C# Book Is Finally Out</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/05/18/linq-with-c-book-is-finally-out.aspx</link><pubDate>Sun, 17 May 2009 23:39:51 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1692586</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1692586</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1692586</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/05/18/linq-with-c-book-is-finally-out.aspx#comments</comments><description>&lt;p align="justify"&gt;It’s finally out!&lt;/p&gt;  &lt;p align="justify"&gt;The &lt;strong&gt;&lt;a title="Livro LINQ Com C#" href="http://cli.gs/Livro-LINQ-Com-Charp" target="_blank"&gt;LINQ Com C#&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt; (LINQ With C#) book that &lt;a title="Luís Abreu" href="http://cli.gs/LuisAbreu" target="_blank"&gt;Luís&lt;/a&gt; and I wrote is out. Well, mostly Luís than I.&lt;/p&gt;  &lt;p align="justify"&gt;This book, published by &lt;a title="FCA- Livros de Informática / TI para todos os níveis" href="http://www.fca.pt/" target="_blank"&gt;FCA&lt;/a&gt;, is targeted at anyone that already knows &lt;a title="Microsoft Visual C#" href="http://cli.gs/vcsharp" target="_blank"&gt;C#&lt;/a&gt; 2.0 and wants to know learn the new features introduced with C# 3.0 that made possible &lt;a title="Language-Integrated Query (LINQ)" href="http://msdn2.microsoft.com/library/bb397926.aspx" target="_blank"&gt;LINQ&lt;/a&gt; (Language INtegrated Query). The examples in the book are written in C#, but &lt;a title="Visual Basic Developer Center" href="http://msdn.microsoft.com/vbasic/" target="_blank"&gt;Visual Basic&lt;/a&gt; get be get from the book’s site.&lt;/p&gt;  &lt;div&gt;   &lt;table&gt;       &lt;tr&gt;         &lt;td style="padding-right:10px;" rowspan="5"&gt;&lt;a title="Livro LINQ Com C#" href="http://cli.gs/Livro-LINQ-Com-Charp" target="_blank"&gt;&lt;img border="0" alt="Livro LINQ Com C#" src="http://www.fca.pt/ximages/722_547.gif" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td style="text-align:right;padding-right:10px;"&gt;Title:&lt;/td&gt;          &lt;td&gt;&lt;strong&gt;&lt;a title="Livro LINQ Com C#" href="http://cli.gs/Livro-LINQ-Com-Charp" target="_blank"&gt;LINQ Com C#&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="text-align:right;padding-right:10px;"&gt;Authors:&lt;/td&gt;          &lt;td&gt;&lt;a title="Luís Abreu" href="http://cli.gs/LuisAbreu" target="_blank"&gt;Luís Abreu&lt;/a&gt; / &lt;a title="Paulo Morgado" href="http://paulomorgado.net/" target="_blank"&gt;Paulo Morgado&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="text-align:right;padding-right:10px;"&gt;ISBN:&lt;/td&gt;          &lt;td&gt;978-972-722-547-7&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="text-align:right;padding-right:10px;"&gt;Number of Pages:&lt;/td&gt;          &lt;td&gt;216&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="text-align:right;padding-right:10px;"&gt;Format:&lt;/td&gt;          &lt;td&gt;17,0 x 24,0 x 1,3 cm (6.7 x 9.4 x 0.5 in)&lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/div&gt;  &lt;p&gt;The book can be found here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://cli.gs/Livro-LINQ-Com-Charp"&gt;FCA&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://cli.gs/LYJEVY"&gt;WOOK&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://cli.gs/8ApGrH"&gt;fnac&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1692586" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualBasic/default.aspx">VisualBasic</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Books/default.aspx">Books</category></item><item><title>Help Typemock Launch Its New Visual Basic .NET Friendly API And You Might Get A Free License</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/01/13/help-typemock-launch-its-new-visual-basic-net-friendly-api-and-you-might-get-a-free-license.aspx</link><pubDate>Tue, 13 Jan 2009 21:32:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1661503</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1661503</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1661503</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/01/13/help-typemock-launch-its-new-visual-basic-net-friendly-api-and-you-might-get-a-free-license.aspx#comments</comments><description>&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;a title="Typemock - Simplify Unit Testing!" href="http://cli.gs/Typemock" target="_blank"&gt;Typemock&lt;/a&gt; is announcing today a new version of Typemock Isolator (5.2).&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;One of the coolest features in the new version is the inclusion of a new &lt;a title="Unit Testing VB.NET" href="http://cli.gs/1DbBzH"&gt;VB .NET unit testing API&lt;/a&gt;. This &amp;#39;VB friendly&amp;#39; API was designed and written in VB.NET, for VB.NET developers. It uses the strengths of the VB.NET language to allow easy and intuitive use of the isolation API, for easier unit tests on any piece of .NET code.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;If you are you a blogger, webmaster, or internet columnist, you can get your free personal license by helping Typemock launch their new 5.2 version for Isolator - the best tool to unit test VB.NET applications.&lt;/p&gt;
&lt;p align="justify"&gt;Although this version is targeted to unit test VB.NET applications, &lt;a title="Visual C#" href="http://cli.gs/vcsharp" target="_blank"&gt;C#&lt;/a&gt; applications with unit tests built using &lt;a title="Microsoft Visual Studio" href="http://cli.gs/vstudio" target="_blank"&gt;Visual Studio&lt;/a&gt; 2005 can also benefit from this API.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;How can you get the free license?&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Post the text below on your blog (as is, with links) and &lt;a href="mailto:vb@typemock.com" target="_blank"&gt;tell them about it&lt;/a&gt; . If you are in the first 25 to mail them after posting, your license will be on its way!&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;If you have a &lt;strong&gt;VB.NET dedicated blog&lt;/strong&gt;, you&amp;#39;ll get a license automatically (even if more than 25 submit) during the first week of this announcement.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;A few simple requirements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div align="justify"&gt;You must own a website, blog space or internet column, older than 2 months, or get permission from the owner of such a site. &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Your post must include the text below (including the links) between &lt;strong&gt;*Begin*&lt;/strong&gt; and &lt;strong&gt;*End*&lt;/strong&gt;. &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;_&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;&lt;strong&gt;*Begin*&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.typemock.com/vbpage.php?utm_source=vbp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;Programming Visual Basic&lt;/a&gt; applications?&lt;/p&gt;
&lt;p&gt;Typemock have released a new version of their &lt;a href="http://www.typemock.com/?utm_source=hp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;unit testing&lt;/a&gt; tool, Typemock Isolator 5.2. &lt;br /&gt;This version includes a new friendly &lt;a href="http://www.typemock.com/vbpage.php?utm_source=vbp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;VB.NET&lt;/a&gt; API which makes Isolator the best Isolation tool for &lt;a href="http://www.typemock.com/vbpage.php?utm_source=vbp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;unit testing A Visual Basic (VB) .NET application&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Isolator now allows unit testing in VB or C# for many ‘hard to test’ technologies such as &lt;a href="http://typemock.com/sharepointpage.php?utm_source=spp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;SharePoint&lt;/a&gt;, ASP.NET MVC, partial support for Silverlight, WPF, LINQ, WF, Entity Framework, &lt;a href="http://www.typemock.com/wcfpage.php?utm_source=wcfp&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvb"&gt;WCF unit testing&lt;/a&gt; and more.&lt;/p&gt;
&lt;p&gt;Note that the first 25 bloggers who blog this text in their blog and tell us about it, will get a &lt;strong&gt;Free Full Isolator license&lt;/strong&gt; (worth $139). If you post this in a &lt;strong&gt;VB.NET dedicated blog&lt;/strong&gt;, you&amp;#39;ll get a license automatically (even if more than 25 submit) during the first week of this announcement.&lt;/p&gt;
&lt;p&gt;Go ahead, click the following link for &lt;a href="http://blog.typemock.com/2009/01/get-free-isolator-licnese-for-helping.html?utm_source=vb_blog&amp;amp;utm_medium=typeblog&amp;amp;utm_campaign=isolatorvbblog"&gt;more information&lt;/a&gt; on how to get your free license.&lt;/p&gt;
&lt;p&gt;_&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;*End*&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Once you post this in your site, just drop them a line at &lt;a href="mailto:vb@typemock.com"&gt;vb@typemock.com&lt;/a&gt; with your name and the post URL to get your free license.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Hurry up – this offer is limited to the first 25 general bloggers, or to VB.NET dedicated bloggers who will post this in the first week.&lt;/p&gt;
&lt;p align="justify"&gt;--&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer:&lt;/strong&gt; This is an offer from &lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;Typemock&lt;/a&gt; as announced at &lt;a title="http://blog.typemock.com/2009/01/get-free-isolator-licnese-for-helping.html" href="http://blog.typemock.com/2009/01/get-free-isolator-licnese-for-helping.html"&gt;http://blog.typemock.com/2009/01/get-free-isolator-licnese-for-helping.html&lt;/a&gt;. I’m just a fan.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1661503" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualBasic/default.aspx">VisualBasic</category></item><item><title>The Future Of C#</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/12/03/the-future-of-c.aspx</link><pubDate>Wed, 03 Dec 2008 01:17:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1655592</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1655592</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1655592</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/12/03/the-future-of-c.aspx#comments</comments><description>&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;If you were able to attend this session at &lt;a title="Microsoft PDC" target="_blank" href="http://microsoftpdc.com/"&gt;PDC&lt;/a&gt; or &lt;a title="Tech-Ed EMEA Developers 2008" target="_blank" href="http://www.microsoft.com/emea/teched2008/developer/"&gt;Tech-Ed EMEA Developers&lt;/a&gt;, you were presented with a first class presentation of the future of &lt;a title="Visual C#" target="_blank" href="http://msdn.microsoft.com/vcsharp/"&gt;C#&lt;/a&gt;, presented, respectively, by Anders Hejlsberg and &lt;a title="The Mellow Musings of Dr. T" target="_blank" href="http://blogs.msdn.com/madst/"&gt;Mads Torgersen&lt;/a&gt;.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;For the near future (&lt;a title=".NET Framework Developer Center" target="_blank" href="http://msdn.microsoft.com/netframework/"&gt;.NET&lt;/a&gt; 4.0) C# will have:&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Dynamically Typed Objects&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Optional and Named Parameters&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Improved COM Interoperability&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Co- and Contra-variance&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;A preview of the compiler as a service was shown, but that’s not for the .NET 4.0 / Visual Studio 2010 timeframe. Probably, not even for the next.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Starting with .NET 4.0, C# and &lt;a title="Visual Basic Developer Center" target="_blank" href="http://msdn.microsoft.com/vbasic/"&gt;Visual Basic&lt;/a&gt; will converge in terms of features and follow a path of co-evolution going into the future.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;No! That doesn’t mean that XML literals will be in C# in a foreseeable future. What that means is that the above list also applies to Visual Basic.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Talking of Visual Basic evolution, the &lt;strong&gt;_&lt;/strong&gt; line continuation character has been retired. If you have any use for the underscore, please visit &lt;a title="http://www.unemployedunderscores.com/" href="http://www.unemployedunderscores.com/"&gt;http://www.unemployedunderscores.com/&lt;/a&gt;.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;h4&gt;Resources:&lt;/h4&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a title="C# Future" target="_blank" href="http://code.msdn.microsoft.com/csharpfuture"&gt;C# Future&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a title="Microsoft Pre-release Software Visual Studio 2010 and .NET Framework 4.0 Community Technology Preview (CTP)" target="_blank" href="https://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814"&gt;Microsoft Pre-release Software Visual Studio 2010 and .NET Framework 4.0 Community Technology Preview (CTP)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a title="Charlie Calvert&amp;#39;s Community Blog" target="_blank" href="http://blogs.msdn.com/charlie/"&gt;Charlie Calvert&amp;#39;s Community Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;PDC Session: TL16 - The Future of C#&lt;/div&gt;
&lt;div align="justify"&gt;Presenter: Anders Hejlsberg &lt;/div&gt;
&lt;div align="justify"&gt;&lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/PPTX/TL16.pptx"&gt;PPTX&lt;/a&gt; | &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL16.wmv"&gt;WMV-HQ&lt;/a&gt; | &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV/TL16.wmv"&gt;WMV&lt;/a&gt; | &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/ZUNE/TL16.wmv"&gt;Zune&lt;/a&gt; | &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/MP4/TL10.mp4"&gt;MP4&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;PDC Session: &lt;a title="Future Directions for Microsoft Visual Basic" target="_blank" href="http://channel9.msdn.com/pdc2008/TL12/"&gt;TL12 - Future Directions for Microsoft Visual Basic&lt;/a&gt;&lt;/div&gt;
&lt;div align="justify"&gt;Presenter(s): Paul Vick, Lucian Wischik&lt;/div&gt;
&lt;div align="justify"&gt;&lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/PPTX/TL12.pptx"&gt;PPTX&lt;/a&gt; | &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL12.wmv"&gt;WMV-HQ&lt;/a&gt; | &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV/TL12.wmv"&gt;WMV&lt;/a&gt; | &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/ZUNE/TL12.wmv"&gt;Zune&lt;/a&gt; | &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/MP4/TL10.mp4"&gt;MP4&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1655592" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TechEd/default.aspx">TechEd</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/PDC/default.aspx">PDC</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TechEd2008/default.aspx">TechEd2008</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualBasic/default.aspx">VisualBasic</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/PDC2008/default.aspx">PDC2008</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio2010/default.aspx">VisualStudio2010</category></item><item><title>MSDN Ramp Up Program</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/11/07/msdn-ramp-up-program.aspx</link><pubDate>Fri, 07 Nov 2008 00:53:35 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1653334</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1653334</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1653334</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/11/07/msdn-ramp-up-program.aspx#comments</comments><description>    &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="center"&gt;         &lt;a href="http://www.MyRampUp.com"&gt;             &lt;img title="" border="0" alt="MSDN Ramp Up Program" src="http://i.msdn.microsoft.com/bb352986.RampUp_logo.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="justify"&gt;         I just came across this: &lt;a title="MSDN Ramp Up Program" href="http://www.MyRampUp.com"&gt;             www.MyRampUp&lt;/a&gt;&lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="justify"&gt;         Ramp Up is a free, online, community-based program that can help users save time         in learning Microsoft technology.&lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="justify"&gt;         The easy-to-access content (provided by subject-matter gurus) is specifically tailored         to the Ramp Up program, and offered in a variety of forms (whitepaper, v-lab, codecast         and slidecast).&lt;/p&gt;     &lt;p align="center"&gt;         &lt;a href="http://www.MyRampUp.com"&gt;             &lt;img title="" border="0" alt="Program Guide" src="http://i.msdn.microsoft.com/bb352986.program_guide.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="justify"&gt;         The currently available routes are:&lt;/p&gt;     &lt;p align="center"&gt;         &lt;a href="http://msdn.microsoft.com/rampup/dd221355.aspx"&gt;             &lt;img title="SharePoint for Developers track - learn more" border="0" alt="SharePoint for Developers track - learn more" src="http://i.msdn.microsoft.com/bb352986.track_blue_out.jpg" /&gt;&lt;/a&gt; &lt;a href="http://PauloMorgado.NET/"&gt;                 &lt;/a&gt;     &lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="center"&gt;         &lt;a href="http://msdn.microsoft.com/rampup/cc562987.aspx"&gt;             &lt;img title="Visual Studio 2008 track - learn more" border="0" alt="Visual Studio 2008 track - learn more" src="http://i.msdn.microsoft.com/bb352986.track_yellow2_out.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="center"&gt;         &lt;a href="http://msdn.microsoft.com/rampup/bb421265.aspx"&gt;             &lt;img title="Aspiring Developer - learn more" border="0" alt="Aspiring Developer - learn more" src="http://i.msdn.microsoft.com/bb352986.track_green_out.jpg" /&gt;&lt;/a&gt;     &lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="center"&gt;         &lt;a href="http://msdn.microsoft.com/rampup/bb421266.aspx"&gt;             &lt;img title="Success with Java and C# - learn more" border="0" alt="Success with Java and C# - learn more" src="http://i.msdn.microsoft.com/bb352986.track_yellow_out.jpg" /&gt;&lt;/a&gt;     &lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="center"&gt;         &lt;a href="http://msdn.microsoft.com/rampup/bb421267.aspx"&gt;             &lt;img title="Next Level Visual Basic - learn more" border="0" alt="Next Level Visual Basic - learn more" src="http://i.msdn.microsoft.com/bb352986.track_orange_out.jpg" /&gt;&lt;/a&gt;     &lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="center"&gt;         &lt;a href="http://msdn.microsoft.com/rampup/bb421268.aspx"&gt;             &lt;img title="Next Level Microsoft.NET - learn more" border="0" alt="Next Level Microsoft.NET - learn more" src="http://i.msdn.microsoft.com/bb352986.track_purple_out.jpg" /&gt;&lt;/a&gt;     &lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;     &lt;p align="justify"&gt;         Currently, there are no assessments in the program, so it&amp;#39;s quicker than ever to         graduate and receive the reward (25% off on certification and 50% off on e-Learning         - only for graduates of Ramp Up).&lt;/p&gt;     &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1653334" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Community/default.aspx">Community</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio/default.aspx">VisualStudio</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Training/default.aspx">Training</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualBasic/default.aspx">VisualBasic</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualStudio2008/default.aspx">VisualStudio2008</category></item><item><title>C# And Visual Basic Generate Different Expression Trees</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/08/04/c-and-visual-basic-generate-different-expression-trees.aspx</link><pubDate>Mon, 04 Aug 2008 00:23:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1643213</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1643213</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1643213</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/08/04/c-and-visual-basic-generate-different-expression-trees.aspx#comments</comments><description>&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;(This was pointed out to me by &lt;a title="Frans Bouma&amp;#39;s blog" href="http://weblogs.asp.net/fbouma/" target="_blank"&gt;Frans Bouma&lt;/a&gt; and explained by &lt;a title="Jon Skeet&amp;#39;s Coding Blog" href="http://msmvps.com/blogs/jon.skeet/" target="_blank"&gt;Jon Skeet&lt;/a&gt;)&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;Imagine you have this set of classes:&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:blue;"&gt;public class &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;A
&lt;/span&gt;{
    &lt;span style="COLOR:blue;"&gt;public virtual string &lt;/span&gt;P
    {
        &lt;span style="COLOR:blue;"&gt;get &lt;/span&gt;{ &lt;span style="COLOR:blue;"&gt;return &lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;&amp;quot;A&amp;quot;&lt;/span&gt;; }
    }
}

&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;span style="COLOR:blue;"&gt;public class &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;B &lt;/span&gt;: &lt;span style="COLOR:#2b91af;"&gt;A
&lt;/span&gt;{
}

&lt;span style="COLOR:blue;"&gt;public class &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;C &lt;/span&gt;: &lt;span style="COLOR:#2b91af;"&gt;B
&lt;/span&gt;{
    &lt;span style="COLOR:blue;"&gt;public override string &lt;/span&gt;P
    {
        &lt;span style="COLOR:blue;"&gt;get &lt;/span&gt;{ &lt;span style="COLOR:blue;"&gt;return &lt;/span&gt;&lt;span style="COLOR:#a31515;"&gt;&amp;quot;C&amp;quot;&lt;/span&gt;; }
    }
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;And this class:&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:blue;"&gt;public static class &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;Reporter
&lt;/span&gt;{
    &lt;span style="COLOR:blue;"&gt;public static void &lt;/span&gt;Report&amp;lt;T&amp;gt;(T target, &lt;span style="COLOR:#2b91af;"&gt;Expression&lt;/span&gt;&amp;lt;&lt;span style="COLOR:#2b91af;"&gt;Func&lt;/span&gt;&amp;lt;T, &lt;span style="COLOR:blue;"&gt;string&lt;/span&gt;&amp;gt;&amp;gt; expression)
    {
        &lt;span style="COLOR:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;Expression: {0}&amp;quot;&lt;/span&gt;, expression);
        &lt;span style="COLOR:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;\tDeclaring Type: {0}&amp;quot;&lt;/span&gt;, ((expression &lt;span style="COLOR:blue;"&gt;as &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;LambdaExpression&lt;/span&gt;).Body &lt;span style="COLOR:blue;"&gt;as &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;MemberExpression&lt;/span&gt;).Member.DeclaringType);
        &lt;span style="COLOR:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="COLOR:#a31515;"&gt;&amp;quot;\tInvocation Result: {0} for {1}&amp;quot;&lt;/span&gt;, expression.Compile().Invoke(target), target.GetType());
        &lt;span style="COLOR:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine();
    }
}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;The above class writes to the console the lambda expression, the declaring type of the property and the value of the property for the target and the target’s type.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;Now, let’s look at what happens when used from this &lt;strong&gt;C#&lt;/strong&gt; code:&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;pre class="code"&gt;&lt;span style="COLOR:#2b91af;"&gt;Reporter&lt;/span&gt;.Report(&lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;C&lt;/span&gt;(), (&lt;span style="COLOR:#2b91af;"&gt;A &lt;/span&gt;a) =&amp;gt; a.P);
&lt;span style="COLOR:#2b91af;"&gt;Reporter&lt;/span&gt;.Report(&lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;C&lt;/span&gt;(), (&lt;span style="COLOR:#2b91af;"&gt;B &lt;/span&gt;b) =&amp;gt; b.P);
&lt;span style="COLOR:#2b91af;"&gt;Reporter&lt;/span&gt;.Report(&lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;C&lt;/span&gt;(), (&lt;span style="COLOR:#2b91af;"&gt;C &lt;/span&gt;c) =&amp;gt; c.P);

&lt;span style="COLOR:#2b91af;"&gt;Reporter&lt;/span&gt;.Report(&lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;B&lt;/span&gt;(), (&lt;span style="COLOR:#2b91af;"&gt;A &lt;/span&gt;a) =&amp;gt; a.P);
&lt;span style="COLOR:#2b91af;"&gt;Reporter&lt;/span&gt;.Report(&lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;B&lt;/span&gt;(), (&lt;span style="COLOR:#2b91af;"&gt;B &lt;/span&gt;b) =&amp;gt; b.P);

&lt;span style="COLOR:#2b91af;"&gt;Reporter&lt;/span&gt;.Report(&lt;span style="COLOR:blue;"&gt;new &lt;/span&gt;&lt;span style="COLOR:#2b91af;"&gt;A&lt;/span&gt;(), (&lt;span style="COLOR:#2b91af;"&gt;A &lt;/span&gt;a) =&amp;gt; a.P);&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;The output will be:&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;pre class="code"&gt;Expression: a =&amp;gt; a.P
        Declaring Type: A
        Invocation Result: C for C

Expression: b =&amp;gt; b.P
        Declaring Type: A
        Invocation Result: C for C

Expression: c =&amp;gt; c.P
        Declaring Type: A
        Invocation Result: C for C

Expression: a =&amp;gt; a.P
        Declaring Type: A
        Invocation Result: A for B

Expression: b =&amp;gt; b.P
        Declaring Type: A
        Invocation Result: A for B

Expression: a =&amp;gt; a.P
        Declaring Type: A
        Invocation Result: A for A&lt;/pre&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;On the other hand, if used from the equivalent &lt;strong&gt;Visual Basic&lt;/strong&gt; code:&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;pre class="code"&gt;Reporter.Report(&lt;span style="COLOR:blue;"&gt;New &lt;/span&gt;C(), &lt;span style="COLOR:blue;"&gt;Function&lt;/span&gt;(a &lt;span style="COLOR:blue;"&gt;As &lt;/span&gt;A) a.P)
Reporter.Report(&lt;span style="COLOR:blue;"&gt;New &lt;/span&gt;C(), &lt;span style="COLOR:blue;"&gt;Function&lt;/span&gt;(b &lt;span style="COLOR:blue;"&gt;As &lt;/span&gt;B) b.P)
Reporter.Report(&lt;span style="COLOR:blue;"&gt;New &lt;/span&gt;C(), &lt;span style="COLOR:blue;"&gt;Function&lt;/span&gt;(c &lt;span style="COLOR:blue;"&gt;As &lt;/span&gt;C) c.P)

Reporter.Report(&lt;span style="COLOR:blue;"&gt;New &lt;/span&gt;B(), &lt;span style="COLOR:blue;"&gt;Function&lt;/span&gt;(a &lt;span style="COLOR:blue;"&gt;As &lt;/span&gt;A) a.P)
Reporter.Report(&lt;span style="COLOR:blue;"&gt;New &lt;/span&gt;B(), &lt;span style="COLOR:blue;"&gt;Function&lt;/span&gt;(b &lt;span style="COLOR:blue;"&gt;As &lt;/span&gt;B) b.P)

Reporter.Report(&lt;span style="COLOR:blue;"&gt;New &lt;/span&gt;A(), &lt;span style="COLOR:blue;"&gt;Function&lt;/span&gt;(a &lt;span style="COLOR:blue;"&gt;As &lt;/span&gt;A) a.P)&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;The output will be:&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;pre class="code"&gt;Expression: a =&amp;gt; a.P
        Declaring Type: A
        Invocation Result: C for C

Expression: b =&amp;gt; b.P
        Declaring Type: A
        Invocation Result: C for C

Expression: c =&amp;gt; c.P
        Declaring Type: C
        Invocation Result: C for C

Expression: a =&amp;gt; a.P
        Declaring Type: A
        Invocation Result: A for B

Expression: b =&amp;gt; b.P
        Declaring Type: A
        Invocation Result: A for B

Expression: a =&amp;gt; a.P
        Declaring Type: A
        Invocation Result: A for A&lt;/pre&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;Why the differences? It’s because of each language’s specification and compiler:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;C#&lt;/strong&gt; compiler will issue a virtual call to the virtual member in the class where it’s declared as virtual. &lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Visual Basic&lt;/strong&gt; compiler will issue a virtual call to the overriding member on the class that overrides it. &lt;/li&gt;&lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1643213" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualBasic/default.aspx">VisualBasic</category></item></channel></rss>