Thursday, March 31, 2005

MS Certifications

The ServerSide.NET currently has a forum Ask TheServerSide: Does Microsoft Certification Matter?

I'm amazed at how some people can take the position that certifications are of no use. I've recently achieved MCSD status and I'm studying for my MCDBA and I doing it to increase my breath of knowledge and at the same time to differentiate myself from other developers who don't have certifications. The certification in and of itself does not mean that the person who has the cert is an expert but it does show that the person has a desire to learn new technology. Having a certification is not a substitute for real-world experience, but it does mean something.

Bottom line:
It can't hurt you to have certification, it can only help you.

Monday, March 28, 2005

Exception Handling

Brad Abrams summarized a nice list of Exceptions that might be useful for anyone developing applications that need to handle exceptions.

He also lists a presentation he did on Exception Management best practices.

Thursday, March 24, 2005

Coding Slave

I've always intended to read Bob's book Coding Slave but never got around to buying it, but now its free and I have no excuse now!

VS2005 & SQL Server 2005

Looks like the ship date has been delayed till later in the year.

Read the news.com article.

Wednesday, March 23, 2005

AvPad

Chris Anderson has just come out with a new tool for learning Xaml. Check it out!

Tuesday, March 22, 2005

Visual Studio 2005 Pricing

Alex Lowe presented at the Cleveland .NET SIG a few months back and he told us about how VS2005 was going to be split into 3 versions based on the role you are playing in your organization. The 3 roles are:
  1. Software Architects
  2. Software Developers
  3. Software Testers

There is also a version of VS2005 that contains all 3 roles and you have to get the Team Foundation Server as a separate product if you want to use the collaboration features of Team System.

All existing MSDN subscribers will get a free upgrade to one role-based version of VS2005.

For more information:
http://www.microsoft.com/presspass/press/2005/mar05/03-21VS2005PR.asp
http://msdn.microsoft.com/howtobuy/vs2005/compare

Monday, March 21, 2005

Resharper

I've been using a Visual Studio.Net add-in called Resharper for the last 2 months now and I have to say I really like the product, it makes developing so much easier, the ability to quickly search for classses by pressing CTRL-N and typing a few characters and the ability to find all usages of a method throughout the solution are two of my favorite features.

That being said, I do have a couple of issues with the product:
  1. There is no feature to extract a pubic interface from a class
  2. The product slows down the initial load time of a solution to perform caching

Overall, I think the benefits of Resharper far outweigh the issues I have with the product. I highly recommend that you check this out, there's a free 30 day eval download for it

Thursday, March 10, 2005

VB6 Revolt

Scott Hanselman sums it very nicely: Set VB6 = Nothing

Wednesday, March 09, 2005

SQL Server Broker (SSB)

I just saw a presentation last night on SSB given by Brian Jackson (MCS) and I think Brian did a great job talking about this new feature of SQL Server 2005. I've seen more than one project treat the database as a "queue" and I think SSB will make it much easier to write distributed applications that involve the database.

The presentation slides and demo code will soon be made available here:

VB MVP Revolt

I can understand why some people are upset about Microsoft's decision to stop supporting VB6 at the end of this month, but in my opinion I would have done the exact same thing. It's not easy to add new OO improvements and remain completely backward compatible. It would take so much longer for new language features to be added to VB6 if complete backward compatibility had to be maintained, and I think MS has given VB6 developers enough advanced notice to prepare for this. Bear in mind that this comment is from someone who'd rather shoot himself in the foot then write VB6 code.

The Blah Blah Blog
Robert Scoble
Dan Appleman
Alex Lowe

SQL Server @@Identity

Most developers when writing an insert statement for a table that has an identity column will use the @@Identity function to return the value of the newly inserted column.

A better practice is to use the SCOPE_IDENTITY() function instead. The reason is that sometimes @@Identity may return back the wrong value. If you happen to have an INSERT trigger on the table that you are inserting data into that also happens inserts a row in a different table (auditing?) then @@Identity will return the identity value from the other table instead of the first table. SCOPE_IDENTITY() always returns the new identity value from the closest scoped operation.

Monday, March 07, 2005

Best Practices

My job as a .NET consultant takes me to a lot of different companies and sometimes I'm asked to fix an existing performance problem. 99% of the time, the performance problem is related to a poorly written stored procedure, trigger or sql statement.

I'm amazed how often I see stored procedures and triggers that are > 1000 lines, which in and of itself is not the worst practice, but definitely a flag that maybe there's too much business logic in the stored procedure/trigger.

The other thing I see quite often are excessive use of cursors and temporary tables. I can understand this trend because it's really easy to create and use cursors and temporary tables in SQL Server.

Whenever I have to fix a problem at a client and I find it's related to poorly written SQL Server stored procs/triggers, I make it a priority to educate the developers who wrote the original code and show them alternative options.

For example, most cursors can be re-written with a while loop and temporary tables can (most of the time) be replaced with Table variables instead. Sometimes, its just a matter of re-writing the SQL statements to use a sub-select.

I don't understand why more developers don't know these basic best practices for SQL Server:

Bottom Line:
Avoid cursors when you can: they cause locking and server resources are consumed
Avoid temporary tables: they cause more locking and more stored procedure recompiles

Friday, March 04, 2005

Resources to help jump-start your .NET Development

General .NET Resources

The .NET Home Page - The best “jump off” point for all things .NET
http://www.microsoft.com/net/default.asp
What is .NET? Here you will find a basic description of .NET services and functions
http://msdn.microsoft.com/theshow/EPISODE011/default.asp
Frequently Asked Questions about Microsoft® .NET Framework
http://msdn.microsoft.com/library/techart/faq111700.htm
The GotDotNet Home Page - An excellent site to find more information about .NET with samples and real-world examples of .NET applications
http://www.gotdotnet.com/
An Introduction to the .NET Framework - A concise introduction to the .NET Framework
http://www.gotdotnet.com/team/framework/default.aspx
Microsoft® .NET Framework 1.1 Class Library Reference Volumes 1-4
http://www.microsoft.com/mspress/books/6075.asp
Best Practices for .Net Development
http://www.microsoft.com/seminar/shared/asp/view.asp?url=/Seminar/en/20020531devt1-47/manifest.xml
Exception Management
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/exceptdotnet.asp
Visual Studio .Net Home Page
http://msdn.microsoft.com/vstudio/default.asp
Inside Information for Developer Tools
http://www.microsoft.com/mspress/devtools/vstudio.net/
Microsoft VS.Net Technical Resources
http://msdn.microsoft.com/vstudio/techinfo/default.asp
Visual Basic .Net books
http://www.microsoft.com/mspress/devtools/vstudio.net/vbasic.net/default.asp
C++ Books
http://www.microsoft.com/mspress/devtools/vstudio.net/visualc.net/default.asp
The Visual Basic .NET Upgrade Guide
http://msdn.microsoft.com/vbasic/techinfo/articles/upgrade/guide.asp

Wednesday, March 02, 2005

Agile Programming

I've been involved in an Agile project for the last 6 weeks and this hits too close to home.