Archive for March, 2009

March 31st, 2009

What are your Visual Studio tips?

As I announced yesterday I will be speaking at the Philly Code Camp 2009.1 on Visual Studio 2008 for beginners.  As part of this presentation I want to be able to provide the 10 most valuable tips for beginners using Visual Studio.

I did a quick search of the internet last night, on this subject, and everything seemed to point to Sara Ford as the defacto standard on Visual Studio tips.  She even has a best selling book on the subject, appropriately called Microsoft Visual Studio Tips.

sara-ford-visual-studio-tips

And because she is such an awesome person all the royalties from the book are going to a scholarship fund to help pay for the the costs of sending Hurricane Katrina survivors to college. So if you are interested go pick up a copy.

The problem is that she has 251 tips in the book, and 382 tips on her website and I need to widdle this down to the top 10.

Here are my top 3, so far:

  1. Did you know… You can create toolbar buttons to quickly toggle your favorite VS Settings? – #372
  2. Did you know… how not to accidentally copy a blank line? – #050
  3. Did you know… How to optimize Visual Studio for multi-monitors? – #381

What are yours? If you have a favorite please include it in the comments below with a link (if possible).

Tags: , , ,

Posted in Personal, Programming | kick it on DotNetKicks.com | Bookmark | View blog reactions | 2 Comments »

March 30th, 2009

Speaking at Philly Code Camp 2009.1

I will be doing a presentation on Programming in Visual Studio in the Beginners track, which will start at 10:00 AM.  I expect to see you all there.  Also if you have any tips on what you find to be a useful feature in Visual Studio for new developers please leave it in the comments below.

I have included the announcement below in case anybody is going to be in the Philly area on April 18th and want to hang out with a bunch of .NET developers.


Code Camp 2009.1 Anouncement

Our first installment of the 2009 Code Camp series will be held at the DeVry University campus in Fort Washington, PA on Saturday, April 18 from 8:30-5:00. Please register on our web site. Detailed directions are on the DeVry web site or Get Directions from Microsoft Live.

  • Lots of code, just say no to slides!
  • 8 hours
  • 60 sessions (8:30, 10:00, 12:30, 2:00, 3:30)
  • 12 tracks including new hands-on Beginner series and the Bonus Track
  • 500 seats with tables (laptops welcome)
  • Free breakfast, lunch, and afternoon snack (expanded menu!)
  • Raffles and prizes at 5:00
  • Easy parking

All of this is made possible by our Gold partners (HostMySite, Software Logic, RTTS), Silver partners (RedGate, Quest, RTTS, Oxford Computer Group) and our Platinum site sponsors (DeVry University, Microsoft).

Here is the tentative agenda, room assignments and times are subject to change. Check here and here for the latest printable agenda.

Update: My name hasn’t been updated on the speakers list.  But you are definitly going to see me their teaching beginners how to master the basics of Visual Studio.

Tags: , ,

Posted in Personal | kick it on DotNetKicks.com | Bookmark | View blog reactions | No Comments »

March 18th, 2009

ASP.NET MVC 1.0 Released

Final Cover PhotoIt was just announced at MIX09 that ASP.NET MVC 1.0 has been released for general use and is out of the Release Candidate phase.  There has been no word on the changes form RC 2 to this release version.  But I will keep this post updated as I learn more.  Also as of writing this the download hasn’t been posted to CodePlex either, but I am sure that it will be posted pretty soon.

I am assured by Wrox that the cover of the book will be updated to look like what is on the right of your screen.  So it should be any day now, so go pre-order a copy today by clicking on the cover image to your right and it will take you to the Amazon page where you can place your pre-order.  That way as soon as the book ships you will have a copy waiting on your front porch.

Update: It is available from Microsoft Download.  Probably on CodePlex by the end of the day.  Here is the final description of the download for your reading pleasure.

ASP.NET MVC 1.0 provides a new Model-View-Controller (MVC) framework on top of the existing ASP.NET 3.5 runtime. This means that developers can take advantage of the MVC design patterns to create their Web Applications which includes the ability to achieve and maintain a clear separation of concerns (the UI or view from the business and application logic and backend data), as well as facilitate test driven development (TDD). The ASP.NET MVC framework defines a specific pattern to the Web Application folder structure and provides a controller base-class to handle and process requests for “actions”. Developers can take advantage of the specific Visual Studio 2008 MVC templates within this release to create their Web applications, which includes the ability to select a specific Unit Test structure to accompany their Web Application development.

The MVC framework is fully extensible at all points, allowing developers to create sophisticated structures that meet their needs, including for example Dependency Injection (DI) techniques, new view rendering engines or specialized controllers.

As the ASP.NET MVC framework is built on ASP.NET 3.5, developers can take advantage of many existing ASP.NET 3.5 features, such as localization, authorization, Profile etc.

Update: Phil Haack just posted his MVC 1.0 Release Anouncement.

Tags:

Posted in ASP.NET, News | kick it on DotNetKicks.com | Bookmark | View blog reactions | 2 Comments »

March 18th, 2009

The State of ALT.NET

Over the past 6 months I have been trying to really quantify what it means to be using ALT.NET practices. And I can honestly say that I still honestly don’t know what it means to be an ALT.NETer. But I have come to a number of conclusions about the state of the ALT.NET community, that I wanted to share.

(1) The ALT.NET Community is fractured among itself.

There are too many different ways of out there of what it means to be a true ALT.NETer. There is the Test Driven Design crowd, there is the Domain Driven Design crowd, and to many other Driven Design paradigms to mention right now. Each advocate will stand up and say that their way is the only way to develop a true ALT.NET application, and all other ways are an abomination to software development.

From this point forward…

We need to understand that it doesn’t matter what paradigm you choose to follow or even if it has a name, just that you choose a way to design your application before you start coding. And as long as the way you choose to code is robust, easy to maintain, and easy for another developer to pick up where you left off — you are doing it right.

(2) Take the religious zealotry out of ALT.NET

This sort of goes back to #1, but I feel that it needs to be called out directly. There are too many people out there preaching about how their brand of ALT.NET is the only path to salvation from the drudgery of everyday .NET programming. I have heard from a number of people that you don’t have a true ALT.NET application unless you are using an IoC library, nHibernate, and separate your domain model in to a separate project library away from your data access layer. These types of strict requirements and zealotry for one type of component set the bar way to high for any average developer to say they are following the ALT.NET principals.

From this point forward…

It is an acceptable practice to use what ever makes the most sense for your project and your team. For example if you need IoC container and it makes your life easier as a developer to build the framework of your application you should use it, on the flip side if your application is pretty static and there is no need to have these swappable containers you should feel free to not use IoC containers until your application requirements dictate they are needed.

(3) Craftsmanship with out Engineering is no way to program software.

There seems to be a very strong focus on craftsmanship over standard engineering processes in the ALT.NET community. It seems like each week there is a new hot craftsmanship feature from some other language that is trying to be replicated in .NET. Lately it has been the focus of fluent API’s and the duck typing features that dynamic languages like Ruby have built in to their frameworks. This constant change and focus on new hot must have craftsmanship features really detracts from good solid software engineering principals that should be the focus of the ALT.NET education process.

K. Scott Allen had a really good analogy of this focus on craftsmanship over solid engineering of your code. He called it the Aluminum Wiring in side your software. In his article he talked about how the shortage of copper in the US during the 60’s and 70’s caused home construction to use Aluminum wiring over Copper wiring in houses, and how the use of Aluminum caused oxidization, corrosion, and overheating of the houses electrical system. He then went on to ask if all these new craftsmanship features are going to cause the same problems in software development and he specifically called out:

  • Mock objects
  • Fluent APIs
  • Declarative programming

I believe K. Scott is not to far from the truth, because we are sacrificing good engineering practices for what really amounts to programmer candy, just like the US construction industry sacrificed good engineering materials to save a few dollars.  It didn’t pay off for the home owners in the long run, and I surmise that this focus on craftsmanship will not pay off for the software in the long run either.

From this point forward…

We need to focus on good software engineering over the latest fad in software programming.  Currently the latest fad is making C# work like Ruby.  But it is just that a fad, that will quickly fade away when something new comes along.  It is basically the programmers equivalent of the rise and fall of Paris Hilton in the media.  Ruby is a nice language and has its niche purposes on the web, however there is a reason why Ruby doesn’t run mission critical applications (ex. financial systems) like C#, C++, or Java does, it simply doesn’t scale all that well.  Only time will tell if it will be around for the long haul or fade way in to the abyss of languages that grace this earth for only a short time.  But either way we shouldn’t be making business critical changes to the way we engineer software applications based on the craftsmanship of the newest language to hit the streets.

Conclusion

My conclusion is a short one on the state of ALT.NET. From everything I have learned over the past 6 months and the immersion in the tools that have come from the ALT.NET community, I have really come to one conclusion that seems to sum them all up.

ALT.NET started with some really down to earth goals of educating .NET developers about alternatives to developing software, by taking principals from other languages and frameworks and integrating them in to the .NET developers thought process. However this simple mission statement has seemed to have morphed into zealotry for design practices and certain tools and an obsession to always change the .NET framework to work more like the latest fad instead of forging out the best practices from other languages and frameworks. The state of ALT.NET is that it is broken, because it seems to be governed by a disorganized committee of bloggers with their own agendas. ALT.NET needs a hero, and that hero just needs to set down some commandments that all other ALT.NET conversations are governed by. See Update Below This is the only way the ALT.NET movement is going to survive the test of time.

This isn’t going to be an easy task, but I am willing to work with anybody who wants to form a working group to explorer the creation of these ALT.NET Commandments. If you are interested please click the Contact link above and maybe we can get something moving to help ALT.NET survive the test of time.

Update: Lee Drumond pointed out something that I didn’t consider about what I said above, and it probably should be rephrased so it is not taken the wrong way.  I had said:

ALT.NET needs a hero, and that hero just needs to set down some commandments that all other ALT.NET conversations are governed by… I am willing to work with anybody who wants to form a working group to explore the creation of these ALT.NET Commandments.

This should have actually went something like this…  ALT.NET needs a commitee thats sole focus is on advancing the principals of ALT.NET forward and breaking down the bariers in corporations through education.  Once corporations see the benifits of ALT.NET, developers will be finacially modivated to learn the ALT.NET ways, to keep and advance their own careers.  If the movement is not organized, it is nothing more than a social group that may gain a couple followers here and there, and really piss off others, just like any social group would.

By the way nothing I have said here is anything new to the ALT.NET community, it has all been said and repeated many times over in different ways and different formats.  Unfortunately it is usually met with the same reactions, as Jeremy has commented below, and very little retrospective seems to be happening.  Everything just moves forward as the status quo, as if there is nothing wrong with the fact that the same concerns are voiced over and over again.

Tags: ,

Posted in Programming, Rant | kick it on DotNetKicks.com | Bookmark | View blog reactions | 26 Comments »