Welcome to MSDN Blogs Sign in | Join | Help

Buy vs Build

Buy versus build judge yourself! I would think xRM as a way of accelerate application development.

 

Costs

Benefits

Buy (xRM)

Locked to vendor

Locked to vender schedules

Customizations to fill GAPs (if any)

Licenses

 

 

Configuration more than development

Faster go to market

Use vender enhancements

“Standard”

Shop GAP’s as modules or vertical solutions

Build (.Net or any other langauges)

Expensive

Longer delivery cycles

Harder to rapidly change

Innovation

Tailor application bit by bit

Re-use existing infrastructure

Better control over developer process

 

Checkout the introduction to xRM for some inspiration http://www.youtube.com/watch?v=Yru5CkANOKA

Posted by Jonas Deibe | 0 Comments
Filed under: ,

TIP! VHD to store your CRM samples/code between your WIN7 and VPC images

I recently started to use a VHD image to store my CRM samples/documents/setups in order to have them flexible available anywhere both on my main OS (win7) and Virtual images. The VHD can then be shared to multiple computers by using Mesh (Great service if you dont use it yet please try!) making the image available to colleagues/friends ect. I also enable bit locker on the disc to protect my sensible data. Big-up to Nicklas Håkansson for the orginal tip!

For you who don’t know what a VHD image is please have a look here  

1.       Start by opening disc management (create and format hard disc partitions)

2.       Go to Action -> Create VHD

Disc mgt

 

3.       Locate you storage for the VHD and name it “mesh.vhd”

4.       Set the size to for example 500mb and Dynamically expanding

5.       Right click you newly created disc and “initial disc”

Init disc

6.       Change to GPT if discs are greater than 2TB. Lease default setting MBR for this example

GPT

7.       Right click you disc and start the wizard “New Simple Volume”

8.       Exit and open explorer

9.       If you would like to enable bitlocker right click the newly created disc and start the encrypting.   

 

Enable bitlocker

10.   Once the Bitlock is enabled add the VHD to your Mesh folder

 

Add to Mesh

11.   Done! 

·         My custom setup available both in my main OS and VPC’s

·         Enable Bitlocker on disc to protect data

·         Shared to multiple computers by using Mesh  

Note! you need to attach the VHD if your machine is rebooted, this can be scripted and automatic started on OS boot!

select vdisk file=c:\vhd\mesh.vhd
attach vdisk

Save the script to a file and add a schedule work with arguments C:\Windows\System32\diskpart.exe /s c:\VHD\attachdisc.txt

Posted by Jonas Deibe | 0 Comments
Filed under: ,

Ensure that you take the best technical approach to deploying Microsoft Dynamics

Not only because I been involved in the development of these services, they add value :-) Please check oút at

http://www.microsoft.com/Microsoftservices/bizapps_ad.aspx

Code review has been pulled out but could be done by partners

Posted by Jonas Deibe | 0 Comments

Mission-critical workload of 50,000 concurrent users

Feels great! Checkout press release on http://www.microsoft.com/presspass/press/2009/jun09/06-03IntelMSBenchmarkPR.mspx

All business transactions were based on extensive customer research and defined using the Microsoft Dynamics CRM 4.0 Performance and Stress Testing Toolkit.

 

Posted by Jonas Deibe | 1 Comments

CRM developer toolkit v1

A new toolkit to make customizations to CRM 4.0 has been released. Download bits from http://code.msdn.microsoft.com/E2DevTkt

  • View All CRM Entities - Displays a listing of CRM entities that are dynamically available from the CRM Explorer within Visual Studio 2008
  • Create and Update CRM Entities - Allows for creating new entities and updating existing entities from within the CRM Explorer experience
  • Create a Wrapper Class - Provides the ability to auto-generate wrapper classes for entities, which exposes the CRM entities and their corresponding attributes as classes and properties respectively to enable development of code to interact with the entities
  • Generate Plug-in Code - Enumerates the available Plug-ins for an entity and generates the code necessary to jumpstart the plug-in development process
  • Integrate the Build and Deploy Process - Simplifies the process of building and deploying a CRM solution
  • Deploy Across Multiple Servers - Assists in deployment and maintenance of Windows installer packages across multiple environments 

The E2 team would also like to encourage Toolkit users to submit comments, suggestions, or other general thoughts about extending Toolkit functionality to better support the efforts of developers in planning, developing, customizing, and maintaining on-premise deployments of Microsoft Dynamics CRM.  To initiate or participate in Toolkit discussions, In Code Gallery, please see visit the Toolkit Discussions tab at http://code.msdn.microsoft.com/E2DevTkt/Thread/List.aspx

My current suggestion list looks something like this

  • Suggestions for more features
  • Automatics SDK generation (.chm or other formats)
  • Plug-in registration (automatic)
  • Entity relations ship generation (similar as the SDK app to generate Visio ERD schema)
  • CRM settings from visual studio add-in (link or properties)
  • All possible deployments (CRM online, partner hosted)
  • Storage of Javascript customizations and automatic process to remove blank CHARS ect in file to minimize size (minimizer)
  • Storage for database tunings (custom index ect)
  • Storage for modified or custom SSRS reports

Techdays Radio

Local post about Techdays a first time event located in Västerås (Sweden) http://www.techdays.se

Myself being interviewed for podradio by Dag Köning http://buzzfrog.blogs.com/techdays09/2009/03/techdays-radio-jonas-deibe-service-line-architect.html We talked about CRM, Sharepoint and Performancepoint (Swedish). Later during the day I was presention a field experince session about "Making CRM and Performancepoint work for management"

Dynamics Crm 4.0, MOSS och Performance Point för dashboard reporting
{ Jonas Deibe } Service Line Architect, Microsoft Services
This session show how to build great management reporting solutions when combining the use of PerformancePoint Server 2007, MOSS, custom code and CRM 4.0. The session includes real customer presentations from different CRM implementations and shows the potential for creating reporting solutions with KPI's not yet seen by the solutions on their own. This is what Microsoft is all about!

Språk: svenska
Produkt/lösning: CRM
Nivå 300
The slidedeck + code samples will be uploaded and attached to this post as sone I have cleared it with techdays administration
Posted by Jonas Deibe | 1 Comments

New CRM Sdk

Context plays an important role when it comes to parent-child pipeline execution and this is now better explained in latest SDK release (4.0.8) other highlights are a new walkthrough: Server to Server Authentication with CRM Online
Download http://www.microsoft.com/downloads/details.aspx?FamilyID=82E632A7-FAF9-41E0-8EC1-A2662AAE9DFB&displaylang=en 
Online version http://msdn.microsoft.com/en-us/library/cc151083.aspx 

Posted by Jonas Deibe | 1 Comments

A glimps in the Future

As you watch this video montage from 2009, look for examples of how current prototypes may evolve in the years ahead. When you’re done, tell us what you think and what you’d like to see in the technology of tomorrow. 

Source http://www.officelabs.com/projects/futurevisionmontage/Pages/default.aspx

Posted by Jonas Deibe | 0 Comments

Do fast customization with metaservice

How many times haven’t you added your customer enmities or attributes with the CRM tools? They are all good but if you are an expert why do not take your customization experience one step further? The Metadata Service Web service contains the messages that you use to read or write the definitions for all the entities in a Microsoft Dynamics CRM installation. The metadata service exposes the same functionality as the web-based customization tools but again if you want to take your customization experience one step further. The Metadata Service Schema doesn’t change therefore your could use the proxy assemblies to access the functionality. Do not forget to include the namespaces

Microsoft.Crm.Sdk;
Microsoft.Crm.Sdk.Metadata;
Microsoft.Crm.SdkTypeProxy.Metadata;

            MetadataService meta = CrmServiceUtility.GetMetadataService("http://localhost:5555", "Stockholm");

 

            try

            {

                DateTimeAttributeMetadata date = new DateTimeAttributeMetadata();

                date.SchemaName = "new_FromDate";

                date.DisplayName = CrmServiceUtility.CreateSingleLabel("FromDate", 1053);

                date.RequiredLevel = new CrmAttributeRequiredLevel();

                date.RequiredLevel.Value = AttributeRequiredLevel.None;

                date.EntityLogicalName = EntityName.customerrelationship.ToString(); //Change to entity to add attribute on

 

                CreateAttributeRequest createAttribute = new CreateAttributeRequest();

                createAttribute.EntityName = EntityName.customerrelationship.ToString();

                createAttribute.Attribute = date;

 

                meta.Execute(createAttribute);

 

//Add code to publish or do publish all manual in webGUI

            }

 

            catch (System.Web.Services.Protocols.SoapException ex)

            {

                Console.WriteLine("Request Failed.\n {0}", ex.Message);

                Console.WriteLine();

            }

The above example code doesn’t work since the entity I tried to add the custom field doesn’t support customizations. My basic tough was to add a date field on the Relationship entity by using the metaservice since you don’t have the choice in web GUI. Unfortunately it didn’t work L But if you change to another customable entity it all works fine. I also used the Crm SDK 4.07 CrmServiceUtlity.cs file as ref

 

Posted by Jonas Deibe | 0 Comments

TR8 in Seattle

If you are attending the Microsoft technical readiness (TechReady) conference this week in Seattle please drop by on my session.  I’ll be speaking about field experience in making CRM and Performance Point Work for Management.

MSDY313 - Field Experience in Making CRM and Performance Point Work for Management
Session Day/Time: 2/5/2009 12:45-14:00
Room: (Sheraton) Metropolitan A

Tips for faster and better performance on Microsoft Dynamics CRM 4.0

There are many different factors that affect performance when implementing a CRM system; the hardware, network, infrastructure, business processes, system configuration, ect. Finding those bottlenecks and identifying their actual causes can take a lot of time and might not be an easy task.

In this post, I’ll show what to look for based on my experience from global and local CRM implementations.

Latency

When deploying MS CRM in a WAN environment, a major consideration is the distance between the server(s) and the clients in the solution. As the distance increases, the delay, or latency, associated with each round trip can also increase.

For example, for a connection between a user located in London and a server located in Stockholm, the associated round trip time is 15ms, but were the user located in China, the connection to the sever in Stockholm would require approximately 300ms.

Because downloading a CRM page can consist of multiple roundtrips, the latency associated with a particular connection can directly affect CRM performance. For the example above, a CRM page required 10 round trips to load, the user in London would see the page in less than 0.150 seconds (ten times 15ms), while the user in China would have to wait for 3 seconds (10  times 300ms).

As a result, the fewer the round trips between the client and the server, the better CRM performs.

What is the best way to account for latency during solution design? My experience indicates that during the early phases of a project, it is critical to identify any potential areas of the solution that that might require extra roundtrips. Then, if possible, limit or build smarter functionality for those areas. Try only to render what’s in context or what the user needs at the moment. Perhaps have a verification triggered manually rather than during each onload of the CRM form?

Question every requirement and think about how that specific function might have impact on performance. Using third party tools such as WAN accelerators has been successfully implemented as noted in the Optimizing and Maintaining Microsoft Dynamics CRM 4.0 documentation. The use of caching on the client is also a trick and make sure all static files are marked correctly in the IIS. Crunching and removal of white spaces improve performance in jscript added to forms. There are multiple tools out there to be used and could be part of the build process. Usage of the offline client might also improve performance if the client is used in offline mode and later background synchronized back to the server.

I hope that IE 8 will support more ports open during the load of pages. Currently IE can only have 2 ports open per domain. Microsoft Dynamics CRM 4.0 does not support the possibility split files on separated domain to have IE open more ports and then load files more in parallel.

Adding IIS fronts closer to end-users but still having a centralized SQL server does not show any better performance from my experience, rather surprising the performance was worse using that approach. What’s doing great results are adding custom indexes to DB and I would recommend using the different DBA tools available and monitor where to add new indexes.  

Centralized vs. De-centralized Topology

When deploying MS CRM in a WAN environment, you can opt for a centralized or decentralized topology. A centralized approach Using a de-centralized (federated) The two types of typology are described and compared in the following table:

Topology

Description

Pros

Cons

Centralized

CRM servers consolidated in a central location

A fully centralized infrastructure is easier to manage and maintain; consolidating resources carries lower TCO and procurement costs.

Query performance suffers from long distance access; retrieving data from remote locations significantly impacts processing speed and data latency

De-centralized

Local CRM servers are distributed around the globe

Users benefit from considerably faster query and reporting; local adoption of the solution at management level will typically be easier

Considerably higher procurement, operations, and maintenance costs; much greater difficulty in maintaining alignment of local solutions to a standard. Data volumes transferred to local implementations have high, concentrated impact on the network

Hardware Planning

What about hardware then? When planning for hardware selection, I consider the following points.

§  Number of transactions per hour – Total average number on key entities used to support business process.

§  Number of concurrent users – In global implementation user amount might be high but not all working in the system at the same time. Take advantage of the time zones. Don’t forget that outlook client talks to the servers regularly depending how you setup your synchronization.

§  Amount of customizations – Workflows, plug-ins do we need to have dedicated SDK servers? In CRM 4.0 you can separate as shown in the following table:

Services

CRM Application Server

CRM Platform Server

Web Application Server

ü

 

Help Content Service

ü

 

SDK Service

 

ü

Asynchronous Service

 

ü

Discovery Service

 

ü

Deployment Service

 

ü

§  Availability and failover – Clustering on SQL, farm on application and web fronts. Don’t forget Reporting Server! The more you secure uptime on your system -the more servers but better sleep and happier users

§  Central vs de-centralized – De centralized requires more hardware as noted above

Example of topology

Figure 1: Sample of suggested server topology, this is just one example, and depending on the scenario, another topology might work better.
Customer environments are unique and each implementation requires analysis and consideration of the variables in specific scenario.

 

Additional Information

Optimizing and Maintaining Microsoft Dynamics CRM 4.0
 http://www.microsoft.com/downloads/details.aspx?FamilyID=ba826cee-eddf-4d6e-842d-27fd654ed893&displaylang=en

Microsoft Dynamics CRM 4.0 Performance and Scalability White Papers
http://www.microsoft.com/downloads/details.aspx?FamilyId=5852B14A-394C-4898-8374-CAF5E6479EB0&displaylang=en

Support for Microsoft Dynamics CRM 4.0 on a computer that is running Windows Server 2008 Hyper-V
http://support.microsoft.com/kb/957054

Planning a Deployment Topology (SSRS)
http://technet.microsoft.com/en-us/library/ms157293.aspx

 

Posted by Jonas Deibe | 1 Comments
Filed under: ,

Happy New Year

I would like to wish you and yours a very happy and prosperous New Year!!!

Looking forward for next year and more blogging

Skål, Cheers :-)

 

 

Posted by Jonas Deibe | 1 Comments

Hosted CRM movie

A couple of weeks ago I was invited for a recording about hosted CRM. The movie is part of an education package giving partners an overview of some of Microsoft’s products and solutions. Peter Alvmo, Daniel Akenine and MVP Mikael Nyström were recording movies as well. Topic's are all from benefits by using Vista to Cload services. See all movies here

Peter doing recording 
Happy Peter doing the CRM overview recording

The result could be viewed here.. and it’s in Swedish. I will in a later post add my CRM samples included in the demo.

Posted by Jonas Deibe | 0 Comments
Filed under: ,
More Posts Next page »
 
Page view tracker