How To,Tutorial,Wintellect Blogs

DevOps: Connecting VSTS to Azure

Ken Muse

30 Jun , 2017  

DevOps is about increasing efficiency and eliminating barriers. There’s a lot of convenience in deploying directly from Visual Studio Team Services into the Azure cloud. With plugin based build and release pipelines, it’s very easy to quickly configure a release and see the results online. You can quickly configure a release to deploy to Azure and the wizards and settings will automatically configure the necessary permissions and credentials in the two systems. Everything just works … unless you’re running VSTS in a separate account or environment from the target Azure subscription. In this post, I’m going to walk you through the black art of manually connecting VSTS to an Azure subscription to enable automated release and deployment pipelines.

Getting started in VSTS

To demonstrate the problem and how to fix it, we’re going to create a very simple Release pipeline. In VSTS, begin by opening Build & Release. From there, you can choose Releases and create a new release definition by pressing the large “+” on the page and choosing to create a release definition.

Begin with an empty definition.

For the purposes of this demo, you do not need to associate it with any build artifacts. You can select Choose Later.… Read more

, ,

Wintellect Blogs

Data Science with Python in Visual Studio

Jonathan Wood

12 Jun , 2017  

Yep, you read that right. Visual Studio isn’t the first thing you think of when you hear “data science”, but that may just change soon. In Visual Studio 2017 they have included several tools together where you can do Python, R, and F# data projects for analysis and visualizations.

In this post we’ll go over how to use Python that you can get with Visual Studio and all the tools that you can use that comes with it.

Installing the Tools

First thing’s first, you need the tools before you can use them. You can go this with Visual Studio Community Edition, which is free to use, so no MSDN subscription or anything is required to get started.

When you run the downloaded installer, just make sure you check the Data Science and Analytical Applications section:

Visual Studio Install

After installing, you now have access to quite a few more project templates to choose from.

Project Templates

That’s a good amount! Let’s go through a bit of each of the Python and R templates and see what all they give us.

Python Projects

Here’s what the current list of Python templates look like.

Python Templates

That’s a lot of templates! A few of them are from the web side, such as Flask, Django, and Bottle, but not too much left.… Read more

, ,

How To,Tutorial,Wintellect Blogs

DevOps and Docker: Creating Automated Builds with GitHub, Docker Hub, and WebHooks

Blaize Stewart

1 Jun , 2017  

Create Automated Builds

The GitHub repo used in this article can be found here.

One of the lesser known features of Docker is its ability to do cloud builds based on WebHooks from GitHub and Bitbucket. Bitbucket and GitHub integration works in Docker natively so that when code is pushed to a repository, Docker will download and deploy the code and build the image on Docker hub automatically with Docker Automated Builds.

Setting it up is easy. Logon to Docker Hub, and you can select from the Create menu, select Create Automated Build.

docker automated builds

This will take you to a page with two big buttons – one for Github and one for Bitbucket. Both work the same way – You first link your Github account with the Docker Hub account. This process is pretty straight forward. Once you link the accounts, you can now select the GitHub or Bitbucket repository you want to use. Once you select the repository, you can now create the build integration. Name the Docker Hub repository whatever you want then click Create.

Connect to GitHub

Now, you can git push your app to GitHub or Bitbucket with git, and it will then trigger a build on Docker Hub. The push will need to include a Dockerfile in the root of the git repo.… Read more

, , , , , , ,

Wintellect Blogs

Xamarin: From Zero to Certified

Jason Hill

26 May , 2017  

I have been interested in mobile development for several years now. I have dipped my toes into the waters of mobile development here and there. Recently, I have completed my Xamarin certification exam; so now I am legit. I would just like to highlight a bit of that journey.

In the Beginning

My interest for mobile development started after I bought my first smartphone, the Motorola DROID. Does the LG Voyager count?? Anyway, once I bought my DROID, I was in love. Besides having access to a whole app ecosystem finally, I could also create apps for my phone. So with stars in my eyes and the sky as the limit, I started digging into Android development. Android apps would require that I say hello again to my old friend Java, which I had not touched since college. Given I had been working with C# for the last few years, switching back to Java would require a bit of a mental shift especially since I would need to learn Android concepts. The end all, be all was that I read a few books, did some tutorials but honestly, I couldn’t see myself getting into doing Java development for creating Android applications.… Read more

, , ,

How To,Tutorial,Wintellect Blogs

Multi-Stage Builds with Docker

Blaize Stewart

19 May , 2017  

Dockerfile

One of the most anticipated announcements in the Docker space when it comes to building images is Multi-Stage builds because of the huge benefits it gives to CI/CD pipelines in DevOps. Before this announcement, building software in a container usually involved creating a container with all the SDK’s and compilers in the container, uploading code into the container, compiling it, creating a drop, then building another container with just the runtime that sucks in the compiled code to run. This pattern required an external tool and storage to build the container image so it was more burdensome.

Multi-Stage builds on Docker though provide a mechanism for moving the output of a build from a builder container into another container that can be used for running. Consider the following the example. This Dockerfile builds a .NET core app in one container then packages it in another.

#Builder
FROM microsoft/dotnet:1.1.2-sdk-jessie
COPY /myapp /myapp
RUN dotnet restore ./myapp && \
    dotnet build -c release ./myapp && \
    dotnet publish -c release -o pubdir ./myapp

#Final Build
FROM microsoft/dotnet:1.1.2-runtime
COPY --from=0 /myapp/pubdir /myapp
ENV ASPNETCORE_URLS http://+:80
ENTRYPOINT ["dotnet", "/myapp/myapp.dll"]
EXPOSE 80

This file has two FROM instructions, which in a traditional Dockerfile only one is a allowed.… Read more

, ,

Wintellect Blogs

A Late Synopsis Of The Angular NG-Conf Day 3

Jason Hill

5 May , 2017  

ng-conf 2017: Day 3

With two jam-packed days in the books, only one day remained.  The format for the final day of ng-conf was another single room, all day series of sessions.  Much like the first day, the range of topics was both broad as they were relevant and informative.  Day 3 had a few major themes expressed in the speakers’ presentations.

Tech

Brad Green and Rob Wormald presented the keynote presentation.  They talked about how Angular fits in at Google.  And by fit in, it is more like Google runs on Angular.  Google has hundreds of its major systems running on top of Angular including data center allocations, release management, product launch approvals, and bug tracking.  Google demonstrates its commitment to Angular as well as its commitment to the ecosystem around Angular.

For many, many, many web developers, Bootstrap is as essential to their workflow as the technologies Bootstrap uses; namely HTML, CSS, and JavaScript.  In her talk, Giving Bootstrap the Boot, Alyssa Nicoll has a different opinion.  She has experienced several pain points using Bootstrap and fighting with the very things the framework is supposed to address.  Alyssa demonstrated for the audience issues around customizing CSS and having to battle Bootstrap’s CSS due to the high levels of specificity.  … Read more

, , ,

How To,Tutorial,Wintellect Blogs

Xamarin Forms for Windows Developers: Tips, Tricks and Lessons Learned, Part 2

Scott Peterson

4 May , 2017  

xamarin forms best practices

The Recap

This series of posts is devoted to all the things I wish I knew, as a long-time Microsoft Enterprise developer, before I provisioned my first xPlatform solution: The 60+ tips, tricks, and lessons learned I’ve accumulated over the last couple of years using Xamarin Forms (in Visual Studio for Windows.)

Many of these things are things an Android or iOS developer (i.e.; college student) probably already knows, but not a Microsoft developer. Some of these things will seem ridiculous to even share, and some so obvious that perhaps some developers will pretend I am the only one who didn’t already know about it. Some of these things will be super-extra important, and some will be meaningless to almost everyone. If you “lean native” you might even argue with me about some of them. That being said, here is the second batch of TTLL:

The Bits

If you’re not using Visual Studio Mobile Center you are totally missing out.

If you haven’t heard of Visual Studio Mobile Center it’s understandable. Have you heard of HockeyApp? If you haven’t heard of HockeyApp, have you heard of a Sony Walkman? Visual Studio Mobile Center is one of the coolest (and most under-marketed) “almost” brand new offerings, from Microsoft for managing mobile app development and development lifecycles.… Read more

, ,

How To,Tutorial,Wintellect Blogs

Xamarin Forms for Windows Developers: Tips, Tricks and Lessons Learned, Part 1

Scott Peterson

3 May , 2017  

Xamarin Forms for Windows Developers

The Confession

Okay, right off the bat, I’m going to admit I’m a Microsoft “bigot” or in less unfriendly terms, a Microsoft “super-enthusiast” with severe “Microsoft is actually better at everything” leanings. I’ve spent most of the last 30 years writing Microsoft-based solutions with Microsoft tools and technologies for clients who are Microsoft “shops.” Still, to this day, I never install any non-Microsoft products on my workstations, except the (still phenomenal) Adobe Fireworks. Yes, Fireworks.

The Challenge

For the last four years, as a weird twist of fate, I have been creating real apps for real clients using the Xamarin platform, and more often than not, Xamarin Forms (or is it Xamarin.Forms? …I can never figure out why we need a dot although it does look cooler that way.) One thing I have noticed is that almost every blog, every post, every slice of documentation that exists for Xamarin Forms seems to be written by someone who “skews native” and not by someone in the actual Microsoft development world. I know why this is, of course, but am not going to write it out loud.

The Observation

Over the last couple of years I also started to notice (mostly) Microsoft developers struggling with the same issues, the same hiccups, and doing the same things that “seemed right at the time” based on documentation, but realized one compile too late, those examples were just “examples” and not to be taken on an empty stomach.… Read more

, ,

Wintellect Blogs

A Late Synopsis Of The Angular NG-Conf Day 2

Jason Hill

2 May , 2017  

talk

Day 2 of ng-conf was a fair day.  Multiple talks and activities took place all day long.  Not being able to clone myself and see all of the discussions, I set my focus on a particular path for the day.  So let’s take a look at the path I chose.

RxJS: The Good Parts

The title of this talk caught my attention as it pays homage to JavaScript the Good Parts by Douglas Crockford.  The talk focused on some of the most frequently used RxJS operators such as filter(), map(), reduce() as well as observable methods such as .switchMap(), .mergeMap() and .zip() to name a few.  Towards the end of the talk, the speakers provided a performance comparison.  The comparison was for execution times needed to manipulate a collection of numbers using plain JavaScript vs. RxJS operators and methods.  Not a surprise RxJS had better performance as it wasn’t iterating over the data multiple times to complete the same operations.

Angular Performance Birds of a Feather

Unfortunately, the time slot for the RxJS presentation cut into this talk.  I was able to catch half of the speakers, and even then, it was very informative.  The format for this presentation was a series of lightning talks from representatives of multiple companies talking about how they squeeze the most out of their Angular apps.  … Read more

, ,

Wintellect Blogs

A Late Synopsis of The Angular NG-Conf Day 1

Jason Hill

27 Apr , 2017  

April 5-7th 2017 marks the 4th year of the Angular conference ng-conf. This year’s ng-conf marks my first year attending, w00t w00t to that.  From the first day’s rapid-fire talks, the tone of the conference, and I think for Angular in general, is set for the year.  Some of the major takeaways from the first day I’ve highlighted below.

Community

Before the keynote took place, Aaron Frost, one of the organizers took a moment to go over the code of conduct for the conference. The organizers wanted to stress the importance of creating a conducive environment for sharing and learning over the next few days.  This point speaks to the overall message that the Angular community wants to convey, which is “Build with Us.” And, by providing an inviting and open ecosystem to current and new developers, they hope to grow the community.

With that theme in mind, a talk by Justin Searls focused on getting the creative juices flowing. He discussed his personal philosophy around what sparks his creativity.  Justin then provided some insight into what could help others be more creative, which translates into building apps.  The key takeaway from his talk was that it is okay to build software that interests individuals, reflect on one’s feelings, and finally find your outlet, whatever it may be.… Read more

, ,

How To,Tutorial,Video,Wintellect Blogs

Python Jumpstart for .NET Developers

Wintellect

21 Apr , 2017   Video

python jumpstart

Learn Python in this Webinar geared to .NET/C# Developers

Today Wintellect held a live Python jumpstart coding session for C# Developers presented by Michael Kennedy, host of the TalkPython and PythonBytes podcasts.

A couple weeks ago Michael presented Wintellect’s live webinar “Write Pythonic Code Through 5 Examples.” During this session, we found that 53% of our audience had .NET/C# backgrounds. Keeping this in mind, Michael and Wintellect decided it would be advantageous to do another Python webcast but geared to those with C# backgrounds that wanted to learn the python language. This webinar will give you a Python Jumpstart as we look at the parallels of the two languages and those concepts in Python.

Every major language or platform feature that you know and love in C# there’s a analogous feature in Python and sometimes the feature in Python is even  better.

Michael started the session with a quick Python language introduction about the ecosystem. He then spent the the remaining time building a game for the audience, a version of an old pastime to many “Dungeons and Dragons”.

Following the coding session there was a live Q&A session.

We hope you find this recorded Python webinar session useful. As Michael mentions in the webcast, he will be teaching two upcoming Python workshops if you are interested in learning more.… Read more

, ,

Wintellect Blogs

NG-CONF 2017 Day Three Highlights

Dave Baskin

11 Apr , 2017  

ng conf 2017

Keynote

Brad Green spent some time discussing how Google as a company is fully embracing Angular as an application development framework. In fact, the goal is to have all web application development within Google to be using Angular by the end of 2017. He also explained that it makes sense for them to invest so many resources into Angular as an open-source project because of the additional benefits to Google itself. The primary benefit is the large ecosystem that has grown around Angular. Libraries and tools would probably not exist if Angular was simply an internal Google project. In addition, Google has built several tools internally that have been reproduced in other open-source projects. It makes sense that there is benefit to sharing these efforts with the community. It also helps with hiring within Google, where proprietary in-house tools require additional training and ramp-up for new hires. And, of course, the overall quality of the source code is improved by the great feedback received from the community through PRs, documentation, and training.

For example, the Angular team originally went down the path of creating its own JavaScript super-set called AtScript. It became evident that TypeScript was a more viable option, though, so the Angular team abandoned this effort and fully embraced TypeScript.… Read more

, ,