Chris Gomez

Development topics for the indie programmer

React Faceoff - Philly.NET 12/20/17

Thank you all for attending our JavaScript framework "faceoff" at Philly.NET.  The talks were short introductions to Angular, React, and Vue JavaScript frameworks.  If you are interested in the links and resources I discussed, you should be able to find them in the slides below.

I also recommend starting at and just creating a new React app.  You get a full featured React toolchain to cut down on the intimidation when starting out with JavaScript web development.  Sure, you'll need to figure out some of this stuff eventually but at least you can focus on React to start.

Starting point for the demonstration:

Tonight's slides:

Who Needs Visual Studio? - Webinar hosted by PostSharp

I want to thank everyone who came to see "Who Needs Visual Studio?" hosted by the awesome folks at PostSharp.  I especially want to thank PostSharp for graciously allowing me to talk to you about developing .NET Core on and for Linux.

The slides contain links to many resources including links to all the resources I used to get started.  They are available to view on SlideShare:

Who Needs Visual Studio Slides

If you are interested in learning more about development with .NET Core itself, I'd recommend starting with these greaet videos by Dan Roth from the product team:

Explore web development with Microsoft ASP.NET Core

Dive deep into ASP.NET Core

Global Azure Bootcamp - Azure Web Apps


App Service QuickStart in Visual Studio with .NET Framework


Make sure you research pricing yourself.  These links are quick pointers and you will want to make sure you understand what you get charged for.  Don't forget you have to delete (not stop) on the paid tiers (Shared, Basic, Standard, Premium) the Azure Web App to avoid charges.

Pricing Information for Azure Web Apps

For all Pricing Tier limits and details, see the Azure Subscription Service Limits

Debugging Azure Web Apps
We didn't discuss this in the talk, but you can remote debug right into a running Azure Web App.  It's pretty easy with Visual Studio.  This blog post will show you how.

Sample Repositories Deployed on Azure Web Sites

.NET Core

It sounded like some folks had an interest in .NET Core that I wanted to include the documentation link here, where you can learn all about developing for .NET Core on Windows or elsewhere and using the ASP.NET MVC Core and Entity Framework Core.

Visual Studio 2017 Launch at Philly.NET

Thanks to everyone who joined us at the Microsoft Reactor in Philadelphia for tonight's Visual Studio Launch event at Philly.NET.  I mentioned some sites and useful videos in my portion of the demos and I wanted to make sure you had access to everything we talked about.

You can get Visual Studio 2017 at

For more information on installation, see the documentation for Visual Studio 2017:

Someone asked about the different usage of the Visual Studio Installer over using Add/Remove Programs to modify your installation.  Here are the official documents on that, which indicate that you want to use the "Visual Studio Installer" to modify the installation now:

You can make your own offline installer following the instructions in Scott Hanselman's post at:

You can learn more about Live Unit Testing at a few blog entries:

From the Visual Studio Blog:

Steve Smith demonstrates the feature:

For a more conversational video about productivity in Visual Studio 2017, Kasey Uhlenhuth and Mads Torgensen discuss it in this video available on Channel 9:

Don't forget to sign up for Visual Studio Dev Essentials.  There are benefits for everyone, even if you don't own a Visual Studio Subscription.  Offers for free training and Azure credits are a great way to get up to speed on things:

Someone asked about the installation issues they had with Visual Studio 2017.  I didn't have similar issues so I didn't have any experience to help, but I do know the place to ask for help is at the forums for Visual Studio:

Git and Social Coding at NJDOTNET

Thanks to everyone for attending Git and Social Coding.

There are many valuable resources to use Git both at work and as part of the open source world.  Those links will be added to this post in a few days.

For now, here is a link to the slides.  Some resources were offered in these as well:

Slides (Powerpoint)

Xbox Dev Mode with JavaScript and Web Technologies

Xbox Dev Mode was one of the exciting announcements from BUILD 2016.  Every retail Xbox can now be used to test and develop Universal Windows Platform apps.

There has been praise and scorn over this feature announcement.  While I will not try to defend it as perfect, I think there are a lot of hobbyists (like myself) who just appreciate the opportunity to make something and see it working on our consoles.

One thing I noticed immediately was that the documentation for this feature offers a C# and C++ option to get you started.  I was thinking, “Does this mean JavaScript apps using the UWP don’t work?”  I didn’t think that would be true, so I got to work trying it out.  It actually was pretty simple, but there was one minor thing you might consider a gotcha.  So consider this the missing documentation for web developers.


The documentation (Set up your UWP on Xbox development environment) was actually quite good to help me get the Dev Mode preview installed and get all the prerequisites installed.  I summarize here, but you can skip to the next section if you’ve done this already or want to read the real docs.


Making your first web page at the International Back to School Hackathon

This weekend I attended the We Connect The Dots International Back-To-School Hackathon.  The students made websites dedicated to solving global problems in just 48 hours!  That included the time to learn to make web sites!  This was a great experience and I am really proud of the work that was completed.  The web sites look great and the students are using the same tools and frameworks professionals use!

Here is a link to the official recap by We Connect The Dots.  You'll see the smiling faces of our participants there, too!

After the event is over, you might want to learn more about web development.  I tracked down some good places to get started.  There are great web sites that will help you learn to build web sites and make them more and more awesome with JavaScript.

There’s plenty of resources out there for you to learn to make web pages.  Here’s a nice list to get started:

Places to learn

Codecademy – Learn to code right in your browser.  You can sign up for a new account using your Gmail or Facebook account.

FreeCodeCamp – The idea here is that you complete lessons and then write code to help non-profit organization that need web sites built.

Videos you can watch

Microsoft Virtual Academy courses

Microsoft Virtual Academy is completely free.  If you want, you can use your Microsoft Account to log in.  If you do that, you will get credit for the courses on the site and you earn points.

But I tested not logging in and it all still works (thank you Microsoft!)

There are hundreds of free courses here, but you might like these:

HTML5 & CSS3 Fundamentals: Development for Absolute Beginners

Developing in HTML5 with JavaScript and CSS3 Jump Start

Developng 2D Games with HTML5 – If you master the previous two, you might try this one out.  It’s a little more advanced, but you can learn to make games that work in your web browser or on your phone!

Online editors

You can code right in the web browser using these

Cloud9 – This online editor works right in the browser and you can log in using your GitHub account.  You can save code directly to GitHub and have it deploy to Azure Web Apps in seconds.

CodePen – An online editor where you can test out HTML, CSS, and JavaScript snippets quickly.  Ignore the paid plans and look for the free plan

Reference – This really is the best set of JavaScript documentation on the web. – This was the reference site at the Darby, PA site that the kids used to compile “tips and tricks” for how to do different things.

Honorary Hacker

Our Honorary Hacker tells us about her website:

Philly.NET Hands On Lab - Getting Started with Git

Thanks to everyone who attended the Philly.NET Hands On Lab tonight!  I wanted to post some of the links and concepts I talked about so you wouldn't have to take notes during the meeting.

I find that git is unfamiliar to many "Windows" or "Microsoft" developers but yet we see it being integrated into more and more of our workflow whether we are ready for it or not.  You're seeing built-in support in Visual Studio and Visual Studio Code and the ASP.NET team is building ASP.NET 5 in the open in GitHub.  The Core CLR team is building the new .NET "Core CLR" there too.

To that end, I am working on a video series that goes much more in depth, so watch this space for announcements when they are ready.

But let's recap what we looked at in the lab!

GitHub Desktop - This is how I install Git.  I get the GitHub desktop tool and the posh-git Powershell extension right away.  It's sort of a "just works" approach for me.  Purists: feel free to complain.

My sample repository

To be honest, you should be able to create repositories and work on them without needing a sample, but if you want to try contributing to something, I'd appreciate help fleshing out my ES6 Demos that was the basis for a presentation in December.

Also, if you have anything to contribute to any of my samples, feel free!  If there's something you'd like to see me work on in a sample, open a GitHub issue!  Social coding in action!

GitHub-like experiences for the enterprise

You might choose to host Git at work if you aren't interested in cloud-based hosting or paying for privacy.  Here are some options.


Bitbucket Server - This used to be called Stash

This list is not complete.  It's a place for you to start.

I have had personal experience with GitLab in real-life work and I've tested out Stash.

Other Git GUI Tools

SourceTree by Atlassian - Works with Mercurial and Git.  Like GitHub desktop it "steers" you to BitBucket, but works with any repository you want.

SmartGit - A commercial tool, which is tough in the days of free tools, but worth a look.

Podcasts about Git

I talked about Git and Social Coding on the Static Void Podcast with Jess Chadwick and Todd Snyder

Bill Wagner was just on .NET Rocks with an excellent show on Git and GitHub fundamentals.

ASP.NET 5 on Ubuntu Linux "from scratch"

[Now on GITHUB!  I've started a GitHub repo for automating the setup of ASP.NET across platforms.  It currently supports Ubuntu and CentOS flavors, but I plan to keep testing and updating, and include an automated setup for Windows]

[Update: The following is working with ASP.NET beta 6 and was tested on August 22, 2015.  I'll try to keep the post updated, but for one thing I have seen in Announcements for beta 7 that they are changing the dnx command syntax so that may need to be updated in the future.]

[Update: August 22, 2015: I was having problems with dnu restore. The script has been updated to add an environment variable to .bashrc to give Mono more threads per cpu, which made dnu restore much more reliable.]

I've been working at getting ASP.NET 5 running on Linux.  This post doesn't replace the great work of the documentation at the ASP.NET repos at github, or the great work of those working on the Yeoman generators for aspnet.  This merely stands on their shoulders.

I wanted a single script I could use to bootstrap a Linux VM.  After working at it and testing again and again for a few days, here is the script I've come up with for now: Gist on Github

This follows the instructions (essentially) for installing mono, libuv, and dnvm.  Then it installs node and yeoman (remember, I am basing this on a clean install of Ubuntu 14.04 LTS) and puts you just a few steps away from running an ASP.NET template.

How clean is that Ubuntu install?

My Ubuntu installation for this test is via VirtualBox 5.0.2.  The host is Windows Server 2012 R2.  I did accept the third party software and didn't skip anything during the installation.  I let the system get all the Software Updates.  Then I installed the VirtualBox Guest Additions just to make things smoother.  Finally, I installed Atom text editor from

Getting the script

Method 1: Copy/Paste into Atom

If you enable the Shared Clipboard and at least Host to Guest (Bidrectional works too), I've opened the VM, opened atom and then copy and pasted the script home folder as

Then I run:


I had no interruptions other than needing to elevate for the sudo portions of the script right when it started.

Method 2: The one liner

Here, I copy the file down using wget (which seems to be preinstalled) and immediately run bash, but after authenticating for sudo elevation, I can walk away.

wget && bash

"How did this happen?" Q&A

1) Why not "sudo bash"?  Because the dnvm download in particular didn't really want to be installed as root.  I was much happier having that portion installed as my user.  Since the dnvm script updates .bashrc, if you download dnvm as root, you have trouble with the various utilities (dnvm, dnu, dnx) running in your user environment.

2) Why did you wget and then run via bash instead of piping curl output to bash?

A month ago, that sentence would have been meaningless to me.  I am not sure if it is truly literate or sounds like a first grader.  In any case, I really wanted to download and pipe the script to bash.  But what I found was, the script would halt after mono was installed.  I don't know why and I found that getting the file and then calling bash on it worked.  Why wget instead of curl?  No reason.  curl -L [url] > [filename] should work, too.

Script's Done

DNVM and the Mono environment won't be set up for you.  The shell will tell you it has no idea what dnvm is and you really need an environment variable set before you run dnu restore later.  The ASP.NET team's script adds dnvm to .bashrc, and after some reading, I decided to export the Mono environment variable there, too.  Let me know what you think about these choices.

You could always open a new shell but I found manually running:

source .bashrc

did what I wanted and I could continue on from here.

Now you take over

The script ends with mono, libuv, dnvm, node, yeoman, and the aspnet generators installed (along with dependencies).

You still need a version of aspnet to be installed (dnvm list shows none).  So:

dnvm install latest

After this was done, I still need to generate an ASP.NET 5 project using:

yo aspnet

So far I've tried the Console and WebApplicationBasic templates.  After one is created, it will give you a quick rundown of getting them running.  But for review:

First you need to cd to the folder you created the project in and restore NuGet packages:

dnu restore

Then finally, after all that I could run the Console application with (from beta 7 on, drop the period and use dnx run)

dnx . run

And I could run the WebApplicationBasic application with (from beta 7 on, drop the period and use dnx kestrel)

dnx . kestrel

Once the WebApplicationBasic template is running, point to http://localhost:5000 in your browser.

How does this work for you?  I greatly appreciate suggestions, as I'm coming over to Linux from a career spent in Windows.