Archives

Archives / 2004
  • Ode To Windows Installer

    Roses are red
    Violets are blue
    Windows Installer
    You are really pissing me off

     

  • Julia Lerman

    Julia Lerman’s blog got a nod along side Robert Scoble and Miguel de Icaza (“It’s a Blog World”, CODE Magazine, Jan/Feb 2005). Well worth reading if you don’t already. Aside from the great tips it is often just damn funny to read.

    Now maybe she’ll admit she really does know what she is doing, and is damn good at it too. Congratulations; it is well deserved.

  • Vault 3.0 / Dragnet 1.0

    I’ve been using Vault 3.0 for a while now (I yet again was completely reckless and ran live on the beta). For those without source control or (worse) using SourceSafe, take a look at Vault. It is very inexpensive compared to other major SCC systems (single user is even free), completely written in .NET, uses MSDE/SQL Server, and flat out works like a champ.

    The biggest change (aside from the new Add Files dialog… thank you for that one…) is a new product in the mix called Dragnet. Dragnet is a bug tracking solution that ties directly in with Vault. It is a first generation product so it isn’t as feature rich as something like FogBugz, but the quality of the integration makes up for a lot of that. I also found it much easier to look at than most of systems. It is well laid out and very easy to find what you want quickly.

    The only issue I have with Dragnet (and it is preventing me from switching) is the ability to submit bugs from outside the system. Currently our software supports submitting error reports directly into FogBugz and we receive a number of bugs/requests via email directly into FogBugz as well. But once something is available for this (and I’ve heard it will be added) then I’m likely to switch over too it. We are using it for some side projects already with great results.

  • Microsoft Platform Test for ISV

    I just got word from VeriTest that our product just passed the MS platform test. So I’ll use this soapbox to thank the team and the testers around me that managed to pull it off.

    For those that haven’t gone though it, it is much easier than you think. Especially if you are a .NET application because a large percentage of the test is simply not applicable; the framework handles it for you (and an major installation package will handle another chunk). The only advice I would give is to not be afraid to ask questions. I was amazed how responsive they were to giving me detailed information on what exactly to document, how best to supply, etc.

    I’d also like to send a shout out to Jim Stull, our Microsoft ISV Partner Group rep. He really helped us nail down what we needed to do, got us in touch with the people we needed, and generally made the entire process effortless. Someone should promote this guy…. Wait! Don’t listed to me! Forget that. Just leave him right where he is! :-)

  • Stupid People Acting Stupid

    I know there are plenty of “code warriors” out there who think that making things more difficult that need be is somehow more fulfilling. I under stand that saying things like “I don’t comment” makes you feel special.

     

    Well, today I found this gem:

     

    /* Obligatory Comment: If it was hard to write then it should be hard to read. */

     

    Normally this doesn’t deserve a post; we’re all seen it before after all. But it wasn’t what I read you see, it was where I read it. This bit of wonderful technical incite was delivered to me in an SDK! Yep.

     

    Thank god he put his name at the top. I would hate to go though life knowing I risk hiring this moron for lack of his identity.

  • Funny Little Ad

    Red-Gate software has release their version of a Christmas Carol. For an ad it is pretty amusing. There is nothing like pure, over-the-top, unadulterated product shilling to put my in a holiday mood. :-)

    Note: this is an animated ad and requires audio.

  • Ever have one of those days...

    Ever have one of those days where you can’t seem to remember where you put your brain? Well, I’ve been having one for the last few months now. Either that or the little green men really do exist and I should get an IRM as soon as possible.

    Things have been busy around here as we launch into the final stretch of development on our next big release. As this release is a complete re-write into Microsoft .NET and SQL Server there are, needless to say, a few extra hours required. But after 2 years of development, at least we can see the end of the road. I can’t remember the color of my house, the price of milk, or my wife’s name but who cares! It’s beta time baby.

    Once things get into full beta I plan on picking up my posting again (and locating my family). I also plan to put up a post-mortem on the project. Hopefully it will help someone avoid mistakes I made alone the way (not that I made any mistakes mind you….).

    Now if you’ll excuse me, I need to get started on my Alien Abduction Survey.

  • Database Diagrams in Yukon

    Ming mentioned this a while back (June 29th) and unfortunately I didn't notice it until now. I've had a few minutes to play with Yukon (SQL Server 2005 for those way behind in the program) and most of that time was spent hunting for the query diagram tools in the new SQL Server UI. But alas, as Ming stated, it isn't there. To quote from Ming's blog: "Database diagram (it was official cut in VS2005, but who knows, we might be asked to put it back.) -- a diagram to lay out the relationship within the database tables/views/".

    Well let the guys know then that they have been official asked. I think Paul Murphy may have said it best in Ming's comments: "Someone should be beaten and flogged for cutting database diagrams from the Yukon/Whidbey toolset.”. I could not agree more.

    I could come up with a thousand reasons why this shouldn't have been removed, the least of which being the amount of typing the diagram tool saves me. But they all see so painfully obvious that I can't imagine they were not brought up at meetings inside Microsoft. So this leaves me wondering, did they really have a good reason to remove this (puppies in China will die if they built it for example) or did they just have a collective brain fart when this decision was made?

    Or maybe I'm wrong and it is there and Ming never said this and this is all a nightmare and I'll soon wake up and have a beer way to early in the morning in order to toast the dream being over…

  • Primal Scream

    Every have one of those days were it seems like the world is secretly trying to scramble your brains? I'm having one today.
    For some reason this statement compiles just fine:

    if(anyYearCheck.Checked = false && (1 > 2))

    {

    }

    Did you notice the problem? Yeah? Well I didn't.
     
    For those like me who didn't catch it, here is the deal; "Checked = false" doesn't check the value of Checked, it sets the value of Checked. So rather than checking for false I was setting it to false. This caused some rather intricate four-letter-word sentences to be expunged by yours truly.
     
    What I find odd is that I'm positive that statements like this have cause compiler errors in the past. So like I said, the world must be secretly out to get me.
     
    UPDATED: My code sample was wrong. This error requires the && to be included in the if statement.
  • And Another Thing...

    While I'm updating wish-lists I'd like to add something to this list: more control over web reference proxy generation. I understand that this may in fact be solved by VS 2005's new web services tools, but on the off chance that it isn't I'd like to get this out there.

    Our latest application uses web services for the entire data layer. This means that 90% of the business logic and all of the database communication is handled by a web service (really it is handled by a number of web services due to the size of the application).

    One of the issues we've run into is in managing this. We want to maintain a single assembly that houses all of the web references and associated helper classes. With a large number of class libraries and executables this saves us a ton of time and it system actually works pretty well. We have AppSoap.dll that holds the web references and a few other classes and this is in turn referenced by a dozen or so other assemblies.

    But there is one issue, the proxy generate builds the reference.cs and gives a number of items an “Internal” protection level. This means that while we can reference <namespace>.<typed dataset>.<typed datatable> we cannot access the column names in that dataset.

    The sort of it: either keep it all public so I can reference my web services anywhere I need to or give me control over it. Right now I have to search and replace “Internal” with “Public” every time I update the web service. Yuk...

  • Updated Wish-List

    Now that we are half-way through 2004, I thought I would take a look back at my New Year Wish-List and see how far we have come.


    ·         To have the C# team come to the realization that Edit & Continue is in fact not the devils playground. Maybe they don’t make typos but I sure do (some 10 in the post alone I bet). Having to restart the entire application to fix a single letter is a massive productivity killer. Edit & Continue, it is your friend.

    This one may require sending foul smelling fish products to the C# team's office.

    ·         For someone to finally unseal the ImageList component. Or at least implement the ImageList as an interface so we can develop our own. For those of us who build commercial apps with hundreds of windows this is a huge issue. Someone decides that the “New” icon should be changed and we spend the next week changing it in 99 places (yes, 99. Because we always forget to change one someplace).  Hell, think of the memory savings that could be had by only having a single global ImageList rather than 100 separate ones with 99% of the same images in them.

    Hmm.... I may have to stock quite a bit a foul smelling fish products.

    ·         A real source code control system API. See that one that you have now? Give it too Frodo and send him to Mt. Doom right away. It is evil and needs to be destroyed. Source Code Control is the most overlooked aspect of software development and the poor API support provided by Visual Studio is doing nothing to help correct it.

    While it is unclear what effect the new SCC system from Microsoft will have on the exposed API, I suspect it will improve things quite a bit. So it looks like this one will actually happen.

    ·         Yukon by Q2

    Yukon by Q2 2008? OK, that is unfair. SQL Express at least shows that progress is being made. Maybe by early Q4 then?

    ·         Someone to confirm that there will in fact be an MSDE version of Yukon. I always assumed so but someone pointed out that this has never been explicitly stated.

    100% answered by SQL Express. Congrats to the Express guys by the way. I really like what I've seen so far.

    ·         A [Replaced] attribute that goes one step beyond [Obsolete] in that it causes Visual Studio to automatically replace the old reference with the new reference. The best example is with property values persisted in the InitializeComponent method. When you
    ”Obsolete” a property Visual Studio doesn’t remove the old reference so you get a slew of compiler warnings that you must then delve into generated code to fix. This is even worse if you actually remove the property all together. It would be nice if the system could handle this automatically and use [Replaced(NewFunctionName)] to point to the new property.

    No idea. Someone hinted to me back in February that an answer to this problem was coming with VS 2005, but I've not seen it.


    So we have a 1:6 ratio. Considering I've yet to loose a pound, stop smoking completely, or pick up jogging I would have to say that my wish-list is doing much better than my resolutions.

  • Hatteras

    Eric Sink talked about Hatteras yesterday.  Being that I’ve been eye-deep in my current project (I should really post about it at some point…) I’ve had little time to keep up with my blog list and I’ll just assume that this has been talked about quite a bit.  But given my zealous stance on source control, I wanted to get some points in.

    First off, about frigging time Microsoft! For a company responsible for defining a large portion of what constitutes mainstream software development tools to have all but ignored source control was obscene. Sure, they have SourceSafe and many people use it successfully. But I would argue that use SourceSafe is akin to moving your money from under the bed to a good looking fire box. Yes, it is much safer in a fire box than under the bed. But if you think it is the same thing as a bank you are kidding yourself.

    For anyone who has been burned by the lack of source control (or by SourceSafe), a quality SCC system is absolutely invaluable. This is true even for very small teams (even “team of one”) shops. But alas most small shops ignore the warnings and prod along with either nothing (SourceSafe) or less than nothing (hope and prayer). My hope is that with Hatteras we will start SCC get more attention and more mainstream use of source code control because of it. Anything raise awareness of SCC is a good thing.

    As for Hatteras itself; it looks interesting but as Eric stated it is clearly geared towards the Rational product line. My experience has been that these systems, while powerful, are very difficult to implement and use. To quote Joel Spolsky, “Any impediment to using a [software package] will only result in people working around it”. And these systems are often the poster children for impediment. They are so structure intensive that the act of using the system often takes longer than the act of coding (i.e. 20 minutes to correct a spelling mistake or the like). Now maybe Microsoft will solve this problem and release a system as powerful as ClearCase but dramatically easier to use. After all, they’ve done that many times over the years. But I wouldn’t hold my breath.

    So for me and my small team over here, we will continue to happy use SourceGear’s Vault. It is affordable, highly reliable, and doesn’t impede my team from getting things done. And that to me is the hallmark of a good source code control system.

    UPDATE: Removed gratuitous profanity for Phil Winstanley's sake. :)

  • Bad Images

    Seems I’ve been so busy, I’ve let my blog get a bit stale. I’ve been knee deep into our current project and between that and maintaining our existing product in the field; I’ve been nailed.  What finally put me over the edge was a set of presentations I delivered last weekend in Baltimore, MD. It ate up any remaining seconds I had.  

    Well, at least now I have a picture to prove that seeing one of my presentations really is a religious experience. :-)

  • Carl and Rory Take 2?

    Hmm, so Carl and Rory are thinking about a more broad reaching radio show. I like the idea, but this line caught me off guard:

    I don't want it to be Oprah, though. So, we're not going to talk about the things most talk shows are focused on.

    Well, I don’t know about the rest of you but I’m saddened to hear this. I was sure Rory was next in line for Oprah’s job. I guess this means I loose the office pool. Damn it…

  • Sign #192 That You Work Too Much

    In a life devoid of much entertainment (I’m posting at 9:39 PM from my office right now) I’m left with getting what little I can out of meaningless events. And tonight I managed to find one such event.

    Upon visiting the new Channel 9, I was able to create a user – get this - using only my first name. That’s right! No assortment of random letters and numbers after my name. No wasted time trying to think of an amusing handle that will both make me look humorous and yet still too cool to be a geek. Nope, not this time. It is just pain ole “Marc” for me.

    You’re envious I know.

     

     

  • Speechless

     Sometimes smart people say stupid things. Sometimes stupid people say smart things. And then there is Rory’s buddy-o Christopher Anthony.  I’ve not read insight as on-point as Christopher’s since I first read Time Cube….

    Now if you don’t mind I need to go bleach my eyes.

     

  • Scripting Goodies

    While I was compiling the links for this post, I came across another article by Roy titled “Make your .Net application support scripting - a practical approach” that is a great example of how to use the tried and true Microsoft Script Control in a .NET application.

     I had thought about using scripting a while back but decided against it due to the complexity. But I hadn’t thought of using the Microsoft Script Control to accomplish it. Roy on the other had did just that.

  • Simple Plug-in Architecture

    I was looking for a very simple plug-in architecture today so I “went a Google’n “.  Roy had a great little article (see “Add run-time functionality to your application by providing a plug-in mechanism” and “Search dynamically for plugins without Config Files”) on the how to build one that worked out perfectly.

    Most articles, on any technical topic, seem to spend most of their time talking around the subject rather than giving me a solution I can actually use. I’m sure some will argue that this is because “theory is important” and that is all well and good. But sometimes I think it has more to too with proving the author’s intellectual superiority than some the reader’s education.  Roy does not seem to have this problem. And whenever I’m looking for a quick fix of just the facts, Roy always seems to have the answer.

     

  • Bloated Fish and Pork Rinds

    I installed the corporate edition of Symantec AntiVirus for the first time yesterday. And aside from the poor quality of their documentation (my god this thing is confusing) I think I like it. But I found their licensing model quite amusing.

    To license the product you go to a special website (the address for which is in .005 point type at the bottom of a page) and enter your license key. They then check that key and generate a license file, which they then proceed to email to you!

    I found it odd that with the vast majority of viruses being sent by emails these days, an Anti-Virus company would be using attachments in their licensing scheme. This is especially true when you consider that a number of virus experts are pushing companies to outright ban file attachments at the mail server!

    This got me to thinking about what it would be like were Symantec to take over the medical profession….

    Patient: Doctor, do you have a cure for cancer?
    Doctor: Yep. Just smoke 2 of these and call me in the morning.

    I’ll save you from my extended version which included an AIDS prevention involving sex with 42 heroin addicts.

  • Time to break out the wet noodle

    Exchange Server has a 32k limit to message delivery rules. No, not 32k per rule but 32k for all rules combined. This has been an annoying fact of life for Exchange users for a number of years now. If you were lucky you could get 40-50 rules per mailbox and while that was normally less than you wanted, it was enough to get by in a pinch.

    But now that Microsoft has gone all “worldly” with Outlook 2003 and switched everything to Unicode things have gone from bad to worse. The problem is that text in Unicode is somewhere near twice the size of the same text in ANSI. So with the latest and greatest Exchange and Outlook combination we can now fit even fewer rules (by almost 50%) than before.

    Well, isn’t that just wonderful in that make-my-email-a-painful-haemoid kind of way?

  • Love and Admiration...

    …to the first person to tell me how to make Visual Studio run like it is really running on my supper-ultra-fast PC rather than my old 286 sitting in the garage. I swear, this thing takes longer to display that O/S2 took too boot.

  • .NET Rocks Live

    Rory Blyth is just too damn funny for a show that runs during working hours. It is a little hard to call anything “work related” when one spends the entire time bursting into laughter.

    And my thoughts on what Microsoft does with the hackers people turn in? They drag them into the basement of Building 6 (why 6? because why not 6…) and force them to listen to Steve Ballmer shout “Developers, Developers, Developers, Developers” for 48 hours (or until Mr. Ballmer collapses due to lack of oxygen).

    UPDATE: It just occurred to me that Seems that Steve Ballmer and Howard Dean must share the same speech writer.

  • Apple Product

    I have to agree with Peter Rysavy on the overall quality of Apple’s products. They make very nice equipment that just seems to work.

    I should disclose that my first home PC was an Apple (Apple ][ Forever) and my first real career in computers was as an Apple Macintosh technician. So I obviously hold a bias towards them (and an unnatural distain for John Sculley, but that is another topic altogether).

    There are plenty of things I dislike about their products. But compared to what comes out of Hewlett Packard/Compaq/DEC/We-Buy-Everyone, Gateway, and Dell? Those bozos are enough to drive even Saint Peter to curse for a month.

    But alas, I’m far to infatuated with .NET to ever make the switch. C# is literally the most fun I’ve had in years. And a developer I really appreciate the effort Microsoft puts into support us. Apple can’t hold a candle to Microsoft in this regard.

    The real question is what to do if Microsoft decides to support .NET on the Macintosh platform. Dare I dream?

  • .NET Logging Framework

    A few days ago I made mention of a .NET Logging Framework I had been using (and still am, and still loving). 

    There was one small change that needed to be made to the source in order to compile it under .NET 1.1. There is a warning generated by LogSocketReader.cs about an obsolete TcpListener method call (@line 164).  I figured I’d just post the code fix here and save someone 10 minutes looking for the solution.

    The fix is to change the call to:

    System.Net.IPAddress ipAddress = System.Net.Dns.Resolve("localhost").AddressList[0];

    TcpListener = new TcpListener(ipAddress, Port);

     

  • Logging

    I was poking around for a logging framework today. I wanted something very easy to use. Anything too difficult and people would just revert to Debug.WriteLine and MessageBox debugging pretty quickly. The idea here is to make it so painless that using the logging framework would be every easier than the normal methods.

    I looked at log4net but my head began hurting within moments. It looked very flexible, but it was just too much work to implement and use. I’m not saying it was insurmountable, but it was more complex than I wanted.

    What I ended up using is the .NET Logging Framework from TheObjectGuy. It was very simple to setup, even easier to use. I don’t think it is quite as flexible as log4net, but it does everything I needed (and more). Within minutes I had it logging my application to the Event Log, Email, and outputting a .log file.

    The documentation on the other hand was a bit sparse. Nothing too bad, but it could/should be a lot better than it is. And there isn’t a single sample of how to use it (the only sample is a log reader, not something I really care about). It is simple enough however that these two issues don’t really impede very much.

  • Install on Demand

    Can we please put a stop to this Install on Demand madness? I know it is very cool that it will install some template only when I need it. I understand that this is very slick. I get it. But please stop it!

     

    Every time I start Visio 2003 it asks me for the CD-ROM. I have no idea why, but it wants it. The problem isn’t that I lack the CD, it is that I have too many of them (MSDN, Action Pack, Retail…). And not one of them has the damn file this thing wants. The best part is that if I click “Cancel” it loads Visio anyway. If this file is so damn important than how does it run at all? It acts like my 2 year old, passionately demanding something that it has absolutely no need for. And sometimes, also like my 2 year old, it needs to be told “no” (or in this case, “cancel”) multiple times before it gets the point.

     

    Hard drive space is cheep guys. This technology may be cool but you are 5 years late bringing it to the table. With the price of disk space these days, just let me install the whole damn thing and leave me be already!

     

    I need to find a wall to bang my head against…

  • Vault 2.0 Beta Released

    I tossed on my “Reckless Early Adopter” hat today and put up the beta release of Vault 2.0 into our live environment.

    The biggest change from my perspective is the much improved Diff/Merge utility. Within an hour we had a merge issue that under the old version would have produced immense headaches. It had really reached a point around here that the term “Needs Merge” would strike terror though our collective hearts. But with 2.0 we were able to merge the files together in seconds. It was so easy in fact that it almost felt like I was cheating.

    The other notable change is web based access to the repository. This isn’t much of an issue for us as we are still in development. But once we release we expect our top-tear support staff will really get a lot of use out of it. And it also gives non-developers access to design documents that we keep under source code control.

    Overall, I’m extremely pleased with the new version. If you don’t have source code control, or are looking to change SCC providers, then you really should check out Vault. The only negative thing I can say about SourceGear is they are destroying my perfectly good and strongly held cynical view of development tool companies.

    If you’re interested in trying out Vault 2.0, read this post on Vault’s support forum. One word of caution however; even though I have had no issues so far, it is still very much in beta. Use in production with extreme caution.

  • Patriots Sold Out

    -7 degrees Fahrenheit and the Patriots still sell out? Man, I live around crazy people up here!

    Oh course if anyone has a ticket to spare I'll be more than happy to be insane along with them.

  • Usability Professionals' Association

    If you are interested in usability then UPA is worth a look. It is full of valuable information on why usability matters in software design and how to improve it.

    The UPA supports those who promote and advance the development of usable products, reaching out to people who act as advocates for usability and the user experience. Members come from across the broad family of disciplines that create the user experience. We invite you to network in our community.
    [from UPA's web site]

    There is a lot of information there. I'm still going though it myself.

  • Usability FAQ

    There is a pretty well written FAQ on software usability and its benefits over at UserDesign. Oddly enough I find the site to be pretty difficult to navigate.

  • Uprooting Trees

    There was an interesting post to a thread over at Joel on Software today.

    Software must be one of the few endeavors where the art of creative destruction is neglected.

    Landscapers uproot dead trees; architects remove walls; civil engineers tear down old bridges.  Even acorns have to rot before they can germinate and grow into a trees.  But programmers are loathe to clean up after themselves.  They'll rarely remove an old, obsolete, or wrong feature because, Lord forbid, a customer may complain.  After all, it doesn't hurt to leave it in, does it?

    Well, no, it wreaks havoc on your UI.  New users will reject your clunky old app. "What's with all this cruft?  This app makes no sense!"

    Alyosha`
    Friday, January 09, 2004

    I think Alyosha is quite right. Too often we find features lingering in software (specifically commercial software and even more so in vertical software) that should be either rolled into other functions (i.e. feature consolidation) or removed entirely.   

    This is something we have struggled with ourselves for the last few years. And while I’m proud to say we have uprooted our share of trees, not all of them were good decisions. Determining how much use any one feature gets from end-users is very difficult and near impossible with widely distributed commercial applications. And lets just say I’ve had my fair share of rude awakenings when a version goes into beta.

  • Even slower coming out?

    Somewhere along the lines I damaged my Visual Studio install and tonight I decided to just uninstall and reinstall. I planned on a few hours as we all know what a bear it can to be installing this bugger.

    Well I didn’t think it was possible, but Visual Studio takes even longer to uninstall than install. Plan on seeing a log of postings tonight, I’m going to have some free time…. Ug.

     

  • Playoffs

    So we are looking at something around -5 with wind-chill for Sunday’s Patriots vs. Titans game. The real question isn’t who will win (Patriots naturally) but rather how many fans will stick around to see it happen. :) 

  • One More Wish-List Item

    As of today I need to add another item to my 2004 Technology Wish-List:

    To get the old RichTextBox back

    Anyone who has to work with the RichTextBox for more than hour will start to wonder how this control ever made it though a review. Aside from the rather laughable fact that it doesn’t inform the designer that the RTF property is bindable (only plain text is listed) there are a number of changes from the old ActiveX version that make it nearly impossible to use.

    For example, the following code will set the selected text to bold in the ActiveX version:

    RICHTEXTBOX.SELBOLD = TRUE

    Nice and simple isn’t it? Well, there is the C# equivalent:

    RichTextBox.SelectionFont = new Font(RichTextBox.SelectionFont, FontStyle.Bold);

    Did they really need to make it so much more difficult?

    And too add even more pain, the old method would simply bold the text and leave any other formatting alone (i.e. underline, italic, font face, etc). Not so any more. That C# code above will blow away anything previously set.

    So if someone could please find the big red undo button over there, I would appreciate it.

  • New Years Wish-List

    Happy New Year Everyone!  Ok, so I’m a bit late… shoot me<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>

    While everyone is still trying to keep up with their New Year resolutions I decided to forgo the entire process this year and instead focus on my technology wish list for 2004. I’ll accept that I’m as likely to see my wish-list come true as you are to stop eating the chocolate you resolved to give up. But as that didn’t stop you from making your resolutions, I’m not about to allow it to stop me from wishing away. :)

    ·         To have the C# team come to the realization that Edit & Continue is in fact not the devils playground. Maybe they don’t make typos but I sure do (some 10 in the post alone I bet). Having to restart the entire application to fix a single letter is a massive productivity killer. Edit & Continue, it is your friend.

    ·         For someone to finally unseal the ImageList component. Or at least implement the ImageList as an interface so we can develop our own. For those of us who build commercial apps with hundreds of windows this is a huge issue. Someone decides that the “New” icon should be changed and we spend the next week changing it in 99 places (yes, 99. Because we always forget to change one someplace).  Hell, think of the memory savings that could be had by only having a single global ImageList rather than 100 separate ones with 99% of the same images in them.

    ·         A real source code control system API. See that one that you have now? Give it too Frodo and send him to Mt. Doom right away. It is evil and needs to be destroyed. Source Code Control is the most overlooked aspect of software development and the poor API support provided by Visual Studio is doing nothing to help correct it.

    ·         Yukon by Q2

    ·         Someone to confirm that there will in fact be an MSDE version of Yukon. I always assumed so but someone pointed out that this has never been explicitly stated.

    ·         A [Replaced] attribute that goes one step beyond [Obsolete] in that it causes Visual Studio to automatically replace the old reference with the new reference. The best example is with property values persisted in the InitializeComponent method. When you
    ”Obsolete” a property Visual Studio doesn’t remove the old reference so you get a slew of compiler warnings that you must then delve into generated code to fix. This is even worse if you actually remove the property all together. It would be nice if the system could handle this automatically and use [Replaced(NewFunctionName)] to point to the new property.

    Any others I should add to my list?

  • Categories

    Sorry for the massive re-posting but I wanted to start using categories and it looks like the only way to do so it to repost everything.