More servicesWindows Live
HomeHotmailSpacesOneCare
 
MSN
Sign in
 
 
Spaces home  Claudio Lassala in Softw...PhotosProfileFriendsMore Tools Explore the Spaces community
There are no music lists on this space.
View space
Milton Abe
View space
David L. Walker
View space
Caleb Jenkins
View space
Steve Wiley
View space
Ney
View space
Wallace
View space
SharePointing

Claudio Lassala in Software Development

Whatever my brain can (and cannot) absorb...
June 18

Material from last night's presentation at the C# SIG

I think the presentation last night went pretty well, and I get some great feedback from the attendees, so that's always good.  :)

We’ve covered a LOT of ground:

Refactoring, separation of concerns, test-driven development, Command design pattern, Action delegate, multi-threading, lambda expressions, fluent interfaces, object mappers, extension methods… Of couse, everything in small doses, just trying to raise awareness about those things.

It all started with a simple WinForm app, going through the cycle of adding code to Click events on buttons, and then refactoring things out of the UI, extending it to support keyboard binding, designing a shortcut controller in a test-first style, doing more refactoring and using the Action delegate and refactoring the code to the Command pattern, then improving things a bit so to support asynchronous commands… then I’ve quickly covered object mappers and lambda expressions, and finally how to improve test code using extension methods and fluent interfaces.

The source code can be downloaded here.

Some people asked me how they can learn more about this stuff, and where to go find resources about it. Here are a few links to some of my previous blog entries that may help:

Good Resources on Test-Driven Development (TDD)

Learning in spiral

The whole testing thing...

Test-Driven.NET: a great little tool

June 11

Speaking at the Hal-PC C# SIG next week

Next week I'll be speaking at the Hal-PC C# SIG in Houston. This is something that came up last minute. Markus was booked to present there but won't be able to, so I was asked to fill in for him.

The session is going to be a "C# Tips and Tricks", where I'll be covering a bunch of things. The abstract is:

Claudio will cover a number of tips and techniques he has used in recent project work, including the command design pattern, Lambda expressions, extension methods, fluent interfaces, refactoring, and more. His objective is to present a few tricks that attendees can apply immediately and to inspire them to learn more about the other, more extensive topics covered.

Hope to see some of you out there!  :)

May 27

Checking out the Source Analysis for C#

I've just spent about 30 minutes checking out the recently announced Microsoft Source Analysis for C#. I definitely love the idea, but I'm not sure I'll be using it just yet. Here are some of my impressions (again, I haven't spent a lot of time on it yet)...

All using directives must be placed inside of the namespace

Hmm, but VS itself violates that rule on every class we create...!

Fig01

The property must not be placed on a single line. The opening and closing curly brackets must each be placed on their own line

Huh? But that an auto-implemented property. What would we want to split that into multiple lines?!

Fig02

Variable names must not start with 'm_'

Hmpf, that's the standard with have here at the company...

Fig03

A closing curly bracket must not be preceded by a blank line

Ok, this one I like.

Fig04

Tabs are not allowed. Use spaces instead

Huh? Thanks, but no, thanks. I've seen a lot of people complaining online about this one too. What's the problem with using tabs??

Fig05

The call ... must begin with 'this.'...

Ah, I like that one. This is something we've made as part of our guideline here, but couldn't use FxCop to trap for that, since the 'this.' doesn't make into the IL.

Now, the problem here is that, again, the code that VS generates violates this rule all over the place, such as on the example below:

Fig06

I'll continue to use this tool to see if it's going to stick with me. I've tried it on a very small project, and got 246 violations; the vast majority where produced by code generated by VS. On a big project, I'd probably end up with a LOT more violations, so I'm not sure I can live with that. I believe there is a way to disable some of the rules, but haven't looked for it just yet...

Anyway, I do appreciate Microsoft releasing tools like this one. Hopefully, more and more developers will start paying more attention to how they write code.

Interesting training material

As an MVP, I got offered a license to InnerWorkings training material. I've been checking out some of it, and it looks pretty interesting.

I noticed they had some material on Domain-Driven Design Patterns, Enterprise Patterns, and some related topics that I'm always interested on, so I decided to try it out.

There is a "Developer Interface" app, where we keep all the material purchased. Each course has a number of tasks, and each task presents the scenario to be solved, the challenges, and reference material (with links to chapter of great books such as Eric Evan's on Domain-Driven Design).

Fig01

The task provides a way to launch the sample project in Visual Studio. Once in VS, we get an "InnerWorkings" Tool Window that gives us quick access to the problems we need to address in the solution, and the useful links.

You can either try to address the problems by yourself, or cheat and see the solution. Once you're done with it, you may click the 'Judge Project Code" button that gets added to VS to have your code analyzed to see if you've implemented things in the way that was expected.   

I'll certainly be checking out some of the other courses they have available (I need to catch up with some stuff such as WCF, WPF, Silverlight, LINQ to XML, etc.).Fig02

May 16

Getting rid of the slow help engine in Visual Studio

It's been a few years already since the last time I've installed VS' help (MSDN) on my machines. The thing is huge, slow to come up, and it didn't use to be that good. I just got used to using a SlickRun magicword to quickly search google, which searches not only MSDN, but also other resources (often much better than MSDN) such as CodeProject, blogs, etc. Since I'm connected almost 100% of the time, why use the slow local MSDN library?

Also, every once in a while a reach for the F2 key in order to start a "rename" refactoring in Visual Studio, and and up pressing F1 by mistake, and then there go 2 minutes of my life, waiting for the help window to come up (even though, again, I don't even have MSDN installed).

Talking to Mike today, I remembered I used to have a little VS macro that'd search on Google the text I have selected in VS. I thought it'd be good to just re-map the F1 key to that macro. It solves to problems: allows me to quickly perform a Google search from VS, and it doesn't get me stuck waiting for the VS help window to come up if I've hit the F1 key by mistake.  :)

You can find an example of such macro here. In order to change the keybinding, go to Tools-Options-Keyboard, search for the "GoogleSearch" macro, and bind the F1 key to it.

F1

Matching my own record: 5 and a half years at EPS!

Wow, today, May 16 2008, I'm matching my personal record at working with a company: 5 and a half years, or to be more precise, 2003 days.  :)

Here's a little history:

  • I've had my first full-time job when I was 12. It lasted only for a full week; I just couldn't stand the boss.  :)
  • When I was 14, I took a temporary job (also full-time), filling in for a friend for a full month.
  • The next Monday when I was done with the previous job, I was hired by a company across the hall: that was the company where I had stayed for 5 years and a half years. I started as a courier. After a year, I got promoted to a financial clerk (at the age of 15). Almost three years later, got promoted to a programmer/analyst.
  • From the previous job I went to a new company, as an IT guy (doing mostly software development, but also a lot of computer setup, networking, hardware, user support, etc.). I worked there for about 3 years.
  • Next, new company, now dedicated to software development. Worked there for about 14 months.
  • On to another company, where I've worked for about 8 or 9 months.

The reader have probably noticed the pattern: after the company where I've worked for over 5 years, my stay at every job was getting shorter and shorter.

Eventually I've decided to go solo as an independent consultant. I had my clients, I've put together some conferences for software developers, etc. That lasted for about 8 months. I wanted to have no strings attached to any company because at that time there was a good chance EPS would be hiring me, so I wanted to make sure I could join the company at any time. And that happened in November of 2002.

The rest, as they say, is history.  :)

May 15

Material from Tulsa School of Dev 2008 is online

I've just uploaded the material I've presented last week at the Tulsa School of Dev 2008. The material includes slide decks and source code for my three sessions (C# 3.0, Design Patterns, and LINQ).

The material can be downloaded here.

View more entries
 
Updated 5/27/2008
No list items have been added yet.