cub-e.net

just coding...

Murat Özturan ile Dynamics CRM hakkında söyleşi

Bildiğiniz üzere geçen ay Microsoft MVP Summit için yine Seattle yollarındaydım. Yine çok güzel ve dolu dolu geçen bir etkinlik sonrasında size küçük bir süpriz de yapayım dedim. Microsoft'ta çalışan Türk'lerden Murat Özturan'la da söyleşi yapma fırsatı buldum. Murat Dynamics CRM ekibinde Product Manager olarak çok önemli bir görevi yerine getirmede. hadi izleyin bakalım.

link : http://www.facebook.com/photo.php?v=10150711277996880

 

Loading

cub-e.net | just coding...

cub-e.net

just coding...

SDK ve NuGet kullanarak Dynamics 365 CRM'e baglanma

Yontem 1: SDK Kullanmak

 

https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/download-tools-nuget adresinden alacaginiz asagidaki powershell scripti ile sdk icerisindeki araclari 4 klasor halinde bilgisayariniza indirebilirsiniz.

 

$sourceNugetExe = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"

$targetNugetExe = ".\nuget.exe"

Remove-Item .\Tools -Force -Recurse -ErrorAction Ignore

Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe

Set-Alias nuget $targetNugetExe -Scope Global -Verbose

 

##

##Download Plugin Registration Tool

##

./nuget install Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool -O .\Tools

md .\Tools\PluginRegistration

$prtFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match 'Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool.'}

move .\Tools\$prtFolder\tools\*.* .\Tools\PluginRegistration

Remove-Item .\Tools\$prtFolder -Force -Recurse

 

##

##Download CoreTools

##

./nuget install  Microsoft.CrmSdk.CoreTools -O .\Tools

md .\Tools\CoreTools

$coreToolsFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match 'Microsoft.CrmSdk.CoreTools.'}

move .\Tools\$coreToolsFolder\content\bin\coretools\*.* .\Tools\CoreTools

Remove-Item .\Tools\$coreToolsFolder -Force -Recurse

 

##

##Download Configuration Migration

##

./nuget install  Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf -O .\Tools

md .\Tools\ConfigurationMigration

$configMigFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match 'Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf.'}

move .\Tools\$configMigFolder\tools\*.* .\Tools\ConfigurationMigration

Remove-Item .\Tools\$configMigFolder -Force -Recurse

 

##

##Download Package Deployer

##

./nuget install  Microsoft.CrmSdk.XrmTooling.PackageDeployment.WPF -O .\Tools

md .\Tools\PackageDeployment

$pdFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match 'Microsoft.CrmSdk.XrmTooling.PackageDeployment.Wpf.'}

move .\Tools\$pdFolder\tools\*.* .\Tools\PackageDeployment

Remove-Item .\Tools\$pdFolder -Force -Recurse

 

##

##Remove NuGet.exe

##

Remove-Item nuget.exe

 

 

Yukaridaki script ile Dynamics 365 SDK'yi indirdiyseniz CoreTools altinda su 3 dll'I bulabilirsiniz:

 

Microsoft.Xrm.Sdk.dll

Microsoft.Crm.Sdk.Proxy.dll

Microsoft.Xrm.Tooling.Connector.dll

 

Bu dll'leri uygulamanize referans olarak ekledikten sonra asagidaki using parametlerini islem yapmak istediginiz sinifa eklemeniz gerekmekte.

 

using Microsoft.Xrm.Sdk;

using Microsoft.Xrm.Sdk.Query;

using Microsoft.Xrm.Tooling.Connector;

 

Yontem 2: NuGet Kullanmak

NuGet paketlerini kullanmak uygulama gelistirme ve derleme asama bircok problemi ortadan kaldirmakta. Ozellikle ekip halinde kod gelistiriyor ve TFS-VSO-Github gibi ortamlarda kodusakliyorsaniz her kod gelistiricinin kendi bilgisayarinda farkli noktalarda tuttugu dll referanslari daha sonra basiniza dert olacaktir. Iste bunu onlemenin en pratik yolu NuGet uzerinden referanslari almak ve kullanmaktir.

 

Nuget package konsolundan ya da Visual Studio arabirimi uzerinden asagidaki 2 paketi bulun ve projenize ekleyin.

 

  1. Microsoft.CrmSdk.CoreAssemblies
  2. Microsoft.CrmSdk.XrmTooling.CoreAssembly

 

Diger paketler otomatik olarak kurulacaktir.

 

Her iki yontem icin ortak adimlar

Asagidaki connection stringlerden hangisi size uygunsa ilgili connection string'I alabilirsiniz:

<!– Online using Office 365 –>

<!–<add name=”Server=CRM Online”

connectionString=”Url=https://myserver.crm.dynamics.com; Username=user@myserver.com; Password=password; authtype=Office365″/>–>

<!– On-premises with provided user credentials –>

<!– <add name=”Server=myserver, organization=AdventureWorksCycle, user=administrator”

connectionString=”Url=http://myserver/AdventureWorksCycle; Domain=mydomain; Username=administrator; Password=password; authtype=AD”/> –>

<!– On-premises using Windows integrated security –>

<!– <add name=”Server=myserver, organization=AdventureWorksCycle”

connectionString=”Url=http://myserver/AdventureWorksCycle; authtype=AD”/> –>

<!– On-Premises (IFD) with claims –>

<!–<add name=”Server=myserver.com, organization=contoso, user=someone@myserver.com”

connectionString=”Url=https://contoso.myserver.com/contoso; Username=someone@myserver.com; Password=password; authtype=IFD”/>–>

 

CRMServiceClient sinifina ilgili connection string'I veriyoruz ve elde ettigimiz servisi kullaniyoruz.

 

CrmServiceClient conn = new CrmServiceClient(ConfigurationManager.ConnectionStrings[“Server=CRM Online”].ToString());

var _orgService = (IOrganizationService)conn.OrganizationServiceProxy;

 

Artik fetchXML ile veri cekebilir ya da Insert/Update/Delete/Execute islemlerini _orgService ile icra edebilirsiniz.

Loading