Earlier this month, I had a “great” idea… or at least I think I had one: Let’s put a monthly blog post up on what I learned during the previous month. If I keep doing this every month, I will not only feel some pressure to actually learn something (to be able to put it up), but will possibly see the progress (if any) I made.
So, without further ado, here is what I learned/experienced last month, in no particular order.
Connecting BizTalk to CRM (Online or on-premise) is not trivial
This is a great blog post containing a very nice example on connecting BizTalk to CRM for basic CRUD operations. This is part 2, where part 1 (linked in the article) is about connecting to CRM using the SDK.
Basically, what one needs to know is that, certain entities/values like a country for example, will not return a value, but rather a GUID. This GUID must then be queried for into CRM again, to know it’s value (in itself an entity again).
To connect to CRM, there are several options:
- Instance Web API with a URL to the Web API and ODATA4Metadata.xml
This contains the CSDL (Common Schema Definition Language), which defines an XML representation of the entity data model exposed by an OData service.
- Organization Service with a URL to a SOAP service providing access to CRM, with a WSDL you can download (Organization.svc?singlewsdl).
- One can use the CRM SDK libraries (download the CRM SDK or use the CRM SDK Nuget packages) to connect straight to CRM and let the SDK do the hard work for you
I general it just seems like a very good idea to build a facade API in front of the CRM services, since BizTalk uses typed schemas and CRM untyped ones. You can call this facade using SOAP/Web API for example.
I learned a lot from the following resources:
- MSDN – Creating and editing fields in CRM – https://technet.microsoft.com/en-us/library/dn531187.aspx?f=255&MSPPError=-2147217396
- The programming models for Microsoft Dynamics 365 (or on-premise) – https://msdn.microsoft.com/en-us/library/gg327971.aspx?f=255&MSPPError=-2147217396
- CRM SDK – Use the Entity class for CRUD operations – https://msdn.microsoft.com/en-us/library/gg309731%28v=crm.5%29.aspx?f=255&MSPPError=-2147217396
- This invaluable video on CRM integration from Integration Monday – http://www.integrationusergroup.com/integrating-dynamics-crm
- This old post from Richard Seroter on CRM integrations in BizTalk – https://seroter.wordpress.com/2011/02/10/the-good-bad-and-ugly-of-integrating-dynamics-crm-2011-and-biztalk-server-2010/
- A zillion samples on CRM integration scenarios – http://mileyja.blogspot.be/p/microsoft-dynamics-crm-2011-sdk-example.html
BizTalk Branch Edition has several limitations, but HIS is not one of them.
In some very specific scenario’s you might use BizTalk Branch Edition instead of the Standard or Enterprise versions. Although the Branch Edition comes with several limitations, Host Integration Server (HIS) is not one of them.
Some limitations are:
- Only 1 BizTalk application is allowed.
- WCF and SQL is allowed, but other adapter packs are not supplied.(e.g. SOAP Send)
- Single server only, so no HA/clustering, etc…
However, HIS 2016 still comes with the BizTalk Branch license, you are still allowed to install the DB2 adapter for example!
Azure DocumentDb is a real piece of work
For an internal project I (finally) had the ideal use case to work with Azure DocumentDb. As a very keen user of SQL Server and normalization, i must say I had to bridge some gaps in order to appreciate the beauty of NoSQL. Schemaless databases are actually quite awesome when you think of it. Not ideal in all circumstances, but amazing none the less.
There is an excellent tutorial on getting started with DocumentDb on Microsoft Docs.
The BizTalk Server 2016 configuration wizard (still) hasn’t changed
This month I installed my first BizTalk Server 2016 Developer Edition. I noticed the configuration wizard actually hasn’t changed at all in regard to previous versions. When creating the installation documentation, I will have to update all of my screenshots however, since the titlebar and logos did get updated!
I was hoping the RTM version might contain some ‘easy’ AlwaysOn configuration. I suppose this will take some time in order to streamline it.
SQL Server 2016 installation comes without SQL Server Management Studio
When installing SQL Server 2016 Developer Edition for the first time, I only noticed after the completed installation that SSMS (SQL Server Management Studio) was not installed. There is now a separate entry in the setup pages that links to a certain URL where the latest version of SSMS can be downloaded and installed.
It seems SSMS as such no longer requires a SQL license of it’s own. It might have never required one in the first place to be honest: I don’t know.
Windows Server 2016 may cause issues with older Remote Desktop Management tools
I have been using Royal TS for a whole while now. I have actually been using the last freeware version available (v1.5.1) and even put it up on oldversion.com once. Not (only) because I’m a cheapskate sometimes, but mainly because I just like the look and feel of that version. The simplicity and ease of use really does it for me.
Anyway, this month I installed my first Windows Server 2016, in order to prepare for the installation of SQL Server 2016 and BizTalk Server 2016. The first thing I tend to do on these VM’s is to connect via RDP, go to Server Manager, Remote Deskop Management and uncheck the checkbox which requires extra authentication. Reason is that Royal TS – and presumable some other, older tools as well – is not able to provide this extra layer of security. However, I was not able to connect to the Windows Server 2016 VM, no matter what I did. Nowadays, I am still looking for some new tool or solution/workaround. Let me know
Learning to work with Git
As an avid fan of Team Foundation Server (TFS) and Team Foundation Version Control (TFVC), I had the opportunity of working with Git for the first time. I wrote a blog post about this as well.
It allowed me to compare the two and actually, I tend to like Git some more due to the fact that you don’t have to be connected all the time before committing. However, as most of my work is still done involving BizTalk Server, TFVC will remain the standard for now.
Bluetooth allows more than 1 connection at the same time
Somehow I figured my laptop only could handle 1 bluetooth connection at the same time. I was very pleasantly surprised to see both my Bluetooth mouse and wireless headphones worked at the same time this month. Took me a minute to realize that this is probably known by a lot of people, so I didn’t quite make a big fuss of it… but I was honestly amazed that this was possible! Silly me right?