Friday, April 14, 2017

Creating a .NET Core project using Command-Line Interface Tools

I love IDEs but normally you don’t get to learn a lot of things about internals if you use the IDE. How about creating a .NET project using notepad? Sounds interesting….

Yes, let’s create our first .NET Core project using Command-Line Interface tools without any IDE.

Open the Command Prompt and navigate to the folder path where you would like to create the new .NET Core project.

Create a new folder named “NETCore”.

CmdLine1

Create a new folder named “FirstCoreApp” and navigate to the folder

CmdLine2

Type “dotnet new”

CmdLine3

You can see the C# project got created successfully with 2 files. Program.cs and Project.json Note: Project.json will be seen only if you have .NET Core Tools preview 2 and below. From .NET Core Tools preview 3 onwards you will see FirstCoreApp.csproj file.

CmdLine4

Program.cs file contents will be similar to the contents when creating a console application using the VS IDE

You can build the application at command line using the command “dotnet restore”

CmdLine6

You can then run the application using the command “dotnet run”

CmdLine7

Now we have successfully created a .NET Core application just using Command Line Tools without any IDE.

Technorati Tags: ,

Sunday, April 09, 2017

Create KPIs using SSRS 2016

Pretty much every organisation would love to store KPIs (Key Performance Indicator) in a centralised portal and manage access. SSRS 2016 allows user to create KPIs and track progress against those KPIs through the new Web Portal. Visualisations can also be set for those KPIs.

In SSRS 2016 when you create KPIs you can either set values manually or as a Dataset field. Let us see how to do both the options.

Set Manual KPIs

a) Navigate to the SSRS 2016 Web Portal and click New > KPI

KPI1

b) Type KPI name as Sales 2017 KPI, Description of the KPI, data format for the KPI, select value as Set Manually, Type 200 as value, select goal as Set Manually, Type 1500 as Enter goal, select status as Set Manually, type –1 as status and select the visualisation you like and click “Create”

KPI2

c) The new KPI will be displayed as shown below.

KPI3

Set KPIs using Dataset

a) Create a new table and load data using the script below on an existing database.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[KPIs](
    [KPI_Name] [varchar](100) NOT NULL,
    [Target] [int] NOT NULL,
    [Progress] [int] NOT NULL,
    [Status] [int] NOT NULL
) ON [PRIMARY]

GO

INSERT [dbo].[KPIs] ([KPI_Name], [Target], [Progress], [Status]) VALUES (N'Sales KPI', 1500, 200, -1)
GO

b) Create a new dataset using SQL Server 2016 Report Builder. Note: Make sure to create the connection first in the SSRS Web Portal.

KPI4

KPI5

Select “connKPI” and click Open

KPI7

b) Click on “Create” button

KPI8

c) Expand “Tables” tree and select “KPI” table and click the save button on the menu bar and provide the name “KPI” as dataset name.

KPI10

d) Now your dataset has been successfully created. Now navigate to your SSRS portal. URL format: https:// (use it only if you have configured SSRS for HTTPS) or http://<servername>/Reports and you can see the the dataset named “KPI”

KPI11

e) Now follow the same steps as what you followed for creating a manual KPI instead of set manually select “dataset field” as shown below.

KPI12

Monday, April 03, 2017

Monitoring Microsoft Flow runs

Once a flow has been created how do we know that it successfully ran or failed or it is still running. You can monitor the flow runs by clicking the icon as shown below.

AddtoTwitterFlow16

You can see all runs including success, failure, running and cancelled along with checks (no new data) and failed checks.

AddtoTwitterFlow17

Technorati Tags: ,

Sharing Flow with Teams using Team Flows

When we create a flow using Microsoft Flow, the person who created the flow only will be able to maintain it. Team Flows will allow the person who created the flow to assign additional owners to maintain the flow. Team Flows is currently in “Preview” only.

a) Click on “Invite another owner” icon beside the “Blog post notification to Twitter” as shown below.

AddtoTwitterFlow14

b) Add another owner who is an user as part of your office 365 subscription.

AddtoTwitterFlow15

Note: Adding another owner will allow them to edit, update and delete the flow. They can also add additional owners to this flow along with viewing flow history. Also everyone listed as owners will be able to access all embedded connections and can use them in that flow only.

Sunday, April 02, 2017

Creating my first flow using Microsoft Flow

Scenario:

Whenever I write a blog post, I would like a tweet posted on my twitter for my followers. Initially I used to do that manually and then I was using Zapier and now I wanted to move that to Microsoft Flow. Let us see how to do that.

a) Navigate to https://flow.microsoft.com/en-us/ and sign-in.

b) Click on “Create flow from blank”

AddtoTwitterFlow1

c) Choose “RSS” as new blog posts will be available on RSS newsfeed

AddtoTwitterFlow2

d) Choose “When a feed item is published” trigger.

AddtoTwitterFlow3

e) Type the blog’s RSS URL. I have typed my blog’s RSS URL - http://feeds.feedburner.com/CodeSpot and click on “Next Step”

AddtoTwitterFlow4

f) Now I need to post a tweet on twitter once I publish my blog post. Choose the “Twitter” action and “Post a tweet” trigger.

AddtoTwitterFlow5

g) Now you need to sign in to create the connection between Microsoft Flow and your Twitter account.

AddtoTwitterFlow6

h) Provide your twitter credentials and once done you can configure your tweet text with some dynamic content.

AddtoTwitterFlow7

AddtoTwitterFlow8

g) Provide a name to you flow. In this scenario I have given the name “Blog post notification to twitter”

AddtoTwitterFlow9

h) Now my first flow has been created and started running.

AddtoTwitterFlow10

i) You can see the flows under “My flows”

AddtoTwitterFlow11

Update on 03/04/2017

I have updated the above flow to include bitlink to create shortened URL of my blog post URL. After adding it my flow looks like the below.

AddtoTwitterFlow13

Now, I have posted this blog post and below is my twitter output from Flow. Great to see that I have done this without writing a single line of code.

image

Updated twitter output with bitlink

AddtoTwitterFlow18

What is Microsoft Flow and how it differs from Logic Apps?

Microsoft Flow is a new cloud based workflow application that will allow business users to automate routine tasks through applications. Other cloud services like IFTTT (If This Then That) and Zapier have similar functionality and also work across many services. Flow also comes with a list of pre-defined templates. I have been using Zapier until now and moving my zaps to Microsoft Flow.
Flow
Flow vs. Logic Apps
  • Both Flow and Logic Apps are configuration based Integration services which allows users to automate their tasks including integration with SaaS APIs. Flow is built over Logic Apps.
  • Flow is targeted against business users while Logic Apps is targeted against IT Pros/Developers.
  • Flow is used for small scale integration while Logic Apps are used for mission critical applications.
  • Develop a Flow in production directly while with Logic Apps you can use Visual Studio, Source Control, testing, support and Automation.
  • Flow has standard security practices like data sovereignty, encryption at rest for sensitive data, etc. while Logic Apps has the security assurance of Azure.
In general if it is a simple integration and doesn't require Enterprise capabilities then go with Flow or use Logic Apps for simple/complex integrations requiring Enterprise capabilities (DevOps, Security, Source Control) and if functionality is not available in Logic Apps then use Azure Functions to write your own transformation code.
Pricing - https://flow.microsoft.com/en-us/pricing/
Flow Templates - https://flow.microsoft.com/en-us/templates/
Feedback & Ideas - https://powerusers.microsoft.com/t5/Flow-Ideas/idb-p/FlowIdeas
Release Notes - https://flow.microsoft.com/en-us/documentation/release-notes/

Logic Apps and why do we need them?

Logic Apps is a integration Platform as a Service (iPaaS) to automate and orchestrate integration workflows and provides connectivity to other Software as a Service (SaaS) applications. It provides the ability to build powerful enterprise grade integration solutions. The Visual designer allows any technical user or developer to model and automate business processes.
Why do we need Logic Apps?
Integration with Enterprise, custom or Commercial Off-The-Shelf (COTS) APIs are always considered as complex and time consuming. As business moves towards digitization integrating with Legacy systems and SaaS applications becomes extremely important. With Logic Apps, API Integration is made easy.
Logic Apps has large number of connectors for SaaS APIs and on-premise APIs. The connectors are added regularly to Logic Apps. Full list of the connectors can be found here.
LogicAppsConnector
Advantages of Logic Apps
  • Logic Apps are metadata driven. Metadata is exposed in a format using Swagger.
  • Logic Apps has a simple User Interface and developers can get started using Logic Apps within minutes. Logic Apps are built for faster and agile development. Pre-defined templates allow developers to start developing workflows quickly.
  • Scaling APIs based on the demand has been really hard historically. With Logic Apps service being on Azure and is "serverless" you can meet the demands of your client needs easily. Logic Apps will handle scale, availability and performance automatically to meet demand.
  • Exception Handling is really key for any Integration solutions and Logic Apps provides tools and patterns to make sure that the integrations are robust and resilient against failures using features like retries, scopes, and results.
Pricing
Always keep an eye on the pricing with Azure solutions. The details around Logic Apps pricing is here.
Ideas & Feedback
You can also provide your feedback or ideas on Logic Apps here.
Release updates
Microsoft updates Logic Apps with new features and enhancements on a regular basis and release updates can be found here.