Learning Center
Plans & pricing Sign in
Sign Out

Ten Things that Annoy Miguel Castro May 21_ 2009



              Carl Franklin and Richard Campbell
              interview experts to bring you insights
              into .NET technology and the state of
              software development. More than just
              a dry interview show, we have fun!
              Original Music! Prizes! Check out what
              you've been missing!

                          Text Transcript of Show #448
            (Transcription services provided by PWOP Productions)

            Ten Things that Annoy Miguel Castro
                        May 21, 2009
                               Our Sponsors


                                                                           Ten Things that Annoy Miguel Castro
                                                                                                  May 21, 2009

Geoff Maciolek:      The opinions and viewpoints             framework just for your understanding of what's in the
expressed in .NET Rocks! are not necessarily those           box.
of its sponsors, or of Microsoft Corporation, its
partners, or employees. .NET Rocks! is a production          Richard Campbell:      Right.
of Franklins.NET, which is solely responsible for its
content. Franklins.NET - Training Developers to              Carl Franklin:           Over time, these things sort of
Work Smarter.                                                sink in and if you're interested in something, go look it
                                                             up online. So we've been talking a lot, of course,
[Music]                                                      about the System.Windows.Controls namespace,
                                                             WPF controls, and today we're going to talk about
Lawrence Ryan:        Hey, Rock heads! Quit sorting          ItemsPresenter and ItemsPanel and ItemsControl. An
your tweets and listen up! It's time for another stellar     ItemsPresenter class is used within the template of an
episode of .NET Rocks! the Internet audio talk show          ItemsControl to specify the place in the control's
for .NET developers, with Carl Franklin and Richard          visual tree where the ItemsPanel defined by the
Campbell. This is Lawrence Ryan announcing show              ItemsControl is to be added. So these things work
#448, with guest Miguel Castro, recorded live,               together, there are some great samples of XAML in
Wednesday, April 29, 2009. .NET Rocks! is brought            the documentation. There isn't a whole lot you can
to you by Franklins.NET - Training Developers to             say to that except there's a great comment, there's
Work Smarter and now offering SharePoint 2007                community content in the MSDN.
video training with Sahil Malik on DVD dnrTV style,
order your copy now at Support is         Richard Campbell:      Yeah.
also provided by Telerik, combining the best in
Windows Forms and ASP.NET controls with first class          Carl Franklin:         What's great is that the first
customer service, online at, and by          comment is this info is useless.
GrapeCity      Data     Dynamics,        makers       of
ActiveReports.Net, simple, powerful and cost-effective       Richard Campbell:      Thanks so much for that.
reporting for Windows Forms and ASP.NET web
applications,   online     at          Carl Franklin:         Thank you, you've been great;
Support is also provided by CoDe Magazine, the               try the veal.
leading independent magazine for .NET developers,
online at And now, the                Richard Campbell:      Yeah.
man who says, "That set of neodymium magnets
actually was a great Mother's Day present," Carl             Carl Franklin:          So that's about all I can say
Franklin.                                                    right now.      Take a look at it, there's m o r e
                                                             documentation. Obviously people are blogging about
Carl Franklin:          Thank you very much. This is         it, ItemsPresenter. Maybe Miguel has something to
Carl Franklin.                                               say about that because so much of WPF sort of
                                                             mimics the way ASP.NET has done presentation in
Richard Campbell:       Hey,   and    this   is   Richard    the past. We'll get to that in a second.
                                                             Hey, if you're interested in working for a great
Carl Franklin:       We're here for your listening           company, Infusion Development is hiring in their New
pleasure for the next hour or so. It's a Thursday            York office, in their Toronto office, their Dubai office,
show. What's up, Richard?                                    and their London office. They're looking for talented
                                                             people that are doing SharePoint or if you're just a
Richard Campbell: Not too much, man. I'm glad                .NET guru and you work well with others and you
TechEd is over. That's all I could tell you. It's a lot of   want to try, you want an adventure, there are
work for us. It's fun but it's hard work.                    opportunities out there.        Send email to me,
                                                    Richard, have you got an email?
Carl Franklin:         Yeah, a lot of fun. Yeah, it's
always fun to be so involved in that conference and          Richard Campbell:      Yes indeed, I do and this one is
just a lot of great content and community happening          from South Africa.
as well. Hey, let's get right into Better Know a
Framework for today.                                         Carl Franklin:         Yeah.

[Music]                                                      Richard Campbell: Yes sir.        "Hey Richard and
                                                             Carl. I just want to drop you guys a line and sent
Carl Franklin:         And Better Know a Framework           greetings from the deepest, darkest, bandwidth
is this little segment of the show that I do where I         limited South Africa." I've heard stories that South
shine a little light on a dark corner of the .NET            Africa really is kind of strict on -- the productivity

Transcription by PWOP Productions,                                               Page 2 of 17
                                                                          Ten Things that Annoy Miguel Castro
                                                                                                 May 21, 2009

within the country's pretty good but as soon as you try    and you bet, a mug is on its way all the way to South
and get out to the rest of the world, things get           Africa.
expensive fast.
                                                           Carl Franklin:           Awesome.
Carl Franklin:         Ooh.
                                                           Richard Campbell: And if you've got any
Richard Campbell: "Don't worry, on occasion we             questions, comments, concerns, ideas for shows,
have bandwidth, electricity, and even running water."      flames, you name it, fire us an email,
Carl Franklin:         Ooh.
                                                           Carl Franklin:            Miguel Castro, of course, is an
Richard Campbell: I started listening to .NET              MVP for ASP.NET. He lives and resides in New
Rocks! about four months ago after I deciding I need       Jersey. He is a guru's guru of ASP.NET and today
to broaden my horizons and be one of those people          Miguel is something a little bit of a different show,
that doesn't seem to have enough time. I was               you're a little pissed off.
determined to turn my two-hour daily commute into
more than just aggravation and boredom although a          Miguel Castro:          I'm feeling a little bitter, Carl. I
good audio book still goes down well, and so I began       really am and I think I'm in the mood to take it out on
the great search for podcast as worthy of my time in       your listeners.
travels." That's just quite the mission here. "I found a
few and started eagerly downloading some back              Carl Franklin:           Oh man.
issues. A few included those from .NET Rocks! After
becoming a total fan, I now eagerly wait for my drive      Miguel Castro:         I really am and you know, I'll
from the office to home and back again and keep a          defer to taking it out on you guys until I see you in
close eye on my RSS feeds to .NET Rocks! I just            person because I'm that kind of guy.
wanted to tell you why .NET Rocks! rocks..."
                                                           Richard Campbell: I identified the show as Ten
Carl Franklin:         Nice.                               Things that Annoy Miguel Castro.

Richard Campbell:      "And this is my first choice of     Miguel Castro:         That's it. This is my own David
techie podcast."                                           Letterman tool, right.

Carl Franklin:         Awesome.                            Carl Franklin:           Yeah. Well, what's first on the
Richard Campbell: "So here's my list. 1) The form
of the show is great.        The lively banter and         Miguel Castro:          Well, I want to start by order of
camaraderie certainly make for great entertainment.        purposes by saying I'm not 100% anti any of the stuff
2) Better Know a Framework is always enlightening.         I'm going to be talking about here. You know, like
3) The quality of your guest speakers is exceptional       everything in technology there is good and bad points
and highly informative.     4) You two are pretty          on just any topic that you can bring up in the air, and
interesting as well." How about that?                      I'm sure you'll agree, in the world of software
                                                           development there is 100 rounds to take to an
Carl Franklin:         Yeah, how about that.               eventual goal and eventual result.

Richard Campbell: "I hope you guys keep up the             Carl Franklin:           Right.
great work and keep broadening my mind and lighting
my journey. PS: We also have coffee in this part of        Miguel Castro:          And that's pretty much the
the world and a mug that can be shown off to all the       attitude that I attack every project with and I don't see
other devs would be great."                                enough of that out there and it's starting to really
                                                           pissed me off and that's why I'm here to vent, that's
Carl Franklin:         Well, I guess that's a pretty big   what I'm here to do now.
                                                           Carl Franklin:           So you don't see objectivity. Is
Richard Campbell:      Yeah, I think I'll go for that.     that what's...?

Carl Franklin:         Yeah, we'll go for that.            Miguel Castro:            Not as much as I'd like to, not
                                                           as much as I'd like to. I mean, there are many things
Richard Campbell: "All the best regards.       Ian         that annoy me, it's just the way life is. I put together a
Mechanic from Edlene, South Africa. Thank you, Ian,        list of 10 things that I want to discuss briefly and...

Transcription by PWOP Productions,                                               Page 3 of 17
                                                                         Ten Things that Annoy Miguel Castro
                                                                                                May 21, 2009

Carl Franklin:         What's that?                        object oriented business engines. So these two
                                                           worlds are meant to work together. In order to fully
Miguel Castro:          Keep in mind, none of these        put this myth to rest, because I know we do have
things is related to each other. They are all very, very   some listeners that are CSLA people because Rocky
different topics. So we jump from one to the other,        gets tremendous response from his show, he calls it
not necessarily in the order of least to most annoying,    out all the time and he speaks a lot on CSLA, I want
by the way I want to say that. The first one actually is   to specifically address where the CSLA framework
really close to home because it's CSLA related and as      works in the service oriented environment and that is
you know I'm very close to the CSLA framework. I'm         it works on two different areas in two very different
the CSLA instructor for DUNN Training, it's a project      ways. Remember, CSLA is a business framework
that me, Mark, and Rocky put together a few years          which means it's there at your disposal, not the other
ago and it's worked unbelievably well. I've gone           way around. You use what pieces you want. Just
around a lot of countries, a lot of states teaching the    because you're not using other business framework
CSLA framework.                                            tool, it's 100% full advantage, it doesn't mean that
                                                           you're doing it wrong and when you're doing standard
Carl Franklin:         Yup.                                CSLA up-work you're used to loading up these very
                                                           intelligent self-encapsulated objects that are
Miguel Castro:         One of the things that the          completely knowledgeable and they know everything
CSLA framework receives a lot of resistance from is,       about what they can do and how they can do it and
you know, one of the groups that it received               use them for binding and end of story. Well, in the
resistance from is the Service Orientation crowd, the      CSLA world it works a little different. In the CSLA
SOA crowd, and I want to put an end to that myth           world, you got this wall, this kind of service orientation
while I have the attention of -- what are you up to        firewall and you got clients talking to that wall and you
now, 150 million listeners or something like that?         got a lot of activity going on behind the wall. So there
                                                           are two ways that I've used CSLA in the service
Carl Franklin:         Well, something like that , I       orientation world, it's on the server-side behind the
don't know.                                                service because obviously to what service, especially
                                                           when you're using WCF which is what I hope people
Miguel Castro:           Yeah, so while I have the ear     are using out there in .NET, you're exposing a lot of
of the world, as they say, I want to put an end to that    data contracts and service contracts only and of
myth. Rocky put a lot of work in the CSLA framework        course CSLA has nothing to do with that. Now behind
and this definitely needs to be said. It's not an empty    the scenes, the way those data contracts get filled by
SOA framework. Service Orientation is a great thing.       the actual service itself, that can be done using CSLA
It's definitely the, in my personal preference, it's the   objects in more of a, let's call it an ORM capacity
way to go when designing new systems today. There          where they're use mostly for data access where the
are a number of advantages, but because of the fact        CSLA come in handy in such a capacity. Well, one
that CSLA was written with the mantra of this is object    of the good things that CSLA does is that it enforces
orientation, i t 's worth writing an object oriented       standards. It preaches uniformity in your objects so
framework and it's all about the business object. It       that once you learn the framework people know
seems to me that there's a big animosity between the       where to go for things without getting lost in the code,
business object crowd and the SOA crowd and you            and that kind of uniformity and maintainability goes a
need to step back and realize that these two worlds        long way in any layer of your architecture leading
are really meant to work together.                         down to the data access part. So that's how I use
                                                           CSLA on the service-side of the wall. On the client-
Carl Franklin:         They're not mutually exclusive.     side of the wall, CSLA objects really shine because
If you write code with objects, those objects reside in    they make for great, smart proxies. Anybody that
servers that are autonomous.                               uses WCF knows you got to set up a proxy class
                                                           which communicates with the service. CSLA objects
Miguel Castro:    Doesn't that not sound like              can actually be the proxy class by using the channel
common sense? Absolutely.                                  factory, they can access services then fills themselves
                                                           up and once you've got a filled-up CSLA object, from
Carl Franklin:         It's commonsense to me.             there it's conventional by the book CSLA work with
                                                           validation, authorization, data binding, and all those
Miguel Castro:         Absolutely and you know I do        cool things that the framework has to offer. So two
work with IDesign and we do service oriented               different sides of the wall and being used in two
architecture consulting and one of the things in the       different ways, same framework, that to me is actually
architecture that we recommend clients in all, not just    a credit to the CSLA framework. So I want to tell the
service orientation or the service layer of course, but    CSLA crowd to get a grip and try this out. I think you'll
there's always the stuff that the service layer is         be pleased.
obfuscating from the client and that stuff is generally

Transcription by PWOP Productions,                                             Page 4 of 17
                                                                            Ten Things that Annoy Miguel Castro
                                                                                                   May 21, 2009

Richard Campbell: I'm just trying to imagine, if the         right tool for the right job, that's really what it's all
bluffer object orientation, you know, bluffer building       about, which leads me to number 9 on the list.
objects, how would you build SOA?
                                                             Carl Franklin:          Okay.
Carl Franklin:          With F# perhaps?
                                                             Miguel Castro:        We're going backwards here.
Miguel Castro:          Of course.                           So number 9 on the list and I do warn people that are
                                                             listening now, some of these things may get a little
Richard Campbell:       Functional programming?              controversial. So Carl, do you want to do one of
                                                             those "the opinions of the, but you are not
Miguel Castro:          Of course, but you know, the         necessarily..." Do you know what I mean?
same can be said for every programming paradigm
that we've been progressing through all the years,           Carl Franklin:          Yeah, I know. Usually our
right Rich? You know, from procedural to component           disclaimer is that Franklins.Net is solely responsible
orientation to the service orientation, everything is a      for the content, but I'm thinking about updating the
natural evolution of the predecessor.                        disclaimer to "the views and opinions of our guests
                                                             are theirs and theirs alone."
Carl Franklin:          Yeah.
                                                             Miguel Castro:           They are, they are but I will tell
Miguel Castro:          And I don't want to steal Juval’s    you that I've had discussions with a lot of developers
show here because there's actual history that I just         on all the topics that I'm talking about in the next hour
described in that last sentence, Juval does this in one      and I'm not alone in my thinking out there.
of his presentation and he does it quite well where he
talks about the history of programming and it really         Carl Franklin:          Yeah, sure.
does come out that way where you start a procedural
programming, we'll move into object orientation which        Miguel Castro:          But I do not doubt for a second
takes procedural to another level, then we move to           that I'm going to piss somebody off with the show.
component orientation in order to provide plumbing
for connecting things together and that to coop to           Carl Franklin:          Well, I'm sure you will.
another level, and we move to SOA which brought
components to another. You know, everything kind of          Miguel Castro:        Well, I mean I would be Miguel
evolves into the next thing.                                 if I didn't piss somebody off every time I open my
Carl Franklin:          Right.
                                                             Richard Campbell: Yeah, I could tell you're really
Miguel Castro:           One is not a replacement for        torn up about it, Miguel.
the other and I just think the world will be a lot happier
place if some of these people would stop their whining       Carl Franklin:          That's right.
and accept that.
                                                             Miguel Castro:           Yeah. You know, no publicity
Carl Franklin:        You know, anytime somebody             is bad publicity, right. Actually, you know who told me
says this technology or that technology is dead, I roll      that? Lucille told me that from Telerik. Yup, yup, no
my eyes. It just means that you can't use it for your        publicity is bad publicity. Take that as you will.
                                                             Carl Franklin:          Yeah.
Miguel Castro:          That's right, that's right.
                                                             Miguel Castro:          So anyway, number 9 on my
Carl Franklin:          People tend to over-dramatize        list of things that annoy me are CSS Elite
things, I think.
                                                             Richard Campbell:       Uh-oh.
Miguel Castro:            Besides the technology that
their telling you is alive, they're going to be saying the   Miguel Castro:          There, there I've said it, I've
dead statement in about six months.                          said it plain and simple CSS Elite. I want to stress the
                                                             word Elite here, okay. I got absolutely nothing against
Carl Franklin:          Right. There's always a tool for     CSS. It's an unbelievable technology, it works like a
the job.                                                     charm.

Miguel Castro:          That's right, absolutely right.      Carl Franklin:          You use it.
It's all about collecting as much in our arsenal of
programming tools as we can and then just finding the        Miguel Castro:          It's beautiful.

Transcription by PWOP Productions,                                                 Page 5 of 17
                                                                             Ten Things that Annoy Miguel Castro
                                                                                                    May 21, 2009

                                                               everything 100% CSS related. Now, that being said,
Carl Franklin:           Yeah.                                 if you are one of those CSS gurus out there that can
                                                               dish out applications in 100% CSS oriented way -- did
Miguel Castro:            I use it, I totally use it. CSS is   I just coin a new term, CSS orientation?
kind of like, I can say about CSS the same thing
about CodeRush, a product that both me and you                 Carl Franklin:         I think you may have.
guys are very close to. CodeRush from DevExpress,
I say that it's like the human brain. Most people use          Miguel Castro:         You know, if you are one of
no more than about 15% of it.                                  those people then more power to you, whatever
                                                               works. The whole point of the show, of what I'm doing
Richard Campbell:        Right.                                here is to make sure that I express my objectivity.

Miguel Castro:        And GSS is really the same               Richard Campbell:      I'm      sorry,      did     you      say
thing. It can do an unbelievable amount of things but          objectivity?
most of us are not using it to its full capacity and the
reason is very simple. It's got a very large learning          Miguel Castro:         How       about      let's   resort    to
curve.                                                         tolerance?

Carl Franklin:           It's complex, yeah.                   Carl Franklin:         Nah.

Miguel Castro:          It's very complex. What I find         Richard Campbell: You're expressing your bias,
from the CSS Elite community, and I'm not going to             that's what you're doing.
mention a single name on the show, okay. I'm going
to let people use their imagination out there because          Miguel Castro:         I try not to be bias one way or
everybody out there that's listening knows a CSS Elite         another because programming, I mean once again I
in their life.                                                 can't take credit for what somebody else said but a
                                                               friend of mine that I've worked with a long time ago,
Richard Campbell:        Oh yeah.                              he once made a comment to me that programming is
                                                               a very personal art and it really, really is. It's very,
Miguel Castro:           I know a couple of them here in       very easy to offend a developer by telling them that
New Jersey.                                                    the way their doing something sucks. You know what
                                                               I mean?
Carl Franklin:           No.
                                                               Carl Franklin:         Yeah.
Miguel Castro:           And they're listening right now.
                                                               Miguel Castro:        The problem is that we're
Carl Franklin:           I d o n 't believe it.   I've seen    offending a lot of people out there and it's easier to
them.                                                          offend than not to sometimes.

Miguel Castro:           Yeah, that's right. Well, they        Carl Franklin:         What was that line from, what
walk the streets. The problem that I have with CSS             was it Goldmember or something like that, where
Elite is the preaching of CSS replacing everything             Austin Powers says "I only hate two kinds of people,
HTML specifically tables. We're talking about tables           those who are intolerant against others and the
here because tables are a wonderful thing and they're          Dutch. I'm intolerant of intolerance."
not antiquated and they're not obsolete and they
should be use, they should be use properly. I had              Miguel Castro:      That explains Stephen Forte
conversation with people that considered themselves            walking around Amsterdam saying, "I hate the Dutch."
diehard web developers and they're very much of that           He was mimicking Austin Powers, all right.
DIFT tag all the way down. Your website should
consist of two things, DIFT tags on your mark-up and           Carl Franklin:         I     think   that    was     Huckaby
a CSS file, and that's it.                                     actually.

Carl Franklin:           Yeah.                                 Miguel Castro:       So anyway, I want to close this
                                                               number by saying CSS is definitely a great technology
Miguel Castro:         The truth is that maybe a               but you can't ignore the learning curve, and if you
realistic scenario in the traditional HTML web                 don't have the time to put to the learning curve, if
developer, but not in the ASP.NET developer, not in            you're one of the people out there that enjoys using
my humble opinion. ASP.NET offers way too many                 tables and uses them well without overdoing it and
tools to make our lives easier and we do not need to           without nesting yourself into table hell, I see no
contradict that by making it difficult and making              reason why not to continue doing that. I use CSS, I

Transcription by PWOP Productions,                                                     Page 6 of 17
                                                                           Ten Things that Annoy Miguel Castro
                                                                                                  May 21, 2009

use it primarily in what originally CSS was meant for,      soon. Check it out at and don't forget to
which was styling.                                          thank them for supporting .NET Rocks!

Carl Franklin:         Right.                               Miguel Castro:          Okay, so you're ready to piss
                                                            somebody else off?
Miguel Castro:       In fact, I don't do styling without
CSS. I strongly recommend that all your styling is          Carl Franklin:          Let's go.
done in the CSS route.
                                                            Miguel Castro:         All right, so number 8 of things
Carl Franklin:         Yeah, ASP.NET uses CSS for           that annoy me is the redirect of Domain Driven
styling.                                                    Design is right, Data-centric is wrong.

Miguel Castro:           Completely, and even if you're     Carl Franklin:          Okay.
using ASP.NET Themes and Skins you should still be
putting CSS on top of that because Themes and               Miguel Castro:       Domain Driven Design is
Skins works beautifully with cascading style sheets.        awesome, it absolutely is. There's been some great
Now if you have those CSS skills where you could do         documentation out there. You had one of the guys on
all your positioning and relative and absolute              your show, a guy named, I think it's Jimmy Nilsson
positioning and all that stuff using CSS, if you can do     from Europe.
it well and make sure the code is maintainable by
somebody who comes in after you, then more power            Carl Franklin:          Yeah.
to you and we're going to be seeing more and more
people get into very serious CSS use as jQuery              Miguel Castro:            Who wrote a terrific book on
continues its aggressive path that I see it take. So        Domain Driven Design. If you have time to read that
we'll see where it goes. I want to make sure that the       book, it's pretty thick, it's a fantastic book and he did a
people that are not CSS gurus and feel guilty because       great job on the design concept itself. It's very good,
they're not, stop feeling guilty.                           but there's way too much properly written data-centric
                                                            applications out there to knock that design and to call
Carl Franklin:         Yeah.                                it wrong. We can't dismiss the fact that data-centric
                                                            design does have a lot of values. Domain Driven
Miguel Castro:        Because certainly I'm not a           Design does give a lot more importance to the object
CSS guru, I'm with you guys.                                model. With Domain Driven Design is all about
                                                            writing your objects and data later. It's all about how
Carl Franklin:         Yeah.     Well, you use what         the model represents the business domain, however,
works.                                                      that being said, data-centric model does give you
                                                            some advantages in the case uniformity and standard
Miguel Castro:         Exactly right, exactly right.        appearance.

Carl Franklin:           This portion of .NET Rocks! is     Carl Franklin:          Okay.
brought to you by our friends at Telerik. When it
comes to testing web applications, usually you have         Miguel Castro:          You know me, I'm in the Code
two options: Do it manually which is hard and takes         Generation spaces, I have my product.               Code
forever, or, use automating testing software which is       Generation serves more data-centric model than it
quite expensive and really does a good job with             does a Domain Driven Model, that's just the bottom
modern AJAX applications. All of this is destined to        line. So Code Generation is obviously not for
change with Telerik's new automated testing solution,       everybody, but if you use Code Generation in a data-
Web UI Tests Studio, which promises to bring a new          centric model you do get the benefit of a lot of code
era of automated testing to the masses. The product         uniformity and in a lot of projects that I go to as a
is offered in partnership with ArtOfTest, the experts in    consultant it's very important for me to leave the
quality assurance technologies. Telerik Web Test            absolute most maintainable and easy to follow code I
Studio specialize for testing ASP.NET applications          can behind because more often than not the team
especially ones with rich AJAX and client-side              that's going to follow me is of a lesser skill set. Here
functionality. What's more, it's fully integrated in both   I'll be blunt, sometimes they're morons.
Visual Studio Team Suite and Professional Edition
making it easy for developers and QA to collaborate.        Carl Franklin:          Oh, okay. I don't know that.
To top it off, the Studio ships with special wrappers for
the Telerik AJAX controls which expose control              Richard Campbell:       Yeah.    Don't be shy, Miguel,
specific test actions. Web UI Test Studio is ready for      come on.
the future with Silverlight testing features coming

Transcription by PWOP Productions,                                               Page 7 of 17
                                                                             Ten Things that Annoy Miguel Castro
                                                                                                    May 21, 2009

Miguel Castro:         When do I ever hold back?
The fact that you got a data-centric model where               Carl Franklin:         Yeah.
there's object mimicking of the database means the
code behind those objects is going to follow certain           Miguel Castro:         Definitely possible. So once
standards, they're followed by every single one of             again, to the underdog, because it seems DDD is an
those objects.                                                 up and coming craze, so the data-centric guy is kind
                                                               of left behind and says, oh man, I must really be doing
Carl Franklin:           Yeah.                                 it wrong if everybody is into the DDD thing. I'm here
                                                               to tell you I think no, you're not, you're not doing it
Miguel Castro:            You can't dismiss the value of       wrong. DDD is awesome and definitely learn it and
that, there's really a lot of value. It lets you code very     learn what it has to give you and read Jimmy's book
fast, it lets you deliver products probably a little faster    because that's a book that he did very well.
than with the DDD design which requires a little more
thought process and even though it may not give the            Carl Franklin:         Okay.
importance to the object model as much as it does to
the database, we still live in a world where clients           Miguel Castro:     But you're not being a bad
want their stuff at the door as fast as possible.              developer because you're doing things in a data-
                                                               centric way.
Carl Franklin:           Right.
                                                               Carl Franklin:            Seems like your overall theme
Miguel Castro:           So we can't always have time          is just sort of anti-zealotry.
for that fantastic design phase and we need to get
some good architecture in there of course but we still         Miguel Castro:         Completely anti-zealotry.
have the situation I encounter all the time where you
tell a client, God forbid, you tell a client I will give you   Carl Franklin:         Yeah.
an application that's got very, very poor architecture
but I can do it in 50% of the time. They're going to           Miguel Castro:         And I won't go away until we
jump on that because to a client, good architecture            reach number one.
and domain driven and stuff like that, it doesn't mean
anything to them. All they want is their final product.        Carl Franklin:         Oh, okay.

Carl Franklin:           Yeah.                                 Miguel Castro:         All right, number 7. Number 7
                                                               is not here to rag on anybody except Microsoft.
Miguel Castro:         So for those of you, and me in
some cases, that are still doing data-centric and              Carl Franklin:         Let them have it.
modeling out there, it is a way especially if you're
incorporating Code Generation of getting applications          Miguel Castro:          All right. So number 7 is just a
out very fast and still having those applications be           pet peeve that I never thought I'd needed until I sat
properly written and maintained well, they're not going        and had a conversation with Mark Miller about three
to be poorly written applications just because they            or four years ago and I remember where this was, this
didn't follow a DDD model.                                     was in Mosconi Center in VSLive! 2006 San
                                                               Francisco and we started talking about, and this is
Carl Franklin:       At the other end of the                   just a funny site engine real quick, Carl. That was the
spectrum you have those people who, when you                   first time that I had met Mark face-to-face.
convinced them to take the time and do it right, will
get impatient because they can't see anything quick            Carl Franklin:         Yeah.
                                                               Miguel Castro:     Me and you had just finished
Miguel Castro:         Absolutely and you know,                recording the two kick off episodes of dnrTV,
there's nothing that said you can't have both. You             remember that? When I went up to New London.
can definitely incorporate both models together. I
mean, I've written systems before where I had a data-          Carl Franklin:         Yeah.
centric ORM layer that is accessed -- it is part of my
business here so I have no problem accessing that              Miguel Castro:         I introduced myself to Mark and
layer directly from my clients as well as putting a            we knew who each other was by name but we've
Domain Driven business engine layer between it that            never met. I introduced myself, we were sitting at a
perhaps wraps up several calls to the ORM. Do you              table in the cafeteria and he told me, oh, I just saw
know what I mean? You can have a nicely designed               you in dnrTV, good job on the show. So I told him,
hybrid model and not break good architectural design           yeah, did you notice how much I used CodeRush in

Transcription by PWOP Productions,                                                Page 8 of 17
                                                                          Ten Things that Annoy Miguel Castro
                                                                                                 May 21, 2009

it? A typical Miller reaction was, yeah, I did, but you    business rules method. However, he also gives you
didn't use it enough.                                      the ability to add authorization rules at the class level,
                                                           something that's going to be checked before the
Carl Franklin:         Yeah.                               object is actually instantiated. So that way that's done
                                                           right now is by creating class-level authorization rules
Miguel Castro:        So I made a list so he said I        in the method called add object authorization rules,
made the list and he took out his laptop, the guy was      but you are responsible for writing this method and
watching the show making a list of every possible          spelling it and casing it correctly because the CSLA
place where I could have used CodeRush but I didn't.       framework is going to use Reflection to go in and find
                                                           this method. If it finds it, it's going to use its content to
Carl Franklin:          You should have seen him on        build the authorization rules. If we have virtual static
the road trip. He sat right in front and when I didn't     members, Rocky could have written this as a virtual
use the right mnemonic or whatever, he would give          static over a method in the base class allowing us to
me [blip], hey, I'm doing a presentation here, shut up.    override because it's going to be a static member, we
                                                           don't have any object level yet. All we have is a class.
Miguel Castro:         Nobody knows that product like
Miller.                                                    Carl Franklin:       Well, it's very helpful when you
                                                           have a framework that you need to make it flexible.
Carl Franklin:         Yeah, of course. He wrote it.
                                                           Miguel Castro:           Yeah.
Miguel Castro:          I think the second guy that has
the most CodeRush knowledge I have ever met is             Carl Franklin:           So they can adapt to a lot of
Dustin Campbell who doesn't work for DevExpress            different situations.
anymore. He is at Microsoft now. But anyway, not to
obtain change too much, me and Mark started talking        Miguel Castro:           Absolutely and if you don't
about things, not just CodeRush but things in .NET,        have this ability, you're forced to rely on Reflection. It
and one of the things that he mentioned that he really     wants your force to rely on Reflection.
wish it had, I never really even thought of and leave it
to Mark to plant that seed in my head, I have been         Carl Franklin:           Yeah, so it stands out.
wanting ever since because I find myself desiring it
every time that I write code and it’s something that       Miguel Castro:         Now you got to count on
competitor System Delphi does support, and that is         people spelling things right. You know what I mea?
virtual static member.
                                                           Carl Franklin:        Right.      Not only that but you
Carl Franklin:         Yeah.                               take performance set.

Miguel Castro:         The ability to write either         Miguel Castro:          Completely, absolutely,
abstract or virtual members in static classes, static      absolutely do. Here is my request/challenge to
methods, static properties, or static classes              anybody listening right now. Roll this idea, roll this
themselves and force an override or allow an override      one around in your head, roll on in your head the idea
of these static methods. Right now we can only             of having virtual static member, the ability to create
override virtual or abstract members when they             virtual or abstract member in a class and override
belong to the object, not the class.                       them in a derive class, not at the object level, just at
                                                           the class level, and if you come up with a good idea
Carl Franklin:      Well, give us an example of            for it, write the show and I'd like to know what these
when you need that.                                        results are a few months from now, Carl, because
                                                           once people get this, hey, I wonder how -- you know,
Miguel Castro:          I'll give you a perfect example.   this will be a good idea in their head, they're going to
CSLA, Rocky run into this problem because Rocky            come up with reasons for having it or for wanting it.
wrote this wonderful framework and the framework of
course gives you a point of start for your business        Carl Franklin:           Okay.
objects. That you're writing a brand new business
object, you inherit from a class called business based.    Miguel Castro:         So this is one for Microsoft. If
Now, you want to add some authorization rules to this      Microsoft is listening, I take this over multiple
object, it gives you override ability, a virtual method,   inheritance any day of the week.
not an abstract method, a virtual one meaning you
don't have to use it if you don't want. But if you want    Carl Franklin:           All right. What's next?
to add authorization rules, you override the add
authorization rules method.         If you want to add     Miguel Castro:           Now we can go back to pissing
validation rules to your object, you override the add      somebody else.

Transcription by PWOP Productions,                                                Page 9 of 17
                                                                           Ten Things that Annoy Miguel Castro
                                                                                                  May 21, 2009

                                                             Miguel Castro:        You can't see me right now but
Richard Campbell:       I feel so much better.               I'm raising my hand real high.

Miguel Castro:          Number 6 on my list of...            Carl Franklin:         Yeah, yeah.

Carl Franklin:          People who piss other people         Miguel Castro:         I've done it absolutely and
off.                                                         you're right.

Miguel Castro:          That's it. The number 6 on my        Carl Franklin:         I did it too.
list of the top 10 things that annoy Miguel are stored
procs bad, ORM good.                                         Miguel Castro:         And you know what, Rich,
                                                             you're obviously talking about execute privileges and
Carl Franklin:          Okay.                                to add to that, it's not just that it let's you give the
                                                             database only execute privileges. Sometimes you
Richard Campbell:       Okay.                                have no choice, that's just the bottom line. There are
                                                             many companies out there. I've done consulting for a
Miguel Castro:          But the truth is that ORM is         number of the banks in New York. None of these
really a design concept. The ORM can certainly be            companies, Morgan Stanley, Goldman Sachs,
accomplished with stored proc. There are several             Lehman Br… w e l l , t h e r e i s no more Lehman
good tools out there, and Hibernate being one of             Brothers...
them, that allow you to do ORM without having any
database development knowledge whatsoever and                Carl Franklin:      Yeah, that's not a really good
they pride themselves on that and it makes for really        example of companies.
heated discussion at conferences specifically the
MVP Summit. I won't get into the details of this one,        Miguel Castro:          All of those companies, none of
but Richard I know you're good buddies with Stephen,         them will allow you to roll a product in production and
next time you talk to Stephen ask him about his              give the database anything other than execute
stored procs versus ORM arguments and I'm not                privileges and if you only have execute privileges
going to say which it is, just ask him about it, he'll say   you're going to be limited.
all about it.
                                                             Richard Campbell: Well, the thing is they draw the
Richard Campbell: But you know, as a database                line. Ultimately, we've got a grip on guys whose job is
guy, I've come to appreciate the fact that one of the        to protect the data and they have to allow the
core original advantages of stored procedures was            developers into it someway. You know, it's very easy
that they perform better than Dynamic SQL and in a           to protect the data if nobody accesses it.
modern SQL server, the 2005, 2008, that advantage
had largely gone away.                                       Carl Franklin:         The other thing is how on earth
                                                             is a company like Goldman Sachs and Lehman
Miguel Castro:          They have.                           Brothers, how are they suppose to fleece the
                                                             American public out of billion of dollars if they don't
Richard Campbell: Query plans are now derive so              have a security model on their goddamn database.
quickly that there's no advantage to the overhead but,       How are they supposed to do that? I'm sorry, as long
here's the big but, there are other reasons you store a      as you're pissed off, I thought I'd just throw my two
procedure and the biggest one is security.                   cents on.

Carl Franklin:          Yeah, I have a big but too and       Miguel Castro:           Hey, hey, we're doing this. This
that is, come on, that was funny, come on...                 is the show to do it in, right.

Richard Campbell:       The thing you sit on?                Richard Campbell:      Right.

Carl Franklin:          Come on now, guys, give me           Miguel Castro:         I'm predominantly a stored proc
some props here. Well, you know, it wasn't just for          guy but I don't now knock anybody that wants to go
that, but yeah, security, exactly that, there is a           the ORM route. I mean, I've never used NHibernate
security model inherent in store procedures. There is        but I've heard enough good things about it to not want
a level of controlling access to the database to limit       to knock it and Hibernate relies primarily on building
what a developer can and can't do. How many                  Dynamic SQL.         As Richard pointed out, the
developers have done delete star without knowing,            performance is no longer a factor. I agree 100% with
but you know, in hitting the button before they've           you. It's just like this space is no longer a factor.
actually finished the query...                               Right, Rich.

Transcription by PWOP Productions,                                               Page 10 of 17
                                                                            Ten Things that Annoy Miguel Castro
                                                                                                   May 21, 2009

Richard Campbell:       Yeah.                                 and deal with stored procedures and that's the
                                                              LLBLGen, Franz Bouma invention, which is very
Miguel Castro:          You know, I don't have to worry       much balancing the line between the two of them.
about that stuff. It requires no database development
knowledge because everything is done in XML                   Miguel Castro:        Okay.     I'm familiar with the
metadata file. You don't have to worry about how to           product. In the Code Generation spaces, Franz
write select. It does it all for you. If you need code        competes with me. He does more of a traditional
that's going to be used in a multiple types of                ORM-type product. Mine is more of a traditional Code
databases like Oracle and Sybase as well,                     Generation product. I don't claim that code resists an
NHibernate would be a wonderful thing. Now, I want            ORM at all but I have heard good things about that,
to close this topic off by being a little bit bias in favor   and while you're mentioning good tools you definitely
of stored procedures and that is one of the arguments         have to mention Open Access ORM by Telerik which
in favor of non-stored proc oriented ORM tool, being          is a good one too.
NHibernate or anything out there, is that the
developers never have to know anything about writing          Richard Campbell:       Yeah, you bet.
database code or how to do it or how database
storage works or anything like that, and the way I feel       Carl Franklin:          Hey, I just want to give a shot
about that is quite the opposite. I think that knowing        out real quick to our friends at Data Dynamics who
how to do at least the basic of -- I'm not a database         make ActiveReports.NET among other awesome
guru, anywhere near the Stephen Forte and Richard             things. ActiveReports.NET is great because it allows
Campbell are, but I know how to design tables, I know         you to just build your reports with the Easy Editor,
how to write stored procedures, I know how to write           embed them right in your application, provide PDF
pretty complex stored procedures, I know how to write         and HTML output, give your end-users a Report
using triggers, and me personally I think that kind of        Editor, royalty free of course, a great Access report
basic, and I call that basic, database knowledge is a         upsizing Wizard and all this for a price that isn't going
requirement for any dev out there and I personally            to break the bank. ActiveReports.NET from Data
wouldn't want to hire a dev working on my team that           Dynamics, go check it out now at
didn't know how to write SQL. Of course, don't come
with the, "Well, I'm not a database guy, I don't need to      Miguel Castro:        Okay, number 5, we're at the
know how to write SQL." Yes, you do. How can we               zealotry now. We talked about the CSS zealots, we
blow with that one? You know at least how it works            talked the DDD zealots, now let's keep it into a three-
and how to write what makes a good SQL statement              letter acronym category here and talk about the TDD
different from a bad SQL statement.                           zealots.

Carl Franklin:        Well, let's qualify that. If your       Richard Campbell:       Oh-oh.
program uses a database, then you need to know
SQL. If your program doesn't use a database, if you're        Carl Franklin:          Ooh.
writing a device driver for graphics card, you don't
need how know how to use the...                               Miguel Castro:      Yeah,        this    one   is   down
                                                              because somebody is afraid.
Miguel Castro:         Exactly, exactly, exactly. You
know, that's one of the pro-LINQ arguments I heard            Richard Campbell:       Testing is good.
when LINQ first came out, or LINQ to SQL should I
say, it's n o w the developer doesn't need to know            Miguel Castro:           Testing is fantastic. I don't
anything about ADO.NET. They can just use LINQ to             have nothing -- yeah, I got to get it out of the way
SQL to access the database. Well, while LINQ to               now. Unit testing is awesome and heavily, heavily
SQL might be a very good technology and LINQ in               encourage it. What I have a problem with is the
general is a great technology, I don't want a developer       extreme of TDD use, the extreme of writing a test
that doesn't know a damn thing about ADO.NET                  before every single method you write. I got to do
because it's a crucial part of the framework. You             something in my career, I got to deliver software and I
need to know at least how it work.                            got to deliver it in time, and I just find that I have met
                                                              some people out there that they're so 100% TDD
Carl Franklin:          Yup, yup.                             religious that even a little test app that they write to
                                                              get something tested -- Carl, you're an all sockets
Miguel Castro:     So I don't want to appeal to the           guy, that you're going to write a quick little app to test
lowest common denominator, I want to try to raise it a        some kind of socket's code, even that has to be done
bit.                                                          in 100% TDD. Here's the kicker. The main problem
                                                              that I have with this is not the task and the design and
Richard Campbell: I would call out one other ORM              the paradigm of doing something the TDD way. It's
for those who are caught between wanting the ORM

Transcription by PWOP Productions,                                                 Page 11 of 17
                                                                          Ten Things that Annoy Miguel Castro
                                                                                                 May 21, 2009

the attitude that if you're not doing it, you're a bad      Deborah, I learned so much from one of her first
programmer.                                                 book. But the sentence that I remember, and I can't
                                                            remember if Deborah takes credit for this or if
Carl Franklin:         Yeah.                                somebody else, was the best way to design an object
                                                            is to use it first, and that kind of describes what TDD
Miguel Castro:         That's the primary part here.        is all about in its general form. Do you know what I
                                                            mean? Rather than sit there and say, okay, what am
Carl Franklin:         So I'll play the devil's advocate    I going to call, or I know what I'm going to call this
here and say you're just lazy.                              class but what method is it going to have, what
                                                            property is it going to have, where is it going to inherit
Miguel Castro:         I'm just lazy?                       from, rather than deal with all that at first, write some
                                                            code like that object was already done, use that code,
Carl Franklin:         Yeah.                                obviously it's going to break, and then go back and
                                                            write the object, that's essentially the TDD...
Miguel Castro:         That's why I don't want to write
all these tests?                                            Carl Franklin:        That's      what    Test    Driven
                                                            Development is, yeah.
Carl Franklin:         Yeah, that's what I'll say.
                                                            Miguel Castro:          Exactly right. I just don't find
Miguel Castro:          Okay. I'll counter that with        the need to do that for 100% of my method. That's
saying I write quite a few unit tests. In my opinion, I     the problem that I have. A lot of these kinds of
write unit tests whenever I need to write unit test. I      mentality and redirect comes from the diehard Agile
know that's a very big statement, that's a very general     crowd, and Agile is a wonderful thing. I use Agile in
statement. I no longer use Windows or console apps          almost every project that I do. I don't use everything
in order to test my code. I use end unit to test my         at the 100% of its original manifesto. You know what
code. I use unit test not just to test the method, but to   I mean? Agile has one version of itself called
test a combination of methods. Most of my unit tests        Extreme, Extreme Programming, XP I think they call
are not just going to test method A to make sure that       it, and XP has 12 items in its manifesto and it's almost
it returns a string.                                        like getting ISO 9000 certified. If you're not using all
                                                            12 of these items, you're not an Extreme programmer,
Carl Franklin:         Right.                               you're not an Agile programmer and these are the
                                                            statements that beginners read and they end up
Miguel Castro:          They're going to test a process     feeling really bad about I'll never be as good as that
that may call upon method A, B, and C and expect a          guy because I'm not using all 12 steps in Extreme.
certain result. That's the way my unit test works and I
can already see a lot of guys out there probably            Carl Franklin:          Right.
cursing at me and I know where these guys live.
                                                            Miguel Castro:        I have a problem with that.
Carl Franklin:         Is that a threat?                    One of the bullet points of the Extreme manifesto is
                                                            pair programming. You need to be pair programming.
Miguel Castro:           No. They’re all in different       There's one aspect of Agile I have no use for
states.    You know, in general, TDD preaches               whatsoever and I'm not saying it's not good because
something that is very good and this is a concept that      there's a lot of people out there doing pair
I learned a long time ago and I can't remember if it        programming and it works. It works for them. It
was in Deborah's book that I read this. It might have       doesn't work for me. If there's going to be somebody
been Deborah's book because I learn a lot of my             standing over my shoulders, they better damn well be
original object orientation from Deborah Kurata...          rubbing alcohol.

Carl Franklin:         Yeah.                                Carl Franklin:          Okay.

Miguel Castro:          Back when all I knew is             Miguel Castro:          That just doesn't work for me.
Deborah Kurata is just somebody who wrote a book, I         Same thing with TDD, the extreme aspect though is
mean I have no idea about the community, and you            like what you said, I have a problem with zealotry.
had just written your internet programming book, Carl.
                                                            Carl Franklin:          Yeah, that's basically what I'm
Carl Franklin:         Right.                               getting.

Miguel Castro:      And we didn't know each other.          Miguel Castro:       Agile        and       Extreme
This was like 1994, 1995, which was one of the              Programming, all these should be used as a tool in
reasons it was such a thrill for me to actually meet        your arsenal. Learn all the steps, learn how they all

Transcription by PWOP Productions,                                               Page 12 of 17
                                                                         Ten Things that Annoy Miguel Castro
                                                                                                May 21, 2009

work, and use the ones that work for your team. It's      code. So it's your concern, that concern. With the
no wonder that there are so many flavors of Agile         testability of your web pages, I submit to you that
because people have developed their own -- you            you're probably putting way too much non-UI oriented
know Scrum was born that way. Scrum is one flavor         code to begin with.
of Agile. It may not use all 12 steps of Extreme, it
may bring in a couple of new steps, and there are         Carl Franklin:           Probably right.
many others that follow that same pattern.
                                                          Richard Campbell:        That makes sense.          I'll buy
Carl Franklin:        Yup, okay.                          that, yup.

Miguel Castro:        All right, let's go to number 4.    Miguel Castro:         And I'm sure that statement will
Number 4 is something that I don't have a lot of          piss several people off, but hey, that's what I'm here
technical knowledge in but I don't like where part of     to do. I declared that at the beginning of the show,
the community is headed with it and that is Web Form      I'm here to piss people off.
bad, MVC good. MVC is awesome, I love the pattern,
I love what Phil Haack did, and his team of course,       Richard Campbell:        Nice.
what they did with the product. It's on its way, it got
some great potential and it's very, very usable right     Miguel Castro:           All right, number 3 is a very
now, but I have to reiterate what Hanselman, Scott        simple one and I know how you guys feel about this.
Hanselman himself said on stage and that is MVC is        We've discussed this before, the C# versus VB war
not Web Form 4.0 and too many people out there still      still on. Why? When the hell is this going to stop? I
thinks it is.                                             always break the ice with my audience when I'm at a
                                                          conference by saying who are the VB people in here
Carl Franklin:        Yeah, it's an alternative.          and they raise their hands, and I say who are the C#
                                                          people in here and they raise their hands, then I just
Miguel Castro:         It's completely an alternative     kind of smirk and say who are the C#'ers that hate VB
and it doesn't really have to be an alternative. They     and I'll get at least a dozen hands that would go up.
can certainly co-exist. There's nothing that says you
cannot have MVC and conventional Web Form in the          Carl Franklin:           Yeah.
same application absolutely.
                                                          Miguel Castro:        If I ask the question in reverse,
Carl Franklin:        Right.                              I really get a hand that goes up. So this animosity
                                                          comes primarily from the C# community of which I am
Miguel Castro:          So I won't spend too much time    a member. Now, I'm a member of both because I'm a
on this one because I can't sit here and argue plusses    .NET developer, I know and use both languages
and minuses in MVC because I haven't written a full-      extensively. VB is here to stay, I'm telling the C# guys
blown MVC application yet. I don't want to get into       that, get over it.
that without full knowledge backing up my statements.
                                                          Carl Franklin:           Yeah.
Carl Franklin:        Okay.
                                                          Miguel Castro:         And not only that. That whole
Miguel Castro:        I've got to leave you with a        thing about the languages are going to diverge and
controversial statement, I just can't drop this one.      diverge and diverge, that's not happening anymore. It
                                                          seems they are actually being brought together at
Carl Franklin:        Okay.                               Microsoft. So VB is here to stay and it's going to
                                                          become a power player and if you don't like it, go to
Miguel Castro:         S o I 'll leave you with my        Java or get out of business.
controversial statement on this and that is one of the
pro MVC things that I keep hearing constantly, and        Carl Franklin:           Okay.
this usually comes from the TDD guys, see number 5,
is how much testable MVC is because now you can           Miguel Castro:          It's a lot of fun, it's a lot of fun
take all the code behind that you write in action         raging on the Java guys. Why do we need to bring
classes in MVC, they can be tested now, whereas in        this kind of war into the .NET world?
regular Web Forms we cannot test those classes and
I'm really big on the Rocky Lhotka philosophy of code     Carl Franklin:           Really.   We're on the same
separation and that is the UI code should only have       team.
three types of code. 1) Code to interact with the
widgets on the screen whether it's Windows or Web.        Miguel Castro:         Exactly, exactly and plus you
2) Code to interact with your next layer down being a     can't dismiss the fact there are lots of VB shops out
service layer or business layer. 3) Exception handling    there still. I mean, Carl, you're an old VB guy. I'm an

Transcription by PWOP Productions,                                               Page 13 of 17
                                                                               Ten Things that Annoy Miguel Castro
                                                                                                      May 21, 2009

old VB guy myself, I made a great living from VB 3.0           Miguel Castro:         Will you please give me a
to VB 6.0.                                                     break. Some of these are just insults to your
                                                               intelligence. There are so many gripes I can talk
Carl Franklin:           Yeah.                                 about with recruiters and when I do this presentation,
                                                               Recruiters: The good, the bad, and the ugly, I try to
Miguel Castro:        And there are lots of shops out          make sure and I invite recruiters to come along
there that moved into VB.NET because that was a                because I try to make sure that I wrote this
logical step for them in order to leverage the                 presentation not to rag on computers, I wrote it to get
knowledge that their people have.                              recruiters and candidates together discussing the
                                                               problems that they have with each other because it is
Carl Franklin:     You could also say we wouldn't              no coincidence that recruiters are the butt of all of our
have a .NET framework if it weren't for the success of         jokes. There isn't any developer out there that
Visual Basic.                                                  doesn't have some kind of a recruiter horror story.

Miguel Castro:         Absolutely, absolutely and at           Richard Campbell: How can you tell when a
one point, I don't know if this statement is still true, but   recruiter is lying? His lips are moving.
I know that at one point VB was the widest used
development platform out there.                                Carl Franklin:      How do you keep a recruiter
                                                               from drowning? Take your foot off his head.
Carl Franklin:       It was, it was and it was right
before .NET as well.                                           Miguel Castro:         Well, there you go, there you
                                                               go. The truth of the matter is that profession is the
Miguel Castro:         That's right, that's right. Okay,       needed one in our line of work, it definitely is. Not
we're almost done, we're close. The second one,                everybody has the ability or the capacity or even the
now this is an annoyance that I have that we can talk          opportunity to self-market themselves.
about this for hours. In fact, I had because I have an
entire conference, well, not a conference because              Carl Franklin:            That's true.
conferences typically won't accept a talk like this, but I
have a talk that I had done in code camps called               Miguel Castro:                It takes a little bit of talent, a
Recruiters: The Good, the Bad, and the ugly.                   little bit of luck, a little bit of good timing to do that kind
                                                               of stuff and a good recruiter is worth their weight in
Carl Franklin:           Oh-oh.                                gold.

Miguel Castro:           And I have a lot of pet peeves        Carl Franklin:            Yeah.
of recruiters. I've done a lot of business with many
different recruiters out there, and I want to tell you         Miguel Castro:           A bad one needs to be
there are some fantastic recruiters out there, and if          eliminated. They're detriment to the business, they
they're listening, any recruiter that's listening they're      really are. You got recruiters that don't read resumes
going to say, yeah, I'm one of them, the main problem          carefully. You can tell because they call you and they
that I have with recruiters, and I'm going to limit            ask you about stuff that's clearly either in your resume
number 2 to just one item and that is recruiters' sales        in a different way or not in your resume at all like
pitches. They use car salesman approach that                   you're a .NET developer but they're asking you about
recruiters give you. The emails that you get in bulk,          COBOL, and the funny thing is that if you put that you
because you know nothing comes from recruiters                 used to do COBOL 25 years ago and everything from
unless it's in bulk, the email that comes to you in bulk       then on has become Microsoft technology, I've had
that talks about "a super opportunity" o r "a hot job,"        recruiters that tried to convinced me to take a COBOL
how do they get to know if it's a super opportunity or a       job, that it will be good for me, because at the end of
hot job when half of these recruiters don't know what          the day the only thing that matters to this person is
the hell they're recruiting for in the first place.            staffing the spot and collecting the commission and
                                                               your career doesn't mean a damn thing to them and
Carl Franklin:           They don't, they certainly don't.     that's not all of them. My opinion of a good recruiter is
                                                               when I truly feel that this person cares about the
Miguel Castro:        "Growth Oriented Position."              position that they're going to put me in, because a
Here's a personal favorite of mine. I actually wrote           recruiter putting you in a bad position is going to come
this one down. This is all for real, okay. An unreal           back and bite them in the ass because they got a
opportunity for a dynamic mover and shaker.                    client to worry about as well. There are three parties
                                                               involved in this transaction, you know what I mean.
Carl Franklin:           Yeah.
                                                               Carl Franklin:            Yeah.

Transcription by PWOP Productions,                                                      Page 14 of 17
                                                                           Ten Things that Annoy Miguel Castro
                                                                                                  May 21, 2009

Miguel Castro:          I have so many horror stories        guy selling you a car and he has no clue what the
that I can tell you, Carl, I'm not going to run overtime     make or the model of that car is.
and give you all my horror stories but...
                                                             Carl Franklin:         Yeah, he is reading something.
Carl Franklin:         Oh, you're already overtime.
                                                             Miguel Castro:         Exactly and I hate car
Miguel Castro:         Am I?     Do I have five more         salesmen. It's a wonder that I just bought a car last
minutes?                                                     week, I bought a new car last week and it's a wonder
                                                             that I did that, I try to avoid car salesman like a
Carl Franklin:         Yeah, I know, sure. Yeah,             plague.
absolutely. We're just coming down to the end.
                                                             Carl Franklin:      Who doesn't? All right, so what
Miguel Castro:         A couple here. Mass mailing           number are we down to?
that are clearly a mass mail but they try to hide the
fact that they're mass mail by doing mail merges. You        Miguel Castro:         Okay, we're down to number
know, you get something that's Hello Miguel, how's           one.
the weather over in Lincoln Park? Are you still
working with VB?                                             Carl Franklin:         And that is?

Carl Franklin:         Yeah.                                 Miguel Castro:        We got to go out with a bang,
                                                             we got to go out pissing as many people as we
Miguel Castro:        The work Miguel, the word              possibly can. So the number one thing on the list of
Lincoln Park, and the word VB are all in all caps.           things that annoy Miguel, ALT.NET.

Carl Franklin:         All caps, yeah.                       Carl Franklin:         Oh.

Miguel Castro:         That    kind     of   stuff is just   Richard Campbell:      Oh no, here we go.
                                                             Carl Franklin:         Here we go.
Carl Franklin:         And it's real.
                                                             Miguel Castro:         All right, now let me start with
Miguel Castro:          I haven't done business with a       something positive. Generally speaking, I've met the
recruiter in almost four years. I actually burned my         ALT.NET community.           I was at the ALT.NET
bridges on purpose with a lot of recruiters in my area       conference this year before the MVP Summit. There
just so I'm forced to go other route.                        are some brilliant people on that community.

Carl Franklin:         Yeah.                                 Carl Franklin:         I agree, I totally agree.

Miguel Castro:          I had one recruiter that sent me     Miguel Castro:         Some of the smartest people
a form saying I'm going to send you all these                that I know in the community, the people that you
technology in a form and I need you to write down            have a conversation with about object and abstraction
how many years you have experience on each one,              and inheritance and all these weird things. Listen,
and in that list were things like VB, VB.NET, C#, also       we're talking about inheritance like it's a weird thing.
things like IIS and HTTP post and HTTP get if you
can believe that.                                            Carl Franklin:         Yeah.

Carl Franklin:         Wow.                                  Miguel Castro:         You have a conversation with
                                                             them and they'll find a hole in your model and they'll
Miguel Castro:         So after I wrote down all my          tell you don't do this, abstract this out and put
years, the result was 113 years and the comment that         Dependency Injection and they're talking about the
I got back was how old am I, that's too many years.          stuff, you can tell they know what they're talking
This is the stuff that we deal with. How about the           about.
recruiter that says I'm looking for a programmer that
knows C pound.                                               Carl Franklin:         Yeah.

Carl Franklin:         Nice, C pound.                        Miguel Castro:        It's       refreshing    having
                                                             conversations like that with people, it really is.
Miguel Castro:        Or I need an ASP.NET person,           However, that is immediately contradicted by the
no VB or C# required. This is an example of how they         redirect of my way is better and yours is wrong and
just don't know what it is that they're -- this is like a    even stupid, and I see that attitude way too much and

Transcription by PWOP Productions,                                               Page 15 of 17
                                                                             Ten Things that Annoy Miguel Castro
                                                                                                    May 21, 2009

it's coming out of that community and I really wish it         Carl Franklin:         When I think of the antithesis of
didn't. It's for that reason that I have not been able to      that, one name comes to mind. You know who I'm
embrace the ALT.NET community and I have a lot of              talking about, Richard. Scott Guthrie.
friends in this community and I'm probably pissing
them off as we speak but they're brilliant people, but         Miguel Castro:         Oh yeah, oh.
generally speaking, I'm not naming any names, I see
a lot of negative redirect coming out about our way,           Carl Franklin:         The antithesis of meanness.
you know, we're the up and coming, we're the right
way of doing something, and you're wrong and you're            Richard Campbell:      Yes, yes.
an idiot for doing that, you're not a true developer.
We need to be a little bit more humble. If there's any         Carl Franklin:           I mean, the guy has like how
community needs to be a little bit more humble, it's           many billions of patents, he developed ASP.NET, he
that community and I'm not the only one that seems to          is the dude and he is out there at conferences staying
feel this way. At the ALT.NET conference, it was an            out late, sitting on the stage talking to three people.
open space conference which is kind of a cool format,
and people who want to speak, they stand up and                Miguel Castro:      Absolutely.       I mean, he is
they say my name is so and so and I want to talk               extremely approachable.
about this, and then they put it up on the wall. Well,
Scott Hanselman got up and he proposed to talk,                Carl Franklin:       Until they are ready to go and
what he wanted to talk about is the topic of why so            they've had enough and then he'll say okay, I'm done.
                                                               Miguel Castro:          And actually, the only reason
Carl Franklin:           Why so mean.                          why you can't get any face time with Scott Guthrie is
                                                               because he is very famous for flying into a talk and
Scott Hanselman:        And the way Scott described it         flying out of it as soon as he is done because he is
was actually dead on because I've felt this way for a          just a very busy guy but if you happen to be one of
very long time. I'm so glad that somebody put it out           the lucky few that gets face time with him, you'll agree
there. Usually, if I put something like that out there,        that he is just extremely approachable.
people would just get really pissed off so I was glad it
was Scott Hanselman that did it. You know, there's a           Carl Franklin:         Yeah.
big road block that prevents beginners or people who
are eager to learn but don't have a lot of resources,          Miguel Castro:        On any topic, and let me tell
there's a road block that prevents them from crossing          you, I've written my share of emails to Scott asking
to the side of really getting it, of really participating in   him questions here and there when I need to access
community stuff, speaking at conferences, being a              some Microsoft knowledge and I just don't have
voice in the community, getting into articles, just            another name and more often than not Scott will not
making a difference to other developers out there.             answer the question directly but he will pass it on to
                                                               somebody else and then you'll be included in that
Carl Franklin:           Yeah.                                 email stream from that moment in time until you
                                                               receive your answer.
Miguel Castro:           The way that Scott put it was
that road block is us, that road block is the lack of          Carl Franklin:         Yeah, not a mean bone in his
humbleness that comes from a lot of devs out there.            body.
When I'm at a conference, one of the things that I
enjoy the most is actually talking to attendees. I spent       Miguel Castro:      Not at all and you know that's
as little time in the speakers' lounge as I possibly can.      what we need, we need some more Scott Guthrie's in
                                                               the world.
Carl Franklin:           Yeah.
                                                               Carl Franklin:         Yes, we do. I agree.
Miguel Castro:         I've always felt that they
appreciate that, that's really why people go to these          Miguel Castro:        And if you mix that with the
conferences, to get some face time with a lot of us            brilliance and knowledge that is in that ALT.NET
and it's quite enjoyable. There are a lot of great             community, you can have a wonderful, wonderful set
people out there. There's no need to be a mean                 of mentors out there for people to look up to and to
developer or a zealot or somebody that preaches this           get help from.
is the way you should do it, always go this, never do
this and if you don't follow my rules get out of the           Carl Franklin:         Yup. Well said.
business, or you're wrong and you're stupid.
                                                               Miguel Castro:         So that is my number one
                                                               thing. I'm done pissing people off.

Transcription by PWOP Productions,                                                  Page 16 of 17
                                                           Ten Things that Annoy Miguel Castro
                                                                                  May 21, 2009

Carl Franklin:         Where should people send
their hate mail?

Miguel Castro:         So       send     them         to My wife got home and I
haven't acknowledged that yet which means she's
probably going to be the next person I'm going to piss
off today. I've locked myself down in my office here.

Carl Franklin:        Well, as long as you're
swinging, you might as well swing around, you know?

Miguel Castro:         Well, it's been fun guys.

Carl Franklin:         Yeah, it really has been fun
and it's always a pleasure talking to you and it's good
to be controversial once in a while, stirs things up.

Miguel Castro:          There you go, there you go. All
right guys, take it easy.

Carl Franklin:        Okay, we'll see you. And we'll
see you next time on .NET Rocks!


Carl Franklin:        .NET Rocks! is recorded and
produced by PWOP Productions, providing
professional audio, audio mastering, video, post
production, and podcasting services, online at .NET Rocks! is a production of
Franklins.NET, training developers to work smarter
and offering custom onsite classes in Microsoft
development technology with expert developers,
online at For more .NET Rocks!
episodes and to subscribe to the podcast feeds, go to
our website at

Transcription by PWOP Productions,                          Page 17 of 17

To top