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
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>
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
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
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.
Starting computer, enjoying drinking caffé with adults (no screaming around or fighting), doing QRP...
Yes I'm logged in again :-)
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 ;-)
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...
Time goes fast when you have fun, right J
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…
My friend claims it’s from the 60’s and found inside a printer. It's a memory! Talk about “hardcore” J
The report is under the title of Magic Quadrant for Enterprise Application Servers
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
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
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”
6. Change to GPT if discs are greater than 2TB. Lease default setting MBR for this example
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.
10. Once the Bitlock is enabled add the VHD to your Mesh folder
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.vhdattach vdisk
Save the script to a file and add a schedule work with arguments C:\Windows\System32\diskpart.exe /s c:\VHD\attachdisc.txt
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
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.
A new toolkit to make customizations to CRM 4.0 has been released. Download bits from http://code.msdn.microsoft.com/E2DevTkt
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
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"
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 OnlineDownload 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
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
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
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:00Room: (Sheraton) Metropolitan A
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.
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.
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
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
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.
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 Papershttp://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-Vhttp://support.microsoft.com/kb/957054
Planning a Deployment Topology (SSRS)http://technet.microsoft.com/en-us/library/ms157293.aspx
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 :-)
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 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.
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 CRM Webclient, Sharepoint site and PPS webparts rendering Dashboards from OLAP cube
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 centerhttp://msdn.microsoft.com/en-us/office/aa905503.aspxCRM 4.0 sdkhttp://msdn.microsoft.com/en-us/library/aa477293.aspx
Check it out at http://silverlight/launch/
Virtualization on my laptop is now a dream!