Creating Simple FAQ Chatbot using QnA Maker API

Chatbot could be utilized to automate business-to-client interactions such as for creating customer service application. Not every task could be handled by the bot though, but it could handle a lot of tasks before some of the more complex ones are delegated to human. However, a lot of heavy-lifting is required to create the AI the bot, such as processing the input of the users, implementing the language understanding, training the machine, testing it, etc. Sometimes, we just want a simple bot that answers to frequently asked questions (FAQs). But different people ask differently, right? And maybe we are wondering how are we able to make our bot understand different questions that might have the same meaning and context. For this scenario, we could make use of QnA Maker API. With QnA Maker API we can build, train, and publish a simple question and answer bot based on FAQ URLs, structured documents or editorial content in minutes. [Read more]

Comparing Asynchronous vs Synchronous Program Execution Time in .NET

Most of today's computing devices already have built-in multiple CPU cores. Multiple CPU cores open up the possibility of a device to run multiple processes at the same time. Those tasks might be in a form of several different applications running at the same time or a single application running several logical operations at the same time. Developers could utilize Task Parallel Library (TPL) to manage parallel and asynchronous processes in .NET. This article will not provide technical details of how TPL can be used, but instead, giving some perspective of how much performance benefits we could gain from TPL to significantly reduce program execution time. [Read more]

Customizing Token Based Authentication (OAuth) in ASP.NET Web API with Existing User Database

ASP.NET Web API project provides built-in OAuth provider to authorize and authenticate users by using access tokens. By default, the user information is stored using OWIN Middleware in the ASP.NET Identity system. The ASP.NET Identity system stores all the user information in a database where it utilizes Entity Framework Code First to implement all of its persistence mechanism. However, sometimes we were faced with a situation where we want to customize our web service to use another or existing database such as ASP.NET Membership, or perhaps our custom made user table. This tutorial will explain the step-by-step procedure to customize built-in token based authentication in ASP.NET Web API to our needs. [Read more]

10 C# Generic Collection Types You Should Know

It is every programmer dilemma to choose which collection type to use for a particular scenario. Even worse, some people use List<T> all the time whenever they encounter a collection of objects. You might have heard some other collection types such as the primitive Array (T[]), Dictionary<TKey, TValue>, Stack<T>, Queue<T>, etc. We will look at 10 of the most used generic collection types, its advantages, and disadvantages as well as the best type to choose for different scenarios. When processing a large amount of data, it is critical to choose the right type, as it will significantly affect the performance of your code. [Read more]

Integrating GitHub and VSTS Repository with Microsoft Teams using Office 365 Connectors

If your organization use Visual Studio Team Services (previously known as Visual Studio Online and Team Foundation Version Controller) or GitHub as source controller and owns an Office365 subscription, you can integrate your organization source controller with Microsoft Teams to enable project collaboration. This article will explain the step-by-step procedure to integrate GitHub and VSTS repository with Microsoft Teams workspace. [Read more]

My First Hands-on Experience with Microsoft HoloLens

Two months ago I got an opportunity to be the co-trainer for Microsoft HoloLens Workshop in BEKRAF GamePrime 2016 Jakarta. It was an annual national game developer conference where game developers and top game industry practitioners around the country gather to showcase their product and to discuss the upcoming industry trends. I went with Christian Saragih and Yugie Nugraha, whom both were my ex-colleague from Microsoft Student Partner. It was Microsoft Developer Evangelism plan to showcase HoloLens product and its potential to game developers. I was very excited for the occasion because I've been waiting for the opportunity to have my hands-on the device. [Read more]

Xamarin Shared Projects (SAPs) vs Xamarin Portable Class Libraries (PCLs). Which to Use?

Overview One of the advantages of using Xamarin over the traditional platform-specific approach is the possibility of sharing a significant portion of your code across iOS, Android, and Windows platform. This article will explore two ways to structure shared code, which is Shared Projects (SAPs) and Portable Class Libraries (PCLs). We will look at the pros and cons of each approach and ways of providing access to platform-specific features in each model. [Read more]

How to Setup a Multi-Protocol VPN Server Using SoftEther on Microsoft Azure (Windows Server)

What is SoftEther? SoftEther VPN is one of the world's most powerful and easy-to-use multi-protocol VPN software, made by the good folks at the University of Tsukuba, Japan. It runs on Windows, Linux, Mac, FreeBSD and Solaris and is freeware and open-source. You can use SoftEther for any personal or commercial use free of charge. This article explains how to install and configure a multi-protocol VPN server using the SoftEther on Microsoft Azure using Windows Server. [Read more]

Azure Resources Naming Conventions

When naming Azure subscriptions, verbose names make understanding the context and purpose of each resource clear. When working in an environment with many subscriptions and resources, following a shared naming convention can improve clarity. Here are some of the advantages of keeping Azure resource naming clear and consistent. [Read more]