Philip Richardson

The Cloud: Iacta alea est

CRM Plugin Tool

clock March 31, 2008 18:57 by author philip

I added my little CRM Plugin Tool to the CRM 4.0 Customization 2.0.0.1 release.

The tool can be launched as a standalone exe or as a Visual Studio External Tool (it takes a file path as an optional argument). Use the tool to discover useful information about your Plugin Assemblies (Name, Version, Public Key Token, Culture and the Base 64 encoded string - for the Plugin Content property).

image

The code to do this is ultra simple - using some basic Reflection. It helps to know the right order of the Assembly Properties.

FileInfo fi = new FileInfo(path);
Assembly assembly = Assembly.LoadFile(path);
byte[] bytes = File.ReadAllBytes(path);
string[] assemblyProp = assembly.GetName().FullName.Split(",= ".ToCharArray(),
StringSplitOptions.RemoveEmptyEntries);
textBoxBase64.Text = Convert.ToBase64String(bytes);
textBoxCulture.Text = assemblyProp[4];
textBoxName.Text = assemblyProp[0];
textBoxPublicKeyToken.Text = assemblyProp[6];
textBoxVersion.Text = assemblyProp[2];
textBoxPath.Text = fi.FullName;

 

Enjoy!

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


CRM 4.0 Customization Version Add-In

clock March 31, 2008 16:43 by author philip

I've just uploaded the CRM 4.0 Customization Version Add-In. This little Add-In helps CRM developers keep a record of the customizations on their systems. I've included the source code and a little configuration app - so it's super easy to install.

You can find the project's home page here: http://code.msdn.microsoft.com/crmversion.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


CRM Books

clock March 27, 2008 22:26 by author philip

There are lots of great dead-tree books out there for CRM professionals. Here is sampling of some of the more useful tomes:


Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


8 Things Meme

clock March 21, 2008 14:50 by author philip

Dave L tagged me with the latest blogging meme.

Meme Rules:

  1. Each player starts with eight random facts/habits about themselves.
  2. People who are tagged need to write a post on their own blog (about their eight things) and post these rules.
  3. At the end of your blog, you need to choose eight people to get tagged and list their names.
  4. Don’t forget to leave them a comment telling them they’re tagged, and to read your blog.

My 8 things:

  1. My email box never has more than 20 items for longer than 12 hours (ie. I'm an email addict).
  2. I have a bad habit of pushing my machines to their limit (especially with the OS). This leads to frequent OS rebuilds.
  3. I use Google Reader and I love it.
  4. I use Gmail and I love it.
  5. I used be a hardcore Apple fan (when I was ten years old programming my Apple IIc). I have a strong feeling that 'my best Apple days' may be ahead of me.
  6. From Mid-2004 to Mid-2007 I didn't own a mobile phone.
  7. I didn't learn to drive until I was 22 (my father didn't learn to drive until he was 59).
  8. I refuse to post pictures of my son on the internet. I think it's actually a form of child cruelty for parents to define a child's 'internet imprint' before the child can have a say in it.

Tagged:

Menno, Alex, Mark, Michael, Humberto, Adam, Brian, Jim

BTW: I was too lazy to leave comments for people.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Updating my CRM 3.0 Sample Applications

clock March 21, 2008 12:49 by author philip

Update: It's uploaded.

I'm in the progress of slowly updating some of my CRM 3.0 samples and publicly releasing some others which I built as internal proof of concept tools. The add-in consists of a custom entity and a plugin. In addition to these 'raw' components I have a configuration application which connects to CRM, creates the entity, adds a custom icon, modifies the sitemap menu and uploads the plugin.

In the next few days I'll conduct the required security tests on the plugin and entity XML and upload it to code.msdn.microsoft.com. Like other projects located there the source code will available and licensed under the Microsoft Public License (Ms-PL).

My development methodology for this was pretty basic:

  • Determine the Scenario: Customizers often make many changes to the customizations in a CRM org. It can be time consuming to constantly export the customizations and save them somewhere.
  • Describe the Solution: The Customizer (or end user in this case) simply creates a new 'Version' record. The system then automatically attaches a zip file containing the customizations currently on the system to this record.
  • Code the core Solution: Created the entity with the UI. Write the plugin. The Plugin Registration Tool is invaluable for testing and debugging plugins.
  • Create the Configuration App: Using my configuration code I integrate the solution components (entity, plugin etc). Don't underestimate the work involved here. Ensuring that your solution can be deployed seamlessly alongside other solutions is important.
  • Testing: FX Cop, Unit Testing, Manual Testing etc etc. I also enable tracing on my CRM machine during testing to look for any abnormal activity.
  • Documentation: In this case it's a basic Wiki page on the code.msdn.microsoft.com resource page. Wiki is probably the best way to document software IMHO. I'm not a fan of old style help documents - even if you don't intend to make your Wiki publicly editable it's a far superior option compared to a semi-static doc file.

I didn't opt for an reconfiguration tool for this solution. For those who wish to remove the solution they can simply delete the Customization Version entity. For more advanced solutions the inclusion of a reconfiguration/removal application is highly advised.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Mac Book Air

clock March 20, 2008 23:47 by author philip

I saw the Mac Book Air today at the Apple Store. Seriously disappointed. Keyboard felt weird, the scroll pad area seemed 'too big' and the machine's performance was sluggish at best.

Disclaimer: I'm an Apple shareholder (and yes I bought before the shares crashed).

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Not enough Popcorn benefits

clock March 13, 2008 22:47 by author philip

Netflix is clearly a workplace that understands benefits. This is the type of assistance I require on a daily basis.

http://jobs.netflix.com/DetailFlix.asp?flix2051

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Sign in

Feed

 RSS Feed

Powered by FeedBurner

Inside CRM Top 20 Bloggers

I'm at the #4 spot.

Contact

Work Email: philipri@microsoft.com

Personal Email: philip@philiprichardson.org

View Philip Richardson's profile on LinkedIn

Basecamp project management and collaboration

Join WebHost4Life.com

Categories


Search

Archive

Calendar

<<  July 2008  >>
SuMoTuWeThFrSa
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway. All postings and code samples are provided 'AS IS' with no warranties, and confers no rights.

© Copyright 2008