Studying for MCSA/MSCE

I’m a strong believer that the only way to build really good software is knowing your platform.

That’s why since from my early days of software development, I’ve made myself read at least a part of every recommended book about any topic I was interested in.

The the Internet came along and suddenly I was stroke by a tsunami of good and bad information sources.

Searching the Internet after information can be time consuming even with the aid of search engines. There’s so much information that it’s hard to know the best place to start and keep a track on your progress.

For that matter, I prefer learning through books. Since I started learning .NET, I bought more than 30 books and read at least a part of each of them. Books give you a path to follow and whenever it doesn’t give as much as detail as you’d like, you can always resort back to the Internet to gain deeper knowledge on a specific topic this time knowing what to look for.

Recently I noticed a trend in my learning patterns. Whatever problem I had that was development related, I could find something helpful in a couple of minutes because most of the time I knew what to look for.

The same has not been happening with infrastructure related stuff, though. Since I’ve been working a lot with distributed systems such as web services and web site infra-structure software, I’ve been spending more time than I would like to troubleshoot things like network connectivity and authentication issues.

For that reason, I decided sometime ago that I would start studying for the MCSA/MCSE certifications. I’m not sure I’ll pursue the whole path, but at least I’ll try to learn as much as I can about Active Directory, Network topologies, authentication and other stuff that I believe will help me do a better job developing distributed systems.

Late last month I bought MCSE Self-Paced Training Kit (Exams 70-290, 70-291, 70-293, 70-294): Microsoft® Windows Server(TM) 2003 Core Requirements, Second Edition. It hasn’t arrived yet, but after I bought it I gained access to MS Press books on Books 24 x 7 from the MVP program. The books I paid almost 150 bucks for are all there! Well at least the printed books are much more portable and I can read them while commuting to and from work.

There’s a lot of interesting books on 24 x 7. In the coming months I’ll eventually post my findings.

Good reading!

SharePoint’s disposing problems

After returning from the MVP Summit I joined Microsoft Consulting Services as part of the Green Badge program (vendor).
On my first "real" project here, I had my first experience with Windows SharePoint Services 3.0.
I’m in charge of reviewing part of the code written by a customer’s developers for best practices in general and performance in particular.
 
One thing that you should be carefull with is disposing the objects which implement IDisposable.
That is specially important with a couple of SharePoint’s classes since they reference unmanaged COM components.
The problem is that (in my opinion) the SharePoint developers didn’t do a very good job of implementing the Disposable pattern.
 
There are tons of links out there pointing to problems and workarounds for them. Here’s a sample:
 
What makes the case even worse is the fact that:
  • Depending on how you got a reference to an object you should dispose it or not. SPSite should be disposed if you constructed it (new SPSite()). But you should NOT dispose it if you got it from SPControl.GetContextSite().
  • Several classes don’t dispose of there containing Disposable objects. SPSite.RootWeb for instance.
I’ll eventually blog more about these issues if I get allocated in more SharePoint projects.

IIS 7 for Developers

Next Tuesday (March 18th, 2008), I’ll be talking (in Portuguese) about the new features brought by IIS 7 from a developer’s perspective.

From Microsoft Events web site:

Idioma(s):
Português.

Produto(s):
Internet Information Server.

Público(s):
Desenvolvedores.

Mercado Relacionado:
Serviços Profissionais.

Duração:
60 Minutos

Data de Início:

terça-feira, 18 de março de 2008 12:00 Brasília

Visão Geral do Evento

Palestrante: Alfred Myers Jr.

O IIS7 é o Web Server mais flexível, extensível e customizável do planeta. Neste webcasts apresentaremos um tour do IIS7 e demonstraremos os grandes benefícios que ele oferece para os desenvolvedores. Aprenda mais sobre o modelo extensível end-to-end no IIS7. Iremos mostrar também o novo configuration system and como este recurso é fácil para construir aplicações, incluindo o IIS configuration através de um simples XCopy. Mostraremos também o suporte dentro do IIS7 para as mais comuns liguagens de programação Web tais como PHP e ASP.NET.

 

https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032357568&EventCategory=4&culture=pt-BR&CountryCode=BR

Back to Volta

Today I took the afternoon to take another look at Windows Live Labs Volta.

The idea of deferring the application partitioning to the last minute may be good for some types of projects but translating “X” (IL in this case) into JavaScript was something I’ve been wanting since the ASP + VB6 days!

I always thought that writing code in general and data validation code in particular for the server and then for the client was a tedious and error prone task.

At those days I had to write validation code in VB6 for the server and then rewrite it again in JavaScript for the client. Besides being tedious, it is an error prone task because you had two places to maintain the code as validation logic evolved.

Today I decided to test this with some legacy code I have here. I was thinking on getting some document number validation code I have here, but I stumbled across a function that translates currency amounts into their textual equivalents. Not sure how to say this in English, but the idea is to translate “1,234.56” into “Um mil, duzentos e trinta e quarto Reais e cinquenta e seis centavos”. That is “One thousand, two hundred and thirty four Reais and fifty six cents” in Portuguese.

I got this code originally written in Clipper from a magazine back in 1993.

Sometime later I rewrote it in Access Basic 2.0. A couple of years later ported it to Access 97’s VBA and at last VB 6. I have not touched it since 2000.

I ran the project through Visual Studio 2008 VB project Converter, made a couple of tweaks (really!), and added the project to my Volta test solution configured to run in Debug mode and voila! It worked like a breeze!

The important part is that I converted the project to a normal VB Class Library. Not a Volta Class Library. That implicates that I could theoretically use any any library that does not have dependencies on anything not supported by Volta and have it flow as JavaScript to the client side.

That must be what Erik Meijer means when he says "Volta stretches the .NET platform to cover the Cloud.”!!

It is important to notice however, that when you run the code in Debug mode, you are really running the IL version of it. I’m not yet sure how the magic works. Give me time!

As soon I tried to run it in Release mode, the page started complaining about unsupported features such as the Decimal constructor that accepts a Double or somewhere in the VB string helper functions trying to get a CultureInfo.

This is comprehensible since the technology is in its very early stages.

I tried equivalent BCL types and members without using the Visual Basic helper functions, and they worked so as soon as I find more time, I’ll try to fix it. I could simply try to isolate the helper functions giving me trouble and fix those pieces of code, but I’m more inclined to rewrite it in C# since it is not too much code and I have not been programming seriously in VB since 2005.

Anyway I’ll decide the route another time.

Stay tuned!

70-502 WPF Beta Exam Released!

Microsoft Learning released the beta exam for WPF 70-502 (71-502 while in beta) and you can schedule it for free at Prometric using the following promo code: 502B1*

So prepare yourself and good luck!

Here are a couple of good books on the topic:

Windows Presentation Foundation Unleashed (WPF) (Unleashed)

Windows Presentation Foundation Unleashed (WPF) (Unleashed)

I’m currently reading this one and I have to say that I’m very impressed. The book is all in full color. Sometimes too much color 🙂 But Adam Nathan really knows his stuff.

 

Applications = Code + Markup: A Guide to the Microsoft  Windows  Presentation Foundation (Pro - Developer)

Applications = Code + Markup- A Guide to the Microsoft Windows Presentation Foundation (Pro – De

This one is from Charles Petzold. After hearing so much about him, I got a little disappointed with the first book from him I got in my hands: Programming Windows with C# (Core Reference). This new one however was highly recommended, so I bought it and I’ll give it a try probably after reading Nathan’s book.

*Promo code courtesy of Manoj Agarwal.