﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Ayende Rahien commented on Are Designers, Wizards, etc. inherently Bad?</title><description>Luke,
  
I like the idea of XAML as a way to define the UI. I think that it is a good use of XML and that in that it is both readable by humans and tools. That is much better than the WinForms' initialize method.
  
  
Issues with the WinForms designer? Whenever I need to look it, yes :-) That doesn't happen often, I am not doing enough WinForms stuff to get to the pain points. Getting the nesting in a way that I can see is great.
  
  
Any time that I want to add custom behavior to the equation, the wizards breaks down. Comprehensive it is not, I agree. I will give it some thought.
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment12</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment12</guid><pubDate>Thu, 14 Jun 2007 19:51:47 GMT</pubDate></item><item><title>Luke Breuer commented on Are Designers, Wizards, etc. inherently Bad?</title><description>To what extent is this a debate over how much can be done declaratively vs. imperatively/functionally/etc.?  WPF and its XAML spring to mind.  I do have some issues with it, especially with the magic strings employed that don't necessarily cause compile-time errors, but I did find the declarative nature though-provoking.  Perhaps this is a better way to frame the discussion?  I'm under the impression that wizards and whatnot do better with declarative code than anything else.
  
  
Ayende, do you have issues with the code generated by the WinForms designer, assuming one doesn't do anything really fancy and populate a tree with the IDE GUI?  Almost all of my InitializeComponent methods contain code that is essentially imperative; the biggest improvement I can think of would be to have nested controls be nested in declarations, something that could be done quite well with an object literal syntax IMHO.
  
  
Ayende, I think it would be good to come up with a more comprehensive, normalized list of where MS designers break down, where it becomes more effort than it's worth to use the wizard.  I like to think of this as discovering boundary conditions, which can be incredibly useful for understanding software and frameworks and whatnot.
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment11</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment11</guid><pubDate>Thu, 14 Jun 2007 19:40:45 GMT</pubDate></item><item><title>jdn commented on Are Designers, Wizards, etc. inherently Bad?</title><description>But as a more general comment (and significantly shorter to boot), I agree with Scott and Steve.
  
  
If you use wizards, it is good to know (at least some times) what they are doing behind the scenes (this is why I have a highly favorable view of code generation, because I know what each line of the CodeSmith templates are doing).  And with partial classes, you can in many situations override what the wizards produce.
  
  
But it isn't always necessary.  I've built an app that uses typed datasets and table adapters and it works just fine (though I would normally never use typed datasets).  When requirements changed so that the underlying SQL changes, re-run the wizard, maybe minor changes in a partial class, and you are done.  Meets the business requirements, easy to maintain.
  
  
And I don't feel at all bad that I haven't spent much if any time at all looking at the generated code because it isn't necessary.
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment10</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment10</guid><pubDate>Thu, 14 Jun 2007 18:46:47 GMT</pubDate></item><item><title>James Kovacs commented on Are Designers, Wizards, etc. inherently Bad?</title><description>As Oren mentions, the main problem with wizards is that they produce 80% of the code quickly, but put you in such a straightjacket that the remaining 20% is more difficult than it would be if you just implemented the whole thing from scratch. So I too have become disillusioned with wizards. What I don't understand is the conceptual leap from visual designers are good for laying out UI (I agree!) to visual designers are good for coding everything (I disagree wholeheartedly). Ever try to understand a complex BizTalk orchestration. Even on large monitors, you can't see the whole orchestration. The same logic in C# (or a custom DSL) wouldn't even be half a page of code. Where is the logic in this?
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment9</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment9</guid><pubDate>Thu, 14 Jun 2007 18:45:33 GMT</pubDate></item><item><title>jdn commented on Are Designers, Wizards, etc. inherently Bad?</title><description>I started to respond but I think I exceeded the comment length limit or something so my response is here......
  
  
http://www.blogcoward.com/archive/2007/06/14/29.aspx
  
  
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment8</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment8</guid><pubDate>Thu, 14 Jun 2007 17:14:22 GMT</pubDate></item><item><title>Ayende Rahien commented on Are Designers, Wizards, etc. inherently Bad?</title><description>&gt; Because often with wizard generated code, you have to give yourself over to the wizard and let it handle the code. Alpha geeks won't let that happen
  
  
I don't agree. The point is that it is very easy to get to the limit of the wizard very quickly. And then you are in a world of hurt if the wizard is not producing good code and is round trippable.
  
  
&gt; then wonder why the wizard overwrote their changes
  
  
That is not a flattering image. Don't know many that would fall to that twice, frankly.
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment7</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment7</guid><pubDate>Thu, 14 Jun 2007 17:02:04 GMT</pubDate></item><item><title>Scott commented on Are Designers, Wizards, etc. inherently Bad?</title><description>I think the underlying point in both posts here is "designers and wizards are good, unless they spit out code that forces me to do more work than I would have had I written the code by hand in the first place". I can agree with that point.
  
  
Do I want to go back to a time when you and to hand-draw your windows and place the pixels precisely using code? Not really. Some designers just focus on the layout and allow you to hook events and references up to your code. Apple's Interface Builder is great at this and it appears the Blend tool will be too, Others, like the Visual Studio designer, try to guess your intentions. Meaning that you have to jump into the code and tweak things.
  
  
The query builder in SQL Enterprise Manager is great at getting me 80% of the way. I use it whenever I have complex joins to get started. Then the other 20% is all hand coded. But, in that instance, the designer/tool doesn't get in the way. If I change the SQL, it doesn't re-write it for me later.
  
  
And yes, there are a LOT of developers that need to get over themselves. Always has been, always will be.
  
  
"If alpha geeks can't maintain this code, why would others be able to do so?"
  
  
Because often with wizard generated code, you have to give yourself over to the wizard and let it handle the code. Alpha geeks won't let that happen. They have to dig in and look at the code, then change it, then wonder why the wizard overwrote their changes, then re-change, then curse the wizard.
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment6</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment6</guid><pubDate>Thu, 14 Jun 2007 16:45:55 GMT</pubDate></item><item><title>Sheraz commented on Are Designers, Wizards, etc. inherently Bad?</title><description>Tools can be useful and can get the job done fast. But the highest cost in development in maintainance. If there is anything that needs to be changed, you are screwed. Take ActiveWriter for example that generates AR classes for you and also adds the attribute. I doesn't support Increment Generator type, plus it dumps all the classes in one file. I don't want all of my entities in one file. If you manually change anything and regenerate the mapping, boom everything you did is gone. Eventually you findout that these tools take more time to work with than saving your time and not to mension that you are bound to functionality it produces. To me it seems like that the code generators are not that much of good tools. Plus if you do by hand, you know what you are doing as Steve said. Also Jean Paul (JP) believes in coding than using code generator because he always writes the test code that defines the behaviour and then write the code to pass it. I am following the same coding style and loving it. MVP rocks as it helps me write test cases very easily and makes it very easy to maintain code. 
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment5</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment5</guid><pubDate>Thu, 14 Jun 2007 15:46:00 GMT</pubDate></item><item><title>Steve Gentile commented on Are Designers, Wizards, etc. inherently Bad?</title><description>Tools are fine to have.  However, I strongly believe that one should understand and be aware of what the tool is doing.
  
  
Preferrably you use a tool to take care of things you do over and over again.
  
  
ie.  I used a tool initially to generate my NHibernate mappings files.  Then I found out I didn't really know how the mappings worked.
  
  
I went and did them by hand.  I have a much better understanding of how they work now.
  
  
At this point, I could return back to the tool, and with the ability to verify the tool is doing what I want.
  
  
The tool itself isn't a bad thing at all, it's up to the developer to educate on what the tool is doing  - not all tools do what you expect them to!
  
  
I use a WYSIWYG editor, but I often have to go and validate/modify the html.  Simply because I want the editor to do some RAD for me.  But I certainly know html and I often validate it is doing what I want.
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment4</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment4</guid><pubDate>Thu, 14 Jun 2007 10:58:21 GMT</pubDate></item><item><title>Paulo Quicoli commented on Are Designers, Wizards, etc. inherently Bad?</title><description>Well, i´m moving from Delphi way to an OO way using c#.  As i´m experienced using RAD, i can say  one thing: They are bad and good at same time.  RAD doesnt take the beginner to understand concepts, it make beginners only understand the "HOW", and not the "WHY". Thats why a lot of Delphi programmers, here in Brazil, have difficulty to understand a good design, a good OO approach. They are used to just "drap and drop", "follow Wizards up", etc.  And when you show them a sample implementation of an ADO pattern or MVP pattern, they say "ah thats so hard.... why do that ?"
  
I dont know i´m being clear, what i mean is that Designers can be good, since you understand when you should use them or not.
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment3</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment3</guid><pubDate>Thu, 14 Jun 2007 10:54:00 GMT</pubDate></item><item><title>Torkel commented on Are Designers, Wizards, etc. inherently Bad?</title><description>It is as you say, the designer only give you 50%, then when you need to add the specific requirements you end up having to rewrite the code the designer generated because it could not support it or if it could the code  would just be a mess. 
  
  
  
  
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment2</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment2</guid><pubDate>Thu, 14 Jun 2007 06:09:06 GMT</pubDate></item><item><title>Noone commented on Are Designers, Wizards, etc. inherently Bad?</title><description>The problem, you see, Oren, is that you are a heretic.
  
  
  
Keep it up.
</description><link>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment1</link><guid>http://ayende.com/2558/are-designers-wizards-etc-inherently-bad#comment1</guid><pubDate>Thu, 14 Jun 2007 05:16:05 GMT</pubDate></item></channel></rss>