<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.mconstantin.eu.org/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>Blogging About .NET : .NET Stuff</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx</link><description>All about .NET</description><dc:language>en-US</dc:language><generator>CommunityServer 2.0 (Build: 60404.2676)</generator><item><title>A new home for Reflector</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2008/08/24/1854.aspx</link><pubDate>Mon, 25 Aug 2008 04:40:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:1854</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/1854.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=1854</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/1854.aspx</wfw:comment><description>&lt;P&gt;A few days ago Red Gate has&amp;nbsp;&lt;A href="http://www.simple-talk.com/opinion/opinion-pieces/the-future-of-reflector-/"&gt;announced&lt;/A&gt; that it acquired Reflector from Lutz Roeder, which is big news given the fact it is kind of core tool for .NET.&lt;/P&gt;
&lt;P&gt;In case you don't know yet Reflector was listed in top 10 of the tools that every .NET developer must have, as can unlock many of the misteries of the .NET Framework and almost every other tool based on .NET. Red Gate announced that it will keep Reflector free so we don't need to worry at least for now and maybe we will find more addins for Reflector and community will be more interested to create for it.&lt;/P&gt;
&lt;P&gt;In my opinion this move was somehow determined by the fact that some of the products from Red Gate's portfolio have now some competition from Visual Studio Team System, but this is the subject of another post.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=1854" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>Working with Wix - Patching reloaded</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2007/12/15/1730.aspx</link><pubDate>Sat, 15 Dec 2007 20:15:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:1730</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/1730.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=1730</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/1730.aspx</wfw:comment><description>Since my last &lt;a href="http://blogs.mconstantin.eu.org/cchrism/archive/2007/03/02/1087.aspx"&gt;update&lt;/a&gt; some changes have appeared in the steps needed to create a patch using Wix. The good news is that you no longer need MSIMSP to create a patch (and all the hurdles required to obtain MSIMSP).&lt;P /&gt;
&lt;STRONG&gt;Pyro&lt;/STRONG&gt; is the new tool that can be used instead of MSIMSP and streamlines the patch creation process.&lt;P /&gt;
For more information about Pyro and how to use it you can use &lt;A href="http://blogs.msdn.com/astebner/archive/2007/07/17/3922328.aspx"&gt;this link&lt;/A&gt;&lt;P /&gt;
Also &lt;A HREF="http://blogs.msdn.com/astebner/archive/2007/10/26/5700191.aspx"&gt;here&lt;/A&gt; you can find "updated instructions for building patches using the new WiX v3.0 patch building system".&lt;P /&gt;
With this information Wix gains new strength, and &lt;A HREF="http://blogs.msdn.com/pmarcu/archive/2007/11/29/wix-visual-studio-ships-the-wix-toolset.aspx"&gt;it seems&lt;/A&gt; that Wix will be incorporated into Visual Studio Rosario (the one after Visual Studio Team System 2008, just released), instead of existing infrastructure for creating Windows Installer packages.
&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=1730" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>Working with WiX - Patching hints</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2007/03/02/1087.aspx</link><pubDate>Sat, 03 Mar 2007 06:33:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:1087</guid><dc:creator>cchrism</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/1087.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=1087</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/1087.aspx</wfw:comment><description>If you are trying to create MSP files ( aka MSI patches ), one of the best tool I found to create PCP files is &lt;a href="http://wix.sourceforge.net/"&gt;Wix&lt;/a&gt;. The amount of documentation for MSP creation is extremely small in my opinion, most of the required hints are in the Wix documentation. However I want to emphasize some of the steps that might be skipped by mistake:&lt;P /&gt;
&lt;UL&gt;&lt;LI&gt;&lt;B&gt;You need MSIMSP&lt;/B&gt; Wix automates the creation of PCP files only. It's not a one stop shop&lt;/LI&gt;
&lt;LI&gt;&lt;B&gt;MSIMSP doesn't work with compressed MSIs&lt;/B&gt;. Yes! It's true, do not try to bend this rule.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P /&gt;
Otherwise the process it's fairly simple. Type the wxs file (using your favorite text editor), compile the file to PCP and run MSIMSP tool after having administrative install MSIs (uncompressed versions).&lt;P /&gt;

A good start to more information about Windows Installer can be found &lt;a href="http://blogs.msdn.com/karinm/archive/2007/02/14/13-great-setup-blogs.aspx"&gt;here&lt;/a&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=1087" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>Clutter free plugin hosts in .NET</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2007/02/04/1078.aspx</link><pubDate>Sun, 04 Feb 2007 21:20:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:1078</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/1078.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=1078</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/1078.aspx</wfw:comment><description>&lt;P&gt;This post is inspired from &lt;A href="http://weblogs.studentclub.ro/aghiondea/archive/2006/06/07/Plugins-si-System-Reflection-Assembly.aspx"&gt;another post&lt;/A&gt;&amp;nbsp;(in Romanian, sorry for the not Romanian speakers), which asks about the usefulness of System.Reflection.Assembly class.&lt;/P&gt;
&lt;P&gt;This class is primarly your one stop shop if you want to implement a plugin host in .NET Framework. The implementation of a plugin host in .NET Framework is somehow different than the old "C/C++" way of implementing by the simple fact that we no longer have header files to ship to the plugin writers in order to describe our interface. But no worry, this doesn't means that it's more complicated to do such a thing in .NET. The closest way to do this is to generate a class library DLL project, that doesn't implement code (or maybe just some utility classes) but to have the definitions of our interfaces. This is the easy way, but in my opinion it's not the cleanest way. If we go this route we will have to ship our "interface" DLL to clients since it's a required dependency. For large projects where you have hundreds of files shipped to client, it might be fine, but for small project where you ship just your host and few plugins the clutter it's less desirable. A clever way to do this is to implement your interfaces in your host project, and make the plugins dependant on your host .exe file. This way you will have always up-to-date dependencies, since you cannot break the host (or, your code won't compile at all). Prior to Visual Studio 2005, you weren't able to add to a project a dependency to another project whose output is a .exe file. This was recognized more or less a bug, since .exe and .dll files doesn't differ at all internally, so the workaround for Visual Studio 2002 and 2003, was to build your project, get the output, rename it to .dll extension, and add the dependency to your plugin project.&lt;/P&gt;
&lt;P&gt;If you are new to plugins in .NET and you come from C/C++ plugins a warning that might save you a lot of time: do not try to reimplement your host interfaces with the same definition in your plugin project, just to remove the intermediary DLL file dependency (the easy way above). IT WON'T WORK. Objects in .NET (interfaces, classes, etc) have the same identity only if they have the same name AND come from the same assembly.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ib.stalker.ro/"&gt;Someone&amp;nbsp;said&lt;/A&gt;&amp;nbsp;there that is not normal that Visual Studio accepts dependecies to .EXE files. Well, the fact that they prevented explicitly this (I believe, since they were filtering some types of projects) in VS 2002 and 2003, and now it works in 2005, it might mean that some people finds the feature useful. And I come and say why not accept dependencies of .EXE files/projects? &lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=1078" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>Reporting Services Uploader</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2006/10/15/1013.aspx</link><pubDate>Sun, 15 Oct 2006 20:26:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:1013</guid><dc:creator>cchrism</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/1013.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=1013</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/1013.aspx</wfw:comment><description>Quite some time ago I have written a small utility that allows users to upload multiple Reporting Services reports (RDL files) at once to a Reporting Services Server. I have decided to make this utility public as others might find it useful.&lt;p /&gt;  The main problem with Microsoft SQL Reporting Services (either 2000 or 2005) is the lack of capability of uploading or downloading multiple RDL files at once. I know that the RS.exe utility exists, and it's presence is more proeminent in the 2005 version by adding the SQL Management Studio ability to script files of RS.exe, but you cannot upload quickly a locally stored folder full with RDL files, or for example copy a lot of reports from one server to another. That's why I decided to create this utility named RSUploader at this time at the version 0.5. Although I intent to update it a little bit I cannot promise that this will happen or a timeline for it's improvement.&lt;p /&gt;  RSUploader was built using .NET framework and presently the user interface is not the best in the world, but still gets the job done. The minimum requirement is .NET Framework 2.0 and it can connect to Microsoft SQL Reporting Services versions 2000 and 2005. You can download it from &lt;a href="http://blogs.mconstantin.eu.org/cchrism/attachment/1013.ashx"&gt;here&lt;/a&gt;&lt;p /&gt;  Among it's features you can:  &lt;UL&gt;  &lt;LI&gt;Browse the folder structure of Reporting Services&lt;/LI&gt;  &lt;LI&gt;Download all report definitions from one Reporting Services folder&lt;/LI&gt;  &lt;LI&gt;Upload a local folder containing RDL files in a reporting services folder&lt;/LI&gt;  &lt;LI&gt;Delete reports&lt;/LI&gt;  &lt;LI&gt;Hide/Unhide reports&lt;/LI&gt;  &lt;/UL&gt;  In addition to the ZIP archive I also attached a screenshot to know what to expect.&lt;p /&gt;  &lt;img width=632 height=552 src="http://gallery.mconstantin.eu.org/miscellaneous_pictures/images/1012/original.aspx" /&gt;&lt;P/&gt;  In order to successfully use RSUploader you have to type the URL of Reporting Service Web service, usually http://[machine]/ReportServer, do not swap it with the URL of Reporting Service Manager, and also if you are not using Integrated Authentication, type the username and password in the corresponding textboxes, and click Refresh in order to connect to the Reporting Services. Any time you change the URL or user / password you must click on Refresh in order to pick the new location.&lt;p /&gt;  Then expand the folder structure in the left view and in the right view you will have the actual list of reports and datasources. The checkbox in the front denotes the visibility of the item (if it is not checked it means it is hidden). Also you will have fix datasources for reports if you uploaded reports before you created your datasource and the GUID that Reporting Services is using for matching the datasources is not in sync.&lt;p /&gt;  If you find this utility useful please drop a note using the contact form.&lt;P/&gt; Of course, the information in this post and the utility is provided "AS IS" with no warranties, and confers no rights. I am not responsible if any thing doesn't work as expected or for any loss of data.&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=1013" width="1" height="1"&gt;</description><enclosure url="http://blogs.mconstantin.eu.org/cchrism/attachment/1013.ashx" length="22828" type="application/x-zip-compressed" /><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/7.aspx">Personal Achievements</category></item><item><title>Waiting for Whidbey</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2005/10/06/487.aspx</link><pubDate>Thu, 06 Oct 2005 18:21:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:487</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/487.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=487</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/487.aspx</wfw:comment><description>&lt;P&gt;In case if you leave on another planet, let's reiterate the old news: Whidbey launch date is November 7th.&lt;BR&gt;So far I have used Beta2, in a VMWare virtual machine which has 512 MB RAM dedicated, on an Athlon 1800+ CPU, and I am pretty impressed by it's speed. My team-mates say that they want an upgrade to 1GB on their computers when will switch to Whidbey, but I think that the speed won't be very different than Visual Studio 2003.&lt;BR&gt;Anyway, I wait it because it comes with many good things, all the annoying stuff that was present in VS 2002/2003. It will probably come with another round of annoying things, but hey, that's life.&lt;BR&gt;One thing I like a lot, is the fact that the mobile development and desktop development is under the same roof without any additional installations. Still, in Beta2 I tried to develop last week a desktop utility that connects to the mobile to display databases info. Unfortunately I did not find rapi.lib and rapi.h, and had to copy them from a Smartphone SDK. Is this a miss of the Beta2, or it will be also in the final version. On the other hand, ARM emulator simply rocks.&lt;BR&gt;The first thing that I'll do after I install the final release is to have it build for previous frameworks (1.0 &amp;amp; 1.1) and we are all set. &lt;/P&gt;
&lt;P&gt;PS: Today I even found someone from Microsoft asking if there is interest in &lt;A href="http://blogs.msdn.com/clichten/archive/2005/10/05/477506.aspx"&gt;getting this feature of targetting the previous runtimes&lt;/A&gt;.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=487" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>Visual Studio 2005 Rocks</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2005/06/17/276.aspx</link><pubDate>Fri, 17 Jun 2005 11:37:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:276</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/276.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=276</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/276.aspx</wfw:comment><description>&lt;P&gt;In case you live on another planet and didn't heard yet (but you read my blog) here is the news: on 7&lt;SUP&gt;th&lt;/SUP&gt; of November 2005 the brand new version of Visual Studio will be released.&lt;/P&gt;
&lt;P&gt;I received my media kit from BetaExperience, and I installed Beta 2 release some time ago. Well, IT ROCKS. It is the first time that within a single IDE you can develop for&amp;nbsp;all plaforms. Before this, for Windows CE, you had to install Embedded Visual Tools for native code, or VS 2003 for managed, different tools, different debuggers and so on.&lt;/P&gt;
&lt;P&gt;When I started the first time, I was impressed about the new look. I am using the screen in 24 bit true color, and looks very nice, similar to Office. I installed it in a virtual machine (ok, ok, not a VPC one, but from VMWare), and I was a little bit disappointed about the speed, mainly because I've seen Beta1 and it worked pretty smoothly. Well, my virtual harddisk file (4.5 GB) had over 50000 segments. Defragmenting the disk get reducing the number of fragments to 2 or 3 greatly improved the speed. Now you can develop quite fast, and I haven't noticed performance degradation between VS2003 and Beta 2. The machine is a Athlon XP 1800+, and VMWare machine has 512MB.&lt;/P&gt;
&lt;P&gt;Another interesting stuff is the ARM emulator. Now you can test the real software in emulator also, and not by disturbing the actual device, which a nice thing. Before a very limited number of software had binaries for Windows CE&amp;nbsp;/ X86. Actually I found only one software, which is the SmartMonitor plugin, if I remember correctly.&lt;/P&gt;
&lt;P&gt;To my own disgrace, I haven't installed yet the Team Foundation Server, primarly due to lack of time, but I will test it, I promise.&lt;/P&gt;
&lt;P&gt;A negative point is related to the new way of storing web projects. I had a serious problem when I converted the old solution, because I had some projects, which were excluded from build for historic reasons, but were included in the converted project. With the new way of storing projects, you will lose this capability of excluding files from build, or at least I haven't found how to do it.&lt;/P&gt;
&lt;P&gt;Also, the resx files for aspx are getting dropped, I didn't understand yet, which was the reason to be added in the first place for this kind of files (ASPX/ASCX), so will unclutter your source control system.&lt;/P&gt;
&lt;P&gt;A nice hack is that located &lt;A href="http://weblogs.asp.net/rmclaws/archive/2005/06/04/410360.aspx"&gt;here&lt;/A&gt;,&amp;nbsp;and this gives&amp;nbsp;you&amp;nbsp;the ability to target&amp;nbsp;the binary for&amp;nbsp;an older framework. Still, when the web project&amp;nbsp;is converted it will add partial attribute to all codebehind files, so you should go and remove the attribute in order to target 1.1 or 1.0 version. And when you have over 300 pages, is quite some work to do.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Update:&lt;/STRONG&gt;&amp;nbsp;June CTP for VS2005 is released: you can find &lt;A href="http://blogs.msdn.com/robcaron/archive/2005/06/15/429278.aspx"&gt;here&lt;/A&gt; if it worths the update.&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=276" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>VSIP Partner DVD</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2004/11/19/176.aspx</link><pubDate>Fri, 19 Nov 2004 20:00:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:176</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/176.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=176</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/176.aspx</wfw:comment><description>&lt;P&gt;Yesterday I've received my ordered DVD with goodies from Microsoft's partners that are in the Visual Studio Industry Partner Program. It can be ordered from &lt;A href="http://msdn.microsoft.com/vstudio/extend/partnerdvd/"&gt;http://msdn.microsoft.com/vstudio/extend/partnerdvd/&lt;/A&gt;&amp;nbsp;and contains 67 products and trials, from all categories such as: Architecture &amp;amp; Design, Cross Lifecycle &amp;amp; Support Tools, Deployment, and so on. A interesting note is that the estimated arrival time printed on the package is 2nd December 2004, and I've received it 2 weeks earlier. Wow, very good response time.&lt;/P&gt;
&lt;P&gt;With this ocasion I found out a product evaluated long time ago, named StarTeam now branded as Borland StarTeam. A few years ago, when I evaluated it,&amp;nbsp;the company was named StarBase, and it seems that Borland bought it.&amp;nbsp;It is mainly a change and configuration management system that&amp;nbsp;can be used to replace VSS and improve the development process by providing traceability (another key requirement for MSF)&amp;nbsp;of the business requirements into the actual output. At the time of the evaluation (back to 1999 - 2000) I was quite impressed by the capability of StarTeam: it was cross-platform, with both GUI native Windows application, and a command line either native and java based application, it provided a SDK in order to access the full capabilities and automate them. &lt;/P&gt;
&lt;P&gt;There are a lot of other goodies included on this DVD, so I have to find some time in order to fill the bag.&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=176" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>Best practices on custom exceptions? (where we derive it from?)</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2004/11/04/173.aspx</link><pubDate>Thu, 04 Nov 2004 15:16:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:173</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/173.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=173</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/173.aspx</wfw:comment><description>&lt;P&gt;I found today an older &lt;A href="http://blogs.msdn.com/brada/archive/2004/03/25/96251.aspx"&gt;post&lt;/A&gt; that links to an interesting &lt;A href="http://www.amazon.com/exec/obidos/ASIN/0321154894/ref%3Dpe%5Fsnp%5F894/103-1672056-1703849"&gt;book&lt;/A&gt;, named &amp;#8220;.NET Framework Standard Library Annotated Reference, Volume 1: Base Class Library and Extended Numerics Library&amp;#8221;, and I discovered an interesting discussion: should we derive our custom exceptions from &lt;EM&gt;Exception&lt;/EM&gt; or from &lt;EM&gt;ApplicationException&lt;/EM&gt;.&amp;nbsp;To be honest, I didn't paid attention to &lt;EM&gt;ApplicationException&lt;/EM&gt; when I&amp;nbsp;browsed the documentation, and I went straight, and derived from &lt;EM&gt;Exception&lt;/EM&gt;. Apparently it was a good choice.&lt;/P&gt;
&lt;P&gt;Just my 2 cents.&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=173" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>Microsoft usage on .NET code (a.k.a. dogfood)</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2004/11/02/172.aspx</link><pubDate>Tue, 02 Nov 2004 09:44:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:172</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/172.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=172</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/172.aspx</wfw:comment><description>&lt;P&gt;&lt;A href="http://blogs.msdn.com/vsdata/archive/2004/11/01/250823.aspx"&gt;Yag&lt;/A&gt; has compiled a list of products created by Microsoft that are developed either entirely, or just some features, with .NET code. As we can see the list contains some interesting products like UDDI server or Sharepoint Portal Server (from Windows 2003), and most important the list is increasing. At a MSDN conference here in Romania, in regards with this subject, it was said that the next version in Office will have more modules developed using .NET (this should mean no more PIAs?).&lt;/P&gt;
&lt;P&gt;The conclusion is: Winforms is gaining momentum, which is a very good thing.&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=172" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>We did it! Edit &amp; Continue for C#</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2004/10/17/171.aspx</link><pubDate>Sun, 17 Oct 2004 10:55:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:171</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/171.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=171</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/171.aspx</wfw:comment><description>&lt;P&gt;Maybe only if you are living in a isolated island you didn't heard the great news: we will have Edit &amp;amp; Continue in C# for Whidbey (aka Visual Studio 2005). You can read the announcement &lt;A href="http://blogs.msdn.com/somasegar/archive/2004/10/15/242853.aspx"&gt;here&lt;/A&gt;. So, now all the major development languages (sorry J# guys) will experience the Edit &amp;amp; Continue feature. A great productivity enhancement.&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=171" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>Why do people write such a lousy code in .NET?</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2004/06/03/153.aspx</link><pubDate>Fri, 04 Jun 2004 03:03:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:153</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/153.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=153</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/153.aspx</wfw:comment><description>&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#9acd32 size=5&gt;Because they can.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Instantiating objects, retrieving records from database when you need it, loading a full table with thousands of records, and the examples can continue indefinitely. .NET made this much simpler. In two lines you'll put&amp;nbsp;a big pressure on your&amp;nbsp;memory, and your clients will find your application not so responsive. Loading an XML document is so easy. You don't have to think to much, you don't have to count references, and remember to release memory when you don't need it.&lt;/P&gt;
&lt;P&gt;In C++ to retrieve records from database was quite difficult. You didn't have datasets so you had to make sure you use them efficiently. Now, you have a rowfilter on client in dataset. Programmers think: &amp;#8220;super cool invention, let's use it!&amp;#8220;. Even if you use it to retrieve a record by it's primary key (where Find should do it very fast). In case you don't found it already, Rowfilter search linearily where Find is a binary search. &lt;/P&gt;
&lt;P&gt;If programmers are not very experienced it's easy to write code with lousy performance. Then, people&amp;nbsp;that don't trust .NET a lot see that the performance is bad, and discard .NET.&amp;nbsp;But with a little coding discipline .NET applications can be made very fast. It doesn't take a lot to write high performance code. You have to want it, and you'll have it.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=153" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>What to do and what NOT to do in each layer of your application</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2004/06/02/152.aspx</link><pubDate>Wed, 02 Jun 2004 16:42:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:152</guid><dc:creator>cchrism</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/152.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=152</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/152.aspx</wfw:comment><description>Scott posted&lt;BR&gt;&lt;STRONG&gt;&lt;A class=TitleLinkStyle href="http://www.hanselman.com/blog/PermaLink.aspx?guid=a0a65e0c-5ef8-41e4-a566-1739b4428aa5"&gt;&lt;FONT color=#b8860b&gt;A reminder on "Three/Multi Tier/Layer Architecture/Design" brought to you by my late night frustrations.&lt;/FONT&gt;&lt;/A&gt;&lt;/STRONG&gt; 
&lt;P&gt;So, before writting DataLayer stuff in your .aspx page (or worse, open connections), please review the article. One interesting note. Usually due to lack of time, and need to deliver the product yesterday, communications between layers is made of datasets, which used properly are ok, but cannot be enforced easility&amp;nbsp;to be read-only. So, beware of code that modifies datasets directly in your UI Layer.&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=152" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>If you think that life is boring</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2004/06/01/150.aspx</link><pubDate>Wed, 02 Jun 2004 03:38:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:150</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/150.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=150</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/150.aspx</wfw:comment><description>&lt;P&gt;Found a new blog: &lt;A href="http://thedailywtf.com/"&gt;http://thedailywtf.com/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Super cool, one of my favorite.&amp;nbsp;&lt;BR&gt;WTF was in head of the one that wrote the code?&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=150" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item><item><title>Performance &amp; Paralellism</title><link>http://blogs.mconstantin.eu.org/cchrism/archive/2004/06/01/149.aspx</link><pubDate>Wed, 02 Jun 2004 03:26:00 GMT</pubDate><guid isPermaLink="false">84fa4630-d7f3-4739-a4ce-65ab18add461:149</guid><dc:creator>cchrism</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.mconstantin.eu.org/cchrism/comments/149.aspx</comments><wfw:commentRss>http://blogs.mconstantin.eu.org/cchrism/commentrss.aspx?PostID=149</wfw:commentRss><wfw:comment>http://blogs.mconstantin.eu.org/rsscomments/149.aspx</wfw:comment><description>&lt;P&gt;Since I often remind to people to optimize their code (or at least remove the redundant stuff they do) I found an interesting article about performance &amp;amp; paralellism: &lt;A href="http://weblogs.asp.net/simonme/archive/2004/05/31/145024.aspx"&gt;http://weblogs.asp.net/simonme/archive/2004/05/31/145024.aspx&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Quote:&lt;/P&gt;
&lt;P&gt;&lt;QUOTE&gt;&lt;FONT color=#0000ff&gt;Now 2GHz is a difficult thing to imagine for a human. Put simply that is 2 &lt;STRONG&gt;billion&lt;/STRONG&gt; (Dr Evil pose) instructions per second at maximum throughput. So lets put this on our terms. Let's say once processor &amp;#8220;clock cycle&amp;#8221; is not 1/2,000,000,000 of a second but rather 1 second. On that scale accessing the nearby L1 on-chip cache takes 6 seconds, the off chip (L2) cache 2-3 minutes, and accessing main memory takes 3-4 weeks. Accessing the disk (just one disk access) by comparison takes a whopping 1 year on this timescale&lt;/FONT&gt;&lt;/QUOTE&gt;&lt;/P&gt;
&lt;P&gt;Now think you call an DataAdapter to fill your dataset in every step of your &lt;STRONG&gt;for&lt;/STRONG&gt; loop. Why? Because it's so simple to write dbAdapter.Fill(myDS).&lt;/P&gt;&lt;img src="http://blogs.mconstantin.eu.org/aggbug.aspx?PostID=149" width="1" height="1"&gt;</description><category domain="http://blogs.mconstantin.eu.org/cchrism/archive/category/1.aspx">.NET Stuff</category></item></channel></rss>