1Gig-Tech (#29) – BASH, Azure Functions, VS2015, Windows10

April 3, 2016 1Gig Tech , , ,

Welcome to 1Gig Tech update!

In today’s edition, there are 16 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

  • BASH Running in Ubuntu on Windows
    Windows provides developers with a familiar Bash environment. This environment will allow users to: Windows is running Ubuntu user-mode binaries provided by Canonical. This means the command line utilities are the same as those that run within a native Ubuntu environment.
  • Introducing Azure Functions
    Data is everywhere. It’s in the Cloud, on-premises, and is increasingly proliferating across Internet-connected devices. Organizations are working to unlock the value in that data, and are asking their developers to respond with highly-scalable solutions built on ever-compressed timetables.
  • Visual C++ for Linux Development (Marc Goodner)
    Today we’re making a new extension available that enables C++ development in Visual Studio for Linux. With this extension you can author C++ code for Linux servers, desktops and devices. You can manage your connections to these machines from within VS.
  • Run Bash on Ubuntu on Windows (Mike Harsh)
    Since we started planning and building Windows 10, we’ve been talking to a lot of you about what you would like to see in Windows to make it a great place for you to build awesome apps, sites and services for all platforms and all devices.
  • Visual Studio 2015 Update 2
    Today, we are happy to announce the release of Visual Studio 2015 Update 2. This release focuses on stability and on responding to the feedback we’ve received on RTM and Update 1.
  • NPM Worm Vulnerability Disclosed (Alex Blewitt)
    The NPM project has formally acknowledged a long-standing security vulnerability in which it is possible for malicious packages to run arbitrary code on developer’s systems, leading to the first NPM created worm.
  • Myrtille
    Welcome to Myrtille! Myrtille is a simple yet efficient way to connect an RDP server through a web browser. It requires only a simple browser (no plugin, extension, application or configuration whatsoever). Thus, it works straight from any web device (including touch pads and mobiles).
  • The MEAN Stack
    What is the MEAN stack? (0:47) MEAN is a collection of JavaScript-based technologies — MongoDB, Express.js, AngularJS, and Node.js — used to develop web applications. From the client and server sides to databases, MEAN is a full-stack development toolkit.
  • Less vs Sass? It’s time to switch to Sass (Sam)
    The Sass vs. LESS argument has been done to death. In this series I’ll talk about why Sass really is the best, why you should start using Sass if you haven’t already, how to get started using Sass and Problems with pre-processors, alternatives to Sass and CSS4.
  • Using Docker to run Node.js on a Raspberry Pi
    At Opensource.com, I get to learn about a lot of really interesting emerging technologies in my day to day work. But I don’t always get to explore them myself in depth. This past weekend, I set aside some time to do just that.

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech


1Gig-Tech (#13) – VS2015, AWS, Rosyln, Razor, D3, IoT

October 11, 2015 1Gig Tech , , , , ,

Welcome to 1Gig Tech update!

In today’s edition, there are 50 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

  • Roslyn on GitHub (balajikris)
    The .NET Compiler Platform (“Roslyn”) provides open-source C# and Visual Basic compilers with rich code analysis APIs. It enables building code analysis tools with the same APIs that are used by Visual Studio. Just want to provide feedback on new language features and IDE features?
  • Visual Studio 2015 Update 1 CTP (Heath Stewart)
    Today we released Visual Studio 2015 Update 1 CTP. Included, you’ll find: For a complete description of the improvements, bug fixes, and known issues in this release, see Description of Visual Studio 2015 Update 1 CTP.
  • Authorization Policies and Middleware in ASP.NET 5
    Imagine you want to protect a folder full of static assets in the wwwroot directory of an ASP.NET 5 project. There are several different approaches you could take to solve the problem, but here is one flexible solution using authorization policies and middleware.
  • Razor Generator (David Ebbo)
    Free Generates source code from Razor files (.cshtml files), allowing them to be compiled into your assemblies. Supports MVC, Web Pages and standalone templates. REVIEWS (14) Review SUPPORTS Visual Studio 2013, 2012, 2010 DOWNLOADS Download (56,682) VERSION 1.6.
  • Debug Visualizers in Visual C++ 2015 (Heath Stewart)
    When debugging your native applications, it is often useful to view the values of the objects in memory in a specific way, whether that be with custom string formatting, or even performing an operation on the data to make it more meaningful and easy to interpret.
  • Real-time analytics on your IoT
    Today, Microsoft announced the Azure IoT Suite is available to purchase. Built on the trusted Azure cloud platform, the Azure IoT Suite brings together preconfigured offerings to enable companies to quickly and easily develop and deploy Internet of Things solutions.
  • Update on Node.js for Windows 10 IoT (Windows Apps Team)
    Post written by Arunesh Chandra, Sr. Program Manager and Gaurav Seth, Principal Program Manager Lead on Chakra Ever since we announced our preview of Node.js support for Windows 10 IoT Core a few months back, we have been working to enable new scenarios and improve its ease of use.
  • A Look at ASP.NET 5: Part 5 – The API
    The more I work with ASP.NET 5, the more it looks and feels like the old ASP.NET stack except for the hosting. That’s a good thing in most cases, but writing the API that changes.
  • Unit testing Node.js Applications using Mocha (Ravi Kiran)
    Unit testing has become an integral part of daily development process. It is an important phase of software development, as it is an attempt made towards keeping the code cleaner and making the product functionally better. Applications written in Node.js are no different.
  • Hello.js Social Media (Irvin Dominin)
    The web is fundamentally about people and the huge popularity of Social Media has echoed this notion. Social media is one of the must go-to places for everybody who surfs online. At times, we can’t decide what to surf on the internet unless we check one of the social media sites.
  • D3 Visualization Gallery (GitHub, file a request)
    x You can contribute to this gallery on the Google Spreadsheet or improving it on . Every entry in this gallery is copyrighted by its author. Feel free to for correcting errors. This gallery is developed by Christophe Viau @d3visualization with the help of the community and support from Datameer.
  • vis.js
    The Timeline is an interactive visualization chart to visualize data in time. The data items can take place on a single date, or have a start and end date (a range). You can freely move and zoom in the timeline by dragging and scrolling in the Timeline.
  • Node.js support for Azure Mobile Apps (Openness Team)
    This month Microsoft released a Node SDK for Azure Mobile Apps, enabling you to build and run mobile backends using Node.js on App Service, as well as add push notifications, mobile auth, backend APIs, and more to any Node.js app running on App Service.
  • CronMaker
    CronMaker is a utility which helps you to build cron expressions. CronMaker uses Quartz open source scheduler. Generated expressions are based on Quartz cron format.
  • Bundling, minification and client-side compilation
    For the past couple of years, Web Essentials have been including features for bundling and minifying JS and CSS files as well as compiling LESS, Sass and CoffeeScript. As of Web Essentials 2015 that is no longer the case.
  • GitHub Student Developer Pack – GitHub Education
    Be an intern. We’re looking for talented students to join our first ever internship program. Apply now There’s no substitute for hands-on experience, but for most students, real world tools can be cost prohibitive.
  • How to design for mobile UX (Marc Schenker)
    You probably know by now that mobile has taken off, and there’s no stopping it anytime soon. What you probably didn’t know is just how popular mobile really is. In fact, did you know that the number of mobile users has already overtaken the number of traditional, desktop users? It’s true!
  • Recruiting — Medium (Sara Chipps)
    I talk to founders, CTOs, CEOs and hiring managers of startups often. I host and go to quite a few social events monthly that they gather at, besides them being a large part of my friend group.
  • Live Webinar: Go Mobile with Xamarin and Azure (Steven Yi)
    We’d like to invite you to join us on September 23, 2015 for a joint webinar with Microsoft Azure. Kirill Gavrylyuk from Microsoft’s Azure App Services team and I will cover multiple demos on how to create a cloud-connected mobile app, with plenty of time at the end to answer audience questions.
  • NodeJS 4.0
    Node.js 4.0 has been officially released ? you may wonder what it delivers to you and if you should upgrade right away, or not. Learn more in this post.
  • ASP.NET MVC: Audit Logging (SANS Institute)
    Guest Editor: Today’s post is from Taras Kholopkin. Taras is a Solutions Architect at SoftServe, Inc. In this post, Taras will take a look at creating an audit logging action filter in the ASP.NET MVC framework. Audit logging is a critical step for adding security to your applications.
  • Top 10 Mistakes Node.js Developers Make
    Node.js has seen an important growth in the past years, with big companies such as Walmart or PayPal adopting it. More and more people are picking up Node and publishing modules to NPM at such a pace that exceeds other languages.
  • SonarLint for Visual Studio
    SonarLint for Visual Studio is based on and benefits from the .NET Compiler Platform (“Roslyn”) and its code analysis API to provide a fully-integrated user experience in Visual Studio 2015. SonarLint is free, open source, and available in Visual Studio Gallery.
  • Back to the Future – Decapsulation (Dmitriy Gakh)
    When programming modules are processing huge volumes of data stored in the RAM, data storage structure affects RAM consumption and performance. Using more primitive data types, structures instead classes, native data instead structures, can be used to economize computer’s resources.
  • GitHub Desktop
    GitHub Desktop is a seamless way to contribute to projects on GitHub and GitHub Enterprise. You’ll find all the projects you’re working on listed in the sidebar.

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech


1Gig Tech (#4) – VS2015, .NET 4.6, ASP.NET, HTML5, AMQP, NCover, IoT

July 25, 2015 1Gig Tech , , , , , ,

Welcome to 1Gig Tech for 25 Jul, 2015!

In today’s edition, there are 23 articles on technology, news, open source, community on the fantastic and ever evolving technology world.

  • The History of Windows Timeline (cmclellan)
    After April 8 2014, Microsoft will no longer deliver new security updates, non-security hotfixes, free or paid assisted support options and online technical content updates for Windows XP.
  • A Custom Elements-Based HTML5 UI Framework
    Onsen UI is designed and implemented to deliver unprecedented user experience for your apps. Frustrated with the lack of native-like performance? Try Onsen UI and you’ll feel the difference right away. Onsen UI is responsive.
  • AMQP protocol : the builtin type system by examples (ppatierno)
    One of the most interesting features of AMQP protocol is the built in type system that provides a way to represent the AMQP values inside a frame starting from primitive types to custom types (based on our application domain) and composite types (containing fields).
  • VexFlow
    The score below was rendered in your browser. If you’re a programmer interested in rendering music notation in your own applications, take a look at The VexFlow Tutorial.
  • Edit this webpage with your voice
    Commands you can speak Element selection Select the (element) Ex: “select the header” Ex: “select the footer” Select the largest image Select the text (text) Ex: “select the text GET INFORMATION” Ex: “select the text WITH YOUR VOICE” Select its parent Select its first child Select its last child
  • WebAssembly: a binary format for the web (Google)
    WebAssembly (short: wasm) is a new binary format for the web, created by Google, Microsoft, Mozilla and others. It will be used for performance critical code and to compile languages other than JavaScript (especially C/C++) to the web platform. It can be seen as a next step for asm.js [3].
  • Announcing .NET Framework 4.6 (Heath Stewart)
    We’re excited to announce the RTM releases of .NET Framework 4.6 and Visual Studio 2015 today. You can read about the new features or leave that for later and try them out now. The quickest way to get started is to install the free Visual Studio 2015 Community version. With the .NET Framework 4.
  • Same Day Xamarin Support for Visual Studio 2015 (Miguel de Icaza)
    Today, Microsoft is unveiling the final release of Visual Studio 2015 in a global webcast, and we are joining the celebration! Now Released to Market (RTM) for full use in production, Visual Studio 2015 includes many new features and improvements that make it easier to build apps quickly, includin
  • The anatomy of a credit card form (Gabriel Tomescu)
    Paying for something online with a credit card is simple, right? Yes and no. Yes, because we’ve been doing it since the early days of the Internet (e.g. Amazon), and no, because no two credit card forms are alike.
  • Dropdowns Should be the UI of Last Resort (Luke Wroblewski)
    All too often mobile forms make use of dropdown menus for input when simpler or more appropriate controls would work better. Here’s several alternatives to dropdowns to consider in your designs and why. No one likes filling in forms.
  • NCover 5.1 Beta Program
    When we originally released NCover 5 last year, we were excited to share a lot of great new features including Condition Coverage and even more ways to share coverage results across the organization.
  • Merging Dynamic and Static Sites (Raymond Camden)
    Over the past year or so I’ve been fascinated by static site generators. I have a long history of working with dynamic web sites, and static sites were an intriguing change of perspective for me.

You can also follow these updates on Facebook Page or can also read previous editions at 1Gig Tech


Porting a .NET Console App to run on Linux

December 10, 2014 ASP.NET vNext, CSharp, Mono, Visual Studio , , , , , ,

With .NET 2015, as we know .NET has provided first-class cross-platform support. So if you have a Linux or Mac environment, you could run a ASP.NET website in less than 10 minutes. Of course, you would need to do one-time setup which may take anything between 45-60 minutes. But I am sure we will get some Docker images or VHDs that would have the Mono environment setup.

If you are new to running .NET 2015 on Linux, I would recommend reading my article on ASP.NET on Linux

In this post, we will look into porting an existing Console Application to Linux

Few changes to your Console Application

If your console application has been built on a version other than .NET 4.6, you need to upgrade it to .NET 4.6. In your console application properties, you can set your target framework to .NET 4.6 (or .NET 4.5.3 in VS 2015 Preview).

To run this application, we need to create a new file project.json in the same folder where your .csproj file exists

    "dependencies": {
        "System.Console": "",
        "Newtonsoft.Json": "6.0.6",
    "configurations": {
        "net45": { },
        "k10": { }


Now you have to list down all dependencies like I have mentioned System.Console. I believe this can be created from your Nuget packages.config file.

With these changes you are ready to run this on Linux

Run this application on Linux

Copy the source code into Linux using either wget or git or sftp. Let’s assume the code is copied as shown in the directory below

So on your Linux VM, you can run following command in the directory ~/punit/console/ConsoleApp_SampleForLinux

kpm restore

This will traverse through your project.json file and get all the dependencies. Note here, your csproj file is of no relevance in this process. Even if your csproj file is not copied to Linux, this process will function correctly

Next, build this code using command

kpm build

If there are no errors, you could simply run the application using the command

k run

A simple Hello World application will give an output as,

And your code is ported successfully to run on Linux!

Hosting your ASP.NET application on Azure Linux Hosting

December 1, 2014 ASP.NET, Azure, Visual Studio, Xamarin , , , , , , ,

Now that ASP.NET 5.0 (vNext) runs on .NET 2015 – a cross platform version of .NET – it is worthwhile hosting your web applications on Linux. So let’s get started

Procuring a Linux VM

I chose procuring a Linux VM using my Azure Subscription and I quickly spawned a Standard Ubuntu server.

Now what you get as a VM is basic version of VM and you need to install .NET runtime on it.


Installing .NET Runtime on Linux VM

If you do not have PuTTY client, I would recommend downloading it as we will use this for executing all our commands on Linux. Using PuTTY, you can login using your SSH certificate or credentials (based on your VM configuration). First you need to validate if you have appropriate version of Mono installed by executing following command

mono --version

You will get an output like,

The minimum required version of Mono for ASP.NET 5.0 is 3.4.1 or later. So in this case, we do need to install a later version of Mono. You can execute following commands one by one on the VM

## Prerequisites

sudo apt-get install make
 sudo apt-get install git autoconf libtool automake build-essential mono-devel gettext zip mono-complete unzip
 sudo apt-get install bash zsh curl

## Get Mono Code and Compile it

wget http://download.mono-project.com/sources/mono/mono-$VERSION.tar.bz2
tar -xjvf mono-$VERSION.tar.bz2
cd mono-$VERSION
./autogen.sh --prefix=$PREFIX
make install

These steps would require around 45-60 minutes of time and would download latest source code of Mono from GitHub, compile and install it for you on your VM. The source code is huge and its compilation (command: make) will take time to execute. You can browse through different versions of Mono at – http://download.mono-project.com/sources/mono/

The .NET Framework on Windows uses the Windows Certificates store to check whether to accept an SSL certificate from a remote site. In Mono, there is no Windows Certificate store, it has its own store. By default, it is empty and we need to manage the entries ourselves.

sudo certmgr -ssl -m https://go.microsoft.com
sudo certmgr -ssl -m https://nugetgallery.blob.core.windows.net
sudo certmgr -ssl -m https://nuget.org
sudo certmgr -ssl -m https://www.myget.org/F/aspnetvnext/

This would ask you if you want to import certificates to CA store and AddressBook store. Say Y when prompted. In total, 9 certificates will be imported.

Some of the certificates may not be trusted, so to avoid trust issues you need to execute

mozroots --import –sync


Installing K-Version Manager

Installing KVM is simple and is single line command

curl -sSL https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh & source ~/.kre/kvm/kvm.sh

Post this you have to execute following command to start kvm

source /home/punitganshani/.kre/kvm/kvm.sh

Now you can trigger another command to upgrade kvm

kvm upgrade

This command will download the specified version of the K Runtime Environment (KRE), and put it on your user profile ready to use.

After all the above steps are completed, you can execute below command to check the version of Mono installed

mono --version

You should get some output like,

Verify K Runtime Environment (KRE)


The KVM upgrade command will download K Runtime Environment (KRE) and put it on your user profile to use. So next is to verify if K has been installed correctly

Checking nuget.config file


In the /home/<<username>>/.config/NuGet folder, you will find nuget.config.
The content of files should appear as


Hosting your ASP.NET 5.0 Website


So for illustration, I am using ASP.NET 5.0 Starter Application which can be quickly created using VS 2015 and its solution structure looks like,

I need to send this code to my Linux VM for compilation. I use FileZilla to connect to FTP to my sites. So I created another folder on my VM /home/punitganshani/punit/aspnet where I will copy my solution code. Once the code has been copied to the VM, you need to ensure that you have the correct Nuget Packages which can be verified and updated using

kpm restore –s www.myget.org/F/aspnetvnext/

Before you run this command, make sure your project.json has following elements

"dependencies": {
    "Kestrel": "1.0.0-beta1",
 "commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000",
    "kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5000"

The command kestrel will not be available in KRE unless you have defined the Kestrel in project.json. If you haven’t mentioned Kestrel, you will have to manually install it using following commands,

sudo apt-get install npm
npm install -g grunt-cli
npm install kestrel-server

Now you can compile the code using command

kpm build

With the build being successful, now we can host the application,

k kerstel

For a website that ran perfectly through Visual Studio, you may get an error

System.NullReferenceException: Object reference not set to an instance of an object at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.loop_size ()
 [0x00000] in <filename unknown>:0 at
 Microsoft.AspNet.Server.Kestrel.Networking.UvLoopHandle.Init (Microsoft.AspNet.Server.Kestrel.Networking.Libuv uv) [0x00000] in <filename unknown>:0 at Microsoft.AspNet.Server.Kestrel.KestrelThread.ThreadStart (System.Object parameter) [0x00000] in <filename unknown>:0

You can enable tracing to get more details by executing command export KRE_TRACE=1

For Web Applications, we need KestrelHttpServer which is built on libuv library. So let’s build libuv and get going,

wget http://dist.libuv.org/dist/v1.0.0-rc1/libuv-v1.0.0-rc1.tar.gz
tar -xvf libuv-v1.0.0-rc1.tar.gz
cd libuv-v1.0.0-rc1/
./gyp_uv.py -f make -Duv_library=shared_library
make -C out
sudo cp out/Debug/lib.target/libuv.so /usr/lib/libuv.so.1.0.0-rc1
sudo ln -s libuv.so.1.0.0-rc1 /usr/lib/libuv.so.1

And we run the same command k kerstel

The last bit, exposing endpoint on Azure


As per the project.json we have hosted this website on the port 5000 using kestrel, so we need to expose this endpoint to the users. Assuming that this VM will host only one website, we can setup a HTTP/TCP endpoint as

You are now set to browse the ASP.NET 5.0 application hosted on Linux

The sample source code for project.json and packages.config are available on GitHub

Follow on Feedly