Jonas Deibe - Dynamics CRM, C#, JS

My personal blog about Microsoft Dynamics in code, picture and text (Stockholm/Sweden)

  • Jonas Deibe - Dynamics CRM, C#, JS

    "Invalid Pointer" -after upgrade to WP7 Mango Toolkit

    I started to upgrade my WP7 app Trafiken Sverige to latest version of windows phone "mango" and got caught in an ugly #bug

    Basicly what I done was upgraded my project type to 7.1

    • Get latest Toolkit (NuGet)
    • Re-build (Work fine)
    • Run App

    Bonk! Failure -hmm after lite investigation I found out it’s my name of controls I added to my templates in longlistselector and wrap panel (se example below).

    Simple solution is to remove my"name" in xaml and use "tag" instead.

    Works fine!

     

    {"Invalid pointer "}

        [System.NullReferenceException]: {"Invalid pointer "}

        _data: {System.Collections.ListDictionaryInternal}

        _HResult: -2147467261

        _innerException: null

        _message: "Invalid pointer "

        _methodDescs: null

        _optionalData: null

        Data: {System.Collections.ListDictionaryInternal}

        HResult: -2147467261

        InnerException: Could not evaluate expression

        Message: "Invalid pointer "

        StackTrace: Could not evaluate expression

    <toolkit:LongListSelector.ItemTemplate>

    <DataTemplate>                                   

    <Grid Margin="{StaticResource PhoneTouchTargetOverhang}">

    <Grid.ColumnDefinitions>

    <ColumnDefinition Width="Auto" />

    <ColumnDefinition Width="*"/>

    <ColumnDefinition Width="58"/>

    </Grid.ColumnDefinitions>                                  

    <StackPanel Grid.Column="0" VerticalAlignment="Top" Margin="0,18,0,0">                                       

    <Image HorizontalAlignment="Stretch">                                       

    Tag="{Binding Path=Details.Key}"                                       

    Name="{Binding Path=Details.Key}"                                                                                   

    Width="160" Source="{Binding Details.Url}"                                        

    VerticalAlignment="Top"/>                                    

    </StackPanel>

  • Jonas Deibe - Dynamics CRM, C#, JS

    Building WindowsPhone 7 app

    Puhh long time ago I posted something here.. been busy on different projects and yes you know.. time and time. But I'm still alive and very active :-) have been playing around with WP7 this summer and the result could be found here http://www.windowsphone.com/en-gb/apps/be27b928-84b2-4be3-84f9-3ced2b1261e7 

     

     

  • Jonas Deibe - Dynamics CRM, C#, JS

    Go deep or broad as an architect

    I recently had the chance to meet Anders Hejlsberg during the Service Technical Leadership program. He is an amazing man with a great work story and currently the lead architect for the C# language.
    During the meeting with him and some more technical fellows he got a question.

    How should I as an architect evolve?


    Figure 1: My made-up topics over a timeframe

     

    So the math is simple!

    1.       Go Deep on one topic

    2.       Go up and pick another topic

    3.       Re-start from 1

    If you do this interaction for a while, guess what? -Now you are deep and broad J

  • Jonas Deibe - Dynamics CRM, C#, JS

    Out on the road to Redmond

    After parental leave things have been busy... Start-up myself, recap what’s happened during my parental leave (wow CRM 2011 looks really good + all the cloud services)

    The coming week I'm attending SLTP training in Redmond, very excited and looking forward.

  • Jonas Deibe - Dynamics CRM, C#, JS

    Back after a long parental leave

    Starting computer, enjoying drinking caffé with adults (no screaming around or fighting), doing QRP...

    Yes I'm logged in again :-)

  • Jonas Deibe - Dynamics CRM, C#, JS

    Techready 10 from my office

    Kids are sleeping, Wife is training, Techready 10 is online, doing alright on CS and wine tastes great!

    It's not like being onsite but with technology I can do 3 things at the same time ;-)

    TR10

     

  • Jonas Deibe - Dynamics CRM, C#, JS

    Today February 27, 2010 -> 6 years ago . . .

    I remember this test very well. It was one of the first MS CRM certificate rounds and the questions where harder to understand than the test itself... Cert 6 years ago

    Time goes fast when you have fun, right J

  • Jonas Deibe - Dynamics CRM, C#, JS

    Offline pictures

    Ehh just need to add two pictures taken recently during my parental leave.

    This picture is taken from a number plate on a car. In Sweden we have a three letter combination and 3 numbers making the car unique. I guess I’m unconsciouslymissing work…  

    xRM

    My friend claims it’s from the 60’s and found inside a printer. It's a memory! Talk about “hardcore” J

    Old School memory

  • Jonas Deibe - Dynamics CRM, C#, JS

    Ranks Microsoft as Leader

    The report is under the title of Magic Quadrant for Enterprise Application Servers

  • Jonas Deibe - Dynamics CRM, C#, JS

    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

  • Jonas Deibe - Dynamics CRM, C#, JS

    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

  • Jonas Deibe - Dynamics CRM, C#, JS

    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

  • Jonas Deibe - Dynamics CRM, C#, JS

    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.

     

  • Jonas Deibe - Dynamics CRM, C#, JS

    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
  • Jonas Deibe - Dynamics CRM, C#, JS

    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
  • Jonas Deibe - Dynamics CRM, C#, JS

    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 

  • Jonas Deibe - Dynamics CRM, C#, JS

    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

  • Jonas Deibe - Dynamics CRM, C#, JS

    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

     

  • Jonas Deibe - Dynamics CRM, C#, JS

    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

  • Jonas Deibe - Dynamics CRM, C#, JS

    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

     

  • Jonas Deibe - Dynamics CRM, C#, JS

    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 :-)

     

     

  • Jonas Deibe - Dynamics CRM, C#, JS

    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.

  • Jonas Deibe - Dynamics CRM, C#, JS

    CRM, Performance Point and MOSS (CRM+PPS+MOSS)

    Extending CRM with BI capacity has been on the radar for a while and with the new BI accelerators this will be an easy customization. The same applies to CRM and MOSS integrations. Since I have spent some time in this very interesting area I tough why not share some parts (screen captures). My goals was to build an application with Sales support (CRM) extend it with document management/collaboration (WSS/MOSS) and analyses, drilldown reporting plus dashboards (PPS)
    The end application would be fully integrated and user navigation will be from the CRM client. Since its all installed on-premise authentication is single sign on (SSO). One very important goal is to let the end user not to know what underlying product she is using, it just doesn’t matter as long it works and supports the end-users business/processes.

    The first step to do is to install the software. I use two servers and a client in my lab.
    • Installation domain controller and Exchange (Server1)
    • Installation SQL Server, AS for OLAP’s, Reporting Service (default port 80), CRM server (port 5555), MOSS Server (random port NOT default web 80), Performance Point Server (Monitoring), Visual studio (Server2)
    • Installation of Client with Office package, Visual Studio (Client)

    The installation process might take some time so don’t expect to install it all on an afternoon.
    Details on how-to configure each product is not in scope of the blogs post (might be a later post)

    The end result is a very powerfull application; below you see some screen shoots

    Dashboard - Click to enlarge
    CRM Webclient, Sharepoint site and PPS webparts rendering Dashboards from OLAP cube

    Sharepoint Document Library
    Sharepoint Document Library. Context menu about to open workflows on current document.


    Drill down to product from opportunities, all depending how the cube has been designed

    PerformancePoint Monitoring SDK
    http://msdn.microsoft.com/en-us/library/bb848116.aspx

    Working with Online Analytical Processing (OLAP)
    http://msdn.microsoft.com/en-us/library/ms175367.aspx

    MOSS Developer center
    http://msdn.microsoft.com/en-us/office/aa905503.aspx

    CRM 4.0 sdk
    http://msdn.microsoft.com/en-us/library/aa477293.aspx

  • Jonas Deibe - Dynamics CRM, C#, JS

    Silverlight 2 Launched

    Check it out at http://silverlight/launch/

  • Jonas Deibe - Dynamics CRM, C#, JS

    Laptop on memory steroids

    Virtualization on my laptop is now a dream!
    8 GB

     

Page 1 of 4 (94 items) 1234