REFLECTION WITH SAMPLE EXAMPLE IN C#
This is a simple windows application to display the methods, properties and constructors using “Reflections” in c#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
namespace ReflectionDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnDiscoverTypeInformation_Click_Click(object sender, EventArgs e)
{
string TypeName = txtTypeName.Text;
Type T = Type.GetType(TypeName);
lstMethods.Items.Clear();
lstProperties.Items.Clear();
lstConstructors.Items.Clear();
MethodInfo[] methods = T.GetMethods();
foreach(MethodInfo method in methods)
{
lstMethods.Items.Add(method.ReturnType.Name + ” ” + method.Name);
}
PropertyInfo[] properties = T.GetProperties();
foreach (PropertyInfo property in properties)
{
lstProperties.Items.Add(property.PropertyType.Name + ” ” + property.Name);
}
ConstructorInfo[] constructors = T.GetConstructors();
foreach (ConstructorInfo constructor in constructors)
{
lstConstructors.Items.Add(constructor.ToString());
}
}
}
}
POWER MAILCHIMP INTEGRATION WITH MICROSOFT DYNAMICS CRM
3) Other PowerPack add-ons to further enhance functionality!
Ø Track web traffic of individual contacts and leads with PowerMailChimp and PowerWebTraffic
————————————————————————————————————————–
UNIFIED SERVICE DESK FOR MICROSOFT DYNAMICS CRM
This is the article from Microsoft and quite useful for understanding the overview of the Unified Service Desk.
What is User Interface Integration?
What makes up Unified Service Desk?

-
Dynamics Unified Service Desk: This solution file contains the primary Unified Service Desk entities that you configure to define the agent application experience.
-
User Interface Integration for Microsoft Dynamics 365: This solution contains the underlying entities required by the Unified Service Desk configuration entities.
======================================================================
The Unified Service Desk (USD) is a desktop application that helps customer service agents provide phone, email, chat, and social media support to your customers. USD provides a configurable framework to quickly build an Agent Desktop application that’s integrated with Microsoft Dynamics CRM. With USD we can quickly make a customized agent desktop application by leveraging the User Interface Integration framework.Here we get the standard Package Deployer connect to CRM page, so we enter our server details and click Login.
Now we have multiple packages within the USD Package, these are a base package for CRM 2013, a CRM 2013 SP1 package with Product Updates (which includes scenarios based on the product update), and a CRM 2013 SP1 package. All options include sample data.
We can see that the package deployer validates the configuration, and we can click Next to continue.
Note: If we want to install on to another machine, we would need to install the base version of USD and then copy across the USD folder from our master set up.
We can see the progress of the installation, and see that the first step is to disable a number of plugins, and then the managed solution entities are created in CRM that are required by the USD.
We can see that updates are applied to the managed solution entities.
The updates include a number of data import files that are the sample data.
Once the Unified Service Desk has been installed, and we look at the solution within CRM, we can see that a number of solutions have been imported.
What does the Unified Service Desk look like?
We are then presented with a customer service dashboard, which gives us a number of KPI’s, which from the sample data and configuration we choose earlier, is all centred around case management.
Scrolling down we see a list of the case that have been assigned to our user, which is effectively our case backline.
If we click on as case, we get the standard CRM form within the main panel. We can then expand out the Left Nav panel by clicking on the arrow, and see our Call Script which takes us through a new of predefined actions and makes the process flow really nice to use with the main panel updating as and when we need to perform an action.
As we process say through the Request for Service process, we can perform a number of actions either in sequence or if we like out of sequence, with the final action being to Resolve the case and Close the current session, which ends the Session Timer.
We also get a tab called My Work which shows us activities, or any items we can work on within our queue.
We have a Search tab, that can be set up to allow a number of entities to be searched, giving us a simplified enquiry mechanism, which obviously uses the standard CRM default views.
From the USD we can also have activity reminders be displayed in an Outlook style popup.
A handy technical tab, is the debugger which is available from the cog menu option. This shows us our action calls, along with action data and parameters.
We also get to see any debug information from the debug output sub-tab.
And get to see a number of data parameters that are specific to the USD session we are using.
We can specify an Agents call script, along with the possible answers that we can accept. The answer will then determine the tasks the agent must follow to progress say a case.
We can customise the menu toolbar, to include a number of different options, icons, and various actions which can be configured to have conditions associated within them to when they are available.
From a customisation perspective we can create a number of custom action scripts, which are JavaScript functions, which we can call from various event actions.
One of the great features about using the USD, is that we can create more complex client side controls, which we just can’t really do through web resources and JavaScript within standard CRM. A couple of examples are CTI (Computer Telephone Integration), or maybe Webcam Integration to allow us to take a customer photo when registering them at a customer service desk and storing it as the Entity Image on the contact record.
In the example that we have installed we have an SLA Timer that is displayed in the Status Panel.
To enable tracing, we simply set the various setting to Error, Warning, Verbose or All.
<!–
Possible values for switches: Off, Error, Warning, Information, Verbose
Verbose: includes Error, Warning, Info, Trace levels
Information: includes Error, Warning, Info levels
Warning: includes Error, Warning levels
Error: includes Error level
–>
<add name=”EventTopicSwitch” value=”Error”/>
<add name=”Microsoft.Uii.Common.Logging” value=”Error”/>
<add name=”Microsoft.Xrm.Tooling.CrmConnectControl” value=”Error”/>
<add name=”Microsoft.Xrm.Tooling.Connector.CrmServiceClient” value=”Error”/>
<add name=”Microsoft.Xrm.Tooling.WebResourceUtility” value=”Error”/>
<add name=”Microsoft.Crm.UnifiedServiceDesk” value=”Error”/>
<add name=”Microsoft.Crm.UnifiedServiceDesk.Dynamics” value=”Error”/>
<add name=”Microsoft.Crm.UnifiedServiceDesk.CommonUtility.UserProfileManager” value=”Error”/>
<add name=”UnifiedServiceDesk.KPIControl” value=”Error”/>
</switches>
<sharedListeners>
<add name=”fileListener”
type=”Microsoft.Xrm.Tooling.Connector.DynamicsFileLogTraceListener, Microsoft.Xrm.Tooling.Connector” BaseFileName=”UnifiedServiceDesk” Location=”LocalUserApplicationDirectory” />
<add name=”USDDebugListener” type=”Microsoft.Crm.UnifiedServiceDesk.Dynamics.UsdTraceListener, Microsoft.Crm.UnifiedServiceDesk.Dynamics” />
</sharedListeners>
From the Shared Listeners section we can see that the log files will be created within
SOAP AND REST WEB SERVICES IN MICROSOFT DYNAMICS CRM
REST
„REST is a software architecture style consisting of guidelines and best practices for creating scalable web services. REST is a coordinated set of constraints applied to the design of components in a distributed hypermedia system that can lead to a more performant and maintainable architecture.REST has gained widespread acceptance across the Web as a simpler alternative to SOAP and WSDL-based Web services. RESTful systems typically, but not always, communicate over the Hypertext Transfer Protocol with the same HTTP verbs (GET, POST, PUT, DELETE, etc.) used by web browsers to retrieve web pages and send data to remote servers.” (from Wikipedia)
SOAP
“SOAP, originally an acronym for Simple Object Access protocol, is a protocol specification for exchanging structured information in the implementation of web services in computer networks. It uses XML Information Set for its message format, and relies on other application layer protocols, most notably Hypertext Transfer Protocol (HTTP) or Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission.” (from Wikipedia)
“Should I REST or Should I SOAP?”
Conclusion:
The following table describes the appropriate web service to use depending on the task you need to perform.
| Task | Web Service |
|---|---|
|
Create, Retrieve, Update and Delete records.
|
REST Endpoint
|
|
Associate and Disassociate records
|
REST Endpoint
|
|
Assign Records
|
SOAP Endpoint
|
|
Retrieve Metadata
|
SOAP Endpoint
|
|
Execute Messages
|
SOAP Endpoint
|
The REST endpoint provides a ‘RESTful’ web service using OData to provide a programming environment that is familiar to many developers. It is the recommended web service to use for tasks that involve creating, retrieving, updating and deleting records. However, in this release of Microsoft Dynamics CRM the capabilities of this Web service are limited to these actions. Future versions of Microsoft Dynamics CRM will enhance the capabilities of the REST endpoint.The SOAP endpoint provides access to all the messages defined in the Organization service. However, only the types defined within the WSDL will be returned. There is no strong type support. While the SOAP endpoint is also capable of performing create, retrieve, update and delete operations, the REST endpoint provides a better developer experience. In this release of Microsoft Dynamics CRM the SOAP endpoint provides an alternative way to perform operations that the REST endpoint is not yet capable of.
===========================================================

























