Archives / 2003 / June
  • About code generators / generating code

    James Avery blogs about an article written by a person who calls himself 'Angry Coder' (I thought people called me that ;)) and that article ventilates the opinion that code generators are not useful, to say it in a politically correct way. I agree with James Avery that the article misses the advantages of code generation and how it can benefit you in your daily life. I'd say: the article is totally wrong. Here's why.

  • My wish-list for the next Visual Studio.NET / .NET api release, part II

    I've blogged before about wishes I had for the IDE I use on a daily basis: Visual Studio.NET (currently v2003). Since that blog I've made a new list of new wishes not mentioned in the previous wish-list. I've also included wishes for .NET and the .NET API. The list is very long so I decided to post it as a story. You can find the story by clicking here. Below is the list of items I discuss.

  • Create #region macro for C#

    Yesterday I was playing around with VS.NET and discovered that I didn't use any macro's at all. So I opened up the macro IDE and looked at the examples. It's pretty easy stuff. So I wrote my first macro. It is a set of macro's actually which create #region ... #endregion sections. Two pre-defined ones for members and properties and a generic one which pops up an input box for the region name. Bind them to a hotkey and you're set. I'm pretty sure the code can be more efficient, it's my first attempt to write a macro that manipulates an active document in the IDE, so if I'm doing things in an inefficient way, that's the reason ;)

  • Harry Potter reloaded

    I have a copy now of Harry's new book, 'The Order Of The Phoenix'. It's even thicker than its predecessor :). Thankfully my wife volunteered to read it first, so I can continue reading Hillary's Bo^H^H^H^H^H^H^H^H John T. Lescroart's latest ;)

  • Move away from stored procedures or not?

    Jimmy Nilsson asks on his weblog if I've dropped stored procedures for everything, according to my dynamic query blog. Well, no, I haven't. The reason for this is simple: you should use the technology that fits the job best. If a couple of actions are simple in SQL and hard in C# or other 3GL (which is highly likely, since SQL is set-based, C# is imperative), why not write that code in SQL?

  • About computers and marriage

    Scoble (among others) writes about a situation which is a given in any marriage where one person is gifted with 'geek-genes' and the other lacks every single one of them. Here in the Netherlands we even had a term for those wives which feel neglected because their husband is spending more time behind the keyboard than with her: "Computer weduwe" or in English: "Computer Widow".

  • Sometimes, the human mind acts in mysterious ways

    What follows is quite embarrassing actually. Yesterday, I was reviewing my own code and optimizing it a bit, looking for ways to make it even more generic, adding more constructors for ease of use, you know the whole 9 yards. In the O/R mapping layer which is targeted by the generated code of LLBLGen Pro, the application I've been working on for the last 5 months, I use a dynamic query engine (DQE). This DQE is specific for each database vendor so you have a special DQE for SqlServer, one for Access etc. The DQE constructs query objects which contain a command object, the parameters and all other necessary objects and data to get the query executed. All methods are static.

  • Feeding the trolls

    Today I've seen some people hammering stacks of MSDN cd's onto the heads of some other people who obviously talk about what their employer wants to hear, f.e. Matt Puccini and others.

  • if(objectHasPropertiesOfAnInterfaceType) { DoNotUseXmlSerializer(saidObject); }

    A short remark which can save you tremendous trouble and hours of hairpulling: if you want to test if your objects can be serialized, do not, I repeat, do not, use the XmlSerializer class when your object has properties which return / accept an interface. The Soap serializer will work with these properties just fine, but the XmlSerializer will barf it can't handle interfaces. I just spend an hour rewriting some interfaces, crawling through google groups and finally discovered the XmlSerializer class isn't about serializing at all.

  • Optimization the right way: optimize your algorithms

    Sam Gentile, among others, pointed us to two articles at Microsoft about the speed of managed code, how to optimize your code, tools that can help you and low level insight of what's going on in the CLR when it comes to the storage of data and GC. There are two articles: Know what things cost, and a primer about how to write fast managed code. I first read the 'know what things cost' article. It is a well written article and some good info if you are interested in that info. However it's not that useful for optimizing your managed code, if you ask me. I'll explain that in a second. The other article appeared to me as very useful, because it describes problems and gives hints to think about.

  • When Mono is completed, Linux is the option for the desktop.

    Randy Holloway wrote about his vision on Linux and then especially about Linux on the desktop. I disagree with his vision, I think Linux is definitely an option for the desktop at the moment and thus also in the foreseably future. It will become the option for the desktop when Mono is completed. The reason for this is simple: a lot of Windows programs will be written using .NET. If you can run these programs on Linux too, using Mono, what's keeping you on Windows? Perhaps the games. But definitely not the business applications, since the Linux version for spreadsheets, browsers, wordprocessors, emailprograms and other every-day software are solid today, even when compared to Microsoft Office XP.

  • Microsoft, developer editions should be free.

    Paschal L posted this snippet from the introduction speech by Paul Flessner (SVP) at Teched: "...A couple other things on SQL Server: Our developer edition used to sell at $499. We're lowering the price to $49, announcing basically today, and that will be embedded -- (applause) -- thank you -- that will be embedded and picked up, we think, by other tools vendors. Borland has already announced that they'll be picking it up and shipping it with their C# development environment...."

  • About sharing Intellectual Property, USP's and Patents

    Robert McLaws wrote : Now that I've reduced my codebase for GenX.NET 3.0, I just figured out how to reduce the size of the output file by 50%-90% in some cases. Here's the part where I'm at a loss... Do I talk about how I do it? Or do I make you buy the source code to find out? The problem is, I've seen how my competitors output their files, and they don't use this method. This gives me a competitive advantage, and another reason why my customers would want to buy my product. So do I talk about it?