Learning SQL Server 2008: How to start?
Clinics: What's New in Microsoft SQL Server 2008
For those of you that already have some experience with the SQL Server 2005 or even SQL Server 2000, and would like to learn the new features introduced in the latest version of SQL Server, a good place to start would be the free Microsoft e-Learning Clinics of SQL Server 2008:
eBook: Introducing Microsoft SQL Server 2008
Besides SQL Server 2008 Clinics, Microsoft is also offering the Introducing Microsoft SQL Server 2008 eBook written by Peter DeBetta, with seven chapters dedicated to the new features, including security, administration and performance:
Chapter 1: Security and Administration
Chapter 2: Performance
Chapter 3: Type System
Chapter 4: Programmability
Chapter 5: Storage
Chapter 6: Enhancements for High Availability
Chapter 7: Business Intelligence Enhancements
Download the eBook:
http://csna01.libredigital.com/?urss1q2we6
Microsoft SQL Server 2008 Virtual Labs
You can practice in about thirteen SQL Server 2008 virtual labs available at Microsoft web site:
Data Structures and Algorithms (DSA) - First Draft Released
Granville Barnett and Luca Del Tongo just released the first draft of the book "Data Structures and Algorithms", where the authors - as the title says - explain how several algorithms and data structures work.
In this book, the authors decided not to use a specific programming language such as C#, C++ or Java, but instead, they use a custom pseudocode, which is easy to understand and at the same time, enables the reader to easily convert it to any real programming language.
The book Data Structures and Algorithms explores data structures like Linked Lists, Binary Search Tree, Heap, Sets, Queues, Balanced Trees, as well as Sorting, Searching, Numbers and Strings algorithms.
The site DotNetSlackers is hosting the book, and you can download the PDF version: Data Structures and Algorithms. The authors also maintain an open-source project at CodePlex with the C# .NET implementation of the same algorithms and data structures discussed in the book.
Congratulations to the authors for the great work and initiative!!
How to be a better developer?
This is my follow-up to Rodrigo's excellent post "How to be a better developer?", where he makes some good points, by the way.
I pretty much agree with him on the topics he pointed out, and without exhausting the subject, I would add the following topics:
Know what your framework has to offer. Use it.
It is common to see experienced developers coming from other languages, recreating classes that already exists in .NET Framework. I can't remember how many versions of the System.IO.Path class, I've seen in the last few years. How many projects you joined that used this "Utils" class with lots of methods that just recreates existing features of several classes from .NET Framework?
Another example would be the .NET Role-Based Security model. It looks like only a few people really know about it, and I can't get tired of seeing independent role-based models developed from scratch. Learn how this "provider" concept works, and start creating only your customized "providers", instead of creating the whole "services".
Extend the wheel. Do not reinvent it.
There are common solutions for common problems. Learn design patterns, know which one is better for each situation, and apply the ones that fit in your project. By using well-known design patterns, you will probably solve the problem in the best way, and will also make it easier to other developers understand what you did.
Write technical articles
Yes. By writing technical articles you force yourself to get a deeper knowledge of a subject, and it gets even better when you get feedback from your readers. Start your own blog would be a good way to start, but in any way, publish your articles also in one of the web sites of the CodeZone Community, to get a bigger (and qualified) audience.
Give technical presentations
Giving technical presentations, is another way to force yourself to get deeper knowledge of a subject. You could do simple internal presentations in your company, or in the user group of your region. Even better, if you like teaching, consider becoming a Microsoft Certified Trainer (MCT), and teach some courses once in a while. You will learn a lot while you prepare yourself for each course, and also from the huge amount of questions raised during the training (sometimes even in the coffee-break :)). Did I mention you can also make a few bucks with it?
Write quality code
There are several rules and guidelines of what you should do, and how should you do, for each technology. Learn from this guidelines, adopt the ones that makes sense on your project, add your own guidelines, and make sure you and your team keep following this guidelines.
Do not write "temporary code"
If you know how to solve a problem in the right way, just do it. If you write temporary code instead of implementing the real solution, the chances are that your temporary code will last forever in you application. Remember that, most of the times, doing it the right way takes the same effort as doing it in the dirty way.
Test your code
It doesn't matter if you do Test-Driven Development Unit Testing or Plain Old Unit Testing. Create and maintain an updated test suite for you project, make sure you are covering as much code as possible, and make sure your code pass all the tests before going into production. Unit Testing is a fantastic way to make sure your code is doing what it is supposed to do. Be the first to discover a bug in your code. Not your user.
What about you? What would you add to this list? What would you remove?
Why?
Edit:
Arnaud Weil also wrote his opinion on "How to be a better developer" and Thomas Krehbiel also wrote his opinion on "How to be a better developer"
.NET Framework 3.5 Beta Exams Extended
The BETA certification exams for .NET Framework 3.5 have been extended through February 8th 2008, and it still possible to take one of the exams below for free:
- 71-502 TS: Microsoft .NET Framework 3.5 - Windows Presentation Foundation
- 71-504 TS: Microsoft .NET Framework 3.5 – Windows Workflow Foundation
To take the exam, just follow these steps:
- Register on Prometric's website.
- Find a Prometric center near you.
- Choose the date and time to take the exam, and use the code 502B1 for the exam 71-502 (WPF), or the code 504B1 for the exam 71-504 (WWF), to get 100% discount on the exam price.
Enjoy!
via Gerry O'Brien.
Paperclip Themes for BlogEngine.NET
Background
When I decided to start this blog, I spent some time figuring out which CMS / blogging engine would be the best choice for me, and the main constraints was:
- It should be a lightweight system, to run reasonably fast in my mega-cheaper hosting provider.
- It should allow me to easily customize it and/or create extensions for it.
In the past, I had great experiences with WordPress and Drupal, implementing for some customers, and also creating the PDAExpert Community, which is totally based on WordPress. Therefore, going to WordPress would be the natural choice for me, but the thing is: WordPress is developed in PHP, and I'm not that fan of PHP. I certainly would prefer to create add-ins and implementing new features in C# or VB .NET for example, thus, I decided to include the one more constraint: It should be .NET-based. It's a blog about .NET anyway... Why would I use any other technologies? :).
After evaluating lots of good options like SubText, BlogEngine.NET, Community Server, among others, I realized that BlogEngine.NET would be the best choice for me. It's simple, lightweight, and open-source. Community Server is, by far, the most powerful of them all, and I actually tested it for a few days, but besides being 3x slower than BlogEngine.NET (which is perfectly understandable, given all the features it supports that BlogEngine doesn't), the idea of having the source-code, and being able to adapt it to do exactly what I need was perfect.
I've chosen BlogEngine.NET then, and started to look for a theme to use, and get the blog running. Although there's good themes available for BlogEngine.NET, Community Server comes with this very nice theme called "Paperclip", which has at least four variations: Cactus, Summer, Fall and Winter. If you are a developer, you probably have seen this theme, as it is used by most of the MSDN and ASP .NET Community blogger's.
I decided that "Paperclip" was the way to go, and then I adapted the theme to BlogEngine.NET, and finally I'm ready to run the blog with it, and also to share the theme with the BlogEngine.NET community.
You can download the four variations of the PaperClip theme below. I hope you enjoy it.
Paperclip Theme for BlogEngine.NET
Hello World!
Welcome to my new blog and I hope you enjoy my future posts. My focus here will be mainly ASP .NET, C# 3.0, WPF, WWF, WCF, .NET Compact Framework, and how we can apply the best patterns & practices using these technologies.
Who am I?
I'm a senior consultant for .NET technologies. I have more than 8 years of experience with software development in general, and have been working as a consultant with .NET since 2002, and as a trainer (MCT) since 2004. I also hold the following Microsoft certifications: MCSD (VC++ track), MCSD .NET (C# track), MCDBA (SQL 2000 - Yes, I know it's outdated... Working on it), MCTS (Windows Mobile/.NET CF), and MCT (Microsoft Certified Trainer).
Where do I come from?
I'm originally from Brazil, have lived in Angola a few years ago, and I'm currently living in Portugal. As you might noticed, I'm not a native English speaker, so bare with me with my mistakes, but feel free to give me some grammar tips :).
Enjoy!
Caio Proiete