Friday, February 29, 2008

Install multiple versions of IE on your PC

For those that are creating websites, there's always a need to test the application with old versions of Internet Explorer.

Specially for our team, that creates web based applications to be used by users that work in banks. Banks are known to not change their desktop installations very often. There is old phrase that applies here. "If it works, don't touch !!!". So nowadays, all our users are still using Internet Explorer 5.5 or 6.

Us, the developers, always want to use the latest versions of each product, and forgot who really will use our applications.

Tredoft releases the application Multiple IE, that allows you to run multiple versions of Internet Explorer on the same PC. Donwload it here.

Note: If you are running Windows Vista, please read the instructions here.

Offshore Development

As member of GASP(Grupo de Arquitectura de Software Português), i regulary participate in our monthly meetings.

This month the subject was Offshore Development. Hugo Batista, one of the co-founder members, has invited Boobandra Babu to talk with us about this.

Babu is the Managing Director of Shlok, a company based in India, with 38 employees. They work in this model all over the world.

He starts talking about some of the pros and cons of offshore development. Basically, and trying to don't be extensive, as the main disadvantage he found the language, as the principal barrier of the process, and as advantage, obviously he mentioned the total cost saving of the project.

In my opinion, i can identify more than just the language as the main disadvantage. I think that a well motivated local development team can bring a lot of more value to the projects, than delegating the development to offshore companies, specially if we are talking about the development of a product, which is the company core product. I think that the development team should be also commited with project, not only on a technical perspective, but also in every aspect of the project. They know the culture, the habits, the market and they speak the same language. In all companies where i've worked before, most of the project decisions, some times even comercial decisions were made with the collaboration of technical people.

Speaking about technical issues, i don't see that Shlok has some kind of innovative processes that can brings add-value to the table. Basically, they use Waterfall as project management methodology, they don't use agile but they are adaptive to their customer needs. Nothing new, i think all portuguese consulting companies are, since the customer pays they can adapt. Well... not all of them, but most of them. They don't have implemented on their infrastructure, things like continuous integration, unit testing and other quality control systems, that at the time in Portual, most of the companies are start looking at. To be honest, in a market with 2 million engineers and with a high level of maturity, i expect to see much more innovative processes. Maybe Babu doesn't show us all...

I'm not saying that i totally disagree with offshore development, but to make that decision there are some factors that we need to take care about, before going on that direction. Here are some questions that i really will make myself, if i need to make that decision:

1. Is the product, the core business of my company?
2. Is a local product or a global product?
3. How can i find the right partner?
4. How can i guarantee the quality and success of the project?
5. How can i manage and mitigate the risk of delegating this to an offshore company?
6. And obviously, how much i will save?

Talking about costs, Babu mentioned that to get a professional from Shlok, we need to pay, at least, about 35 USD/hour, by now this not seems to be expensive, at the time i'm writting this post the rate to EUR is 1 EUR = 1,5 USD, but the risk has also its price. And with a good market research we can get good professionals in the portuguese market.

I really think we need to test the offshore development with a small project, to see the most value of this way of working.

Wednesday, February 27, 2008

Linq to SQL Debug Visualizer

On debug mode it is nice to see the generated sql query, but what about if we can execute the query against the database and take a look at the results? That will be great !!!

Ok, now you can. Just take a look at Scott Guthrie post about Linq to SQL Debug Visualizer, and discover how you can do it.

For those that are using Linq to SQL, this is a must-have tool.

Monday, February 25, 2008

• Visual Studio Team System 2008 Database Edition Power Tools

Finally... they shipped !!!

I was waiting for this tool since the first release. Once i'm using Continuous Integration, i want to integrate the database schema and data syncronization as part of my build process. It seems that now i can do it.

Bellow you can find a list of all features included in this pack:

New Test Conditions for Database Unit Tests
• ChecksumCondition – You can use this test condition to verify that the checksum of the data set returned by a database unit test matches the checksum of an expected data set.
• ExpectedSchemaTestCondition – You can use this test condition to verify that the column names and data types of the returned data set match expected values.

Data Generator Improvements
• New Data Generator Wizard – This new wizard creates a data generation plan that is configured to copy data from a source database. You can use this wizard when you need to copy most of your data from a live source, but need to make small changes to ensure privacy.

MSBuild Task Improvements
• SqlAnalysis Task – You can use this build task to run T-SQL Static Code Analysis from MSBuild.
TSQL Static Code Analysis
• Static Code Analysis - A precursor to the functionality that will be in future versions of VSTS that will allow you to perform Static Code Analysis on T-SQL code.

Refactoring
• “Move Schema” Refactoring - Allows a user to right click on an object and move it to a different but existing schema
• SP Rename Generation - Generate a new script that will contain sp_renames for all rename refactored objects that the user can then execute.
• Wildcard Expansion - Automatically expand the wildcard in a select to the appropriate columns.
• Fully-Qualified Name Support - Automatically inject fully-qualified names when absent in a script
• Refactoring extended to Dataset - Refactor into strongly typed dataset definitions

MSBuild Tasks
• Data / Schema Compare Build Tasks - MSBuild tasks that can generate scripts as if the user had run the Data / Schema compare UI

Schema View
• API Access to Schema View - Insert / Update / Delete to schema View and list schema objects and their associated files

Dependency Tool Window
• Dependency Tree - Show the dependencies ( incoming / outgoing ) for selected schema objects in a new tool window

Miscellaneous Tools
• Script Preprocessor - Expand SQLCMD variables and include files and command line version (sqlspp.exe) & an MSBuild version ( wraps the command line version )

Download it from here.

Sunday, February 24, 2008

Upgrading TFS 2005 to TFS 2008

At the company i work for, we are using Team Foundation Server 2005 for Workgroup Edition, since June 2007.

Two or three weeks ago, my team had experienced the most known issue of TFS 2005.

Two developers working on the same project, if both try to check out the same file at the same time, Visual Studio does not make the Get Latest Version on Checkout. This means that, when both developers change the contents of the file and try to check-in again, they will receive an alert to manually merge the differences on the content of the files.

After some googling, they've found that this issue was fixed on Team Foundation Server 2008. (more details here)

If you are using Visual Studio 2005, you can use this add-in, that basically runs a macro to get the latest version from TFS when you Checkout a file. But we're already using Visual Studio 2008 and unfortunnely the add-in doesn't work.

So, every day, and each time the situation happens, they ask me to upgrade to TFS 2008. Finally the day has arrived. Today, i've decided to upgrade to Team Foundation Server 2008.

Bellow, you can find a step by step guide to upgrade from TFS 2005 to TFS 2008.

1. Backup All TFS and Sharepoint Databases on SQL Server.
2. If present, remove Team System Web Access 2005 in Add/remove Programs on server Control Panel.
3. Check that you have the correct passwords for TFSSETUP and TFSSERVICE accounts.
4. Log-in with an account that belongs Team Foundation Server Licensed Users Group.
4. Install Team Foundation Server 2008.
5. Install Team Foundation Server 2008 Explorer.

Upgrade to Sharepoint Services 3.0 (WSS 3.0)
6. Run WSS Prescan tool. (check details here and download here)
      Check in the generated logfile for errors.
7. If no errors found, Install Windows Sharepoint Services 3.0
      Note: You need to specify a different port to Sharepoint Services Central Administration
8. Restart the server
9. Install Team Foundation Server Sharepoint Extensions
      Update the Url for Sharepoint, Reports and ReportServer
      The upgrade changes the WSS admin site URL. To make this change in TFS you can use TFSAdminUtil . Following is the command you can use.
TFSAdminUtil configureconnections /SharepointAdminUri:http://wssserver:adminport (more details here)

10. Install Team Foundation Build.
11. Install Team System Web Access 2008 (download).

In my installation, Team Foundation Server 2008 is working properly, but i can't access to my project portals in Sharepoint Services 3.0. I've checked the WSS Central Administration and i've noticed that Windows SharePoint Services Web Application is on status Upgrading.

If after upgrading to WSS 3.0 you are experiencing the same problem, run the following command:
stsadm -o provisionservice -action start -servicetype SPWebService

After this, i can now see the project portal, but since i'm using the Scrum for Team System (Cochango) template, i cannot see the graphics and reports. After all the work i was congratulated with the following message:

The Registry HKLM\Software\Microsoft\VisualStudio\8.0\TeamFoundation\ReportServer is not set

To fix this, open regedit and navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\TeamFoundation\ReportServer. If you don't have the ReportServer entry add it. Now add a new String Value with the name Key, and the values should be the address of your reporting server, http://sol-tfs01:ReportServer in my case.

Everything is now up and running, and i'm very exciting to listen my developer team comments.

Hope this helps!

Microsoft Techdays 2008

This year i was invited to be a speaker on Techdays 2008, the event for Microsoft IT Professionals in Portugal.

The session where i will be speaking is about TFS 2008 Team Build.

This is something that i really like, things like continuous integration, automated tests, is in fact, precedures that shoul be present in every development team.

I'm using Cruise Control as build server since 2005, but recently i moved to Team Foundation Server 2008, wich had been great improvements, and i will love to share this experience with you.

Don't miss this session.

Tuesday, February 12, 2008

Ajax resources and samples

I would like to share this fantastic website with tons of cool examples of controls using AJAX

Check this url http://www.ajaxrain.com.

Happy coding!

AjaxControlToolkit Autocomplete Extender

Once a while in my web projects i need to use some controls from the AjaxControlToolkit.

I'm always forgotting the web service configuration, include the [ScriptService] and [ScriptMethod] attributes in the class and in the web methods.

I found a very good example of how to use the autocomplete extender from AjaxControlTookit.

Chek it at http://mattberseth.com/blog/2007/12/creating_a_google_suggest_styl.html

Happy coding!

Monday, February 11, 2008

Google Map Control for ASP.Net

In th project that i'm now evolved, we have a lot of integration with Google Maps. Basically we have addresses of the houses, and we want to show a little map, with their location... Nothing better than Google Maps Geocoding to solve this issue.

I was tired of write tons of javascript to interact with GMap.

Finnaly i found something that i was looking for a long time: a Google Map Control for ASP.Net.

This control is hosted at Codeplex, and has a very good managed code API, very easy to use, and a lot of functionality.

If you need to use Google Maps in your Asp.Net applications, this is something that you shouldn't miss.

Saturday, February 9, 2008

Installing SQL Server 2005 on Windows Vista

After 1 year working with Windows Vista, i've decided to reinstall my laptop.

At the time of SQL Server 2005 Developer Edition installation, i've receive a warning with the following message:

"Microsoft Internet Information Services (IIS) is either not installed or is disabled. IIS is required by some SQL Server features. Without IIS, some SQL Server features will not be available for installation. To install all SQL Server features, install IIS from Add or Remove Programs in Control Panel or enable the IIS service through the Control Panel if it is already installed, and then run SQL Server Setup again. For a list of features that depend on IIS, see Features Supported by Editions of SQL Server in Books Online."

I've checked, and IIS is already installed. What did i missed???

After some googling i've found this article in Microsft website, that explains what features should be installed prior to a fresh SQL Server 2005 installation.

http://support.microsoft.com/kb/920201

Notice that IIS is only required if you need to install the Reporting Server Component.