Azure

[Azure] News for Developers, November 2017

Are you having trouble keeping track of everything that’s going around in Azure? You’re not alone! In an effort to do so myself, I’m starting a monthly series called “News for developers” which is exactly that: a summary of all of the Azure flavored news specifically for software developers. Now this is based on my personal feeds and my personal opinion, so you might miss things or see things which in your opinion do not matter. Feel free to comment below and I’ll see what I can do for the next edition. And honestly, this is more a personal reference than anything else so having actual readers would already be awesome ūüôā Enjoy!

Read More

Azure

[Azure] News for Developers, October 2017

Are you having trouble keeping track of everything that’s going around in Azure? You’re not alone! In an effort to do so myself, I’m starting a monthly series called “News for developers” which is exactly that: a summary of all of the Azure flavored news specifically for software developers. Now this is based on my personal feeds and my personal opinion, so you might miss things or see things which in your opinion do not matter. Feel free to comment below and I’ll see what I can do for the next edition. And honestly, this is more a personal reference than anything else so having actual readers would already be awesome ūüôā Enjoy!

Where the previous edition featured a lot of stuff due to Ignite, things are a bit slow for this one. But still, some good news came from Redmond!

Read More

Azure

[Azure] News for Developers, September 2017

Are you having trouble keeping track of everything that’s going around in Azure? You’re not alone! In an effort to do so myself, I’m starting a monthly series called “News for developers” which is exactly that: a summary of all of the Azure flavored news specifically for software developers. Now this is based on my personal feeds and my personal opinion, so you might miss things or see things which in your opinion do not matter. Feel free to comment below and I’ll see what I can do for the next edition. And honestly, this is more a personal reference than anything else so having actual readers would already be awesome ūüôā Enjoy!

The Ignite 2017 conference took place this month. And as always with the bigger Microsoft conferences: there was news, lots of it. So this months list is a little bit longer than usual!

Read More

azure-icon-250x250

[Azure] News for Developers, August 2017

Are you having trouble keeping track of everything that’s going around in Azure? You’re not alone! In an effort to do so myself, I’m starting a monthly series called “News for developers” which is exactly that: a summary of all of the Azure flavored news specifically for software developers. Now this is based on my personal feeds and my personal opinion, so you might miss things or see things which in your opinion do not matter. Feel free to leave and comment below and I’ll see what I can do for the next edition. And honestly, this is more a personal reference than anything else so having actual readers would already be awesome ūüôā Enjoy!

 

App Service specific updates

Here are some important updates from the world of Azure App Services:

  • The¬†Azure Functions¬†UI now features a tabbed interface. (link)
  • Also from the Azure Functions world, the¬†Tools for Visual Studio 2017 Update 3 are now available. And even better: you get them as part of the update, no manual installation required! (link)
  • Have you tried turning it off and on again? With¬†Proactive Auto Heal, your webapps will auto restart when they’re in a bad state (memory leak for instance). It does this by monitoring the memory and request time. Note that is now is¬†on by default, but you can opt-out. (link)
  • It’s now very easy to choose a Docker image from Azure Container Registry for Continuous Deployment schemes. (link)

The app services team now keeps track of their updates in blog posts and in this github repo!  And you can find a monthly update on their blog as well.

function-tabs_thumb

 

Visual Studio (Team Services)

Everything slows down in summertime, right? Well not in the world of VSTS! These are just the cherries from the huge list of updates!

  • Creating¬†Wiki pages is now in public preview. Wiki’s support markdown (like other pages) and can be very useful to create documentation for instance. (link)
  • Search for and recreating deleted branches. Makes you wonder what the definition of “delete” is, but hey… we’ve all needed this one at one time. (link)
  • A new version of the¬†dotnet (2.x) build task supports authenticated package sources. There were also changes in the behavior when it cannot find a project file (now fails) and to specifying an explicit¬†output path. (link)
  • The marketplace now features an extensions for¬†Ansible support. (link)
  • Running¬†Web Tests from the test hub, you can now capture screenshots of desktop apps. (link)
  • A new¬†work items hub allows filtering work based on: Assigned to me, Following, Mentioned, My activity, Recently created. (link)
  • In a “if this, than that” style you can now create¬†work item rules to automate things even more. (link)
  • w00t! Support for¬†Git Forks is on the way! (link)
  • The new¬†Release Editor experience is now the default for everyone, but can still be disabled by an admin. (link)
  • A release task can now be conditional based on the requirement that you set. (link)
  • The new¬†user management¬†experience helps adding new users, managing users and adding them to Projects and Teams. (link)

Check out https://www.visualstudio.com/en-us/articles/news/2017/aug-04-team-services and https://www.visualstudio.com/en-us/articles/news/2017/aug-28-team-services for the complete overview!

 

Azure

Here’s all the stuff that didn’t fit into one of the above categories:

  • If you are looking at blockchain (as we are at mStack), check out Microsofts new Coco framework for building enterprise blockchain networks. (link)
  • Visual Studio 2017 Version 15.3 has been officially released. Highlighted features include: (link)
    • A lot of work on the accessibility side, including debugging features and text adornments.
    • Several fixes to provide more stability.
    • Included support for Azure Functions.
    • Broad Azure sign-in support (Government, Sovereign cloud and Azure Stack).
    • Improved Container support.
    • Continous Delivery Tools now included by default.
  • .NET Core 2.0 was also officially released! (link) Highlights include:
    • Live Unit Testing during coding
    • Refering to .NET Core / .NET Standard libraries without the need to add interop packages. They’re still needed but VS includes them automatically now.
    • Supported in¬†Visual Studio for Mac.
  • Talking about¬†Visual Studio for Mac, that team released version 7.1 of their product to the public. (link)
  • Azure Event Grid (in preview)¬†allows the routing of infrastructure and application level events to all kinds of components within Azure. Allows you to hook into events like “someone was added to my Azure subscription”. And it’s serverless! (link)

That’s it for this month, see you next month for another round of Azure news!

azure-icon-250x250

[Azure] News for Developers, July 2017

Are you having trouble keeping track of everything that’s going around in Azure? You’re not alone! In an effort to do so myself, I’m starting a monthly series called “News for developers” which is exactly that: a summary of all of the Azure flavored news specifically for software developers. Now this is based on my personal feeds and my personal opinion, so you might miss things or see things which in your opinion do not matter. Feel free to leave and comment below and I’ll see what I can do for the next edition. And honestly, this is more a personal reference than anything else so having actual readers would already be awesome ūüôā Enjoy!

 

App Services updates

Here are some important updates from the world of Azure App Services:

  • .NET 4.7 is now supported on Azure App Service. For more information about what 4.7 brings for you, check out this post.
  • .NET Core 2.0 Preview 2 also rolled out to Azure App Service. For more information about that release, click here.
  • Durable Functions are on App Service now. These are built on the Durable Task Framework which allows writing long running workflows using async/await operations. For Functions, this brings us a way to facilitate longer running processes on Functions, which was not possible previously. Check out this post for more information.
  • NodeJS versions have been updated to include¬†v4.8.4, v6.11.1, v7.10.1 and v8.1.4 along with the corresponding NPM packages. These updates provide a fix for a known vulnerability.
  • Azure App Service Environment (ASE)¬†v2 has been released. Most important changes include scaling based on the App Service Plan (managing worker pools is no longer required). The creation process is now integrated into the Create new App Service Plan experience, increasing the visibility. And the new ASE can scale to bigger, which is of course better ūüėČ Check out the blog post here.
    fda25968-0d56-464b-84b2-c2887a21c4cf
  • A preview of¬†App Service Domains makes it easier to combine Azure DNS hosted domain names with your app service instances. A few of the benefits include: subdomain management, automatic renewals and free cancellation within 5 days. That post is over here.

The app services team now keeps track of their updates in blog posts and in this github repo!  And you can find a monthly update on their blog as well.

Visual Studio (Team Services)

From the world of Visual Studio team services:

  • There’s a new editor for¬†release definitions and an updated workflow for¬†pull requests. The editor I already used myself and it’s a pretty sweet visual representation of the release flow in your application. Check it out!
  • Upon completion of a pull request, you can now automatically mark all linked workitems as Done. Get it done!
  • Also in the PR department: a policy now allows an automatic reset of reviewer votes when new code is being pushed.
  • Personal favorite: you can now view the original diff of a file once a code update has been pushed. This makes it a lot easier to check out changes to¬†the code which you commented on previously.
  • Multiple updates to¬†task groups¬†include: versioning (draft), references and import/export of a task group.

07_14_09

Check out https://www.visualstudio.com/en-us/articles/news/2017/jul-14-team-services for the complete overview.

 

Other

Here’s all the stuff that didn’t fit into one of the above categories:

  • John Papa¬†(yes, the one and only) released Azure Function Tools for Visual Studio Code which allows you to use TypeScript within your Azure Functions. Download it from the marketplace here.
  • For all of you Angular folks out there, Angular version 4.2 is now available.
  • In the “services that might come in handy one day” department;¬†Microsoft Stream has been made generally available. Stream offers powerful video streaming services combined with intelligent stuff like automatic captioning, face detection and other AI features. Click here for more.

That’s it for this month, see you next month for another round of Azure news!

[Azure] Building a Cortana based skilled bot

In my previous post¬†I discussed how to build a bot using a Web Project and deploying it as a DLL to an Azure Function. The Azure Function would then function as the endpoint for your bot which you can make available through¬†channels which include Facebook, Skype (for Business) and many more. Starting at //BUILD this year, Cortana was also included in that list of channels. Cortana of course is a bit of a special channel, since we’ll then be using voice to communicate with our bot. But if you think of it, voice translates to text and text is the input of choice for the bot that we build. So it should be that difficult, right? It’s not!

 

Cortana Skills

The Cortana SDK or development framework or whatever you’d like to call it calls this¬†skills. Basically you’re learning Cortana new skills as you would learn a pet or child something new. The set-up on the Cortana side is simpler than you might think. You simply enable the Cortana channel for your bot, fill in some fields and you’re good to go.

cortana-skillOne of these fields is the¬†invocation name. That’s how Cortana will understand she needs to route a message to our bot. For my home automation sample, I’ll be using “The House” as invocation name, so a command might be “Hey Cortana, tell¬†The House to turn on¬†the lights in the kitchen”. If you haven’t read it yet, take 5 minutes to read¬†Cortana kills + LUIS pre-built domains¬†on how to effortlessly teach you bot these kinds of intents.

Another cool thing you can configure is which data Cortana will supply your bot with. Since Cortana is the digital assistant of the user you will be communicating with, she knows things about this user. These things you can request for so that you can make use of the data in your bot code.

cortana-userprofile

Be aware though: the user does need to consent to Cortana sending this information to the bot before she actually does so.

cortana_permission

Developer mode

Another handy thing is to put Cortana herself into¬†Developer Mode. You can do this by heading over to the Cortana Dashboard (the link is displayed with the Cortana channel itself). Here, under the¬†Debug section there’s the option to enable Developer Mode by simply clicking a checkbox.

 

cortana-debug

After which invoking a command will show you debug info:

cortana-debugon

 

Debugging the bot

For testing and debugging your bot, you get all of the options you normally have for bots (and for Azure Functions by the way). Of course you cannot get the online version of Cortana to call a local instance of your bot, but you can simply pass in the text of the intent you want to test via the bot framework emulator. One feature gap at this moment is the fact that the bot emulator does not allow us to pass in the additional channel data that Cortana can supply (context / user info). What you could do is attach your debugger to an Azure hosted instance of your bot and then debug that specific part.

 

That’s it for now, in my next post I’ll be going in a bit deeper into how this all comes together.

 

azure-icon-250x250

[Azure] News for Developers, June 2017

Are you having trouble keeping track of everything that’s going around in Azure? You’re not alone! In an effort to do so myself, I’m starting a monthly series called “News for developers” which is exactly that: a summary of all of the Azure flavored news specifically for software developers. Now this is based on my personal feeds and my personal opinion, so you might miss things or see things which in your opinion do not matter. Feel free to leave and comment below and I’ll see what I can do for the next edition. And honestly, this is more a personal reference than anything else so having actual readers would already be awesome ūüôā Enjoy!

 

App Services updates

The app services team announced a couple of new updates in their monthly blog post. These include:

  • Azure CDN now supports https on¬†custom domains, something that you could previously only do with one of the external CDN services (link).
  • New App Service Overview Blade
    The new overview blade should perform faster making is easier to switch between apps. The charts can be pinned to custom dashboards which might improve the performance of those as well (a little bit).
  • Integrated experience for Windows and Linux based apps
    When creating a new app service instance, you can now pick which OS the instance needs to host your app.
  • App Service Advisor recommendation history
    The app service advisor will provide proactive recommendations on how to solve problems within your application. It now features the ability to view past recommendations.

Blog post: https://blogs.msdn.microsoft.com/appserviceteam/2017/06/30/june-2017-app-service-update/

Visual Studio (Team Services)

From the world of Visual Studio team services:

  • Visual Studio 15.3 preview has been released. You can install and check it out today! (link) It features:
    • Azure Continous Delivery support for .NET Core and ASP.NET Core apps.
    • Increased visibility on extension impact on performance. For some reason it recently advised me to close the Errors pane. That’s right, just ignore them!
  • The¬†Visual Studio Team Services updates for this month include:
    • Sharing fields across processes, making it easier to query across team projects that use different processes.
    • Support for custom work item icons and a library to pick them from.
    • Filtering a pull request tree by file name. Same goes for the tree view in Code views.
    • Web view for¬†Git Tags.¬†This view allows to view, delete and filter based on tags. Managing tags can be set-up with separate permissions.
    • Import and Export on¬†Build Defintions.¬†This was one of the top-voted items on UserVoice!
    • Hosted agent pools for building your code are changing. No longer are there agents that support multiple versions of Visual Studio; you need to pick the correct pool now.
    • Comprehensive updates have been made to the¬†NuGet, npm,¬†Maven and¬†dotnet task manager tasks, fixing a lot of bugs.
    • Streamlined¬†user management including bulk remove, optionally add new users to projects and easily view subscriptions.

Check out https://www.visualstudio.com/en-us/articles/news/2017/jun-22-team-services for the complete overview.

 

Other

Here’s all the stuff that didn’t fit into one of the above categories:

  • Manage ACS, Cosmos DB, Active Directory Graph and more with release 1.1 of the Azure¬†management libraries for .NET (link).
  • Text Analytics API now supports sentiment analysis in 16 languages (including Dutch, HOERA!) (link).
  • Azure¬†SQL Data Sync was refreshed, bringing portal support and a REST API (link).
  • Azure Traffic manager got two new features: fast failover and TCP probing (link). The failover options include:
    • Endpoint checking interval can now be set to 10 seconds instead of the default 30
    • Configure the number of tolerated failures (0 – 9)
    • Configure the time-out interval for each probe attempt
    • TTL can be down to 0

    The TCP probing enables probing of resources that might not be able to return a HTTP response.

  • The¬†Cognitive Toolkit v2.0 is¬†fully released. This toolkit allows developers to incorporate self-created and trained neural networks into their applications. (link)

That’s it for this month, see you next month for another round of Azure news.

[O365] Synced security group member without permissions in SharePoint

Had a strange thing happen at my client yesterday. We were working on an Office365 set-up and had created some AD security groups in order to have reusable permission groups across a bunch of SharePoint site collections. We missed one person in the org due to which she was not able to access a site she was supposed to have permissions to. So we added here, but still she couldn’t access the site… weird…

TL/DR version: rebooting the machine fixed the problem. If your first response is: “huh?”, read on…

Read More

[Azure] Building a bot using DLL / WebProject

In previous articles I explained how you can build bots using the Microsoft Bot Framework and the Azure Bot Service. The latter is built on top of Azure Functions, one of my favorite components in Azure. Both the Functions and Bot teams are releasing stuff in a fast pace, but sometimes this leads towards the two not being 100% in sync with each other. This post addresses one of these issues, namely the Bot Service having old-style templates for new instances.

When you create a new Bot Service instance and download the code, you get a solution with .CSX files. These are used in Azure Functions and they still work great. The issue though is that when you load these in Visual Studio and want to debug your code locally, there’s no IntelliSense to go with them. Althought this is on the teams backlog, it’s not there yet and if you’re a VS dev like I am, you probably can’t live without it ūüôā

 

.NET Class library as Function App

Two months ago, Donna Malayeri (who’s doing absolutely awesome work on the Functions team) wrote this post¬†detailing how you can build a web project which uses the local functions runtime to host and debug the code. This brings two great worlds together: it allows you to build code in Visual Studio with all the benefits (Intellisense!) whilst utilizing the func.exe CLI runtime as well.

The post does a very good job at explaining how to set this up, but what if you want this for your Bot Service instances?

 

Converting a Bot Service

To convert your bot service instance to a Web Project, here’s what you need:

  • A web project (well duh…).
  • The CSX files that you want to convert to ‘regular’ C# classes.
  • The function.json file that defines the endpoint for your bot.
  • A appsettings file should you have one. This is typically where your Microosft App ID and password are stored.
  • The project.json file. You don’t really need this, but it’s handy to look up which packages your instance is using.

And here’s the steps:

  • Follow Donna’s post to set-up a new web project.
  • When creating the classes, create one for your dialog and one for your entry point. You can combine them as well of course, but I personally like to separate them. In the example these are named¬†Dialog.cs and¬†DialogEntryPoint.cs.
  • DialogEntryPoint.cs will contain the contents from the ‘run.csx’ file. This the entry point that’s being called when the user communicates with your bot. It’s referenced in¬†function.json as follows:

    Note the scriptFile and entryPoint settings which point to the output DLL and the class/method which handles the incoming message.
  • Dialog.cs contains your dialog code.
  • Ensure that you set-up the project to load the correct NuGet packages. Normally you will need¬†Microsoft.Bot.Builder.Azure¬†which will include some dependencies. If you include this, ensure the project is set-up to run .NET framework version 4.6 instead of 4.5.

Lastly, you need to configure the start options of the project. This is detailed in Donna’s post as well, but for your reference, below are the settings I used. Note that the location of func.exe might differ based on the installation type you used.

botasweb

With everything configured, running the project should now start your bot in the func.exe runtime and hook up VS at the same time for local debugging! Awesome!

funcrunning

 

Sample @ github

If you’re struggling, I took the liberty of adjusting the sample project from the blog post and making a bot specific one from it. You can use it to see how it has been set-up. Be aware that my sample is based on the LUIS bot service, so it does require a settings file with your specific LUIS keys to actually work. Should you have any questions or remarks; feel free to leave them below!

Check out the code: https://github.com/jsiegmund/BotAsWebProject

[Azure] Cortana skills + LUIS pre-built domains

A while ago I was planning on doing a few posts on bots, but I never really got to that it seems. I did get into the bot building business though, so here’s one about a little bit more advanced use of bots: language understanding. And although I might write “more advanced”, I don’t really mean it. That’s because LUIS makes things so much easier. LUIS? Yeah, that’s short for Language Understanding Intelligence Service. And it’s awesome. Read More