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.
- Microsoft.CrmSdk.CoreAssemblies
- 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.