Welcome to MSDN Blogs Sign in | Join | Help

http://msdn.microsoft.com/architecture/saas

New site went live today...and what could be more relevant to the CRM SaaS world than the first article posted on the front page.

Multi-Tenant Data Architecture
In order to take advantage of the benefits of SaaS, an organization must surrender a level of control over its own data, trusting the SaaS vendor to keep it safe and away from prying eyes. To earn this trust, a prospective SaaS architect must create a SaaS data architecture that is both robust and secure, efficient and cost-effective to administer and maintain.   

 

I'm not suggesting that's exactly how we're planning to deliver a multi tennant world with CRM "Titan" or CRM Live - but it is well worth a read to get the background on how an architect would think about building these solutions.

I am heading out on the road for the day tomorrow and after that I’ll be away in Boston for Microsoft Worldwide Partner Conference.  I’m pretty excited about WPC – there will be some great things going on in the CRM world there.  I’m sworn to secrecy right now – you’ll have to wait and see what’s going on until you get there.

 

If you are going – please feel free to book a RIO slot with me to talk about ISV solutions or simply drop by the booth and say hello.

 

The only hesitation I have about this WPC trip is that I was planning on catching up with some old colleagues in a Boston pub to watch the World Cup final on Sunday.  Whilst I still plan on catching up with some old colleagues in a Boston pub on Sunday – unfortunately I won’t be watching my team vie for football’s greatest prize.  (My bunch never really got going and got knocked out by Portugal on Saturday – bugger!).

If you are planning on building a solution on top of Dynamics CRM 3.0 - whether you plan to resell this as an ISV; or if you are just creating a customization for your own internal deployment - a good idea is to review the Veritest specification.  The guidelines give you a good insight into best practices and specifically what kinds of customizations to avoid.

http://www.veritest.com/lionbridge/en-US/services/outsourced-testing/product-certification-programs/microsoft/Microsoft-Dynamics-Test-for-ISV-Solutions/

Program Overview

The Microsoft Dynamics Test for ISV Solutions identifies applications that successfully interoperate with the various Microsoft Dynamics (formerly Microsoft Business Solutions or MBS) platforms: Microsoft Dynamics AX, Microsoft Dynamics CRM, Microsoft Dynamics GP, Microsoft Dynamics NAV, and Microsoft Dynamics SL (formerly Axapta, CRM, Great Plains, Navision and Solomon, respectively). The test specifications were developed by Microsoft and VeriTest to define the minimum requirements for an application to operate within a specific Microsoft Dynamics environment. In general, the test specifications are intended to ensure an application:

  • Doesn't cause the system to become unstable
  • Doesn't corrupt the Microsoft product configuration
  • Doesn't restrict the functionality of the Microsoft Dynamics product
  • Is unlikely to become corrupted when the Microsoft Dynamics product is upgraded or updated.

Take a look at Dave Porter's new post on the CRM dev team's blog for more on Veritest(ed) solutions.

http://blogs.msdn.com/crm/archive/2006/06/27/648578.aspx

 

Our team of technical writers have released an updated SDK.

Overview

The Microsoft CRM 3.0 SDK is for developers, system customizers and report writers. It contains the following sections:

  • Server Programming Guide – A guide for developers writing server side code, custom business logic, integration modules, workflow assemblies and more. This guide provides an architectural overview of Microsoft CRM, the entity model, security model, Web services, and sample code.

  • Client Programming Guide – A guide for developers customizing the Web client or the Microsoft CRM client for Outlook, including scripting, integration of custom Web pages, and sample code.

  • ISV Programming Guide - A guide for independent software vendors (ISVs) developing installable add-ins for Microsoft CRM.

  • Report Writers Guide - A guide for developers writing reports for Microsoft CRM using Microsoft SQL Server Reporting Services Report Designer.
  • You can download the updated SDK from this location: www.microsoft.com/downloads/details.aspx?FamilyId=9C178B68-3A06-4898-BC83-BD14B74308C5&displaylang=en.

    Peter Rip, MD Leapfrog Ventures - this guy really understands the values of composite applications / "mash ups". 

    This is a fantastic piece - Lotus Symphony as a platform (sound familiar), early Ozzie (not Sabbath but our CTO), Web 2.0 and all the fun of taking a radical new approach to market.

    http://earlystagevc.typepad.com/earlystagevc/2006/06/abgenial.html

    Read this article then think about the possibilities that exist in the area where Dynamics CRM is the aggregator of other applications.  We provide the delivery framework and the methods to integrate previously isolated functionality.

    I'm currently working with several ISVs who are doing just that.  Many industries are ripe for an aggregator of functionality within a common presentation (and familiar) framework.

     

    Whilst at TechED last week I picked up a copy of Baseline Mag - I found this article in there.  Luckily the same article in print can be found online too..

     

    "But now that we have a broad number of packaged CRM applications that generally work, the temptation to think about CRM as a tactical rather than strategic tool is even greater. Rather than merely use CRM as a sales forecasting application, the time may have arrived when we need to think about it as the new universal front end to all of our other enterprise applications."

    http://www.baselinemag.com/article2/0,1540,1972151,00.asp

     

    As part of the work I have been doing in preparation for the session I will be presenting at TechED in Boston next week, I have been gathering anecdotal / empirical performance and scalability evidence from a lot of smart people (smarter than me anyway).

     

    The aim for my session is to give people a real world view of how to plan for scalability and performance for a given deployment of Microsoft CRM 3.0.  I will deliver an overview of the planning process, the tools available and how to engage with specialist teams inside of Microsoft to help you plan – but I also want to let people know about some common pitfalls and mitigation strategies. 

     

    Here are a couple of interesting things to take into account:

     

    1.      Indexes

     

    Out of the box indexes with CRM 3.0 are exactly that!  If you are creating customizations, new entities and attributes – then you need to build some new SQL indexes to aid performance.  (I will post more on this subject soon).

     

    Take a look at the Performance Toolkit and the Scalability Report for some more information on this subject.

     

    http://www.microsoft.com/downloads/details.aspx?FamilyID=1A25DB7C-5060-417C-86DB-6377A84EE650&displaylang=en

     

     

    2.      Custom Entity Grid Rendering

     

    An entities grid is populated slower than you expect when you move to a custom entity in Microsoft Dynamics CRM 3.0

     

    SYMPTOMS

    When you move to a custom entity in Microsoft Dynamics CRM 3.0, the program may populate the entities grid slower than you expect. The slow performance of Microsoft CRM 3.0 in populating the grid may depend on the number of rows that have to be displayed on the grid.

     

    CAUSE

    This problem occurs because the icons for the custom entity are not cached. Every time that the grid is refreshed, the icons have to be downloaded.

     

    Check out the Knowledge Base article for the hotfix…..

     

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

     

    3.      Connection Sharing

     

    Aaron Elder at Invoke Systems has written a very good piece on implementing connection sharing – and importantly how that has a significant impact on performance when you are writing code against the CRM web services.

     

    Take a look at this…

     

    http://www.invokesystems.com/cs/blogs/mscrm/archive/2006/06/01/28.aspx

     

     

    4.      Offloading Reporting Burden

     

    Do you have all your performance eggs in one basket?

     

    To improve performance in high-volume Microsoft Dynamics CRM 3.0 systems, you can run reports on a dedicated report server. This frees up the resources of server that is running Microsoft SQL Server and Microsoft CRM to better service the transaction processing requests generated by users adding, viewing, and updating Microsoft CRM records.

     

    http://www.microsoft.com/downloads/details.aspx?FamilyID=C82DFBE2-DB8F-4A78-92B2-7C866057CDE6&displaylang=en

     

    5.      Naveen’s Blog

     

    Microsoft CRM program manager - Naveen Garg, has posted a nice little piece on the engineering efforts that went into 3.0 around performance and benchmarks.

     

    Check it out at…

     

    http://blogs.msdn.com/crm/archive/2006/05/31/611988.aspx

     

    6.      Obvious Things

    a.       Use filters to take data offline with the Outlook client.

    b.      Plan for your user scenarios.

    c.       Putting people on high latency network connections is bad.

    d.      64 bit SQL with a gazillion meg of memory is good.

    e.       …more to follow..

    I will be presenting the following session at TechED this year.

    Microsoft CRM: Architecting solutions for enterprise or any other business size 

    Ever wondered about the appropriate server sizing, network topography and system architecture design to ensure optimal system deployment? In this session, Microsoft will discuss the overall Microsoft CRM architecture and will demonstrate how to forecast and test system performance. In addition, presenters will identify important tips and tricks for optimizing your deployment.

    XXXXXXXXXXXXXXXXXXXXXXXXXX

    This is primarily a scalability and performance session.  I will cover some of the main deployment scenarios and look at what can be done to optimize your deployments and what tools are available to help in the planning.

    With scalability and performance of any complex business application such as CRM - it's not just a matter of "how long is a piece of string?" - it's more 'how long, what color, what texture and what you want to use the string for?".

    If you feel you would like to see something in particular on this subject please drop me a line and I will do my best to incorporate it into this level 400 session or post it here.

     

    IT industry cycles and good ideas are like the changing seasons.  You liked spring this time – just wait ‘till next year it’ll be here again.   You liked centralized computing last time (beards & sandals) – don’t worry it’ll come back (different beards and the sandals are made by Diesel).

     

    Likewise it’s the time of the stack again.  Everyone’s talking about “stacks” and “platforms”.  Even Larry Ellison is talking stacks – Oracle has decided they’re missing an operating system.  http://news.com.com/2061-10795_3-6061701.html  So, Larry’s looking for an OS.  That OS is likely to be Linux – an acquisition or a partnership.  

     

    The only people not talking about “the stack” right now are those without anything close to a stack at all – like the guy who says “cars are out dated” when all he’s got is a pair of roller skates!

    http://news.zdnet.com/2100-9593_22-6062557.html

     

     

    To make this whole idea of a “stack” work really well you need to have a high degree of cohesion between the layers. 

     

    Over the past few years the maturity and breadth of applications provided by the major software vendors has given rise to emergence of what is commonly being termed “The Superplatform”.   The Burton Group does an excellent analysis of the Superplatform (or stack) vendors in their “Application Platform Strategies Report” - http://www.burtongroup.com/research_consulting/doc.aspx?cid=699  Burton talks of this tight cohesion between layers of the stack as one of the key differentiators of the Superplatform vendors.

    Superplatforms are the realization of a long term vision: To provide a total software solutions stack which is feature rich, tightly integrated, manageable, highly available and secure. 

    This sounds very much like the goal of Microsoft’s vision termed “Integrated Innovation”.

    Microsoft is one of few major vendors who are able to offer a Superplatform today.

    There is significant commonality of functionality across the Superplatform vendors. Almost all Superplatforms consist of the following core components:

    1)      Core infrastructure servers and services.

    2)      Integration and information brokers.

    3)      Tightly coupled integrated development environments (IDEs).

    4)      Advanced web services.

    5)      Powerful portal and reporting technologies.

    Where the Microsoft Superplatform differs is the level of tight integration between the application platform and the underlying operating system – delivering a foundation for security, manageability, administration and development.   This tight integration provides a single consistent environment on which to innovate in the business applications space; whilst also allowing a flexible approach to coupling with other systems via a service oriented architecture (SOA) model and a highly collaborative integration model. 

    In particular relevance to the Microsoft Dynamics platform; Microsoft has invested considerable resources in bringing the Microsoft Dynamics applications closer to the Integrated Innovation vision.  Microsoft Dynamics CRM 3.0 delivers a tightly integrated, flexible application platform which fits the Superplatform vision closely.  ISVs that choose to develop applications and solutions on CRM 3.0 will be able to leverage many years of product development and design – such as a dynamic powerful web services which are available and integrated into the IDE Visual Studio.NET.  

    Components of the Microsoft Superplatform

    The Microsoft Superplatform consists of the Windows Server System, the Visual Studio .net IDE, the Microsoft Dynamics product suite, Office and approximately eighteen complimentary infrastructure software products.  (This list is growing – and we are at the cusp of many new releases to these technologies too).

    The foundation for the Windows Server System portfolio of integrated server software products is the Windows Server 2003 operating system, which delivers the core infrastructure and common services across the following categories:

    • The underlying security model as the foundation for the Security Infrastructure.

    • The core directory services and operations and management services to support the IT Operations Infrastructure.

    • The core application definition and programming model as the foundation for the Application Infrastructure.

    • The core data and collaboration services that support the Collaboration Infrastructure.

    Windows Server System product family diagram

     

    For more information regarding the Windows Server System visit:

    http://www.microsoft.com/windowsserversystem/overview/overview.mspx

    So taking this back to the context of Dynamics CRM 3.0 and what this really means to our partners and ISVs who choose to develop applications and solutions on top of our “stack”…  By taking the Dynamics CRM platform as your base you are effectively letting Microsoft do the heavy lifting in the engineering department.  Your team of developers can focus on what is core to differentiating your business – defining, designing and building solutions to meet the needs of your customers.  Let Microsoft engineer the infrastructure, provide the cohesion between the layers and deliver the development environment.

    Microsoft CRM lets you focus on your solutions by providing the following features out of the box:

    ·         Robust security architecture linked to Active Directory. Role-based security privileges with low-level security and the ability to share objects offers similar security features to what you would find on files in Windows.

    ·         Extensible object model that allows you to add new objects to the Microsoft CRM object model. Existing objects can be extended with new properties, and relationships can be defined between new and existing objects allowing ISVs to build almost any application on Microsoft CRM.

    ·         Easy to customize forms, data views, and UI layouts using simple Web-based tools.

    ·         Import/export feature that lets ISVs export all objects, properties and customizations and then import them into customers' CRM implementations.

    ·         Web service API’s allow ISVs to automate this process to build simple setup applications.

    ·         Offline synchronization for Microsoft CRM Sales for Outlook users. All custom objects can be marked to allow users to take data offline.

    ·         A robust SDK with detailed examples on the Microsoft CRM platform as well as tips for ISVs building on the platform.

    Visual Studio 2005, ASP.NET, SQL Server 2005, the .NET Framework--these are some of the technologies that Microsoft CRM is built on. With the rise in Web-based applications and Web-services usage, many developers are increasingly expressing a strong desire to be working with these technologies.

    So, if it’s time to talk stacks again – you'll find that we’ve got stacks of stack!

     

     

    Analysts estimate that the hosted CRM opportunity could be as much as 33% of the total CRM market by the end of 2009.

     

    This figure increases if you follow the hype of some of our software as a service competitors.  Many CRM vendors now provide a hosted SaaS offering as well as the traditional on premise in-house deployment method.  However, how many provide the ability to deliver a flexible deployment model of in-house, externally hosted SaaS or internally hosted (and yet outsourced) - all from the same code base?

     

    With our recent announcement of Dynamics CRM 3.0 Service Provider Edition we are in a pretty unique position.  Dynamics CRM delivers the flexibility to deliver multiple models all from the same code base. 

     

    Why is this a such a big deal?  From an end customer perspective you can put your toe into the CRM water with a rented per user / per month system (which you can pay for via your opex rather than capex) and get up and running with one of our hosting partners very quickly.  We also provide a flexible approach to integration with your existing infrastructure - e.g. your own Exchange system, an outsourced hosted Exchange system, no Exchange system..etc.  Another cool thing is the ability to use the Outlook integrated CRM client in a more loosely coupled mode, even with offline functionality.  Flexibility here is the key.

     

    So what happens if the customer decides one day that this CRM system has to move inside the firewall and be delivered in house (as opposed to SaaS)?  Well many of the other CRM vendors customers would be faced with what can only be described as a "disparate systems migration project" as if between completely different CRM systems.  That is effectively what they are.  Many other vendors in-house CRM and hosted CRM offerings are exactly that - completely different systems.  This is not so with Dynamics CRM Service Provider Edition - it is effectively the Professional edition of the same product but with some changes to deliver a hosted model and flexible infrastructure choices.  The migration from hosted Dynamics CRM to on premise Dynamics CRM is as simple as backing up data and customizations and restoring them on the new in-house implementation. (Or vice-versa as could be the case). Not a migration between different systems, with different data models, different user interfaces and different features / functions.

     

    What does this mean to an ISV?

    An ISV can develop an application or a complete vertical solution and deliver that to its customers as an on premise or SaaS offering all from one development effort on a single code base.  A solution developed on Dynamics CRM 3.0 Professional Edition can be deployed on Dynamics CRM 3.0 Service Provider Edition.  Effectively this gives the customer and the ISV choice.  Many ISVs are currently considering whether to follow the current market trend of SaaS and as they do so they are limiting their platform choices – or they are creating extra development effort for themselves as they develop the same solution for multiple “different” platforms.  By choosing to develop a solution on Dynamics CRM 3.0 the ISV can provide their solution in many different delivery models from one code base.

     

    Check out http://www.microsoft.com/dynamics/crm/product/hosted.mspx for more details.

     

    Take a look at http://www.microsoft.com/dynamics/crm/partners/hosted.mspx for details of some of our CRM hosting partners.

    My role at Microsoft is as a Technical Evangelist working with independent software vendors (ISVs) to help them bring (mainly vertical) solutions to market based on our CRM platform.

    I'm going to post some of my thoughts about using Microsoft Dynamics CRM 3.0 as a platform.  Think of it this way - Dynamics CRM is as much of a software development platform as it is a horizontal application for customer management.

     

     
    Page view tracker