Skip to main content

Website Update

So it is time again for my website to get some attention. So in addition to upgrading from Drupal 5.7 to 6.2 (and the only module I couldn't get was twitter, no big loss), and updating Gallery2 to it's newest version, it also got a new theme and logo
The logo still needs a bit of tweaking though...

One of the other motivators besides the software upgrades, and the fact with me finishing Assassins Creed (which has left a void) was the old site (or theme, not sure) did not render correctly at all in IE 8! So this new one renders very well in IE 8 and FF.

Let me know if you like the new look more or less! If Google can get so much attention for just changing their favicon, maybe I could get some too... LOL
 

The Zen of Hosting: Part 1 - Who, What, Where, Why, and How

So I haven't posted for way too long due to a massive new initiative which I have been involved in, namely setting up a hosting solution provider called VirtualBox. This has been a very enlightening experience in terms of many new skills which I have learnt and a much deeper understanding of the products I worked with. So as a personal outcome from that investment I have written a series on what I have learnt. 

This series is kinda different from my normal blog posts, for a number of reasons. Firstly this is one of the few times I have written the posts out long before posting them (normally I post as I think). This has given me the chance to re-read them and change them so hopefully the quality of this is higher (as a side I used Microsoft OneNote to write this). The length of each post in this series is also MUCH longer than my normal (average of 450 words per post) and lastly this is one of the few times I actually blog about what I doing at work and mention some of the exact products, customers and technologies I am involved with. The reason for this is not because normally I am not proud of what I do or who I do it with, but because I like to keep things separate, but this time I am so excited (kid on xmas eve type) that I really can't not share what has been accomplished by the small team who I feel privileged to work with on this.

Firstly what is a hosting solution provider? Well traditionally when you have wanted an application, like Microsoft Exchange you would go out buy a server, buy the licenses, get an IT Pro in to do the install and configuration. Well a hosting solution provider (HSP) changes the entire game by removing the buying from the traditional way. So you want Microsoft Exchange and you have it, instantly!

Why would anyone go this route? Well there is a couple of benefits for anyone such as turn around time of minutes from needing it to having it ready, getting proven systems in place from day one or having a guide on how your environment is setup which means as you bring on staff you just give them the guide and in a few days of reading and asking questions (and lots of googling) they have a wealth of understanding of the environment from the package (better yet if you can afford a few lab machines and run Hyper-V or Virtual Server they could even do the deployment of the environment to really understand it). But if you are a point haired boss type there is one very important business factor... MONEY.

So for the SME market the significant cost benefits come from them as paying for only what you consume. Licensing for Exchange for instance lets you purchase mail boxes with no support for calendars or tasks (i.e. Just mail) if that's all you need for just a few dollars per month. The HSP also will invest far more in hardware and staff thus providing faster, bigger, better (insert your favourite positive adjective here) that what the SME company could get themselves.

For the enterprise customer an HSP can be a very different route in that it allows an IT dept to move away from the traditional model and allows them to set themselves up as an HSP for the rest of the business. This means that they can lower cost of licensing, properly manage budgets between them and other departments, react quicker to business needs, and lastly once they have moved through the life cycle of setting this could actually allow them to start to offer the services outside the business allowing them to stop being a cost centre and start to become a revenue centre.

That's enough from me sounding like a business expert, so what can you expect in the series coming up? Well we will next tackle the overviews of the system, and then start to dive into some of the cooler technologies.

MSCRM Workflow Stopping, IFD cannot login, Async Service Crashing

Eek, my first post in 50 days. I have been very busy on a new business venture which is very exciting from an offering and technology view. So lots of long nights with not enough time to blog. I will be posting a huge multipart blog on the expierences of that in the near future. Add to that finding out I will be a parent in Jan '09 it's been extra hectic.

Anyway on to the my new favorite issue of MSCRM 4.0, the async service crashing. Should it crash it takes down lots of features, to name some big ones:
  • Imports
  • Data Duplication
  • Workflow
  • Logging into a IFD deployment via the forms login
Well this can occur if you have added a new deployment to your MSCRM deployment which contained workflows which were running. These rogue workflows crash async with a lovely message in the eventlog (The entity with ObjectTypeCode = 0 was not found in the MetadataCache.). Well Microsoft have released a hotfix for this issue, which is available at http://support.microsoft.com/kb/950680/en-us

MSCRM 4.0 Error: Invalid Action

So I had a great surprise this morning walking into the office, MSCRM 4.0 greated me with Invalid Action, The Selected Action Was Not Valid. This is after a long weekend with no one doing anything, or any system changes. So first I check if it's my machine only, nope everyone. Next I check if the server does it to itself by logging on to the server and opening MSCRM, still same problem. IIS reset, same problem. Check services, same problem. Check if SQL is up and the database is fine, yip.

Then suddenly someone mentions an issue on MOSS where they can't edit a document... I wonder if it's related so I log on to the SQL box and check the disk space and (DUM DUM DUM!!) there is no space left on the disk drive for the databases. A quick clean of the transaction logs and the system is back up and running great.

Making ASP.NET pages look like MSCRM

(This is a repost of the content which was previously available on the IW community site)

Microsoft CRM supports many customizations, some of them are simple (adding a field) while others (also simple to do) actually allow you to embed other web pages view IFrames or add new buttons to the tool bar or the links on the left hand side of the window. This is great as part of the ability to link pages in is that CRM automatically passes various parameters to the web page that is being referenced, including the Guid and type of object. This means if you build a web page your web page gets context information for free (no weird JavaScript to navigate to it).

The problem seen at many customers is that these pages look nothing like CRM. This would make sense if you are embedding something like Live Maps, but if you are building the pages yourself why not make them look like CRM. This improves the user experience significantly and really isn't hard to do. In fact Microsoft has shipped a sample in the SDK for you. The problem is this is a HTML page and when converting to ASP.NET you will hit a few problems. However it is a simple 9 quick steps to get it right. So let's get into how to make your ASP.NET page look like Microsoft CRM.
  1. Once you have loaded your project (I am assuming you are using a new asp.net page which has had nothing done to it), navigate to where you have extracted the CRM SDK, and under it you will find a style sheet you will need. It can be found in: CRM SDK\sdk samples\stylesheet\template.css. Add this to your project.
  2. Next drag the CSS file from the solution explorer onto the default.aspx (I am assuming that Visual Studio is in design view and not source view). If you get this right the background will go that lovely light blue.
  3. Next open the sample html page (CRM SDK\sdk samples\stylesheet\sample.htm) in your favorite text editor and copy the content from opening body tag to closing body tag. Now switch VS to source mode and replace the asp.net pages content from opening body tag to closing body tag with the copied source.
  4. When you try to switch back to design view you will get 11 errors. Thankfully it is easy to fix those. li>
  5. The first fix is to add the runat attribute to the form tab and move it up two lines so it appears above the table tag. So it looks like the image here.
  6. Next move line 245 to after the closing table tab on the following line so it looks like the image here.
  7. Now remove line 15 (should just have </td> in it).
  8. You should be able to get back to design view! But you will be greeted by something not very CRM like still
  9. Lastly switch back to source and go to line 3 (should start with: <!DOCTYPE) and remove it. This line controls if Internet Explorer works in standards compliant mode or quirks mode, which is a non-standard rendering method. As CRM works solely on IE on Windows, there was no need for compliancy and thus the designers didn't include this and used non-compliant tricks to improve the UI, like tables expanding to but not exceeding 100% of screen height and the gradient effects. <
If you now switch into design mode you will see the pretty CRM pages. What I would suggest is to now hit Ctrl+E,D in source mode which will format the HTML to be neat (great little feature in VS 2005 this is. It also works on code and XML) and save this page somewhere on your machine as a base so next time you don't need to do the cleanup to get it to work.

Undocumented MSCRM 4.0 Requirement

Just what I love at 4pm on a Friday afternoon, finding a undocumented requirement for a product while sitting in front of the client. Anyway, it appears that the location of the MSCRM Monitoring (what ever that is, I found this by checking the install logs) is set in the installer to C:\Program Files regardless where you put MSCRM itself. Even worse is that it is not <System Drive>\Program Files, it is C:\Program Files. I have NO C: on this box (dunno why, but thats what IT provided).
I suspect you can work around this by creating an unattended installation (see the implementation guide for creating the XML files for that), but I'm actually lucky enough to have an empty second drive I can change the drive letter to C (using disk manager).

Add to this that nothing actually appears on C: once I fixed the issue (assuming it is checking for something, and that is failing and thus the issue). So all that I have left to do is:

AARRRRRGGGHHHHHHH

MSCRM 4.0 IFD Manager - Stupid Tip

I still make stupid mistakes, and I don't think that will change anytime soon. I grabbed a copy of the released IFD tool and tried to use it a couple of times, each time it crashed. I tried it on different machines with different OS's and no joy. I thought the download was bad so I downloaded it again. I almost even posted to the newsgroups for help (not having time is my saving grace). If you extract the tool and it just dies immediately, you may be like me and didn't read the manual.

It clearly states that it should be extracted to a specific folder, namely drive:\Program Files\Microsoft Dynamics CRM\Tools (see point 2). Once in there is works like a dream.

Workflow doesn't work, Imports never happen, emails don't flow and Outlook clients cannot connect - Reloaded

Update 23 June 2008: See http://www.sadev.co.za/node/196 for an official way to do this.

In my previous post on Workflow doesn't work, Imports never happen, emails don't flow and Outlook clients cannot connect I went through the fix by changing SQL. I never liked that fix because it breaks rule one of MSCRM, never edit the database directly. It also has the high chance of screwing up your deployment (quote in the wrong place, or highlight skills lacking in SQL), so I finally found an offically supported tool which does the exact same thing: The IFD tool

What is great about the release version of the tool is it allows you to change those settings in a On Premise scenario only (the bottom set of items), so you don't need to suddenly switch to IFD with the tool to fix the issue. So definitely if you are having a problem, rather use the tool than the SQL statement.

Request IP Address has different address family from network address.

Here is a new great error for MSCRM 4.0 "Request IP Address has different address family from network address.". You may get this when openning MSCRM. You may also get this in the event log. If you are seeing it in the event log it means that Workflow doesn't work, Imports never happen, emails don't flow and Outlook clients cannot connect. Lastly it is likely you are using Windows 2008 (although I suspect this can hit Win2k3).

Well what is happening is that MSCRM 4.0 doesn't work with IPv6 (as pointed out at http://support.microsoft.com/kb/950100), but what is happening is that the names are resolving internally to IPv6 addresses. The easy way to test is ping the server name and localhost for instance, if you get an IPv6 ip address then welcome to the black parade.

The fix for this is simple, open your hosts files (<system drive>:\windows\system32\drivers\etc\hosts) and add a line for your server name there with an IPv4 address. Save and ping again to make sure it is working. Once it is, do an IISReset and it will be working!

IE8 - The developers best friend

There are a few good reasons to use IE 8 as a developer but yesterday I found my new favorite. When using Visual Studio 2008 and running the site a new section appears in the solution explorer called Script Documents. In this little gem of a folder is the pages you are looking at, the scripts etc... all as the server provided them to the browser! Meaning if you open the .aspx page there is no ASP controls, just normal HTML. If you do inserts of JavaScript via OnInit, that is there as well. Amazing!

File attachments
cool.png (13.01 KB)