Filter based on category or technology!
We pay a team of hackers to intentionally try to compromise our service every few months! You’ll be surprised how often they succeed. This session is about how the VSTS team at Microsoft approaches security when developing and operating the VSTS service. Some of the stories I have are inspiring, and some will be horrifying!
The real-world exercise of building a startup taught us that customers have a lot of questions. And they're mostly the same. Sometimes they could be answered by pointing our users to a FAQ, but often the nature of the question required some kind of interactive information gathering, corrective guidance about what the customer was actually looking for, or looking up data from within our application. _If only there were something that was well-suited to these kinds of tasks._ Well, it's time to stop ""if only-ing"" and write a bot. In this session we're going to take a look at the technologies you can couple together to build an interactive member of your team that is ready to answer questions, call APIs, tap into data stores and help your customers get the information you need.
The magic of artificial intelligence and machine learning are often the stuff of science fiction, however, the reality of using AI and ML in business and consumer apps and services is already here—and easier to integrate than you’d ever imagine. Learn how to create, train, and integrate Custom Vision models into your own apps and services.
Over the course of your development career, you may find yourself, despite your best efforts, doing product management. In today's start-up culture, it's almost impossible to ignore. Maybe it's innocent questions from managers on how to implement a feature, or maybe it's two-hour arguments on how best to prioritize a backlog. Eventually, like me, you may have had an epiphany: perhaps it's time to stop running on instinct and figure out how to do this thing properly. Drawing from my experience in a start-up and in a more established company, I'll talk about how I stumbled through product management, what I'm doing about it now, and how it has changed my approach to software development in general.
Does your .NET application really need full power of Entity Framework or (shudder) nHibernate? Let's take a look at the popular micro ORM Dapper. Dapper is a popular micro Object Relational Mapper (ORM) for .NET. In this session we will take a deep dive into Dapper and understand why it's so much faster other heavier ORMs like Entity Framework. We will go beyond the basics of loading and saving data and look at some advanced scenarios. We will also make some comparisons to Entity Framework to understand what features and conveniences we give up when using a micro ORM.
Voice Enabled devices are everywhere! They're in your home, your car, and your pocket, but Amazon's Alexa is turning out to be the clear leader in the field. In this talk, Chris G. Williams (author of Beginning Alexa Skills Development - O'Reilly) covers the various types of Alexa Skills you can make, best practices for doing so, and creates one using Node.js and AWS.
The Monogame Framework is the spiritual successor to XNA, with full support for stepping beyond the Microsoft bubble and targeting iPhone and Android with the same codebase as your Windows game. In this fun talk we'll cover the basics of game development: the game loop, sprites, the content pipeline, control input, and some basic animation.
We all want to have someone else review our code to make sure it's written well. Wouldn't it be even better if we can have that review process done automatically? In this session, you'll see how you can use static analysis tools (like Code Analysis/FxCop and SonarQube) to find all kinds of implementation issues before they show up in a release. You'll also see how you can create your own analyzers to hunt down problematics areas in code.
Looking to modernize your current product offering, but confused about which cloud service to choose? Between Azure Service Fabric, Azure Container Service (AKS), and App Services (and more), the choices can be overwhelming. As an architect, how you do you know which service is the right one to use? In this session, we will explore use cases to demonstrate when to use Azure Service Fabric, Azure Container Service (AKS) and Azure App Services. You will walk away with a better understanding of how to assess your current architecture and product roadmap, enabling you to make those decisions going forward.
Browsers now universally support Web Assembly which opens the door to new languages and coding paradigms for building client side web applications. In this talk, we will introduce Blazor, a framework for building client side web apps using .NET. That's right, .NET (and Razor) running natively in the browser! No, this isn't Silverlight, this is infinitely more awesome than Silverlight.
The web's biggest strength is that it's universal: build a web site, and anyone with a browser and connection can access it. Desktop apps, however, have long been off-limits to web developers; but times change. Today, more and more apps are built with web technologies, and the benefits are many. In this session, you'll learn how to use the tools and languages you already know to build rich, fully-featured desktop apps, and conquer a new galaxy of apps!
Writing efficient, performant distributed systems can be a complicated endeavor. Actor programming has been around for quite some time, but only in recent history has actor frameworks started to appear on the .NET horizon. In this session, we'll talk about what actors are, and how .NET developers can use them in their applications, both in in-process and distributed scenarios.
By now, nearly everyone has heard of PowerApps and Flow. In fact, many of us have seen these fantastic solution building tools Microsoft created for Office365 in action. While many believe the tools were built for SharePoint they were in fact created to integrate with nearly any system. In this session we will create a PowerApps and Flow based solution from concept to deployment. The solution will utilize PowerApps for data gathering and then integrate two completely separate technologies using Flow. In the end you will learn a great deal about utilizing these two great technologies to make awesome solutions for your users with minimal development and deployment time.
According to CEO Aaron Shapiro, the next big breakthrough in design and technology will be the creation of products, services, and experiences that eliminate the needless choices from our lives and make ones on our behalf, freeing us up for the ones we really care about: “Anticipatory design”. Rather than traditional UI/UX, where the tendency is to provide options in a participatory manner to determine a result, here you remove all choices from the user, and use predictive modeling to give an outcome to liberate them from so-called “decision fatigue".
“Flow not friction,” “convenience not choice,” and “efficiency not freedom” are the mantras of anticipatory design.
In this talk, we’ll explore some implementations of anticipatory design, discuss areas where it is done well, and issues with the overall movement.
Miyamoto Musahi said ""You can only fight the way you practice"" - The goal of the Code Kata is to practice and master technique in an intentional way so that when you are ready to code you have the tools in your tool kit. By intentionally practicing in a repetitive manner the learner develops the ability to execute those techniques in a natural, reflex-like manner. They will become automatic, like the muscle memory you gained ""riding a bike"" Join me as I discuss how doing Code Kata has revolutionized the way I learn and how it can help you level up in your current language or learn a new one, why it's so successful, and how to get the most from your practice. No one should be trying to learn to code when that deployment goes bad or when the production app goes down.
Your organization has made the move to Azure, but you are concerned that spending has spiralled out of control. It has been a challenge to keep up with the various offerings and understand how to maximize your budget in the cloud. It seems that each Azure service has a different pricing model, and you are at a loss on how you can make the most of cloud services without breaking the bank. Join Lori in this session to learn tips and tricks which will enable you to do more with less in Azure.
If you’ve ever experimented with the navigation and resource timing APIs in the browser, it can be a daunting task to understand the performance timings they provide. What’s the difference between connectStart and fetchStart? Where does SSL time figure in? What the heck does domInteractive mean, and how is that different from domComplete? What order do these timings even occur in?
You know you have to have a great experience when you develop your apps, right? The greatest experience for your users centers around their data. That's why developing a great set of Web APIs is so important. Using ASP.NET Core Web API is a modern cross-platform framework for the modern web. ASP.NET Core Web API can be run on Windows and Linux using all the modern web servers. The secret to it all is knowing how to architect your Web APIs for the best experience. Using the Hexagonal Architecture or the Ports and Adapter Pattern allows your APIs specifically to work better due to: - Allowing a clear decoupling of the API endpoints, Data Access (Synthetic or Production) and finally the Data Domain classes. - The API Endpoints (Controllers) have no knowledge or responsibility of Data Domain and behind it Data Access - Because of the decoupling and separation of responsibilities testing can be done easily and without issues. - Data Access segments of the architecture can easily be switched out without impacting the Domain or API Endpoints. By using the Hex Architecture not only does the development story become easier but your end users get a much more stable API set to consume. The talk will explain and get you started on using these concepts with your ASP.NET Core 2.0 Web API solutions.
Building an awesome product in React is fairly easy, but how do you ensure your awesome product will withstand test of time? How can you ensure that as your business needs change your product will not collapse under its own weight? By teaching your code how to dodge bullets? This session will jumpstart your testing engine and teach you how to make your React application dodge bullets by using Jest to test your React application. We will begin by adding a single test and build from there. By the end of this session you will be armed with the knowledge on how to create tests given various scenerios, learn how use mocks and spys to avoid crossing broundries, learn how to use snapshot testing to ensure your UI stays solid, as well as how to automate the running of your tests.
Fonts! Guess those are a big thing now. You're likely familiar with at least getting custom typefaces up and running. You probably even know some neat tricks beyond the basics, but do you know how to make your fonts fast? I mean, really fast? Fast is important. Fonts are part of the critical request chain. If you're not paying attention to your fonts beyond merely slapping up a Google Fonts link tag, you might be missing some big opportunities to speed things up. Stuff like preloading fonts, using font-display to render fallback text faster, more creative sub-setting choices, and electing to avoid non-essential typefaces specifically for users on limited data plans. If fast is your thing, zip into this session to allay your font fears, and learn to tune up your typefaces for maximum speed!
When we think of CSS and Accessibility, what comes to mind? Is it adding alt attributes to image tags? How about color contrast? Is :focus given that much thought since browser's style these by default? Often, focus outlines are turned off in CSS to meet non-inclusive design standards, but this causes problems for keyboard users. How can we make the web a more inclusive place while maintaining design intent?. As we build more and more things on the web, we must do our part in building awesome, accessible user experiences. Except native default browser styling of the :focus pseudo class is rather blah, don't you think? There has to be a better way to add some pizzazz to elements when users navigate without a mouse. In this talk, I will demo numerous ways to provide custom focus styles despite known limitations in the web platform. For users with disabilities, it's imperative that visual design finds a way to meet in the middle.
Creating large, monolithic SPAs is all the rage, not all solutions need a single page application. I found that improving parts of my web projects with islands of functionality was better in many cases, but the complexity of Angular and my hatred of .jsx made me yearn for a modern framework that is simple and straightforward. That's where VueJS came in and saved the day. In this talk I'll build a simple page using VueJS and then talk about using it is larger projects without having to use bundling and transpilers if you don't want to.
Have you ever wondered how to get out of a bad merge? Have you ever gotten stuck trying to push your changes? Git is a wonderful and empowering tool, but it's not your father's version control system. Bring your Git questions for this no-slides demo of Git command line and GUI tools. We'll harvest your curiosities, add in some common concerns, and run through these scenarios together. Have an open-source project you're stuck on? Bring the GitHub URL, and not only will we discuss it, I'll submit a pull request with the changes we build.
Learn how easy it is to build a natural and rich conversational chatbot using DialogFlow. Then enrich the experience by connecting your bot to Azure using Azure Functions and F#. And finally, see how simple it is to distribute your new chatbot to 14 different platforms including Google Assistant, Amazon Alexa, Slack, Facebook, etc.
Although you might not have noticed it Visual Studio introduced a completely new C# and VB compiler called Roslyn. Roslyn is an extensible modern compiler written in C#. One of the most underused features of Roslyn is the ability to plug into the build pipeline to create your own warnings and code fixes. In this session, we'll explore how to build and ship a Roslyn analyser to help improve the quality of your team's code or the efficiency of your API consumers by throwing more (and better) compiler errors.
We're going to have a look at some real-world code in this session and talk about the safeguards and strategies you can employ to help build great cloud-based apps. Most developers have deployed _something_ to a cloud service provider, but most of us have hesitations when it comes to using a broader spectrum of cloud services. In this session I hope to put your mind at ease, working from scenarios I've encountered while helping to bring a startup online and walk you through a set of lessons learned in the cloud. Come for the strategy, stay for the anecdotal absurdities.
When you think of low vision, what comes to mind? A user that is near sighted? How about far sighted? Maybe partially blind? These are all qualifying cases of poor vision, but low vision is more complicated than the prescription of glasses or contacts. According to the World Health Organization, they categorize low vision based on specific levels of visual acuity and field of vision (W3.org, 2016). With that in mind, we as developers can look at different categories of low vision including color vision, visual acuity, contrast sensitivity, etc and make an effort to bake in things like zoom, non-conflicting colors, and re-wrapping of columns in to our code. My talk will cover what vision accessibility is, different categories of low vision, what the needs of the users are, and what we as developers can do to achieve a great user experience for low vision users.
Unit tests help us prove code is correct and protect us during modifications. The issue with unit tests is it's up to the developer to come up with every input value and edge case. This is where Property Based Testing comes in to fill the holes and truly battle test our code into correctness.
Bootstrap 4 is here and it's a great upgrade to the platform. Luckily this time it's not a complete rewrite. In this session, Shawn Wildermuth will show you what is new and changed and convince you that upgrading from Bootstrap 3 to 4 isn't a big deal.
Introduction To Twilio Do you want to add messaging to your applications ? Do you want to create a two factor authentication system? If you answered yes to these questions then Twilio is your answer. In this session you will learn: How to send text messages from your application How to make automated phone calls from your application Concepts for designing a two factor authentication system. Twilio is a simple to use yet robust solution for adding messaging to your applications. Attend this session to master the power of Twilio !
This is NOT a session about MS DevOps tools. This is the story of how the VSTS team transformed from shipping an on-premise server product every couple of years, to shipping a cloud service multiple times a day. In the process, almost everything about how this team of 800 people work has changed. We had to figure out how to do agile at scale, how to transform into a microservice cloud architecture, complete restructure of teams and roles, threw out a suite of 10’s of thousands of tests and started over, went from almost 0 telemetry, to 8+TB/day and figuring out to do anything meaningful with all that data. Many mistakes were made along the way, and lessons learned that I’ll be sharing.
The large hadron collider produces in excess of 300Gb/s of sensor data - nothing to sneeze at. Keeping around that sort of data is a serious problem. Even the largest hard drive that Radio Shack has to offer would be full in less than 20 seconds, and you know they have the best hard drives. We can address this problem by summarizing and projecting the data as it comes in: analyzing and processing the stream to build aggregates. Understanding processing streams of data in near real-time unlocks analytics and business processes that would have been stunningly complex a few years ago. Stream processing can give you that edge over your competition be they bakers, retailers or card sharks. In this talk, we'll explore tools and methods of handling astronomical amounts of data efficiently paying special attention to the tooling available out of the box in Azure.
Docker and rkt have made it really easy to package and ship applications but running them at scale, remains a challenge. Also, not all organizations have the bandwidth to containerize their workloads. Nomad, a single binary cluster scheduler, can be used to build a multi region, self-healing production environment that runs a diverse set of workloads including non-containerized applications. Nomad is a powerful and feature-rich scheduler; we will see how it allows native execution of a diverse set of applications without the requirement to package them in a Docker image. We will also look at how we can integrate Nomad and Vault to provide dynamically generated TLS certificates and secrets to our application, how Consul and Consul Template allows us to provide configuration management and feature flagging, and how operationally simple it is to perform zero downtime updates with Blue / Green and Canary deployments. This talk will discuss the theory, and also showcase a live demo of running an application on Nomad, highlighting how simple it is to leverage the power of Nomad, Consul, and Vault to orchestrate your applications.
Throw away your mouse. After taking part in this presentation you won't need it anymore. Ok, well don't actually throw it away. You will still need it a bit. Whether working in Exchange, Active Directory or even SharePoint, everyone can agree there is a lot of clicking needed to get things done. In this session we will discuss the things many of us do every day that really could done a lot easier and more efficiently with PowerShell. Administration tasks and configuration are a couple of things that we often do with the index finger of our hand on that mouse button. We'll discuss concepts including code reuse (good) and variable hard coding (BAD!!) within PowerShell. I will show you how easy it is to step away from that and use scripts to assist you in being much more efficient and the envy of all your colleagues!
As more operations choices are added to your data center, whether through company acquisitions, a growing development team, or general technical debt, managing infrastructure complexity becomes a nightmare. Yet the end goal is still the same - safely deploy your application to your infrastructure. We need to tame our data centers by managing change across systems, enforcing policies, and by establishing a workflow for both developers and operations engineers to build in a collaborative environment. This talk will discuss the problems faced in managing a modern cloud infrastructure, and how a set of innovative open source tools like Terraform can be used to tame the rising complexity curve. Terraform builds on years of research on graph theory to model the relationships between infrastructure resources so operators can safely manage and change infrastructure resources across bare metal, IaaS, PaaS, and SaaS. Terraform models and potentially prevents that simple change with unforeseen consequences so operators don't have to. Join me as I take you on a journey of using Terraform as we take control of our cloud infrastructure. This goal of this demo driven talk is to showcase how Terraform can help build multi-tier application infrastructure supporting multiple cloud platforms and services.
In this fast-paced, code-heavy session, attendees will learn real-world techniques for migrating apps and services from legacy (and less-secure) password-based authentication to artificial intelligence-based scenarios using face and speaker recognition using Microsoft Cognitive Services.
SQL Server stored procedures seem to have a bad reputation. This reputation is not deserved, and this session will demonstrate techniques for unleashing the real power of stored procedures. In this session you will learn the following techniques: High Speed Data Loading, Adapting Stored Procedure calls to .NET objects, and Building Complex Search Screens using Stored Procedures. By attending this session you will learn the true power of stored procedures.
In late 2017, Twitch released “Extensions”, for the first time allowing web developers to build on-site interactive interfaces for live stream viewers.
In this talk, Brian will overview how his small indie games studio used a set of modern web technologies to construct their dream project: a real-time interactive web interface that lets audience members interact with live-streamers playing their game.
We’ll look at how this extension was built using React, CSS Animations, Cloud Functions, ES6, Webpack, NPM and Firebase, while exploring the unique challenges of designing interactive interfaces meant for video overlays.
Bonus: time and connection permitting, you’ll have a chance to help (or hurt) Brian as he live streams a game of Clone Drone in the Danger Zone by launching your own laser-sword-wielding robots via the React interface.
This presentation is a real-life case study of a web extension released within the University of Manitoba as an alternative to customizing an off-the-shelve enterprise document management solution. The purpose is to focus less on the technical implementation (see other talk for that) and talk about why this was, and **still is** a viable solution for large enterprises.
Do you know what accessibility is? How about inclusive design? Have you ever heard of WCAG, POUR or ARIA? In this introduction to [a11y], you'll learn abut assistive devices & technologies, accessibility standards & tools, and some quick and easy next steps for making your sites and applications more accessible to all users.
Open source tools. We all use them. Whether an entire framework, a focused toolkit, or a simple custom component from GitHub, npm, or NuGet, the opportunity to improve our development speed while learning new things from open source projects is enticing. But what does "open source" truly mean? What are our rights and limitations as open source consumers to use, modify, and redistribute these tools in a professional environment? The answer depends upon the OSS author's own decisions regarding project licensing. Come investigate the core principles of open source development and consumption while comparing and contrasting some of the more popular licenses in use today. Learn to make better decisions for your organization by becoming informed of how best to leverage the open source works of others and also how to properly license your own.