How To,Tutorial,Wintellect Blogs

Multi-Stage Builds with Docker

Blaize Stewart

19 May , 2017  


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.

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
ENTRYPOINT ["dotnet", "/myapp/myapp.dll"]

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

, , ,

How To,Resources,Tutorial

Migrating Legacy ASP.NET apps to Docker

Blaize Stewart

15 May , 2017  

Containers vs VMs

Many organizations, not wanting to rewrite applications, are figuring out how to take apps and containerize them for the cloud. Older operating systems are either end-of-life or approaching the end-of-life. Likewise, applications are increasingly being migrated to cloud hosts. The need to do this is as pressing as ever and containers offer a simple, viable solution to make this happen. Windows Containers on Docker bring to bear is the ability to “modernize” legacy .NET apps.

Containers by design improves application density on a given hardware by eliminating the need for redundant operating system installs. Unlike virtual machines that provide hardware abstraction on which a guest OS and apps are installed, containers provide operating system level abstraction, and apps run on top of that. This in effects removes all the CPU and memory requirements needed to run individual OS’s for apps and consolidates this into a single operating system (or multiple if running on a cluster). In the end, the savings are realized in terms of disk space, CPU, and memory consumption.

migrating apps to docker

Microsoft like many other organizations have embraced containers, and have formed a deep partnership with Docker to provide Windows containers. Moving legacy apps to containers is nuanced, and there is no one-size-fits-all approach, but this guide is intended to provide a high-level approach to getting your legacy ASP.NET apps into Windows containers.… 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

, ,

How To,Tutorial,Video,Wintellect Blogs

Python Jumpstart for .NET Developers


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

, ,

How To,Resources,Tutorial,Wintellect Blogs

Building JavaScript Applications with Angular and Redux

Eric Greene

12 Apr , 2017  


The web application world has been disrupted by the plethora of JavaScript technologies which has transformed the development of web applications from being a primarily server-side effort, to primarily a client-side one. Ever since jQuery made cross-browser web applications easy for everyone to create, a steady stream of JavaScript libraries and frameworks have been released at a frantic pace, with each one doing something better, or faster, or both. The overwhelming pace of advancements has left the JavaScript developer exhausted, and the reluctant server-side developer sometimes generations of JavaScript advancement behind. For anyone seeking to catch up, the key is to identify the latest technologies which survive the all-too-common quick obsolescence many JavaScript technologies experience. Instead, JavaScript technologies which will form the cornerstone of many applications today and far into the future need to be selected. Two technologies which fit this requirement are Angular and Redux. Angular is a framework, and Redux is a library, but when combined, they provide a powerful approach for solving many of the problems associated with the building of web applications and cross-platform user interfaces in general.

Angular is a massive user interface framework. It is a highly opinionated and comprehensive solution to many of the challenges of constructing modern user interfaces, particularly within a web browser.… Read more

, , , , ,

How To

How to Use Microsoft’s Project Rome for a Seamless Cross-Device Experience

Paul Ballard

11 Oct , 2016  

Taking the ‘universal’ part of the Universal Windows Platform to the next level, Microsoft’s Project Rome focuses on having apps function continuously and harmoniously across devices. A new Microsoft tutorial shows how that might work for your app.

Microsoft is highlighting two key features of its Remote Systems API for the Windows Anniversary Update:

1) App experiences can move with the user so that users does not have to deal with any gap in functionality as they switch from one Windows device to another. Microsoft illustrates this with the example of a music app from its favorite fictional company, Contoso. A user could start listening to a song in the car, then transfer the song from her phone to a PC or Xbox after arriving home.

Developers can accomplish this by implementing the RemoteSystemWatcher class to discover other devices—via either WiFi/Bluetooth or the cloud—select the optimal transport method, and build a device list that users can select from. (Check out the blog post for links and code snippets that further explain the process.)

2) Messaging between connected devices allows for remote control of an app from another device. For example, the same user could control playback on her TV from her phone.… Read more

, , ,

How To,News

FamilyNotes App Demos Windows 10’s Speech, Facial Recognition Capabilities

Paul Ballard

6 Jul , 2016  

Microsoft wants to lead its customers into a bold future where interacting with computers and other devices is less reliant on keyboards and typing and more like conversing with an actual human. Or, as a recent post on the company’s Windows developer blog puts it, “Speech rules, text drools.”

To demonstrate Windows 10’s speech, facial recognition and inking capabilities, the company’s developers have built a Universal Windows Platform app called FamilyNotes. The message-board app itself—written in C# and XAML—is pretty dang simple. One might even ask why we’d need an app that basically just creates glorified Post-It notes for our friends and family to read.

But the point, of course, lies in the Windows 10 features Microsoft is showing off. For starters, the app integrates with Cortana, Microsoft’s digital assistant. Users can use voice commands to get Cortana to open the app or start drafting a new note. Notes can be dictated or jotted down using InkCanvas. (Yes, this means doodles can be added.)

The app can also make use of facial recognition to ensure that a user sees only the notes meant for him/her. FamilyNotes determines when a face is present, matches the face to an existing database and then filters the notes for that person.… Read more

, , , , , ,

How To,News

Submit Your Bot to Microsoft’s Directory

Paul Ballard

3 May , 2016  

Bots are the future, Microsoft proclaimed at this year’s Build conference, and now the company is inviting developers to submit their own for inclusion in a publicly-available bot directory.

In an email to developers cited on Windows Central, Microsoft said it was seeking submissions of chat bots made using its open-source Bot Framework. The Framework, announced at Build, includes bot builder SDKs for C# and Node.js, available on Github, plus a Bot Connector for connecting your bot to Skype, Slack, Facebook Messenger and other popular conversational channels.

Once the directory goes live—on a yet-to-be-determined date—users will be able to search for and download a range of bots. For now, Microsoft’s directory page includes just a few sample bots released during Build, including a Bing News Bot and one that generates captions for photos. But Microsoft said more than 20,000 developers have already signed up to use the bot framework.

Click here to submit your bot or register for the framework if you’ve not yet signed up. Learn more about the bot framework here.



 … Read more

, ,

How To,News

How to Make Your App Visible in Windows Store

Paul Ballard

21 Jan , 2016  

Windows Store has long been plagued with complaints about the low quality of apps, prevalence of spam, and the fact that popular apps are unavailable or missing key features. It’s a problem for Microsoft, which urgently wants to inspire more developers to build universal Windows apps.

In its quest to improve the quality of apps in the Store, Microsoft released some tips for developers last week on how to name and format their apps for maximum visibility.

Some of them are obvious: “Make sure you own the name, brand, icon and content.” “Build apps that offer more or different value than those already in the store.”

Others, however, specifically target common spam tactics and provide some insight as to how the Store’s search engine ranks apps. For example, rather than submitting multiple, related apps to the Store, Microsoft recommends consolidating as much content as possible into a single app:

Building a richer app will also help it have more opportunities to be considered to be featured in the Store, since a single app that has more content will have wider appeal compared to one app with less content.

Microsoft also advises limiting the number of keywords in app metadata and ensuring they are truly relevant to your app, rather than a jumble of popular search terms.… Read more

, ,