Saturday, January 9, 2010

Deploying Microsoft Dynamics Sure Step Project SharePoint Site

Because we run several Dynamics AX projects in parallel, with many more to come, we decided to start using more and more the Microsoft methodology: Sure Step. The 2010 version of the Microsoft Dynamics Sure Step client allows you to create a local project repository or instead a SharePoint site on your SharePoint portal.

The portal deployment wizard is quite straightforward and if you are the primary administrator of your SharePoint site collection then there should not be any problem.

Except we ran into a rather strange issue. While the Sure Step wizard showed we have the right permissions to create a site, we ran immediately into an error which caused the SharePoint site creation to fail and simply stated that it could not be created.

After checking the Events and logs on the SharePoint site, the Events and firewall settings on the local computers (we tried from several computers), and even the network firewalls settings, we were still stuck with no clue. That error message remained cryptic and sadly, googling it did not bring any help as all words are far too generic.

We then decided to use fiddler to at least check if the problem was on the local computer or on the server by checking where it will stop. That helped a lot. Through Fiddler, we spotted a returned error message stating that the Sure Step Project Site.stp template could not be found. So we manually uploaded it in the Site Template Gallery and restarted the Sure Step Project Wizard. This time, the Sure Step Project site was perfectly deployed and the result can be seen below, using a Dynamics AX 4.0 project as example.

Monday, October 19, 2009

Performance Comparison of Major Web Browsers

I just finished reading this article about performance comparison of major web browser by Jacob Gube and wondered if everything was said. Unsurprisingly, Internet Explorer is presented as the worst and slowest browser. By the way, I often consider that people tend to appreciate criticizing when talking about Microsoft products in general.

But in the case were the tests complete ? It talked about speed, CPU, and read access time. But nothing about memory consumption. I jumped on the gun, took a look at my dozen tabs opened on Firefox and opened them as well under Internet Explorer 8 (IE8) and Chrome.

As you can see, Firefox momory consumption is bundled inside a single process while IE8 and Chrome creates several processes with different memory consumption.














But after summing all results, I was astonished to see that Internet Explorer 8 is the best browser concerning memory consumption. The fancy Excel graphic below perfectly illustrate that fact.

There is no doubt that IE 8 requires less memory than Chrome or Firefox.

For the sake of fairness, here are the types of websites I used for the test. All of them are common sites I use on a day-to-day basis:
  • iGoogle
  • Two bugtrackers: Mantis and Jira
  • Two tabs concerned games on Kongregate.com
  • A PHPMyAdmin and a MediaWiki pages
  • A page on my online game (MMOG): Star Wars Combine
  • A web page from the MySQL site, one from an online banking, one from a newspaper with forums, and that blog on sixrevisions.com
In my next post, I will maybe make performance and statistics reports about the number of crashes of each browser. ;)

Monday, August 31, 2009

Upgrading MS BI to SQL 2008: Do not underestimate the Power of the Dark Side

For our BI setup running under Microsoft BI 2005, we have an environment that comes straights from scholar manual. We have a development environment (DEV), composed of 4 servers: two are SQL 2005 database servers (staging database and a data warehouse ), one server is a SharePoint 2007 server hosting also the SharePoint database (SQL 2005) and a Visual Studio server. Similarly, we have a testing environment (TEST) composed of 3 servers: a staging database, a data warehouse, and a SharePoint server hosting the SharePoint database as well. Both the DEV and the TEST environments are virtualized. Then we have our production environment (PROD) composed of 4 physical servers: a staging server, a data warehouse, a SharePoint server, and a SharePoint database server. The only difference being that in production, we have separated the SharePoint front layer from the database layer for performance reasons.

Developers develop in the DEV environment and technical approvals are done there. Testers test in the TEST environment, which is also used for the functional approvals. Production data run in the production environment. So far so good and nothing new. I just described an out-of-the-manual architectural setup. All databases are up-to-date SQL 2005 and the SharePoint version is 2007.

We had planned to upgrade this environment to Microsoft SQL 2008 and thought it was quite well planned. We had waited for SQL 2008 SP1 to be released. We had waited for our sub-contractor to accumulate some upgrade experience and finally decided to migrate progressively. During last July, we migrated our DEV environment. Everything went smoothly. Some of us then went on vacations. The migration of our TEST environment was planned for mid-August and took place as expected. All functional tests we had prepared were passed without any problem. As this point, and as all lights were green, I decided to authorize the migration of the PROD environment.

And guess what ? Everything went fine with only one unexplained manual reboot. We later even noticed a small but noticeable performance gain with SQL 2008.

On the next days, I got an alarming phone call from the IT operations department. They reported that since the SQL upgrade all production servers kept rebooting every 2 to 12 hours without apparent reasons.

We then immediately started our investigations but quickly discovered that there was no logged Windows event or error message. A closeup monitoring of SQL did not give us any clue. A couple of days were necessary to find out that the reboots were caused by the monitoring systems because the servers were freezing for more than 10 minutes. Still, we had no idea why they were freezing. It only happened on the physical PROD servers, not on the virtual DEV or TEST servers.

The main difference between virtual and physical machines concerns the underlying drivers. After a couple of days, we upgraded several drivers on one of the blade servers: HBA StorPot card, Ilo2 card firmware, blade power management control and various other minor drivers. It worked and fixed the problem.

Conclusion of the story ? You cannot foresee everything and even if you work by the book, shit may happen. The good news is that we only lost 3 days with a very limited impact on end-users.

Wednesday, August 5, 2009

Picturing SharePoint Lists

For one of my recent SharePoint projects, I have been asked to create lists where an image could be included to illustrate the content of each list entry. As each entry will have a picture attached to it, the picture upload process had to be quite straightforward and user-friendly.

I had first pointed my thoughts toward a picture library but soon discovered that it did not correspond totally to my needs. After some more googling, I found the Enhanced picture custome type on CodePlex. Here then comes the necessary complete instructions to install and parametize this nice add-on.

1/ As prerequisite, you need to install ASP.NET AJAX on your SharePoint (MOSS 2007 or WSS 3.0). This operation is made extremely easy thanks to the detailed instructions on Mike Ammerlaan's blog post regarding Installing ASP.NET AJAX on SharePoint. Ultimately, it all comes down to downloading an EXE file, running it, then copying/pasting XML from the blog post into the web.config file of your SharePoint and finishing with an iisreset command.

2/ Once AJAX has been installed, download the Enhanced picture custome type WSP file and install it using the following commands:
stsadm -o addsolution -filename .wsp
stsadm -o deploysolution -name .wsp -allowgacdeployment -url http://sitename -immediate -force

(The -force attribute is necessary if some elements are already installed on your SharePoint.)

3/ Go to your site settings and then under site collection features, activate the ImageEnhancer feature.

4/ Go to your custom list, and add another field of the newly available type Enhanced Image.

5/ On your site, create a picture library. It will be used to store the pictures but you do not need to manage it or create any specific fields for it.

6/ Go back to your list and under the general settings, click on Enhanced Image Picture Library. Select the picture library you created before and click ok.

7/ That's it, you're ready to upload picture inside your custom list with maximal effects and minimal efforts.

Tuesday, June 23, 2009

How to include SharePoint Document Version in your File ?

Since I started using SharePoint (MOSS & WSS), I wondered how I could include the version number provider by a SharePoint document library into the document itself, to ensure some cohesion help people to easily identify the latest version, particularly in the case of printed documents.

I discovered the following easy tip, which works for SharePoint 2007 and Office 2007.

  • In your documents list, go to Settings then Information management policy settings.

  • Under Specify a policy, select Define a policy and click OK.

  • In the labels section, enable labels and in the format field, enter something like: Version: {Version}.

  • Click ok.

Now go back to any of the documents of that library. Open it and edit it then go to insert, quick parts, document property and select Labels. Save your document, close it, then reopen it (in read only) and voilĂ , the SharePoint version will be included. For example, it will look like: Version: 1.4.

Note that it only works for Office 2007 documents (docx format for example) and MOSS.

Saturday, June 20, 2009

Ten ways to sink an IT project

During the recent Project Management Institute (PMI) congress from last May, Andre Chrome made an interesting show about ten ways to sink your project. And of course it applies perfectly to any IT project and I modified them sightly for this purpose.

  1. Be vague: Do not define any detailed scope that would force you to implement what you promised.

  2. Begin the execution ASAP. Why make a planning when you already know lots of changes will happen.

  3. Focus solely on your team. Clients will only interfere with your work.

  4. Forgot about code documentation and instead prefer mutual trust with your client.

  5. Go beyond your client expectations. As clients expect always more and fancy features, you will sign new contracts that will compensate for your losses and bugs.

  6. Risk management ? By definition, risk is uncertain. Why bother planning for risk.

  7. Quality is only important at the end of the project. The client will only look at the GUI anyway.

  8. Avoid bureaucracy. Paperwork is a waste of (your) time.

  9. Make sure your team works overtime. As IT project are overdue anyway, put pressure on your team from the start.

  10. Throw away paper documents when the project is over. Paper files takes place in your office and none ever read them.


Here is the video of this presentation:

Thursday, June 4, 2009

Server Fault: StackOverflow for Servers Issues

Jeff Atwood and Joel Spolsky have released the public beta of Server Fault. Based on their StackOverflow platform, it contains all existing features that made you love (or hate) StackOverflow.

While StackOverflow is oriented toward programmers, Server Fault aims to bring solutions to System, servers, and network administrators. Let's hope it will work as well. I cannot wait to see my first question answered.