Besides my day job, I am also an author at Pluralsight.com, the online learning company for developers.
Pluralsight is an online training company that builds online course ware for developers, by developers. I was honored that I got selected as an author and I have delivered a couple of courses.
Introduction to Docker on Windows with Visual Studio 2017
In this course, I teach you how to use Docker to deliver solutions to the Windows platform. First, you’ll explore the options and capabilities Docker offers on the Windows platform. Next, you’ll delve into how Visual Studio 2017 simplifies the use of Docker in the development cycle. Finally, you’ll learn how to implement a delivery pipeline with Visual Studio Team Services (VSTST) or TFS to deploy to any of the target platforms, ranging from single windows server to a cluster of machines managed by cluster managers like Kubernetes or Service Fabric. By the end of this course, you’ll be able to explain how containers work on windows, how to build Docker containers to run new or existing workloads, and how to deploy your applications to different container hosting solutions on premise or in the cloud.
Here is a brief video introduction that gives you an idea of the course.
Here is the outline of the course:
Module 1: Introduction to Docker on Windows with Visual Studio 2017
- Running Containers and Docker
- What Is a Container?
- Containers vs. Virtual Machines
- Containers vs. Docker
- Docker Command-line
- Difference Between an Image and a Container
- Inspecting Images and Layers
- Running on Windows
- Development Tools
- Docker Compose
- Docker Commands Needed to Understand Visual Studio
- Which .Net Framework to Choose?
- Container Clusters
Module 2: Docker and Visual Studio
- Using the Docker Tools in Visual Studio 2017
- Docker Files Added
- The Docker file Debug/Release Trick
- Yaml Files Added
- The Yaml File Trick
- Volume Maps on the Containers
- Use the Visual Studio 2017 IDE to Build Containers
- Debugging Your Cross-container Solutions with Visual Studio 2017
Module 3: Handling Data in Containers & Testing
- Handling Data in Containers
- Setting up Volume Mappings to Manage State
- Using the Volume Mapping Commands
- Running SQL Server in a Container
- Creating and Running SQL Server Images
- Leveraging Immutability for Testing
- Integration Test Using a SQL Container That Resets After the Tests
Module 4: Docker and Your Continuous Delivery Pipeline in VSTS
- Understanding Containerized Builds
- Running a Build in VSTS
- Setting up the Build
- Configuring Build Agents to Build Containers
- Setup a Custom Build Agent
- Setup a VSTS Build for Your Containers
- Understanding Tags
- Deploying Your Containers Using the Release Pipeline
- Deploy Your Containers to a Container Host
- Pushing Images to Azure Container Registry or Dockerhub
- Create and Use an Azure Container Registry
Module 5: Deploying to Azure Container Services (ACS)
- Why Do You Need Clusters?
- Understanding Azure ACS
- Create an ACS Cluster Running Kubernetes
- Deploying Your App to the Cluster by Hand
- Kubernetes Cluster Anatomy
- Deploy Containers to Kubernetes Cluster by Hand
- Deploying Your App to the Cluster Using VSTS
- Zero Downtime Deployment Using VSTS and ACS with Kubernetes
- Scaling Your Apps and the Cluster
- Alternative Cluster Solutions
Module 6: Deploying to Azure Service Fabric
- Understanding Azure Service Fabric
- Same Rules Apply as to ACS
- Create a Service Fabric Cluster
- Deploy Containers to Service Fabric by Hand
- Deploy Containers to Service Fabric with VSTS
You can find the course here at the PluralSight website: https://app.pluralsight.com/library/courses/docker-visual-studio-2017-windows
Not yet a PluralSight subscriber? No worries, you can still watch the course for free with a trial subscription.
Building a Continuous Delivery Pipeline with TFS and Visual Studio 2015
In this course I will teach you how you can get Continuous Delivery implemented using the Visual studio 2015 nd VSTS 2015 toolset. I first start with explaining what continuous delivery is and then I show step by step how you can go about implementing this in your enterprise. The course covers the use of Source Control with Git and alternatives to branching like the use of feature toggles. I show the use of package management to manage more complex solutions and decompose your system in multiple packages and different package feeds. We go into test automation and an approach to get more and more automation done if it comes to testing. We integrate this into the build system and I show how you can use the new VSTS build system to build your packages ready for release management. I show how to use release management and how you can deploy to bot Virtual Machines, Azure web apps and I even go into the use of Docker on Windows to deploy your ASP.NET 4.6 solution using Docker on windows server 2016. I will show some Docker fundamentals and then integrate this into the VSTS release management. The final chapter covers how to use DevOps to further optimize the delivery pipeline and how to use tools like Sonar Cube to track technical debt and how to find the next bottleneck you want to optimize in the delivery pipeline.
You can find the course here: https://www.pluralsight.com/courses/tfs-visual-studio-2015-implementing-continuous-delivery
Test Automation with CodedUI
In this course I will teach you how you can build UI test automation with the Visual Studio CodedUI for Web, WPF, XAML based store apps and Windows Forms based applications. CodedUI is Microsoft’s technology to automate User interface driven tests. You can use this technology to act as a user behind the keyboard, mouse and Touch Screen and it helps you simulate end user behavior.
Here you can see a short video cut from the training that shows information on how to test Web Applications using different browsers Fire Fox, Chrome and Internet explorer to test a part of a website.
You can watch the full HD version of this video along with the other 5:22 hr of video found in this professional course by subscribing to Pluralsight. Visit Test Automation with CodedUI to view the full course outline.
My first published course is on one of my favorite Visual Studio Debugging features called IntelliTrace.
Microsoft’s Intellitrace feature will let you debug applications in production, but also when you run unit tests and when you run tests in your build. Here You can see in a short excerpt from my course on Intellitrace, how you can use Intellitrace to get details of complex unit tests.
In the full course I also covers topics such as using debugging symbols, using Intellitrace in production, and advanced configuration. In the final module I will even show how Intellitrace actually works using advanced debugger tools to show you what is going on behind the scenes.
You can watch the full HD version of this video along with the other 5 hr of video found in this professional course by subscribing to Pluralsight. Visit Intellitrace to view the full course outline.
If you have any questions regarding these courses, please contact me at twitter @marcelv
I would like a free month of access
I am following your Pluralsight course on CodedUI. I have a question about a scenario as below;
How do I get reference to the parent to be able to click on “Click Me” link? The parent is only uniquely identifiable by “data-id” property.
To identify a control on it’s data-id attribute, have a look at this post: https://fluentbytes.com/testing-angular-sites-with-codedui/ Here I explain how you can do it for arbitrary attributes on HTML elements. hope that helps!
I have listened Pluralsight course on CodedUI, I liked it very much. I have a regarding Html 5 Canvas testing. Is Coded Ui support Html 5 Canvas testing?If so, could you suggest me how to do this from Coded Ui?
I have been taking your coded ui test courses on pluralsight, and while I have learned quite a bit, there are so many things that aren’t explained. So, I am left with a bit of a mess.
I was a programmer many years ago, but c# is not my native language. So, for example inheritance you use quite a bit, but I can’t follow. Any tips or links to specific pluralsight trainings would be greatly appreciated.
I recommend you then take the following class: https://www.pluralsight.com/courses/csharp-from-scratch
hope that helps.
With kind regards,
Would you know what is causing my test script to not run when browser used is IE11? This was working well when run against IE10.
Win7 64bit with IE10(32 bit) – working here
Win7 32bit with IE11(32bit) – can login but succeeding actions not performed; also controls are not found
I am following the Pluralsight course “Building a Continuous Delivery Pipeline with TFS and Visual Studio 2015”, I came across two problems, please help.
I can’t pass release branch version number to master without GitFlow tool. It’s working with the help of GitFlow tool, master branch version is updated when I click “Finish Release”. But, when I followed the steps in the course section “Demo:Semantic Git Versioning”, release branch version wasn’t passed to master branch after merge. I googled solution, and tried to add “+semver:major” to commit comment, but still didn’t work.
I also didn’t see the GitVersion.yml updated when version incremented. (I incremented version with GitFlow tool) It remains same since it’s initialized with GitVersion.
Please give me help, what am I missing? Thanks
It might be that it has to do with how the branch is merged. Are you doing a fast forward or perhaps a squash?
I’m most of the way through your course “Introduction to Docker on Windows with Visual Studio 2017”. Thanks, it’s very informative.
I have a project structure we’re trying to dockerize are encountering difficulty. I’m hoping you might be able to set us on the right path.
Project structure looks like:
WebApplication uses ClassLibrary. In DEBUG configuration, all is well (everything done by volume mounts?). The default RELEASE configuration however does not build (with docker-compose).
Any pointers to how to have this operate in Visual Studio?
Pressed send too soon. The crucial point is that the library project is not in the descendant subtree of the app being dockerized.
When running from the command line then you need to set the environment variable yourself. You can run a release build and then you can run the command line, since the release build populates the docker publish folder.
I’ve watched your course about Feature Toggles on pluralsight. What I would like to know is how to cover database changes with this kind of toggles. The code side is pretty straightforward because that’s only code condition.
Do you know what is the solution for ‘adding a column’, ‘adding restriction on the column’, ‘modifying stored procedure’ being on toggles?
I have covered this at several conferences, but non of the sessions has been recorded or published. So I don’t have anything to show you atm. Sorry
I have watched your pluralsight course azure devops build pipelines. I’m migrating the deployment from octopus to on-premise azure devops build pipeline. Octopus has channels, does azure devops has similar one? If you could add some videos for on-premise build pipeline, it would be helpful.
There is not a concept of channels. You might argue you should try to avoid different release strategies. You are more deterministic if you always do it the same way. You could create multiple environments and just parallel deploy to multiple environments or stop the pipeline if you don’t want to move to production.
It would be helpful, if you could add on-premise azure build pipeline in your pluralsight course.
Thanks for the suggestion. I will take it into account when we do a new revision
I’ve started watching your Appium courses on pluralsight.
I see that they were created using appium version 1.15 and are intended for version 1.15-1.21.
I have no experience with Appium itself although I’ve used other automation tools in the past.
Given that Appium is now up to version 2. x as far as I can tell from a quick google search
What would the pro’s and con’s of just initially using an equivalent version of Appium used in your videos be as opposed to going straight to the latest version?
The biggest issue might be that the samples I use won’t work immediately without making changes. Other than that, I would try using the latest version.