.NET Framework 3.5 graphically described

March 4, 2009

For some reason I have been involved in a number of conversations lately about “how is .NET 3.5 different than .NET 2.0?”.  There is an easy technical answer but I always struggle to quickly access that piece of memory and/or make it relatable to the person asking the question.  I’ve resorted to off the cuff terms like “window dressing and not necessary to deliver a great application” or “nice features that extend the core .NET 2.0 Framework but….”.  And on it goes, with little success I might add.

I might benefit from carrying some flash cards, huh?  Perhaps some graphics on those cards?  Let’s take a look at what’s available…

This one is not bad, but there is no mention of LINQ, AJAX and REST.  No chance!

This one is closer, but what exactly are Additional Enhancements?  This one also does not relate very well that 3.0 contains 2.0 and 3.5 contains 3.0 and 2.0.

This one is really bland!  Did someone draw this up in MSPaint?  Glad to see the Entity Framework get a shout out here.  Sad to see no representation of the containment (as mentioned earlier).

My personal favorite and not because it is part of the poster I stare at nearly every day.  It’s so simple and it’s structured perfectly (i.e. round!).  .NET 2.0 contains the core, 3.0 added WCF, WF, WPF and CardSpace, then .NET 3.5 added LINQ, AJAX and REST on top of those.  Winner, winner, winner, hands down.


Having more than one value proposition

March 3, 2009

As I market my services to various clients from various backgrounds, I’m always trying to come up with a unique value proposition that communicates to them.  It’s not that I want to appear superior to their alternatives, but I do want them to understand what makes me unique.  Sometimes I use

“Hiring an experienced software developer who knows what their doing before they start is much more cost effective than paying someone else to learn”

which works well if a customer is interested in completing a project and are not making an investment in someone else’s capabilities.  Sometimes I use

“I know how to go straight from point A to point B while some are good at talking about going from A to B and others are like to start on the path from A, get distracted and take twice as long to get to B.  I have a laser like focus on the task at hand”

which works well if a customer has been disappointed in capabilities of another developer or development team.  Sometimes I use

“My experience with 50+ projects in 10+ industries has given me insights about how those businesses are run that might provide value in unexpected ways to your project”

which works well if a client is unsure that I can complete the project using a new toolset or technology.

I see now that you cannot have one unique value proposition.  Every situation, every project and every client is different.  Not only are they different, they are unique.  I also see now that I am not a salesperson applying a closing method.  I’m there to listen, learn and offer something of value.  If that means I have to be honest with someone, rather than packaged, so be it.



Slate and the internet of 1996

February 25, 2009

Slate has a great post on the internet of 1996 today.  I fondly remember 1996 as it was the year I started surfing the wide web world, not world wide web.  If I remember correctly, in contradiction to what Slate says, you surfed for hours.  You never knew where the next hyperlink would take you or how far you end up from where you started.  If I remember correctly, you’d spend your time building your own web pages or learning how to by inspecting the source of other pages.  You also spent your time building link exchanges.  If you were accepted as a link on someone elses directory, it was so exciting to see your pages or site for others to surf on.  It was great!


Is blue my color?

February 14, 2009

I keep seeing blue in my life.  Blue is the color of the Microsoft logo, whose tools and technology have provided me so many fantastic opportunities in life and business.  Blue is the color of my golf bag, which does a fantastic job of getting me away from the computer screen (now and again).  Blue is the color of my motorcycle helmet, which is the fulfillment of a lifelong dream.  Blue is the color I chose for my company logo.  Blue is the color of Bloglines, which I use to great effect to aggregate all of my business and technology news feeds and blog authors.  Blue is in the logo of Tempe, where a majority of my clients are based and where I help organize a networking group called Tempe Networking for Entrepeneurs.  Blue is the color my father chose for some of the best Camaros and Corvettes of my youth.  Blue is the color of the ocean, where my wife loves to vacation.  The blue sky lured me away from the gray days of Kansas City.


Required reading for junior software developers

February 8, 2009

There are probably many different thoughts on when you should introduce certain concepts to a new (or junior) software developer.  Before they start coding, during the coding (see pair programming) or after some coding.  You can’t introduce them to message queueing, standards compliance or layered architecture in the same day or week.  Their head will explode.

Before they start coding, every developer should read Code Complete by Steve McConnell.  That’s a given.  Currently in it’s second edition (note:  I prefer the first edition), the information here is so fundamental and so common sense.  I might even argue that a good hire would already have this book on their bookshelf.

To be honest, during the coding, a junior software developer should rely on their tools, their team lead AND the documentation.  Learning to rely on documentation, understand it and question it will improve their code.  Learning to trust your tools, i.e. understand what they are telling you, will make you into a craftsman.  Learning to ask for help from your team lead will keep a junior member on the team.  No kidding.

After some coding, I would recommend reading this excerpt of Chapter 29 of Pattern Languages Of Program Design by Harrison, Foote and Rohnert.  Probably the most entertaining chapter of the book, it is chock full of descriptive examples of systems with little to no design, such as:

often takes on a life of its own, despite casual structure and poor or non-existent documentation…

Systems and their constituent elements evolve at different rates…

The class of systems that we can build at all may be larger than the class of systems we can build elegantly, at least at first…

architecture frequently takes a back seat to more mundane concerns such as cost, time-to-market, and programmer skill…

Individual portions of the system grow unchecked, and the lack of infrastructure and architecture allows problems in one part of the system to erode and pollute adjacent portions….

some engineers are particularly skilled at learning to navigate these quagmires, and guiding others through them. Over time, this symbiosis between architecture and skills can change the character of the organization itself, as swamp guides become more valuable than architects…

Maintenance needs have accumulated, but an overhaul is unwise, since you might break the system…


Open Source ASP.NET projects

January 29, 2009

For those in need (or in a charitable mood), you may want to check out this list of all open source ASP.NET projects.

http://wiki.asp.net/page.aspx/388/aspnet-open-source-projects/


Which open source wiki is right for you?

January 24, 2009

Given my complete disdain for creating help files (see HTMLHelp, MAML, RoboHelp) and Microsoft’s own wavering over CHM files and MAML, I needed to make the conversion to a wiki based solution for my projects.  Wow, where does one start?  With the last wiki tool I used and hated or the one before that I despised.  You see, wiki authoring tools are clunky.  Clunky to install, clunky to edit and nearly impossible to get configuration support for.

Luckily, I stumbled across WikiMatrix.  They have a Wiki Choice Wizard that will guide you through the decision process.  Want page history?  Click here.  Want support vendors?  Want localization?  Click here and here.  After 6 or so questions, voila, here is a list of a wikis that meet your criteria.  As you click on each one of the wikis for a closer look, you get a complete list of features.  Even syntax examples!  Thank you WikiMatrix and thank you CosmoCode for creating it!


Why bother, if you are not the best?

January 16, 2009

I attend a number of networking events each month to build relationships with other professionals and entrepreneurs.  I NEVER have a hard time explaining why I am good at what I do.  It’s simple.  No one in the room will meet someone as dedicated as I am to learning everything I can about software development and small business.  I have an addiction and it’s hard to compete with someone with such focus.

If you are considering going out on your own, because of a recent layoff or an impending one, you should know exactly why you are doing it.  You should be doing it because you are the best at what you do.  You’ll offer dedication, knowledge and service that clients cannot imagine today.  It takes that to win new clients.  It’s not luck, it’s dogged persistence and demonstrable proof that you are better at what you do than most.  This point is well illustrated by this article, ala 

… there is always room at the top applies everywhere.  If you are good at what you do (meaning if you are in the top 10% – 15%) there will always be a place for you and you will always do well.  It doesn’t matter what field you’re in or what your place is in that field.  There is always room for someone who’s great at what they do …

You’ve probably heard the adage “love what you do and success will come”, but I would add that you better be great at it too.


Who needs custom software development? Part 7

January 15, 2009

Who needs custom software development?

The business owner likes to arrive at work at 10am to beat the traffic, roll out to lunch around 11:30am with key personnel, then leave the office around 2pm.  Typically, this type of owner is not interested in the minutiae of their business operations because they already know the business inside and out (because they built it) and they have hired capable staff to run it.  This type of owner is focused on the big picture, i.e. how to maintain yet grow the business beyond its current scale.

This company needs a software developer who can provide tools that allow the business to get as much or as little detail from their systems as needed.  Hopefully, I will have the opportunity to use my experience in building dashboards that monitor the health of the business operations but can also provide data mining capabilities should the need arise.


A hosting conversation

December 21, 2008

I’ve used and recommended CrystalTech for years to my clients, which initially drew me into this article.  It’s quite a discussion on the current issue of rent vs buy (er….buy and rent rack space) with regards to web hosting.  The post itself is not anything special (sorry, Jeff!) due to it being a very common dialogue between any team evaluating new hardware.  However, the discussion that follows offer a number of tips and recommendation on today’s breed of web hosts.