Archives

Archives / 2003 / July
  • .NET Roadmap - C# Edit and Continue??

    Lots of people are blogging about the updated information available in the .NET Roadmap. Am I the only one concerned that the Edit and Continue features specifically mentioned for VB.NET will not make it into C# as well?? Maybe the performance will be so much better in VS.NET Whidbey that it won't be that big of a deal, but currently I find myself craving this feature constantly.

  • view

    [Royo] feels left out because he can't make it to PDC. Well I won't be there either, and I'm really not upset about it at all.

  • GSLgen vs. CodeSmith

    I hear a lot of talk about people using GSLgen as their template-based code generator of choice and I am wondering what features GSLgen has that you would like to see in CodeSmith. I have downloaded GSLgen and tried it very briefly and I didn't notice anything it could do that CodeSmith couldn't. Any feedback would be appreciated.

  • Patterns of Enterprise Application Architecture

    Well, I am done reading the book now and I must say that I was quite happy with it. I would highly recommend it to anyone in the software engineering field (especially if you are wondering what all these patterns everyone is talking about are). It is great to be able to put a name to a lot of the patterns that I was already implementing (I just didn't know it) and to also get a few good new ideas as well.

  • In the future, there will be robots!

    The code generation crowd are at it again.

    So, "writing code" is stupid is it? Well what will we call writing the requirements in a form that the code generators can understand and why will it be easier to get the requirements right?

    I like code generators. I couldn't live without my IDL compiler. Or generators that write the grungy database access code or generators that make it easy for me to make SOAP calls. Even the ghastly #import COM wrapper generator has its place. But I'm sorry, I just don't buy this "In the future, there will be robots!" view of code generation. People will be writing code for a long time to come.

    [Len Holgate]


    I'm not sure what Frans has against this post. I agree with everything Len is saying. People who think that writing code will go away are crazy. I also think that generating entire applications is rediculous and will never happen. What will happen is that things will continue to be abstracted to higher and higher levels, but at the same time requirements will become more and more complex. So there will always be programmers out there writing code in one form or another. It is our jobs as programmers to stay ahead of the curve which will allow us to be more efficient than others. Currently, that involves making use of code generation tools to abstract things to the next level and enhance our productivity while most others still don't understand these tools.

  • view

    I just attended a session presented by Scott Woodgate about Biztalk Server 2004, and I can tell you that it ab-so-lu-te-ly rocks!

    [Christophe Lauer]


    We recently had Microsoft come into our office and do a BizTalk 2004 demonstation and I can't agree more with Christophe!!

  • view

    Andres Aguiar: "ASP.NET is a code generator". I guess.

    [Marcie Robillard]


    In my opinion, ASP.NET is absolutely a code generator. We could be forced to write an IHttpHandler with thousands of Response.Write statements to output our HTML for every page we want to create, but someone decided that there is a more efficient way to write this code and created a level of abstraction to do it (ASP.NET). ASP.NET is not a language that the .NET runtime understands. It is a template-based code generation syntax that generates code .NET does understand (C#/VB.NET/JScript/etc). I believe that ASP.NET style syntax happens to be a perfect fit for template-based code generation and that's why I mimic it as closely as possible in CodeSmith. To me, code generation is all about solving problems from a higher level of abstraction. Code generation is given a bad name by magic button applications that generate a bunch of code or even an entire application that the user has no control over. I personally can't stand this type of code generation. They tend to produce code that people treat as a black box and, more importantly, they take away the creative part of being a programmer. CodeSmith rewards a developer for being creative by saving them from writing the same repetative code over and over and over. You might say that refactoring will do the same thing, but I believe that template-based code generation compliments refactoring. There is only so much refactoring you can do and no level of refactoring can magically write domain specific code for you.

  • Code Generation in .NET 2.0

    personally I would be interested in hearing some opinions on how generics will effect the role of code generation in development. Using generics will be able to define code templates using simple language constructs instead of the brain-dead duplication of code blocks that we have today. Will that make code generation less useful? Or maybe more? On one hand CG will no longer be needed for the "grunt work" of defining typed data structures and the algorithms to handle them. On the other hand, if we use CG to create templates which themselves use generics - now that could be insanely powerful.

    [Andy Santo]


    I think that template-based code generation and generics are VERY similar. Personally, I can't wait for generics so that I can use them in my CodeSmith templates. Right now I have to have templates that create a separate typed collection class for each entity class that I generate. Generics are going to be awesome for classes that only vary by type, but what happens when I want to go beyond that? CodeSmith templates are based on things like database schema information (soon they will be based on an O/R mapping XML file), strings, boolean flags, and whatever else I can think of. Unlike generics, my templates can also have complex logic in them.

    Speaking of generics, the thing I am looking forward to most in .NET 2.0 is partial classes. I believe partial classes are going to be a godsend to code generation. Currently I have to make sure that my entity classes have enough hooks in them so that I can derive from them and add any custom logic that might be needed, with partial classes I will simply be able to generate half of the class, write the other half by hand and not worry about my custom code being overwritten. Is it time for PDC yet?