<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Samer Ibrahim's Blog</title><subtitle type="html">The Samer I Warrior on battles with .NET</subtitle><id>http://weblogs.asp.net/sibrahim/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/sibrahim/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2004-02-13T18:13:00Z</updated><entry><title>Odd behavior in ASP.NET</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/05/04/126185.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/05/04/126185.aspx</id><published>2004-05-05T03:08:00Z</published><updated>2004-05-05T03:08:00Z</updated><content type="html">&lt;P&gt;So after wasting about an hour and a half debugging why in the world I kept getting an invalid cast exception, I discovered a quirk in the way ASP.NET loads assemblies.&amp;nbsp; Apparently, the .NET framework loads everything in the \bin directory that even looks like a DLL.&amp;nbsp; For example, if you have a file called DLL_ the framework will load it anyway.&amp;nbsp; Why the hell it does this I don't know!!!&amp;nbsp; It's not even a DLL for God's sake!&lt;/P&gt;
&lt;P&gt;Now you might be wondering why in the world I have a file called DLL_ sitting in my \bin directory but that's easy to explain.&amp;nbsp; Sometimes I want to use a different compilation of a DLL that might contain something like more debugging code, for example, in my ASP.NET application.&amp;nbsp; So instead of moving or overwriting the old version or recompiling my application or even&amp;nbsp;changing which version is redirected to what other version&amp;nbsp;in the config file, I simply change the old DLL to DLL_ or something of the like and drop the new DLL in the \bin directory along side of it.&amp;nbsp; Seems harmless and should work and in fact it does when .NET isn't being stupid and just loads DLLs.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I spent all this time trying to figure out this problem, changing the code I was debugging over and over again, and when I finally said what the hell let me see what the code base is for&amp;nbsp;DLL which&amp;nbsp;contains&amp;nbsp;the class I'm trying to cast to,&amp;nbsp;I saw that it was &amp;lt;Path&amp;gt;\SomeAssembly.DLL_.&amp;nbsp; This is a bug as far as I'm concerned.&amp;nbsp; And as far as I can tell, there is simply no application for this type of behavior so I'll just call it&amp;nbsp;retarded.&lt;/P&gt;
&lt;P&gt;By the way when I say ASP.NET, I'm working with SharePoint specifically.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=126185" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/.NET/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/ASP.NET/default.aspx" /><category term="SharePoint" scheme="http://weblogs.asp.net/sibrahim/archive/tags/SharePoint/default.aspx" /></entry><entry><title>More Training... this time on SharePoint</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/05/02/124826.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/05/02/124826.aspx</id><published>2004-05-03T00:04:00Z</published><updated>2004-05-03T00:04:00Z</updated><content type="html">&lt;P&gt;So after my complaining about SharePoint documentation&amp;nbsp;you might be wondering&amp;nbsp;how to get some good SharePoint training.&amp;nbsp; Well the answer is pretty clear cut.&amp;nbsp; You get training from &lt;A href="http://barracuda.net/"&gt;Barracuda.NET&lt;/A&gt;, a company run by Ted Pattison and Jason Masterman both former DevelopMentor guys.&lt;/P&gt;
&lt;P&gt;I've been&amp;nbsp;going through their training now but it's clear that they not only wrote a very good training program but are determined to answer all your questions even if that requires offline research.&amp;nbsp; I think this is a quality that is very admirable and is one reason I feel you'll get your money's worth.&lt;/P&gt;
&lt;P&gt;Personally my only problem with the class is I think the pace is too slow but I think that has to do with the diversity of the talent pool within the class.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=124826" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/.NET/default.aspx" /><category term="SharePoint" scheme="http://weblogs.asp.net/sibrahim/archive/tags/SharePoint/default.aspx" /></entry><entry><title>AssemblyResolve event of an AppDomain </title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/05/02/124827.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/05/02/124827.aspx</id><published>2004-05-03T00:04:00Z</published><updated>2004-05-03T00:04:00Z</updated><content type="html">&lt;P&gt;I got a comment from a gentleman by the name of Anthony DeRosa asking for more details&amp;nbsp;relating to how to load an assembly from a network location&amp;nbsp;from&amp;nbsp;my &lt;A href="http://weblogs.asp.net/sibrahim/archive/2004/03/11/88323.aspx"&gt;earlier post regarding the GAC&lt;/A&gt;.&amp;nbsp;&amp;nbsp;So even though I found that this is addressed elsewhere when I googled for it what the heck another entry won't hurt anyone.&lt;/P&gt;
&lt;P&gt;Let's start with the&amp;nbsp;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemReflectionAssemblyClassLoadFromTopic.asp"&gt;Assembly.LoadFrom&lt;/A&gt; method which most people are familar with.&amp;nbsp; One can easily load an assembly from a network location just using that method alone which may solve most people's problem.&amp;nbsp; But what if you want to be able to only load the assembly from a location if the .NET framework can't find it on it's own or you need some other algorithm to locate assemblies.&amp;nbsp; Little known to most people, beyond just the simple probing and checking of the GAC that&amp;nbsp;.NET does, there is an event fired before the framework gives up on loading your assembly.&amp;nbsp; The event is &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemappdomainclassassemblyresolvetopic.asp"&gt;AppDomain.AssemblyResolve&lt;/A&gt;.&amp;nbsp;&amp;nbsp;You can subscribe to that event and&amp;nbsp;do a simple Assembly.LoadFrom from a location known to you or even do some fancy loading of your own based on some system you engineer.&amp;nbsp; There&amp;nbsp;are also TypeResolve and&amp;nbsp;ResourceResolve events&amp;nbsp;in the AppDomain that let you handle those aspects of resolving the various dependencies of an AppDomain.&lt;/P&gt;
&lt;P&gt;Of course if you are loading an assembly off the network you need to make some CAS changes.&lt;/P&gt;
&lt;P&gt;Just Googling for resources I found these:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.codeproject.com/dotnet/loadpoly.asp"&gt;http://www.codeproject.com/dotnet/loadpoly.asp&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/junfeng/archive/2004/04/25/119589.aspx"&gt;http://blogs.msdn.com/junfeng/archive/2004/04/25/119589.aspx&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://staff.develop.com/candera/weblog2/articleview.aspx/CLR%20Workings/Dealing%20With%20Assembly%20Load%20Failure.xml"&gt;http://staff.develop.com/candera/weblog2/articleview.aspx/CLR%20Workings/Dealing%20With%20Assembly%20Load%20Failure.xml&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Also just as an FYI, there is also a &lt;A href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemreflectionassemblyclassmoduleresolvetopic.asp"&gt;&lt;FONT color=#002c99&gt;ModuleResolve&lt;/FONT&gt;&lt;/A&gt; event of an &lt;A href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemreflectionassemblyclasstopic.asp"&gt;&lt;FONT color=#002c99&gt;Assembly&lt;/FONT&gt;&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=124827" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/.NET/default.aspx" /></entry><entry><title>SharePoint and EIF:  Sore point for Microsoft documentation</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/04/28/122644.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/04/28/122644.aspx</id><published>2004-04-29T03:20:00Z</published><updated>2004-04-29T03:20:00Z</updated><content type="html">&lt;P&gt;So as I've stated before, my new role is partially focused on SharePoint.&amp;nbsp; Coming into this role, I had no experience with SharePoint and I really wanted to hit the ground running when I started my new position because&amp;nbsp;a lot was expected out of me.&amp;nbsp; I quickly learned however that SharePoint documentation is scarce at best.&amp;nbsp; Microsoft has done a simply horrible job providing documentation relating to how SharePoint works beyond just the surface.&amp;nbsp; The documentation that is provided is also incomplete or completely void of any mention of particular topics.&amp;nbsp; They seem to have this completely impractical theory that&amp;nbsp;SharePoint should be treated as a &amp;#8220;black box.&amp;#8221;&amp;nbsp; I find this to be ridiculous for several reasons, here are just a few but the list goes on:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Not every environment hosting SharePoint is completely Windows based&lt;/LI&gt;
&lt;LI&gt;SharePoint has missing features such as replication, caching, and recovery&lt;/LI&gt;
&lt;LI&gt;Developers should understand what's going on internally so they don't mess things up or cause unnecessary overhead&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;So I find myself now relying on learning from trial and error and the expertise of those around me, which thank God is phenomenal.&amp;nbsp; The truth is I don't so much mind all this because I think I'll learn a lot from writing test code to discover how SharePoint works and it will make me a better programmer in general, but from a company's perspective it's retarded.&amp;nbsp; I should be spending time solving business problems not trying to decipher what is going on in SharePoint.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Same story with the Enterprise Instrumentation Framework (EIF).&amp;nbsp; I'm trying to find documentation or even a whitepaper on it just to answer the simple question of whether or not I have to restart my ASP.NET application to turn on logging via EIF.&amp;nbsp; I believe the answer is no but I can't be positive unless I write my own code to figure it out.&amp;nbsp; This one in particular annoys me because EIF is a framework which makes documentation even more important!!!&amp;nbsp; Developers need documentation that is readily available via the internet.&amp;nbsp; Many companies have download policies so if the documentation needs to be downloaded it's useless.&amp;nbsp;&amp;nbsp;Employees need to be able&amp;nbsp;find out about&amp;nbsp;what they want to download&amp;nbsp;first so&amp;nbsp;they can make a valid plea to the appropriate people.&amp;nbsp;&amp;nbsp;Not having documentation for&amp;nbsp;EIF&amp;nbsp;makes me question whether Microsoft actually wants you to use it or if they are going to stop supporting it.&lt;/P&gt;
&lt;P&gt;Ok I could go on about this ad nauseum but I'll spare you and quit whining about it (for now)&amp;nbsp;even though&amp;nbsp;it's really annoying.... &lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=122644" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/.NET/default.aspx" /><category term="SharePoint" scheme="http://weblogs.asp.net/sibrahim/archive/tags/SharePoint/default.aspx" /></entry><entry><title>Mythical Man-Month, The: Essays on Software Engineering, Anniversary Edition, 2/E</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/04/28/122628.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/04/28/122628.aspx</id><published>2004-04-29T02:48:00Z</published><updated>2004-04-29T02:48:00Z</updated><content type="html">&lt;P&gt;I finished reading &lt;A href="http://www.aw-bc.com/catalog/academic/product/0,4096,0201835959,00.html"&gt;Mythical Man Month&lt;/A&gt; (aka MMM) recently and quite honestly I was amazed at how a book that was originally published in 1975 can be so on target with so man aspects of software development.&amp;nbsp; Obviously not everything in the book is so pertinent however his foresight is amazing.&amp;nbsp;&amp;nbsp;The&amp;nbsp;MMM is&amp;nbsp;in a nutshell&amp;nbsp;about debunking the theory that if you add more people to a project then you can speed the project up in a linear&amp;nbsp;manner.&amp;nbsp; The book makes quite a bit&amp;nbsp;of sense.&amp;nbsp; When you add in communication factors, learning curves, and&amp;nbsp;the other items Brooks brings to light in the book&amp;nbsp;you quickly see where he is coming from.&amp;nbsp; Funny thing is the place we are in software development now might also brings an additional factor to the table.&amp;nbsp;&amp;nbsp;Offshoring brings even more&amp;nbsp;of a communication&amp;nbsp;gap.&amp;nbsp; Both&amp;nbsp;time zone gaps and language differences come into play.&amp;nbsp; But I digress.&amp;nbsp; In truth, I think&amp;nbsp;the book has survived this long&amp;nbsp;because Brooks focused more on the human aspect of development than on the actual programming piece.&amp;nbsp; People don't change quite as rapidly as software so it makes sense that the book would still be applicable in today's environment.&amp;nbsp; People are still a limited and valuable resource and it will probably remain that way.&amp;nbsp; (Moore's&amp;nbsp;Law is there for machines but not for people.)&lt;/P&gt;
&lt;P&gt;For managers, I think the book is must read.&amp;nbsp; For everyone else, the book is easy reading so if you have time I would recommend you read it.&amp;nbsp; The first 17 chapters of the anniversary edition are the most worthwhile.&amp;nbsp; I think the other chapters are really him just defending himself against criticism and not really as important to read (but hell that leaves only 3 chapters and like I said it's easy reading).&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=122628" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term="Books" scheme="http://weblogs.asp.net/sibrahim/archive/tags/Books/default.aspx" /></entry><entry><title>Validator Control that will validate all Controls on a section of a Page</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/04/21/117918.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/04/21/117918.aspx</id><published>2004-04-22T03:04:00Z</published><updated>2004-04-22T03:04:00Z</updated><content type="html">&lt;P&gt;Ever find yourself creating an input form in ASP.NET that required a lot of Controls to be validated?&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Well, I have.&amp;nbsp; It's tedious.&amp;nbsp; You have to add at least one validator to each Control&amp;nbsp;you wanted validated.&amp;nbsp;&amp;nbsp;Apparently after discussing this with other people I've found that I'm not the only person who was wishing at the time that they could just add one Control that would validate all the Controls on the Page.&amp;nbsp; What's the solution?&amp;nbsp; To create a&amp;nbsp;Control&amp;nbsp;on your own to do just that and that's what I did.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Here's how you use it:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;You add the Control to your page (sorry no &amp;#8220;drag and drop&amp;#8221; stuff I&amp;nbsp;don't believe in drag and drop&amp;nbsp;so I didn't find the need to write that kind of code but be my guest).&amp;nbsp; You set&amp;nbsp;my Control's ControlToValidate property to&amp;nbsp;a server Control containing all Controls you want to validate, eg.&amp;nbsp;the DIV&amp;nbsp;containing&amp;nbsp;your&amp;nbsp;let's say&amp;nbsp;TextBox Controls.&amp;nbsp; That's it.&amp;nbsp; &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Magic huh?&amp;nbsp; Not really, here's how it works:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;My&amp;nbsp;Control gets&amp;nbsp;the ControlToValidate's Controls collection.&amp;nbsp; It goes through the Controls collection and checks for controls that can be validated [0]&amp;nbsp;and adds a validator control [1]&amp;nbsp;to the ControlToValidate's Controls collection [2] immediately following any control that can be validated.&lt;BR&gt;[0]&amp;nbsp; To check for Controls that can be validated it uses the BaseValidator's GetValidationProperty method.&amp;nbsp; Now my control doesn't inherit from BaseValidator so I have an internal class that does and exposes a function the just returns the value of BaseValidator.GetValidationProperty().&lt;BR&gt;[1]&amp;nbsp; The type of validator that is added is determined by you.&amp;nbsp; I really wrote an abstract class that you must inherit from and implement one method that returns a validator.&amp;nbsp; I've written the first one for you so you have an example.&amp;nbsp; It adds RequiredFieldValidators.&lt;BR&gt;[2]&amp;nbsp; Controls don't have access to manipulate each other's Controls collection so I had to kind of hack my way around this.&amp;nbsp; I used reflection to change&amp;nbsp;a private field in the ControlToValidate so that it would allow me to modify its collection.&amp;nbsp; Don't worry I change it back when I'm done :).&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;How do you get a hold of&amp;nbsp;my Control:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P&gt;You &lt;A href="http://amunra.us/files/ValidatorSoln.zip"&gt;download it&lt;/A&gt; from my perpetually under construction &lt;A href="http://www.sameriwarrior.com"&gt;homepage&lt;/A&gt;.&amp;nbsp; The code isn't elegant&amp;nbsp;or&amp;nbsp;well documented nor does it provide you with all the other nice things &lt;A href="http://weblogs.asp.net/asmith/"&gt;Andy Smith&lt;/A&gt;'s &lt;A href="http://www.metabuilders.com/"&gt;MetaBuilders&lt;/A&gt; website Controls&amp;nbsp;provide you with but it works.&amp;nbsp; Feel free to modify it as you will.&amp;nbsp; If you feel like you've modified it and created something of value all I ask is that you share it.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The one caveat is that my Control has to be before the ControlToValidate in the Page (or&amp;nbsp;user control, custom control, composite control, etc)'s&amp;nbsp;Controls collection.&amp;nbsp; The performance hit for using reflection was about 5% from my calculations on a Page with&amp;nbsp;three Controls to validate however my testing environment was bad so I decided to quit testing.&amp;nbsp; I really don't think&amp;nbsp;it will really affect your performance that much though.&amp;nbsp; Feel free to test it yourself and let me know the results.&lt;/P&gt;
&lt;P&gt;One last thing just in case USE AT YOUR OWN RISK.&amp;nbsp; Oh and I guess people always say don't redistribute so don't do that either (I don't quite know why but still).&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=117918" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/.NET/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/ASP.NET/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/sibrahim/archive/tags/C_2300_/default.aspx" /></entry><entry><title>Great article to get you up to speed on SharePoint and WebParts</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/04/21/117899.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/04/21/117899.aspx</id><published>2004-04-22T02:17:00Z</published><updated>2004-04-22T02:17:00Z</updated><content type="html">&lt;P&gt;I finished training and started new position.&amp;nbsp; My official title is &amp;#8220;SharePoint Developer&amp;#8221; but I knew nothing about SharePoint coming into this job.&amp;nbsp; My boss therefore sent me this &lt;A href="http://www.barracuda.net/Content/HowSharePointWorks.htm"&gt;article&lt;/A&gt; to get my SharePoint knowledge to a working level.&amp;nbsp; I hightly recommend this article to anyone&amp;nbsp;who needs to work&amp;nbsp;with SharePoint or WebParts for that matter.&amp;nbsp; Since Whidbey is on it's way I think that makes everyone :).&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=117899" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/.NET/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/ASP.NET/default.aspx" /><category term="Articles" scheme="http://weblogs.asp.net/sibrahim/archive/tags/Articles/default.aspx" /><category term="SharePoint" scheme="http://weblogs.asp.net/sibrahim/archive/tags/SharePoint/default.aspx" /></entry><entry><title>Done training, real coding starts Monday... I love my job</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/04/09/110221.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/04/09/110221.aspx</id><published>2004-04-09T04:14:00Z</published><updated>2004-04-09T04:14:00Z</updated><content type="html">&lt;P&gt;It's not everyday that I feel confident in my career decision.&amp;nbsp; Many days I question why I'm chose to be&amp;nbsp;a programmer.&amp;nbsp; My&amp;nbsp;family wanted me to be a doctor and on those days that I doubt my career choice I'm&amp;nbsp;often wondering what stopped me from going to med school.&amp;nbsp; I was a Molecular Biology and Biochemistry major (&lt;A href="http://www.rci.rutgers.edu/~molbio/index.html"&gt;it's one track not two&lt;/A&gt;)&amp;nbsp;as well as a Computer Science major.&amp;nbsp; I had gone so far as to take my MCATs and even started filling out applications.&amp;nbsp; The health care industry doesn't suffer from offshoring (well for now although&amp;nbsp;some would argue otherwise&amp;nbsp;[&lt;A href="http://www.rediff.com/money/2004/jan/07bpo.htm"&gt;0&lt;/A&gt;], [&lt;A href="http://money.cnn.com/2003/12/30/pf/offshorejob/"&gt;1&lt;/A&gt;], [&lt;A href="http://www.internetnews.com/bus-news/article.php/93111"&gt;2&lt;/A&gt;]) and it could not care less about how the economy is doing.&amp;nbsp;&amp;nbsp;I still can't put my finger on what did it but I had a sudden change of mind and those applications never went out.&lt;/P&gt;
&lt;P&gt;The pressures of&amp;nbsp;being in IT surround me everyday.&amp;nbsp; Sometimes I'm almost ashamed to say I'm a programmer because of the stigma that&amp;nbsp;goes with&amp;nbsp;it.&amp;nbsp; Programmers are looked upon as dorks, geeks, or whatever you want to call them.&amp;nbsp; In many ways I don't feel like much respect is given to programmers.&amp;nbsp; While maybe I didn't save someone's life today, quite&amp;nbsp;honestly neither did most doctors.&amp;nbsp;&amp;nbsp;(Not to&amp;nbsp;equate the two which&amp;nbsp;I think are very, very different.)&amp;nbsp; I work for an organization where IT is a cost center for the most part, which is sometimes a scary thought.&amp;nbsp; As nice as they want to be about it and as proactive about technology as they want to be, with few exceptions, the truth is technology is not a&amp;nbsp;&lt;EM&gt;direct&lt;/EM&gt; source of income.&amp;nbsp;&amp;nbsp;The fact that may companies would&amp;nbsp;cease to be competitive without us, however, is one of the many ways that illustrate how dependent daily life is on programs.&amp;nbsp; Everyday we hear about offshoring or something else that threatens our industry and we're in a cyclical field.&amp;nbsp; My brother insists that what is happening with&amp;nbsp;programmers today is exactly what happened to the engineers of yesterday.&amp;nbsp; A big boom, then a big burst, followed by offshoring, and then ended with salaries dropping and being worked raw.&amp;nbsp; I'm no expert about what happened to the engineers but I can say so far he has been striking fear into my heart.&lt;/P&gt;
&lt;P&gt;Despite all this, every once in a while something happens that makes me think, &amp;#8220;Man! &amp;nbsp;I love my job.&amp;#8221;&amp;nbsp; Today was one of those days.&amp;nbsp; Several things happened each resulting in me repeating that phrase.&amp;nbsp;&amp;nbsp;I'll just give you a couple of examples.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Today was my last day in training.&amp;nbsp; So we had a farewell event of sorts for our training class and an officer in the company came in with his son to show him what technology can do.&amp;nbsp; That kind&amp;nbsp;of wowed me and made me&amp;nbsp;feel at&amp;nbsp;ease about the companies direction with technology.&amp;nbsp; If he was wanted his son to think more about technology as a career decision surely&amp;nbsp;he was&amp;nbsp;confident about its place within the organization.&amp;nbsp;&amp;nbsp;Next,&amp;nbsp;after the event I went and I spoke to my manager to&amp;nbsp;check in and see if he wanted me to prepare in any way for my scheduled Monday start.&amp;nbsp; To begin with, as we were just chatting I couldn't help but think &amp;#8220;what a cool guy&amp;#8221; and his manager is amazing too.&amp;nbsp;&amp;nbsp;I keep finding myself saying that at this organization which is the real kicker.&amp;nbsp;&amp;nbsp;Normally I'm not quick to say things like that so when I do&amp;nbsp;I mean&amp;nbsp;it.&amp;nbsp; But more on the technical part of my job, I found out &lt;A href="http://weblogs.asp.net/rhoward/"&gt;Rob Howard&lt;/A&gt; is coming to meet with us soon.&amp;nbsp; Stuff like that just gets me very excited about my job.&lt;/P&gt;
&lt;P&gt;Also, I never realized how much I love to code until I went through&amp;nbsp;this two month training program.&amp;nbsp; Don't get me wrong, I love learning about technology as well but it doesn't quench my need to code.&amp;nbsp; I'm dying to start my new position and start coding.&amp;nbsp;&amp;nbsp;I'm really hoping I can make an impact.&amp;nbsp; I'll try my best.&lt;/P&gt;
&lt;P&gt;So really I have no idea where I'm going with this all.&amp;nbsp; I'll probably never know whether I made the&amp;nbsp;right choice or not but days like today me feel a lot more comfortable with my decision.&amp;nbsp; I just hope one day, when people think about all the ways computers have changed&amp;nbsp;their life, they think a programmer wrote it and the respect for our field grows.&amp;nbsp; For now, I just have to feel fulfilled without recognition from the general public.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=110221" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term="Stuff about me" scheme="http://weblogs.asp.net/sibrahim/archive/tags/Stuff+about+me/default.aspx" /><category term="Miscellaneous" scheme="http://weblogs.asp.net/sibrahim/archive/tags/Miscellaneous/default.aspx" /></entry><entry><title>The Practice of Programming</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/04/07/109416.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/04/07/109416.aspx</id><published>2004-04-08T01:50:00Z</published><updated>2004-04-08T01:50:00Z</updated><content type="html">&lt;P&gt;So as I mentioned &lt;A href="http://weblogs.asp.net/sibrahim/archive/2004/04/01/106049.aspx"&gt;before&lt;/A&gt;, I was reading &lt;A href="http://www.awprofessional.com/titles/0-201-61586-X"&gt;The Practice of Programming&lt;/A&gt;.&amp;nbsp; I just finished the book today so I figured I'd give you guys some feedback of how I felt about the book.&lt;/P&gt;
&lt;P&gt;Unfortunately, I felt the book was a waste of time.&amp;nbsp; &lt;A href="http://weblogs.asp.net/sibrahim/archive/2004/04/01/106049.aspx"&gt;The Art of UNIX Programming&lt;/A&gt; I felt covered the topics in a&amp;nbsp;much better&amp;nbsp;and much more generic way that is&amp;nbsp;far more applicable for today's programming environment.&amp;nbsp; The Practice of Programming might be nice for a beginners book but for someone with any experience I think it is pretty much useless.&amp;nbsp; My feeling is the gist of the book is well summarized by the Appendix.&amp;nbsp; If you read that you don't need the book.&amp;nbsp; Look up the concepts in the Appendix that confuse you but otherwise the book is out of date for the&amp;nbsp;programmers of today.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;I can see the book being a great resource maybe for hardcore low level C/C++ programmers but otherwise I'd skip it.&lt;/P&gt;
&lt;P&gt;The newest book I'm reading is &lt;A href="http://www.aw-bc.com/catalog/academic/product/0,4096,0201835959,00.html"&gt;The Mythical Man Month&lt;/A&gt;.&amp;nbsp; The book was quoted in both The Practice of Programming and The Art of UNIX Programming and some of the speakers during my training at my new position referenced it so I got really curious about it.&amp;nbsp; While I'm still on page 13, I can tell you I only expect this book to wow me more and more as I go on.&amp;nbsp; The book was originally written in 1975 or so but as you read it you feel like the issues the book speaks about are those that you see every day!!!&amp;nbsp; I can't believe it.&amp;nbsp; Maybe it's because I'm still starting the book but I can say so far it's well written.&amp;nbsp; We'll see how I feel as I go on I'm sure :)... &lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=109416" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term="Books" scheme="http://weblogs.asp.net/sibrahim/archive/tags/Books/default.aspx" /></entry><entry><title>Decided to start fresh...</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/04/01/106076.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/04/01/106076.aspx</id><published>2004-04-02T02:01:00Z</published><updated>2004-04-02T02:01:00Z</updated><content type="html">&lt;P&gt;I stopped reading the blogs and mail groups I subscribe to several months ago but now I'm back in gear.&amp;nbsp; I think the reason I stopped was because I felt overwhelmed.&amp;nbsp; I missed a couple of days of reading and found myself several hundred messages behind.&amp;nbsp; Not wanting to miss any exciting news, I tried reading more messages each day to catch up.&amp;nbsp; But then another day went go by where I couldn't read the messages and I found myself several hundred more messages behind.&amp;nbsp; Eventually, I gave up on reading blogs and mail groups all together and decided to just stick with books.&amp;nbsp; I thought to myself "There is too much noise on those things mediums anyway and I can probably get more out of a well written book."&amp;nbsp; To be honest, I still agree with that reasoning (I'll get back to this) but blogs and mail groups do have something special to offer that books can't.&amp;nbsp; Blogs and mail groups give you perspective and connect you with your peers.&amp;nbsp; The give you the benefit of thousands of eyes scouring different sources of knowledge then pointing you in the direction of the good resources.&amp;nbsp; They give you an understand of what people are doing that's different than you and how people are going about doing the same things you do.&amp;nbsp; Also, books are usually pretty far behind the times by the times when they come out compared to the information that's readily available to you online.&amp;nbsp; All this is very valuable so I decided to do something &lt;A href="http://dotnetguy.techieswithcats.com/"&gt;Brad Wilson&lt;/A&gt; recommended I do several months ago when I complained about how far behind I was... I deleted everything and started fresh.&amp;nbsp; I'm really glad I did too because now I've been pretty good about my reading of blogs and mail groups and I don't feel *as* overwhelmed by messages.&amp;nbsp; Should have listen to Brad from the get go but oh well.&lt;/P&gt;
&lt;P&gt;Getting back to the topic of "blog noise" however, I still think a well written and concise book can give you more bang for your time.&amp;nbsp; The problem with blogs is that everyone and their mother has a blog!!!&amp;nbsp; And people blog even with they have nothing to say just for the sake of keeping their blog active.&amp;nbsp; I subscribe to a different view of how a blog should be&amp;nbsp;run and I try to keep my blog up to those standards.&amp;nbsp; I only blog when I have something decent enough to waste my time and other people's bandwidth (both in the literal and metaphorical sense).&amp;nbsp; I hope I've been doing a good job of that.&amp;nbsp; For a while, I had nothing that interesting to speak about so my blog went pretty quite.&amp;nbsp; Now, however, because I changed jobs, I am getting many new perspectives on technology and I find myself wanting to share my thoughts about them more and more.&amp;nbsp; It's interesting working in a place where there are far more Unix developers than Microsoft developers because my mind is being opened to new worlds in terms of my own thoughts of technology.&amp;nbsp; That is something I love so there is a possibility, but don't hold me to this, that you'll see a lot more blogging out of me in the near future.&lt;/P&gt;
&lt;P&gt;One last thing before I leave you, while I was deleting the old messages I decided to delete some blog subscriptions&amp;nbsp;that I no longer was a fan of and add some new ones.&amp;nbsp; One of the new one's I've added is &lt;A href="http://weblogs.asp.net/chris_pratley/"&gt;Chris Pratley's blog&lt;/A&gt; as per &lt;A href="http://weblogs.asp.net/tmarman"&gt;Tim Marman&lt;/A&gt;'s recommendation to me while we were getting a couple of drinks.&amp;nbsp; Highly recommend it, high quality, low noise, just what I like :).&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=106076" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term="Miscellaneous" scheme="http://weblogs.asp.net/sibrahim/archive/tags/Miscellaneous/default.aspx" /><category term="Lists/Forums/etc." scheme="http://weblogs.asp.net/sibrahim/archive/tags/Lists_2F00_Forums_2F00_etc_2E00_/default.aspx" /></entry><entry><title>The Art of UNIX Programming</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/04/01/106049.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/04/01/106049.aspx</id><published>2004-04-02T01:17:00Z</published><updated>2004-04-02T01:17:00Z</updated><content type="html">&lt;P&gt;I recently finished reading a book called The Art of UNIX Programming (&lt;A href="http://www.awprofessional.com/bookstore/product.asp?isbn=0131429019&amp;amp;redir=1"&gt;here&lt;/A&gt; for purchase, &lt;A href="http://www.faqs.org/docs/artu/"&gt;here&lt;/A&gt; for online reading) by &lt;A href="http://www.catb.org/~esr/"&gt;Eric Raymond&lt;/A&gt;.&amp;nbsp; The book was provided to me by my employer so I thought I would be a good trainee and read it.&amp;nbsp; I had seen references to it before in places like &lt;A href="http://www.joelonsoftware.com/articles/Biculturalism.html"&gt;JoelOnSoftware.com&lt;/A&gt; so it also had some good endorsements.&amp;nbsp; More motivation for reading the book came in the form of my own personal curiousity about the entire Linux revolution and what the big deal was.&lt;/P&gt;
&lt;P&gt;My personal assessment of the book was it was pretty good, not great.&amp;nbsp; I think there was much to learn from the book for any programmer because the book speaks about thing like writing orthogonal methods, why text files are a good way to store things, what format to store text files in, how to implement your own mini-language, etc.&amp;nbsp; In those respects, I was pleased with the book.&amp;nbsp; I gave me insight into things that I've never thought about and things about which I've always wonder why.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;So the question is why don't I completely say the book is better than just pretty good?&amp;nbsp; Well several reasons and here goes my list:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;His writing style is terrible therefore it's annoying to read 
&lt;LI&gt;Too much of his own belief system floating around in the book 
&lt;LI&gt;He's a hypocrite&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Let's start by addressing the first point.&amp;nbsp; The author's writing style is all over the place.&amp;nbsp; He changes his mannerism so often that it forces you to reread sentence all the time.&amp;nbsp; I find that very annoying when I'm reading books.&amp;nbsp; I don't mind it in articles and blogs but in books I believe it's necessary to find a writing style and stick with it for your readers' sake.&amp;nbsp; I've found another person who completely agrees with me about the style in the book.&amp;nbsp; Personally, I feel like the author is trying to prove himself to be a great writer and therefore attempts to demonstrate the different styles he's mastered.&amp;nbsp; Please don't do this!!&lt;/P&gt;
&lt;P&gt;Second problem is here I am trying to keep an open mind&amp;nbsp;being primarily Windows developer by reading book called "The Art of UNIX Programming" meanwhile I have to endure the author's comments about how terrible Windows is here and there and so on.&amp;nbsp; To be expected to some degree but come on this was extreme.&amp;nbsp; Plus, on top of that, he's got his &amp;#8220;Zen of programming&amp;#8221; ideas spread throughout the book.&amp;nbsp; Now granted he warns you about this but quite honestly it's still annoying.&amp;nbsp; When I read a technical book I really want the point with the information I need to understand it and no fluff.&amp;nbsp; I have tons and tons to read so don't clutter the pages with noise.&lt;/P&gt;
&lt;P&gt;Both points one and two bring me to point number three.&amp;nbsp; At the end of the book the author goes off about what problem exist in the Unix community and how to overcome them.&amp;nbsp; One of the things he points out is the Unix developers see themselves as elite and&amp;nbsp;that puts them at a disadvantage when trying to preach the benefits of the Unix platform.&amp;nbsp; However, throughout the book the author himself is constantly saying how much better Unix programmers are etc etc.&amp;nbsp;&amp;nbsp;My&amp;nbsp;feeling about his writing style exhibit, in my eyes, his elitist ways in that he's trying to prove he's smart but in turn he's frustrating his readers.&lt;/P&gt;
&lt;P&gt;In any case, I don't regret reading the book and I did take away quite a bit so I'd recommend reading it if you have the time but I wouldn't call it a must read.&lt;/P&gt;
&lt;P&gt;I'm now about half way done with &lt;A href="http://www.awprofessional.com/titles/0-201-61586-X"&gt;The Practice of Programming&lt;/A&gt; so far the sentiment is I don't like it.&amp;nbsp; Feels way to out of date so far...&lt;/P&gt;
&lt;P&gt;I also ordered the GoF book and The Mythical Man Month yesterday.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=106049" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term="Books" scheme="http://weblogs.asp.net/sibrahim/archive/tags/Books/default.aspx" /></entry><entry><title>Global Assembly Cache (aka GAC) is a Misnomer:  How "global" is it?</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/03/11/88323.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/03/11/88323.aspx</id><published>2004-03-12T02:29:00Z</published><updated>2004-03-12T02:29:00Z</updated><content type="html">&lt;P&gt;In every .NET programmer's life, he/she must come to terms with (at least one would hope) the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconGlobalAssemblyCache.asp"&gt;Global Assembly Cache&lt;/A&gt;, aka the GAC.&amp;nbsp; Simply put, the GAC is place for strongly named .NET DLLs to be placed so that they may be shared across multiple applications.&amp;nbsp; This provides developers a way to place their DLL once on a machine and have multiple applications using&amp;nbsp;it without the fear of name conflicts or problems with different versions of the DLL.&amp;nbsp; In theory, the GAC should also help avoid Windows programmers every having to remember the days of &amp;#8220;DLL Hell&amp;#8221; although the term &amp;#8220;Assembly Hell&amp;#8221; has already been dubbed.&lt;/P&gt;
&lt;P&gt;Problem is how &lt;EM&gt;global&lt;/EM&gt; is the GAC anyway?&amp;nbsp; Well there's a simple answer to that question; not global at all.&amp;nbsp; The GAC is only appropriate for machine-wide distributions of DLLs which still makes it a problem for deployment on a enterprise-wide level.&amp;nbsp; In some ways I think that the Global Assembly Cache was named as such because Microsoft is still not over their fixation with workstations being isolated.&amp;nbsp; In today's work place environment however calling anything that only scopes a single workstation &amp;#8220;global&amp;#8221; is a major lack of understanding of what is going on around you.&amp;nbsp; Maybe I'm paying too much attention to a name which maybe a marketing department made up but in truth this leads to the bigger issue of deployment.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;How can one deploy an assembly network-wide?&amp;nbsp; Bad new is it's not &amp;#8220;built in&amp;#8221;; good news is it's possible albeit jumping through some serious hoops.&amp;nbsp; I think this is something that Microsoft should really consider further development in.&amp;nbsp; Enterprise-wide deployment doesn't seem to be a forte of the Windows platform in general but I think it's in .NET's best interest to find a way around it.&amp;nbsp; Most companies with a reasonable sized network would prefer single point of deployment rather than having to contend with deploying DLLs to each and every machine.&amp;nbsp; .NET doesn't make it easy to deploy your shared DLLs to a shared network drive where they can truly be more global.&lt;/P&gt;
&lt;P&gt;This also brings me to the point that the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconassemblyversionredirection.asp"&gt;publisher policy&lt;/A&gt; that .NET enforces seem somewhat flawed.&amp;nbsp; Who should have the final say in what version of a DLL which I wrote&amp;nbsp;is used by an application, me or the application developer?&amp;nbsp; While I can argue both sides of the coin, I think the real answer is it depends.&amp;nbsp; If I'm using a third party DLL and I don't want to break my application, I should be able to use any version of the DLL I damn well please.&amp;nbsp; If I want to take the risk of having using a buggy old version well that's my prerogative.&amp;nbsp; Maybe I'm not using any&amp;nbsp;feature effected by the bug fix&amp;nbsp;and maybe I just don't have the time to get my code to work with the new version.&amp;nbsp; But what about the corporate world?&amp;nbsp; If one team releases a new version of Foo.DLL which other developers in the enterprise use, shouldn't they have the ability to say "you can't use my old DLL any longer"?&amp;nbsp; A good example of the need for this is if the new Foo.DLL now enforces something such as a fix to a bug that runs the possibility of bringing the network down.&amp;nbsp; This issue came to mind when I first read &lt;A href="http://www.microsoft.com/mspress/books/5353.asp"&gt;Applied Microsoft .NET Framework Programming&lt;/A&gt; by Jeffrey Richter (if you haven't read it yet stop reading my blog and go buy yourself a copy).&amp;nbsp; At the time I thought&amp;nbsp;&amp;#8220;oh well it doesn't effect me&amp;#8221;&amp;nbsp;and moved on but I think I'm now seeing why I had to reread the publisher policy section to believe that the author of a DLL had no power in this matter.&lt;/P&gt;
&lt;P&gt;These are arenas which I now consider to be a strong weakness in .NET and issues which are important for Microsoft to address.&amp;nbsp; For .NET to ever be a real enterprise application contender deployment and policy issues cannot be thought of as secondary.&amp;nbsp; Smart clients are not the solution for everything and neither are web apps.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=88323" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/.NET/default.aspx" /></entry><entry><title>Hardware-based Byte-code Interpreters:  Are they all they are cracked up to be?</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/03/10/87717.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/03/10/87717.aspx</id><published>2004-03-11T04:30:00Z</published><updated>2004-03-11T04:30:00Z</updated><content type="html">&lt;P&gt;Today I was made aware that Intel is amidst an initiative to create chips capable of interpreting Java byte-code in the same way a normal ship would interpret assembly.&amp;nbsp; Now I really don't know much about chips but upon hearing this I thought to myself "Wow... that's really going to make Java's performance skyrocket past .NET's."&amp;nbsp; I mentioned this to one of my trainer instructors (I'm still in training at work) who in turn told me he didn't believe this was such a big deal or a big gain for Java.&amp;nbsp; I was shocked to hear that but I listened to his justification which makes sense but again I don't know much about chips.&amp;nbsp; His basic concept was two-fold: 1) What's the performance gain over having the byte-code compiled to native code at install time?&amp;nbsp; 2) Any performance gain that the JITter might introduce with runtime optimization would be missed.&amp;nbsp; Another training instructor put his two cents in as well but he was more on the side that having hardware capable of bypassing the JITter would improve performance.&lt;/P&gt;
&lt;P&gt;I was under the impression that having hardware with these capabilities would unquestionably make Java's speed a force to be reckoned with.&amp;nbsp; I do however see the point that it really doesn't seem to buy you much over having byte-code compiled down to native code at install time.&amp;nbsp; &lt;/P&gt;
&lt;P&gt;Does anyone know if there are any initiatives of this kind for IL?&amp;nbsp; Does the skeptical instructor have a valid point?&amp;nbsp; General feedback anyone?&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=87717" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/.NET/default.aspx" /></entry><entry><title>Off-Shoring comments from Jim Fawcette... worth a read it's short</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/02/24/79632.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/02/24/79632.aspx</id><published>2004-02-25T04:00:00Z</published><updated>2004-02-25T04:00:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://www.ftponline.com/weblogger/forum.aspx?ID=1&amp;amp;DATE=02/23/2004"&gt;http://www.ftponline.com/weblogger/forum.aspx?ID=1&amp;amp;DATE=02/23/2004&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Got the article through a great friend.&amp;nbsp; Don't know if he wants his name here so he'll remain nameless.&amp;nbsp; However, it is worth mentioning my friend's argument which is the strongest I've heard.&amp;nbsp; His arguments&amp;nbsp;are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&amp;#8220;What does that teach children?&amp;nbsp; Go to college and come out with lots of debt and no job?!?!&amp;#8221;&amp;nbsp; &lt;/LI&gt;
&lt;LI&gt;&amp;#8220;Where does it stop?&amp;nbsp; Accounts abroad can learn US tax laws and do your federal income taxes....&amp;#8221; etc&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=79632" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term="Miscellaneous" scheme="http://weblogs.asp.net/sibrahim/archive/tags/Miscellaneous/default.aspx" /></entry><entry><title>ASP.NET DataGrid's AutoGenerateColumns doesn't add the BoundColumns to the Columns collection... WHAT!!</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/sibrahim/archive/2004/02/13/72711.aspx" /><id>http://weblogs.asp.net/sibrahim/archive/2004/02/13/72711.aspx</id><published>2004-02-13T23:13:00Z</published><updated>2004-02-13T23:13:00Z</updated><content type="html">&lt;P&gt;While I ordinarily set AutoGenerateColumns = false on ASP.NET DataGrids, I finally found a pretty good use for them.&amp;nbsp; I had a result set that&amp;nbsp;was coming back with a variable number of columns all of which need to be display.&amp;nbsp; I thought what a perfect use for the auto-generating columns&amp;nbsp;but low and behold I discovered the &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebUIWebControlsDataGridClassAutoGenerateColumnsTopic.asp"&gt;documentation&lt;/A&gt; says:&lt;/P&gt;
&lt;BLOCKQUOTE class=dtBlock&gt;
&lt;P&gt;&lt;EM&gt;&lt;B class=le&gt;Note&lt;/B&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Explicitly declared columns may be used in conjunction with auto-generated columns. When using both, explicitly declared columns will be rendered first, followed by the auto-generated columns. Auto-generated columns are not added to the &lt;/EM&gt;&lt;A href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwebuiwebcontrolsdatagridclasscolumnstopic.asp"&gt;&lt;EM&gt;Columns&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; collection.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The hell kind of garbage is that?!?!&amp;nbsp; Why aren't Auto-generated columns added to the Columns collection?!?!?&amp;nbsp; Shouldn't they abide by the same rules other columns do?&amp;nbsp; After all, aren't they just &lt;A href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwebuiwebcontrolsboundcolumnclasstopic.asp"&gt;BoundColumn&lt;/A&gt;'s?&amp;nbsp; All I wanted to do was simply set the &lt;A href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwebuiwebcontrolsboundcolumnclassdataformatstringtopic.asp"&gt;DataFormatString&lt;/A&gt;&amp;nbsp;property on them.&amp;nbsp; What an annoyance!&amp;nbsp; Instead I had to check the number of columns in the IDataReader using the FieldCount property and then programmatically creating each column and set the format.&amp;nbsp; But then what is the point of the AutoGenerateColumns property?&amp;nbsp; Has anyone ever used it in a real world application?&amp;nbsp; Oh well.....&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=72711" width="1" height="1"&gt;</content><author><name>SamerEyeWarrior</name><uri>http://weblogs.asp.net/members/SamerEyeWarrior.aspx</uri></author><category term=".NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/.NET/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/sibrahim/archive/tags/ASP.NET/default.aspx" /></entry></feed>