Aaron Elder's WebLog

Microsoft CRM and the wonderful world of making it work for you...

  • Goodbye and Hello

    While this announcement is a little delayed, I am happy to finally announce that as of October 2004, I have left Microsoft Corporation.  Even though I am leaving Microsoft, I am my no means leaving the Microsoft CRM space.  To the contrary, Microsoft CRM will be a core competency of the company I am joining.

    After spending 3 ½ long years (these where not 40 hour work weeks) as a lead of the Microsoft Application Team, I am joining the management team of
    Invoke Systems as Director of Software Development.  One of my primary goals will be to build a team of top-notch Microsoft CRM and custom web application developers that will be focused on developing custom web-based or MSCRM-based solutions for our clients.

    While at Microsoft I was a key development lead and software developer on Microsoft CRM v1.0, v1.2 and about 2/3's of CRM 2005.  Along with me; Jason Hunt and Shannon Hunt (also of the MSCRM Team) are also moving to Invoke Systems.  Together we represent the most experienced Microsoft CRM development team outside of Microsoft.

    Returning to Invoke Systems definitely feels like a homecoming, I first joined the parent of Invoke Systems almost 8 years ago.  Later, Invoke actually funded and spun-off iCommunciate which was purchased by Microsoft in April, 2001; which is how I came to work for Microsoft.

    I will continue to post on my blog and the CRM newsgroups as time permits.

    Aaron Elder
    Invoke Systems
    Director of Software Development
    aaron.elder@invokesystems.com

    This posting is provided "AS IS" with no warranties, and confers no rights.

  • What About It? (The history of Microsoft CRM About Boxes)

    This is another fun one... I was going through some old files and came across a collection of Microsoft CRM About Box concepts.  Some of these were used for internal builds, others were used in external Alpha/Beta builds and still others have never been seen before in the wild!

    Enjoy:

    Disclaimer:
    This posting is provided "AS IS" with no warranties, and confers no rights.

  • Microsoft CRM v1.x ISV.Config, Dialogs & Getting to your opener!

    Well I have to admit, we missed this one.  By Design, Internet Explorer does not allow you to access the "Dialog's opener" via window.opener.  The only supported work around is to pass a reference to the opening window via Dialog Arguments.  The problem is that in v1.0 and v1.2 of Microsoft CRM we always pass NULL in the Dialog's Arguments property.  This has been fixed in CRM 2005, but I wanted to publish a "unsupported" hack that you can do to make this work in v1.x.

    Warning: This change is unsupported and will be stomped on during a v1.0 to v1.2 or v2.0 upgrade.  The good news is that since the hack I am showing you is very similar to our CRM 2005 fix, the code you write in your files that depend on this should work just fine in both v1.x (with hack) and in CRM 2005 (no promises of course).

    Here are the steps:

    1.) Apply the "hack" to the openIsvWin() method in /wwwroot/_common/scripts/global.js - The change needs to happen around line number 152.  Be sure to back this file up before making any changes... upgrades/hotfixes/etc. will write over any changes that you make to this file.

    Old Code:

      case "1": window.showModalDialog(sPath, null, sParams);  break;
      case "2": window.showModelessDialog(sPath, null, sParams); break;

    New Code:

      case "1": window.showModalDialog(sPath, window, sParams);  break;
      case "2": window.showModelessDialog(sPath, window, sParams); break;

    2.) Add a button, menu item, etc. to ISV.Config and set the WinMode property to either 1 or 2 (for dialogs)

    3.) In your dialog add code that accesses the "window.opener" - Example:

     // Access to the parent Window using this method -SHOULD- still work in CRM 2005
     // Although the parent page's HTML / Structure will change.

     function window.onload()
     {
           alert(window.dialogArguments.document.body.innerHTML);
     }

    4.) Have fun working with the window opener.  This is very useful if you need to access form variables, etc. on the parent window of your modal dialog that will perform an action.


    Aaron Elder
    Microsoft Customer Relationship Management
    Core Application Development Team

    Disclaimer:
    This posting is provided "AS IS" with no warranties, and confers no rights.

     

  • Final User Interface Article Posted (Part 4)

    I am planning on writing a series of articles about the Microsoft CRM v1.x User Interface.  I have just posted "Part 4 of 4". Check it out in the "User Interface" Articles section or here:

    http://blogs.msdn.com/aaronel/articles/230509.aspx

    Disclaimer:
    This posting is provided "AS IS" with no warranties, and confers no rights.
  • More User Interface Articles Posted (Parts 2 & 3)

    I am planning on writing a series of articles about the Microsoft CRM v1.x User Interface.  I have just posted "Part 2 of 4" and "Part 3 of 4" (the juicy one).

    Check them out in the "User Interface" Articles section or here:

    http://blogs.msdn.com/aaronel/articles/230420.aspx

    http://blogs.msdn.com/aaronel/articles/230427.aspx

    Disclaimer:
    This posting is provided "AS IS" with no warranties, and confers no rights.
  • Microsoft CRM User Interface Part 1 of 4

    I am planning on writing a series of articles about the Microsoft CRM v1.x User Interface.  I have just posted "Part 1 of 4". Check it out in the "User Interface" Articles section or here: http://blogs.msdn.com/aaronel/articles/230014.aspx

    Disclaimer:
    This posting is provided "AS IS" with no warranties, and confers no rights.

     

  • Newsgroups are good!

    By the way, I thought I would call out that I haven't had a chance to post as much as I would like.  However, I have been rather active on the Microsoft CRM Public Newsgroups.  If you have a question about CRM or developing for CRM I really recommend checking out these groups:

    news://microsoft.public.crm/
    news://microsoft.public.crm.development/

    Disclaimer:
    This posting is provided "AS IS" with no warranties, and confers no rights.

  • Night of the living dead logos...

    This is a fun one... I was going through some old files and came across a collection of Microsoft CRM "logos that never were".  Some of these were used for internal builds, others were used in external Alpha/Beta builds and still others have never been seen before in the wild!

    Enjoy:


    Disclaimer:
    This posting is provided "AS IS" with no warranties, and confers no rights.

  • About me...

    Since this is my second post, let me begin by telling you about myself.  I am as much of a software developer as I am a graphic artist.  In fact, the reason I started developing was to show off the graphics that I was designing.

     

    While I had dabbled with computers as a kid, High school is really where things got going.  Like many students I got my start on a Macintosh Plus to be exact, then later moved onto a Macintosh LC.  I used the Macintosh to lay out our school’s year book and to write little HyperCard applications to impress my friends.  Unfortunately, when it came time to actually go out and buy a computer for myself the darn things were just way too expensive… so I got myself my first X86 (on a paper route salary) and was off to learn a new platform.  Much time during my high school years was spent developing 3D animations set to music (3D Studio, MMPlay and AutoDesk Animator Pro), designing our school’s yearbook (PageMaker, PhotoShop), working on our school’s weekly TV program (Pantherama, which I directed and produced my senior year), working on sound and lights for the drama club, working at Kinko’s as a Desktop Publisher, and fixing people’s PCs (a little consulting business I had on the side).

     

    This wide base of expertise enabled me to get my first job in the field working for FTI (Forensic Technologies International) Corporation in Annapolis, Maryland (my home town).  I worked in the “production” group as a team leader developing multimedia presentations and delivery systems for large corporate trials.  This of course was very exciting, after all… how many 18 year olds get do develop applications, animations and graphics for multiple Fortune 500 companies?

     

    I later moved to the Alpha Computing Group in Baltimore which is where I really grew my interest and expertise in web-application development.  I have always prided myself on being able to deliver as close to a Win32 experience as possible via a web browser. 

     

    Alpha later spun off a product development team which later went on to develop iCommunicate.  I made up about a fifth of the core development team and also owned the user interface.

     

    Finally in April of 2001, Microsoft Corporation came to town and bought iCommunicate.  I was packed up and shipped out to Redmond, where I have been living ever since.

     

    Since working at Microsoft, I have been the lead developer in charge of the Application Framework.  When I first joined the team the “application” was literally a mess, this of course was “ok” because at the time the application was referred to only as the “reference app”.  The application that you all know and dare I say love, was originally only going to be an MSDN example of what you could build on top of the CRM Platform!

     

    I knew that if I was going to be at all happy during the next couple years, two things had to change.  First, the current architecture had to go… just rendering a basic account form (without data-binding, security or customizability) was absurdly slow, pulling in just 12 Requests Per Second (RPS) on a dual processor box.  The other thing was that the UI of this “reference app” just flat out sucked.  When I mentioned during a meeting that I wanted to be both a UI designer and developer, there was literally laughter (and they weren’t laughing with me).

     

    So I set out to re-write the application, with the help of my good friend Jason Hunt… I designed a new UI and we designed a new framework on which to build our forms and grids (Metamorphic XSL).  Both were a big hit, the UI was light years ahead of the original (and looked surprising like iCommunicate’s J).  The new metamorphic XSL model allowed our prototype to render fully customizable forms with security and data-binding at a blazing pace of 400 RPS on a dual processor.  This made our fully functional prototype over 30X as fast as the less functional “reference app”.  To make the rest of a long and boring sorry short… the prototype became the framework and, after 2 years of filthy late nights and a lot of hard work by most of the CRM team, v1.0 shipped.

     

    Disclaimer:
    This posting is provided "AS IS" with no warranties, and confers no rights.

  • Welcome

    Welcome to the wonderful world of Microsoft CRM Development.  I hope to use this blog to give everyone a view into my world of developing on the Microsoft CRM Platform and within the CRM Application Framework.

    Disclaimer:
    This posting is provided "AS IS" with no warranties, and confers no rights.


© 2008 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker