SSIS and Visual Studio 2019 – Issues and fixes

I recently wanted to try out Visual Studio 2019 with the SSIS Package designer (and to also try out the KingswaySoft extensions for dealing with Dynamics 365 data integration/migrations. Getting it all to work turned out to be a little bit of a challenge, so here I am documenting the issues I encountered, and what I did to fix it.

Continue reading “SSIS and Visual Studio 2019 – Issues and fixes”

PDF Lite Viewer

I have decided to release the PDF Lite Viewer app that I built initially for my own personal use, but others may find it useful.

Its a keyboard driven PDF viewer that allows me to read PDF Books on my GPD Pocket 2 computer, rotated, like a book, and using the arrow keys to page through it.

Trying to emulate the traditional eBook experience, but as none of the eReaders seem to have decent PDF support, I thought I would see if this works. Check out the video below, and you can download it from its own page.

It can be downloaded here.

How it was built

This application is actually built using the Windows Presentation Framework for the main application in C#, however, it actually uses the Windows 10 API’s to work with the PDF files as it has suitable methods built in. It reads the PDF, and renders each page to a bitmap and is then displayed on screen.

Standard Keyboard events are used to trap the keys.

The main window itself is simply a canvas to which the bitmap versions of the PDF files are displayed.

Its a fairly simply application, but I am pleased with the result.

Portals Support added to CRM Utilities for Visual Studio

Get it on the Marketplace

I have updated my extension to support publishing of files from Visual Studio to Microsoft Dynamics Portals.

The tool now supports publishing files to Web Templates and Web Files, allowing you to use Visual Studio to edit and track changes of your portal related files, and quickly update Dynamics with the appropriate Portal files.

Web Files and Web Templates are simply listed within the Web Resource linker dialog for you to select.  You can then publish the appropriate files within your Visual Studio solution to Dynamics.

If you have installed the extension from the Marketplace, then it should prompt you to update, but if not, you can get it from the below link.

CRM Utilities for Visual Studio

CRM Utilities for Visual Studio – Publish All option

A recent request for a new feature has resulted in a quick update to my CRM Utilities for Visual Studio.

There is now a Publish All Web Resources feature which will publish all files that have already been linked within a Project.

Hopefully this will be very useful for making sure all the Web Resources part of a solution are up to date in CRM before doing a Solution release.

Get it from here

CRM Utilities for Visual Studio – Update to menus, and class generation options

Today I have released an update to the CRM Utilities for Visual Studio 2017 extension.

New features:

Reorganised the menu structure so that the Generate Class options are now grouped together.

Generate Class options menu to allow a custom namespace and class name to be used when generating the class files to represent the Dynamics Entities.

Redesigned the Connection dialog to make it look better, and to include a hyperlink to the instruction pages on this blog.

 

Download
Please note this feature is only available in the Visual Studio 2017 version. This version may still install on VS2015, although I have not personally tested it.

My utilities are now on the Visual Studio Marketplace

Just a quick update to say that all of my Visual Studio extensions are now on the Microsoft Visual Studio Marketplace, and are available to download and install direct from Visual Studio.

Visual Studio Marketplace

Simply go into the Tools menu and choose Extensions and Updates, select Online and search for me, James Hall.  My extensions are the top two in the list.

In theory, if you install them this way, you should get notified of when I update them.

CRM Utilities for Visual Studio – Generating Entity Classes

Most CRM Developers either use, or have at least heard of CrmSvcUtil for generating early bound classes for developing code and using the resulting classes to manipulate CRM data.  I personally do not like working with early bound entities as the resulting class files are huge, and I personally prefer working with the standard Entity Framework for creating and updating entities, and for Linq queries.

Often, I use some helper class libraries that I can use to represent the custom entity names and attributes, so that they can be referenced in code and provide a degree of separation from the actual Schema names and to make code easier to write, and support Intelli-sense.

Something like the code sample below:


public static class Contact
{
    public static const string EntityName = "contact";
    public static const string Name = "fullname";
}

This would then allow you to do the following:

public void createContact()
{
    Entity contact = new Entity(Contact.EntityName);
    contact[Contact.Name] = "Joe Blogs";
    service.Create(contact);
}

I was offered a suggestion by a fellow developer that wouldn’t it be good if my CRM Utilities for Visual Studio allowed you to generate this kind of Class file automatically.  Well, I thought it was a brilliant idea, and so thanks to the wonderful gentleman  of XRTSoft, here it is.

Its split into two options, one to generate classes for your Custom Entities, and one to do the Standard CRM entities.

The resulting file will look something like this:

Notice that for each Entity, it will add the Logical Name, Primary ID Attribute, and the Primary Name Attribute as standard, and then all of the attributes as well.  It will also add sub classes for any Option Sets to allow you to reference specific Option Set Values without having to look them up in CRM.

 

Download
Please note this feature is only available in the Visual Studio 2017 version. This version may still install on VS2015, although I have not personally tested it.

 

Easy access to your TFS/GIT folder

This post describes something that I always do when setting up a new PC with Visual Studio.  Its only a minor thing, but it makes all the difference to me 🙂

The amount of times I open up Windows Explorer to navigate to my TFS folder in one day is quite a lot, and I follow these steps to make life a bit easier, especially on Windows 10.

  1. Right click on your main TFS folder and select Properties.

  2. Go to the customise tab, and select Change Icon.

  3. Click Browse and find an appropriate icon file, or, in my case, navigate to your Visual Studio folder and select DevEnv.exe  and select the appropriate icon.
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.exe

  4. Hit Apply, and your TFS folder will now have a nice new icon.  To make it easier to access, you can also right click it and select Pin to Quick access.

    This will mean it will always show up at the top left of Windows Explorer in your Quick access panel.

This can be applied to any folder of course, not just your TFS folder, as long as you have an appropriate icon.

One thing I would say though, don’t go customising all of your folders with nice new icons.  I’m not sure, but I guess it may have an effect on performance.  It probably caches the icons, but just in case, be careful.

 

 

Removing a Code Analyser from your machine during development

This post is just a quick tip for anyone that may be developing a Code Analyser withing Visual Studio using the Roslyn Compiler.

I got in a position where I was developing a code analyser using Visual Studio and the Roslyn SDK, I abandoned a project that was broken, but, whenever I launched Visual Studio afterwards, the analysis package would still be loaded and start crashing all over the place.

I really struggled to find a standard way of removing it from my machine (there probably is a way, but I could not find it), until I discovered this.

If you navigate to the following folder, you can simply delete the appropriate folder and it will be gone forever (I hope) :).


C:\Users\{username}\AppData\Local\Microsoft\VisualStudio\15.0_a85fe1c6Roslyn\Extensions\{user}

The actual file path may differ depending on versions of SDK and VS, but I am sure you can work it out 🙂

CRM Utilities for Visual Studio – Generating Entity Classes

Most CRM Developers either use, or have at least heard of CrmSvcUtil for generating early bound classes for developing code and using the resulting classes to manipulate CRM data.  I personally do not like working with early bound entities as the resulting class files are huge, and I personally prefer working with the standard Entity Framework for creating and updating entities, and for Linq queries.

Often, I use some helper class libraries that I can use to represent the custom entity names and attributes, so that they can be referenced in code and provide a degree of separation from the actual Schema names and to make code easier to write, and support Intelli-sense.

Something like the code sample below:


public static class Contact
{
    public static const string EntityName = "contact";
    public static const string Name = "fullname";
}

This would then allow you to do the following:

public void createContact()
{
    Entity contact = new Entity(Contact.EntityName);
    contact[Contact.Name] = "Joe Blogs";
    service.Create(contact);
}

I was offered a suggestion by a fellow developer that wouldn’t it be good if my CRM Utilities for Visual Studio allowed you to generate this kind of Class file automatically.  Well, I thought it was a brilliant idea, and so thanks to the wonderful gentleman  of XRTSoft, here it is.

Its split into two options, one to generate classes for your Custom Entities, and one to do the Standard CRM entities.

The resulting file will look something like this:

Notice that for each Entity, it will add the Logical Name, Primary ID Attribute, and the Primary Name Attribute as standard, and then all of the attributes as well.  It will also add sub classes for any Option Sets to allow you to reference specific Option Set Values without having to look them up in CRM.

 

Download
Please note this feature is only available in the Visual Studio 2017 version. This version may still install on VS2015, although I have not personally tested it.