What is the correct way to access Microsoft Dynamics 365 data on the cloud? SDK vs Web Api - dynamics-crm

I'm .NET Web Developer and new to Microsoft's CRM, so bear with me. I'm trying to find the correct way to connect to Microsoft Dynamics 365 and retrieve some PDF files. I need to know which is the correct way to do so. I have some questions of some topics found Googling around that don't make sense to me.
Accessing through the SDK
I have found this Microsoft documentation which explains the SDK. However there is a NOTE that says that this has changed with the 2016 update, and Googling more around, it seems to be that the SDK it's not used anymore. I am wrong?
Accessing data using Web API
There's yet another Microsoft documentation that tries to explain the way to connect through a Web Api, however from the start, it says: "This section contains reference documentation of the types, functions, and actions that constitute the Web API for Microsoft Dataverse and Dynamics 365 Customer Engagement (on-premises)".
That "On-Premises" comment bothers me. I don't want to learn something that doesn't work for me. Why the web api seems to work only on premise? Why not Dynamics in the cloud?
And for what you can see, I'm utterly confused as to how in the world I can access data to retrieve a file programmatically through C# code from Microsoft Dynamics 365 cloud based.
Please, if you can point me in the right direction, I will really appreciate it.
Thank you!

If your language is C# you can use the SDK provided by Microsoft, it works with the Online (cloud) version.
If you are using .NET Framework you can use this NuGet package:
https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.CoreAssembly/
If you are using .NET Core/.NET 5.0+ you can use this NuGet package (but in public preview):
https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/
Some details about these packages here: https://www.crmanswers.net/2021/05/microsoftpowerplatformdataverseclient.html

Adding to Guido's excellent information here are a few more considerations:
Plugins and custom workflows are custom .NET assemblies where you would use the SDK. They currently only support the full .NET Framework.
To call into the system from a JavaScript library on a form (a.k.a. Client-side scripting), you'd use the WebAPI.
For console apps, web apps, and other external code, you can choose between the SDK and WebAPI. (And as Guido points out, the .NET Core version of the SDK is in preview).
When using the SDK there are two possible coding approaches: Early Bound and Late Bound.
With early bound, you generate proxy classes for DataVerse tables. The classes have properties for each column/attribute, which enables intellisense.
With late bound, you use the string names of tables and attributes.
This article has more info.
Tools for generating early bound classes include Microsoft's CrmSvcUtil.exe, Daryl LaBar's Early Bound Generator in the XrmToolbox,
and the commercial Visual Studio add-on for DataVerse XrmToolkit.
If you're going the WebAPI route, David Yack's API Helper might interest you.

Related

Skype For Business Server 2019 - Better way to Integrate the Chat Bots with server 2019

I am trying to integrate A Chat Bot Service with A client who uses the Skype For Business Server 2019. On Microsoft Docs Page, I found that UCWA 2.0 exposes SFB Server 2015 instant messaging (IM) and presence capabilities. Could anyone please confirm whether this holds good for SFB Server 2019?
Do we have any better way to integrate the Bots with SFB Server 2019 other than UCWA 2.0 (As I came across the docs that mentioned UCWA having IM limitations and scaling issues)?
From this doc, Bot Framework also deprecated the support for Skype or business channel.
Please provide any information you have regarding this. Thanks in advance.
I suspect that UCWA will scale just fine, I know of some projects for pretty large organisations that have used it.
As an alternative you could look at UCMA 6.0 (which is more feature complete than UCWA), this is the SFB 2019 release and whilst I haven't seen any explicit documentation for this version I very much doubt it has changed much since UCMA 5.0 as the Microsoft strategy at the time of release was focused on Teams.
There’s 3rd party software available that can help with this, check out MindLink. Their API supports various versions of SfB server and I believe 2019 is covered too. You can apply throttling and other management capabilities so it is built to scale - it could be more for the enterprise, then again I don’t know what your project is.

I am trying to develop an Add-In for Microsoft Word on macOS. I am not familiar with Microsoft doc, could somebody bring me in the right direction?

I am trying to develop an Add-In for Microsoft Word on macOS. The Windows version of the Add-In is already in development, but I don't have access to its source code. It seems like the following is the 'landing' page for developing Add-Ins for Office:
https://learn.microsoft.com/en-us/office/dev/add-ins/
The above documentation seems to say that Add-Ins have to developed using web-technologies, and, upon examination of existing, Third-party, Add-Ins, this seems to be the case at least for the UI. What I don't understand, is, if the entire plugin has to be written using web-oriented languages, or if there is a macOS oriented SDK that allows to implement at least the underlying logic using a macOS native SDK, perhaps using Objective-C or Swift. I was hoping that somebody more expert could bring me in the right direction. Thanks for your attention.
There is no platform specific SDK for developing Office add-ins. You can use web technologies for developing cross-platform Office add-ins, see https://learn.microsoft.com/en-us/office/dev/add-ins/overview/office-add-ins for more information.
You also can use AppleScript for automating tasks in Word on the MacOS.

How can I create a REST API client for a Windows Runtime project in Visual Studio / by external tools?

In Visual Studio for .net projects I can use built in tools to generate API clients by swagger. It simply and works great.
This option is missing from Windows Runtime projects as well, like Windows 10 IOT ones.
What is the best way to create API clients by swagger for this? If there is no built in tool / extension for VS, any external tools are highly appriciated.
Thanks a lot!
I don't get your question completely; on Windows IOT Core you can run UWP (background) apps; they are compatible with .net framework and .net standard up to version 1.4. This should work with a generated client from swagger.
Also you can use Refit to create a REST client according to best practices based upon an interface with attribute decorations.

How to get Microsoft CRM for Development Purposes?

I am a recent graduate, who has done some work experience at a company developing/designing Microsoft Dynamics CRM Solutions. I have moved on from there and have no official ties anymore. However, I do see the future in this product and I would like to keep developing solutions and increasing my development knowledge of Microsoft Dynamics CRM.
Taking into account the above and that I have a job in a different IT area. As well as the fact that I am determined to start this from scratch... What are my options?
My intentions for the future(1-3 yrs) is to develop Microsoft CRM 2013 Solutions and hopefully sell to local small businesses.
MSDN subscription or using trial subscription on CRM Online instance or using trial key:
http://www.microsoft.com/en-us/download/details.aspx?id=40341
Or if you want to be a startup, you might be eligible for BizSpark subscription:
http://www.microsoft.com/bizspark/
I think your best bet would be to get an online subscription. Your solution's code should be 100% compatible with the new CRM APIs in the SDK. Running everything from an online CRM solution would ensure it will work. This will also ensure that when the next version is released, you will be ready for it.
Unless Microsoft changes their licensing, this might be your only reasonably priced choice.
Try the Demo Builder:
http://demobuilder.cloudapp.net/unauthenticated-home/#
It's a Wizard base tool that will guide you through the process of setting up an online demo environment.
There are a bunch of templates that you can select from that will give you a good idea of the different scenarios where CRM can be deployed.

Develop Sharepoint 2013 365 Workflow in Visual Studio

My clients have bought an Office 365 SharePoint 2013 site and I'm in the process of configuring it.
Their business rules require a very complicated Workflow which can just about be developed in SharePoint Designer. However, as I'm an experienced Visual Studio .NET developer I'd rather do it programmatically and hopefully save some time.
At present I can't figure out how to connect my desktop version of Visual Studio to the Cloud-based SharePoint site. I've downloaded the Workflow Manager tool but I'm struggling to figure out how to configure the Farm Databases etc. Available documentation seems patchy.
Has anyone out there found a way of doing this? This link suggests that it might not be possible.
Thanks
Edward
According to this article it's possible, though probably not really nice.
You will have to deploy your Workflow as a SharePoint App. Which means you will only be able to call the webservices.
Another option which might be worth looking at is Nintex, which has a module for office 365 as well.
Nintex has alot of useful functions, though I don't know how good the office 365 version is.
You would have to check whether it suits your requirements.

Resources