Passed 70-547

Hey, I'm just writing to let my friend know that I have passed the 70-547 exam and now I'm an MCPD Web Developer.

I have to say that the test was way easier than I thought. I think it was the easiest Microsoft test I have ever taken.

If you are asking why I still took a .NET 2.0 exam the reason is simple. I had already bought all the books last year. I was supposed to take the test last October but I had to help out at work doing some long shifts to deliver a product that was sold before we expected. Go news for them and a lot of work for me :-). Not to worry I really like the guys I work for and the system is kind of a son to me so I also had fun. Now that it's over I'm back to my plans.

Now I'm in the process of getting my MCT (Microsoft Certified Trainer).

I'll keep you guys posted on how it goes.

Finally, the move is over!

Finally! After a few days my new blog is alive.

I've been using Mephisto for a long time but I felt it was time to change. Mephisto is writen in Ruby On Rails and while I really like Rails I really needed an Blog engine writen in ASP.NET. There were many excelent options like:

Subtext

dasBlog

BlogEngine.Net

All of the above are great blog engines. They are used by most of the community. So which one did I chose? None!

I decided to create my own blog engine. I know, I know...  Why?? Am I crazy? Do I want to take over the blog market? Nope!!! All I really wanted was a pet project that I could really use while allowing me to keep trying new stuff. A blog engine is something simple enough that I don't need to worry about the business rules. It's been done over and over and we use it everyday. It is also small enough that if I ever decide to throw all my code in the trash and start over with a different approach I easily could.

For this adventure I created a project at Codeplex: SpeakOutBlog. From now on SpeakOut is my sandbox, the place I'm going to try ideas and technologies that interest me. The good thing is that at the same time I'll have do something that works, otherwise my blog will go offline. I don't want to let my fans (my wife, dad and mom) down.

On my next post I'll talk about the difficulties I had with URL Rewriting on my shared hosting. I hope that this project keeps giving me material for the blog.

Oh, before I forget... I really want to thanks the guys that develop Subtext, dasBlog and BlogEngine.Net. Their code is really fun to play with and gave me many ideas to use in SpeakOut. I hope someday someone could look at my code and learn something interesting as I have learned from these guys code.

Linq: Using Group By with Multiple Columns

I have a group of classes that I build to get metadata from the database to use with my code generators. The class has the following structure:

public class ConstraintMetadata
{
    public string ConstraintName { get; set; }

    public string ColumnName { get; set; }

    public string ConstraintType { get; set; }

    public string TableName { get; set; }
}

I wanted to write a group by clause using Linq to group the objects I retrieved from the db by TableName, ConstraintName and ConstraintType. This would allow me to have one object for each constraint with a list of all the columns. Since Linq only allows one object in the group by clause the way out is to create an anonymous object with all the properties I want.

var constraints = from c in constraintsMetadata
                  group c by new
                             {
                                 c.TableName, 
                                 c.ConstraintType, 
                                 c.ConstraintName
                             } into g
                      select new
                      {
                          g.Key.ConstraintName,
                          g.Key.ConstraintType,
                          g.Key.TableName,
                          Columns = g.Select(x=>x.ColumnName).ToList()
                      };

Now, if I want to get all the constraints for a table and print it to the console window I can do this:

var tableConstraints = constraints.Where(x => x.TableName == table.Name);

foreach (var tableConstraint in tableConstraints)
{
    Console.Out.WriteLine("Constraint Name:{0}, Table:{1}, Type:{2} Columns:", 
        tableConstraint.ConstraintName , 
        tableConstraint.TableName, 
        tableConstraint.ConstraintType);
    foreach (var column in tableConstraint.Columns)
    {
        Console.Out.WriteLine(column);
    }
}

 

Entity Framework Free Book

If you are interested in learning more about the Entity Framework you need to visit Zeeshan Hirani’s Blog and download an e-book that he made available for free. It’s a problem solution approach to explain the EF in good detail. The book has 514 pages of lots of good information.

You might also like to watch the two short videos on the EF available at the asp.net site. Here are the links:

Get started with the entity framework

Use the new Entity Data Source

Find out about VS2010 on Channel9

If you want to find out what’s coming up in Visual Studio 2010 you have to check out the new podcast on Channel9 called 10-4. The first podcast of the series shows you how to download and install VS2010. The cool thing is that installation is already available as a virtual machine so you don’t need to worry about messing up you development machine.

The second episode shows a feature that is really simple but I always wanted. It let’s you manage you list of recent projects so that you can pin or remove projects. I know, I know… this is not going to change my life and there are a whole lot of more meaningful features but I just thought it was pretty cool since I’ve always wanted this.

Visit the 10-4 podcast site and draw your own conclusions on VS2010 new features.

jQuery Intellisense in VS 2008

Microsoft has shipped a patch to Visual Studio 2008 and Visual Web Developer 2008 Express that enables intellisense support for jQuery and will allow developers to add configuration information to other libraries such as Prototype so that they too can have the intellisense support. Read more about it in ScottGu’s Blog

ASP.NET MVC Beta was released

The beta version of the ASP.NET MVC framework is out of the oven! This is good news people, means that it’s only a few tweaks a way from the final version. ScottGu says on his blog that there are features to be implemented but the core is done and there won’t be any more major changes. Here are a few resources for you:

Download ASP.NET MVC Beta The asp.net site has a lot of articles and videos

.Net Source Code

Have you ever wondered what’s behind all the classes you use in the .Net framework? Now that Microsoft opened the code you can have a pick at it.

I think that the looking at this code is a great way to learn and also be a better programmer since you will understand what happens behind the scenes. If you have a doubt if some API or control is the source of a performance problem you can take a look for yourself.

VisualStudio let’s you download the code as needed during debug but there’s a great tool called NetMassDownloader that will allow you to download all the code at once. The total size of the source code is about 170 MB.

There’s also a good post on the CodeProject site that will show how to set it up with VisualStudio: http://www.codeproject.com/KB/dotnet/netmassdownloader.aspx.

Have fun.

Passed 70-529 today

I just passed the 70-529 exam and now I’m a MCTS Web and Distributed Applications. For those that are still thinking of taking this exam here are a few tips.

Usually I use Microsoft preparation books to study for certifications. This time I started using a book from the same collection:

MCTS Self-Paced Training Kit (Exam 70-529): Microsoft .NET Framework 2.0 Distributed Application Development

I have to say that I didn’t like this book. I didn’t think that the content was well approached and the writing style was also not for me. I still followed the book to the end but I had to complement it with two other books, one the had a good web services section and another that had a good remoting section. These books are:

Pro ASP.NET 2.0 in C# 2005 (This one complements the web services part)

Pro C# 2005 and the .NET 2.0 Platform (This one complements the remoting part)

Also a good starting point is the articles on the 4 Guys from Rolla that will give you a pretty good introduction to web services and it’s best if read before you read any of the books above.

Next week I’ll go on vacation and when I come back I’ll start my studies towards the MCPD Web Developer certification. I should take the test by the end of November. I’ll let you know how this goes.

Passed 70-528 today

Well, today I got one more certification out of the way. I have just arrived from the Prometric test center where I passed the 70-528 (aka Microsoft .NET Framework 2.0 – Web-Based Client Development). Now I’m a Microsoft Certified Technology Specialist (MCTS): .NET Framework 2.0 Web Applications.

Overall I considered the test to be easy compared to the 70-536. If you use the Microsoft certification books and you already have hands on experience you shouldn’t have any trouble passing this exam.

Now I will concentrate in the 70-529 (aka Microsoft .NET Framework 2.0 – Distributed Application Development) exam and I think this will keep me busy for another 2 months or so. My goal is to get as many certifications as I can until next year when I planning to move to Canada. Since I don’t know any one there I figure that the certifications are the most universal way of proving my knowledge.

Thanks to everyone that helped me!

Top 10 Answerer on Asp.Net Forum

Today I made it to the Top 10 Answerers of the asp.net forums for the first time and I’m really happy with it.

I just hope it’s not too geeky of me to be celebrating this… My wife seems to think so!

I like the forums because they always give me new challenges to help me learn more. I get problems from people all over the world and it makes me learn a lot of things that I wouldn’t on my day to day job. If that makes me a geek so be it.

First impressions on ASP.NET Dynamic Data Preview

Today I saw a screen cast of ASP.NET Dynamic Data for the first time. As a Rails enthusiast I must say that I was very excited.

One of the ideas behind this technology is moving application logic into the models and removing them from the pages. Personally I think that idea is more than correct since a validation rule on a certain field will be repeated in every page where the field shows up.

Another great feature is the ability to quickly get something running. That is one thing that really facilitates talking to clients, after all there is no better way to talk a client than showing something running and from there you can define further requirements and move on with the development process.

I’m very excited to see the direction in which Microsoft is going with new ideas like the Dynamic Data Preview and the MVC framework. It shows that they a really connected to what is going on in the development world and keep taking the new ideas from other technologies and improving the .Net framework. So far the future of 3.5 looks bright.

To get to know the ASP.NET Dynamic Data Preview better look at the following screencast by David Ebbo: ASP.NET Dynamic Data Preview

Passed 70-536 today

Today I passed the 70-536 exam (Microsoft .NET Framework 2.0 – Application Development Foundation). Some parts of the exam are really interesting because you get to use them every day, like regular expressions, IO, threads, reflection etc. Others are a little more boring to study like Application Domains. Overall the contents of the exam are very helpful for developers who write more serious coding.

For those who are thinking about taking the exam, here is the recipe I used:

  1. Studied about 2 hours a day for 2 months
  2. Used the MCTS Self-Paced Training Kit (Exam 70-536): Microsoft .NET Framework 2.0 Application Development Foundation, which is quite good
  3. Worked with .Net for about 2 years
  4. It is very important to write code. Don’t think you can just read a book and go take the exam. Explore different scenarios, try new ideas. Only then you’ll be ready for the exam.

Now my next goal is to pass 70-528 and get the MCTS certification. This one should be easier to pass since I work with web apps every day. In about two months I hope I will have nailed it.