Connecting to Azure Db via Code

Getting started with a new platform can be a little daunting, after all, there is so much to learn and where do you start.

From a client-side perspective, the only difference in connecting to an Azure Db over a server Db is the connection string.

string connectionstring = "Server=tcp:#SERVER#,1433;Initial Catalog=Signal;PersistSecurityInfo=False;User ID=#USERNAME#;Password=#PASSWORD#;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30";

SqlConnection cn = new SqlConnection();
cn.ConnectionString = connectionstring;

cn.Open();

From there, it’s a simple job of opening a connection, creating a command and querying your data.

The biggest problem I ran into was having to create the firewall rule to allow access (this will not be enabled by default).  Thankfully Visual Studio took care of this, giving me the prompt to do so and quickly enable.

firewall.pngRead More


Creating you First Azure Database

If you’re still creating databases locally for all your development and testing needs, it’s time to give yourself the kick you need to start doing things a little differently and learn something new in the process.

Going to Azure isn’t as complicated as you think (if you start small).  If you’re worried about costs, there are tons of credits floating around to make the learning cycle quick and painless.

First, setup a Resource Group, for a listing of all Azure related terminology, check here.  When you’re done doing this, navigate down to SQL Databases and create a database server (a URL) and whatever associated database you want to go along with it.

In my portal view, this looks a little like this where I now have a server and a database.

Read More


Dynamics365 Alternate Keys and UpSert

Using Alternate keys is an easy way to stop doing pre and post checks for whether you can insert data into Dynamics.

Before you had to do a check behind the scenes for whether an “Id” existed and if not go and insert it.

Now using the “Upsert” pattern in Dynamics, you can accomplish this task in one method call using an alternate key.

At’s it’s most simplest implementation, I created a custom entity and a field (wholenumber) that I then declared as my alternate key.

altdesign.PNG

Then I wrote the following code to insert the following record into my system.  You can

Read More


Keeping your Dynamics365 Audit Logs Tidy

Audits are a great way to see what has happened on records, what they did and more importantly who did it.

But if you have automated processes running that are pumping data into Dynamics because a field or two has changed, you might end up with an Audit History looking something like this.

In this case, an update was triggered, but it wasn’t until the fourth update that there was an actual difference in the data being changed.  Even then, when we sent the whole packet of data, we sent it all.

With only four feels you can already see this gets a little painful to follow.

Capture.PNGRead More


Advanced Code Tasks with the Package Deployer

Running simple, one-hit code tasks in the Package Deployer is pretty easy and works when you have one or two projects that you are working on.

However, I’m pretty lazy and not much for running the same patterns over and over again.

To this end, I came up with a Framework that requires you to only code your Package once while letting you maintain your tasks in another project that you don’t need to reference directly.

The implementation is accomplished via an Interface library that gets shared between projects.  In this case, I called it “IDeploymentTask” and gave it some property and events to be used while it does it work so it can update the UI accordingly.  This interface is located in a common project that both my Package Deployer users

Read More