Keyboards? Where we’re going, we don’t need keyboards.Don Wibier
One of the cornerstones in Microsoft’s digital assistant Cortana are cognitive services. Instead of the
traditional Screen / Keyboard / Mouse combination for user interaction with your application, it offers
different ways of handling user input.
Think about vision, speech and language – the new way of communicating with your devices – but also
how to analyze and structure these kinds of user input.
This session will give you an introduction on the Cognitive Services Platform – show how it can help your
end-users – and with live coding examples you will experience how easy it is to start using this incredibly
Elixir for the C# developerDerek Graham
Blockchain Internals : A Developers View of How Blockchain WorksStephen Haunts
The blockchain is described as the next revolution in computing as it solves the problem of distributed trust when there is no trust on the internet (Byzantine Generals Problem). Blockchain technology is generating an enormous amount of interest and is a current hot topic with financial institutions, insurance companies or any industry that works with transactional data that could benefit from the distributed trust it gives. The blockchain is also generating lots of investment from Venture Capital funds, so learning about this technology could certainly be career changing.
In this talk, we will explore what blockchain is in some detail from the conceptual use cases for it through to looking under the covers at how it works in detail. As the talk progresses, we will build up a sample implementation that will help developers form their mental model of what a blockchain is and how it works.
In this talk, I will cover
• Blockchain quick overview
• Cryptographic principles used by blockchain
• How transactions are stored in a block
• How transactions are hashed in Merkle trees
• Authorizing transactions
• Verifying transactions in a block
• Solving the Byzantine Generals Problem
• Proof of work vs Proof of stake
• Maintaining consistency and consensus
Office 365 as a development platformDylan Hayes
The services that Office 365 provides are so much more than managed SharePoint and Exchange. These days there's a whole ecosystem of Office services with new lo/no code tools like Flow and PowerApps to provide the connective tissue. Not only that, but when you can't do what you want in Office 365, it's easy to reach out and consume the richness of Azure's many services to fill the gaps. What might have taken weeks to achieve in a bespoke application can be built in hours if you take full advantage of the platform.
The talk will introduce some of the key concepts behind Office 365 as a development platform, outline the tools available, and discuss some of our experiences both good and bad in doing development this way for a variety of customers. The talk will end on a discussion on the far bigger topic of how platforms like Office 365 which are made for automation and AI are not just tools we as developers can use, but also potentially represent an existential threat to the way we work as developers.
Dependency Injection in ASP.NET Core 2. Why and How?Don Wibier
In this session Microsoft MVP Don Wibier will tell you why you should use Dependency Injection (DI) in
your applications. He will next tell about how this is done in .NET Core 2 and by coding examples, he’ll
show you how easy it is to start using this yourself.
Saving the World with IoTTomasz Bartoszewski
TL;DR Watch the presentation, go home and in 10 minutes build your IoT solution
You don't have to be a super hero, to make a difference to our planet. Just a bit of programming skills will suffice. We can't imagine our lives without electricity. We use it to have light and heat, keep our food fresh, we work with computers, use mobile phones, and don't forget entertainment! We need electricity for driving cars, even more now with Electric Cars.
Electricity is generated mostly with fossil fuels, we can use nuclear power and hope that nobody makes a mistake and people do make mistakes. That's why we build wind farms, solar panels, hydro power plants, but we can't force them to generate electricity when we want. They are not aware of world cup finals. So how can we make sure, we use green power more? We need to store electricity when they can generate it, and use when they produce less, but storing electricity is hard. We have to change the way we consume energy, but it has to be automatic, so people wouldn't even know.
That's what we do at OVO Energy, using IoT devices to change the power usage patterns, create virtual power plant, which can be used when the demand exceeds supply. I will show you how we use Azure IoT Hub to do that, you don't have to be C or C++ developer to work with IoT.
SharePoint Online Configuration with PowerShell - Advanced ScenariosAndy Dawson
PowerShell provides the ability to configure almost all aspects of SharePoint Online. This session will explore more advanced scenarios that may be required when configuring SharePoint Online for your organisation.
If you'd like to learn more about what PowerShell configuration of SharePoint Online can do, and how it can help you achieve repeatability, reliability and configuration performance improvements, then this is the session for you!
Selling Unicorns with Shopify and Microsoft Azuremichael stephenson
Mike has build an online retail store using the shopify platform which he has then used to demonstrate how Serverless technologies on the Azure cloud can be used to solve real world business problems through the use of cloud and integration.
Mike has brought together a large part of the PaaS, SaaS and Serverless estate to show case the art of what can be done with Azure to take a basic online store and make it into so much more. Mike combines Model Driven Power Apps, Power BI, SQL Azure, Logic Apps, Functions, API Management and other technologies to solve some of the problems of a modern retailer.
The great thing about the model business is that it shows how a small medium business can use the same technologies that a massive enterprise customer could use and those technologies will grow as your business does.
Making a noise with F#John Stovin
Interest in functional languages, including F#, is growing, but there are still many impediments to its wider adoption. One problem is the (wrong) perception that F# is language for financial applications.
In this talk I will attempt to dispel myth, and show that F# is a true general purpose language. I will show how F# can be used to create a simple audio synthesis application, and how the functional approach (single assignment, immutable data, recursion) provides a great way to model the audio domain.
A more flexible way to store your data with MongoDBKevin Smith
If you've been anywhere near software development, the norm is to store your data in a relational form, but what if there was a different way
We will take a look at the history of MongoDB and why it continues to be a trending database year on year. We will then go into the advantages of having a flexible document model and how we can utilize MongoDB for our application storage.
Cognitive Services Extravaganza!Gosia Borzecka
Machine Learning, Data Science, Artificial Intelligence. These all big words we hear coming into our businesses lately - but what does it all really mean?!
Microsoft has created a set of simple and scalable tools that any developer can use and integrate into their applications super quickly!!
This session will focus on the various Cognitive Service offerings and show you plenty of demos on how to use them in your apps such as ASP.NET Core, SharePoint Framework and Flow.
Come and learn how to take advantage of these awesome services for your everyday work!
.NET Data Security : Hope is not a StrategyStephen Haunts
Not encrypting your data is a risky move and just relying on the hope that you won't get hacked and compromised is not a strategy.
As a software developer, you have a duty to your employer to secure and protect their data. In this talk, you will learn how to use the .NET Framework to protect your data to satisfy confidentiality, integrity, non-repudiation, and authentication.
This talk covers random number generation, hashing, authenticated hashing, and password-based key derivation functions. The talk also covers both symmetric and asymmetric encryption using DES, Triple DES, AES, and RSA. You then learn how to combine these all together to produce a hybrid encryption scheme which includes AES, RSA, HMACS, and Digital Signatures.
Air Quality, Lora and Azure FunctionsRob Miles
Good quality air is important. After all, everyone breathes. But dig a little deeper into the subject and most of what you find is what we don't know. Is air pollution produced by local traffic? Does it waft in on the breeze? Are there times when I really shouldn't go out for a run?
In this talk I'll describe how you can build your own connected air quality sensor and get data from it. I'll touch on embedded devices (including the IoT DevKit) the MQTT protocol, LoRa networking, Azure IoT Hub and Azure Functions, along with the Connected Humber effort to spread sensors over Humberside.
Easy integration with Flow and Logic AppsSteve Spencer
Historically integrating different systems has been challenging and you have needed experts to help you build even the simplest integration. Microsoft has introduced its Azure based offerings to help take some of the complexity out of integrating to allow you to build your own personal workflows. This talk will introduce both Flow and Logic apps, show you where to use each and how you can migrate from Flow to Logic Apps.
Azure Functions and Container Instances to reduce costsJohn Staveley
In this talk I will go through using Microsoft Azure serverless and container technologies to automate a repetitive web interaction for minimal cost. I will demonstrate selenium using the page object model to interact with my target system, code execution using Azure functions and an Azure container Instance as a sidecar to run a browser. I'll demonstrate the development environment for azure functions as well as how to avoid using an expensive VM by using a container brought online only for the time it was needed instead. In this talk I will talk briefly about:
But mostly how the above fits together to make a great developer experience and deliver a solution at minimal cost.
- Selenium and Page Object Model - how it aids re-usability of selenium code
- Azure Functions - the developer experience
- Azure container Instances - what they are and how setup and removal can be automated
What did I learn trying to migrate teams from legacy to modernMatteo Emili
I spent an incredible amount of time doing migrations and transformations (on both process and technologies), as a consultant for most of my career and then inside a product company, bringing ALM, Agile and then DevOps to people varying from who was willing to change and who just wanted to retain their 20 years old habits. The amount of lessons I learned is massive, not just about technology itself – that changes at the speed of light – but about how to deal with change in an organization. This is not going to be a technical session – far from it – but instead it will be a short collection of some of the most striking experiences I had since I first heard about Software Engineering.
Stop treating PowerShell as BatchFile++Derek Graham
In our new world of #DevOps, PowerShell is the glue that binds tools, build systems, deployments and monitoring together yet it's often treated as a slightly more complicated version of your grandfather's batch file command line.
In this session I will be talking about how you can increase the reliability of your PowerShell scripts while reducing how much code you have to write, why and how to test your scripts, and how to write effective monitoring code using PowerShell's built-in test framework, Pester.
PowerShell and Azure DevOps - best buddies!Matteo Emili
We know that automation is king in DevOps, and PowerShell is the best tool to automate stuff. But how about using it inside Azure DevOps? It’s not just about how you can consume Azure DevOps (and TFS or Azure DevOps Server on-premise) as a stack to make your daily workflow easier and more robust, but most importantly how to use PowerShell inside pipelines and how to leverage on PowerShell as a first class citizen in the overall stack. Testing? Deployments? Automated environment interaction? Custom library distribution? These and many more – the session is about how to leverage PowerShell within Azure DevOps together, getting the best out of your CI/CD pipelines.
Why you should consider Web Assembly in your next frontend projectHåkan Silfvernagel
We will cover a practical example writing our web assembly using Rust. We will go through everything from writing your web assembly code to publish it as a npm package and finally use it in an existing web application.
The Good, the Bad and the Avoidable SQL PracticesMichal Poręba
Code quality matters! You probably have worked with SQL queries before. What was the experience like? Have you ever looked at a piece of SQL and thought... G! that's ugly! Have you seen a query that worked just fine in development but annoyingly not in production, or it used to work for a while, but then started timing out without any change or a warning? This session is for you! Let's take a hard look at SQL code quality. I will show you some ugly queries and teach you how to transform them into good, clean code, that not only looks right but also performs well.
Affective Computing - What is it and why should I care?Håkan Silfvernagel
Research have shown that emotions play an integral role in decision making, cognition, perception, learning and more. If we want our computers to be intelligent and be able to interact with us we need to ensure that they are able to recognize, understand and express emotions. This is the basic assumption of the field of Affective Computing. In this talk I will give an overview of Affective computing and how it can be applied.
First I will give an introduction to the field starting with established findings from the field of psychology on how we best can measure emotions.
Then I will describe how the field of Affective Computing has transformed from its origin in the 90’s until now when it is an established research field. I will highlight some of the technology enablers that has made Affective Computing a hot topic nowadays and give some examples of API and services that we as developers can use as of today.
In the second part of my talk I will give some examples on application scenarios across various fields (retail, medical, education and social). After that I will be show casing what is in the front line now. I will conclude my presentation with some recommendations on how this affects us as developers going forward.
The Greatest Introduction to SharePoint Framework (SPFx) on earth!Gosia Borzecka
The SharePoint Framework (SPFx) is newest and recommended by Microsoft technology to developer web parts and extensions that provides full support for client-side SharePoint development..., easy integration with SharePoint data, and support for open source tooling. With the SharePoint Framework, you can use modern web technologies and tools in your preferred development environment to build productive experiences and apps that are responsive and mobile-ready from day one.
In this session, we will learn what the SharePoint Framework does, what tools we need and how easy it is to develop new Web Parts and Extensions, and then deploy them on Azure and/or SharePoint… You don’t want to miss it!
Writing Allocation Free Code in C#Matt Ellis
Performance is a feature. We all want our code to run faster, and there are plenty of ways to do this - caching, using a smarter algorithm or simply doing less stuff. In this session, we’re not going to look at any of that. Instead, we’re going to focus on a recent trend in the C# world - improving performance by reducing memory allocations. We’ll see how recent versions of C# allow using structs without creating lots of copies, and we’ll have a timely reminder on exactly what is the difference between a class and a struct. We’ll also spend some time with the new Span<T> runtime type and find out how that can help work with slices of existing memory, and how it’s already into the types we know and love in the framework. And of course, we’ll take a look at when you should and (more importantly) shouldn’t use these new techniques.
You don’t need a bot for your organization, Do you?Gosia Borzecka
Bots are exciting and they can be very helpful tools that you can use to communicate inside your organization or with your clients. They can answer frequently asked questions, create meetings with your co-workers or remind you that you need to follow up with a client.
During this session we will cover how to create a bot using the Microsoft Bot Framework, what development options we have, how to add more intelligence into the bot using various Cognitive Services and then finally, how to install the bot into your environment (SharePoint Online, MS Teams, Skype for Business) and then some general tips for long-term maintenance.
Come and join the bot revolution! Or at least join this session…
Functional Programming in C#Simon Painter
Functional Programming is becoming increasingly popular and relevant with each year that goes by. With so much discussion around languages such as F#, Haskell and Erlang, it can seem as though getting started with Functional programming would mean first learning a whole new syntax...but what if it didn't?
Most .NET developers are familiar with the use of Linq, and basic constructs such as IEnumerable, Func delegates, arrow functions and ternary expressions, but did you know that you can use all of this to implement some of the most powerful patterns and techniques from the world of functional programming?
This talk will demonstrate how, using only familiar features available in out-of-the-box C#, to write Functional code that is:
* More robust
* Easier to read
* Easier to maintain
As well as these benefits, Functional code is a great enabler for the use of concurrency with Async and Serverless applications with technologies such as Azure Functions.
This talk might be of interest to anyone looking into moving to a new platform, or in improving the scalability of an existing application, or even just interested in seeing what Functional Programming is all about, but all within the comfort of a familiar language.
We might even attempt the impossible, and explain what a Monad is!
The beauty in building .NET librariesJames Croft
Are you currently building .NET open-source libraries? Are you looking to build one in the future? Or are you just generally interested in .NET Standard?
Well if you answer YES to any of these questions, have I got a story for you!
This session will cover the development process of bringing classic .NET PCLs or Shared Projects to the world of .NET Standard, automatically generating your deployable NuGet packages, reducing your cross-platform code from multiple projects to just ONE, and how we can automate all of this with GitHub together with Azure DevOps build and release pipelines!
All of this, just with the power of .NET Standard!
Confessions of a Tech LeadAdam Griffiths
Almost all technology companies around the globe have a the concept of a Tech Lead. But there’s no definition of the position in the Agile Manifesto and (at least as far as I know) I’ve never met one with an industry certification! In this talk we’ll answer the key questions. How do you become a Tech Lead? Why would you want to? And what do they actually do all day!?
Once I've convinced you that it's a great job I'll take you on a whirlwind tour of a Tech Lead's toolbox by introducing topics like Delivering Business Value, DevOps Practices, and People Skills. We'll discuss each of these and talk about why they're all important to a great team.
Married to the Mob (Programming)Derek Graham
"All the brilliant people, working on the same thing, at the same time, in the same space, and at the same computer."
That may sound like a recipe for disaster but Mob Programming is a new way of working in teams that encourages collaboration, promotes shared understanding, increases productivity and improves the quality of the software you deliver.
In this session you'll learn what makes Mobbing so effective and why it's better than working independently or in a pair.
We'll look at:
• Mechanics of Mobbing
• Organizing the environment
• Team heuristics
• Dealing with competing solutions
• Coding as a team
• "Real time" retrospectives
• Including subject matter experts, testers and analysts
• Woody Zuill - Evil, Genius or Evil Genius?
I'll share what I have learned over the last 2 + years using Mob Programming at work, in training sessions and on open source project teams, how you can use it immediately to see benefit on your current project, how to get started and how to avoid getting stuck.
Am I doing deployments right? Advanced deployment patterns in practiceMatteo Emili
While CI became the norm in our daily workflows, deployment still has sort of an artisanal feeling – everyone does it their way, ignoring that there are several patterns and practices that can actually be re-used. Concepts like feature flags, A/B testing or canary deployments are actually just at arms’ length, but for some reason these practices are often misunderstood, with people believing they are just for ‘the big boys’ like Amazon, Google and Microsoft. This cannot be any further from the truth, and the learning curve is actually very low. Let’s take a look at some real example from the field and learn how to implement these in your pipeline.
Blazor - You Want To Run .NET Where?!Jamie Taylor
Blazor and Web Assembly are both relatively new ideas. Or are they? WebAssembly has been around for a lot longer than you might think, and running .NET in the browser isn't a new idea either - who remembers SilverLight?
In this talk I cover a little of the history of front end technologies - going all the way back to the first browser to support CSS, and coming back to the present day - before diving into just what WebAssembly is, and how Blazor, Mono and .NET Core fit in.
I'll show off a demo application that I have built using Umbraco Headless, and run all of the code for the application entirely in the browser. I'll also talk about the benefits and pitfalls of running .NET code in your browser.
IoT with nothing but your LaptopPete Gallagher
You don't need hardware to play with IoT!
Although the cost of IoT hardware has reduced dramatically over the last few years, you still need to choose the right IoT option, figure out what accessories it needs, order it all from Amazon and wait for it to arrive. By that point, you’ve moved on to something else entirely, so it sits in a cupboard drawer for a year and a half before you get back around to thinking about it…. Then you realise that you need some components and wires… Back in the drawer, it goes!
With the advent of HTML 5, so comes the ability to simulate a lot of IoT kit right there in your web browser.
I'll walk you through a few of the best online simulators for IoT technology, which will give you a head start into the world of IoT. This way you can forgo all the procrastinating, and get to (virtually) creating!
Lessons learnt using Packer to build Azure DevOps private agentsRichard Fennell
I think we can all agree it is important to use known configurations when building software within your CI/CD pipeline. You want to only change what you expect to change in any release and you certainly don't want to introduce problems because you don't know what is currently installed on your build VMs. They need to be managed like any software/configuration.
If you are using Azure DevOps Hosted Agents then this problem is managed for you by Microsoft. They update the hosted agents regularly and document the changes.
But how do you do this if you are using Azure DevOps private agents, or some other build automation system? Some sort of VM creation tool is needed.
In this session I will be discussing lessons I have learnt building private build agent images for Windows with Packer. I use these with Azure DevOps Pipelines, the the techniques are applicable to any build system.
The History of AI - what can we learn from the past?Håkan Silfvernagel
Nowadays AI is all the hype, but what many might not know is that AI is an established discipline originating from a paper from Alan Turing in the 1950s. In this talk I will present the historical milestones of AI from the originating paper up until present days. In addition we will look into the crystal ball in order to see what the future might have in store.
We will start out our journey by looking at what happened in a workshop in Dartmouth in the 1950’s which started it all. Then we’ll be reviewing a number of areas where AI initially was put to use between 1950-1970. We’ll cover the AI winter in the 1980’s and its’ reasons.
In the second part of the talk we’ll cover applications and milestones from the 1990’s and onwards. Finally we’ll look into the crystal ball and try to see where AI might takes us in the future.
The Path to Freedom - Taking your Side Projects Full TimeStephen Haunts
As developers, it is very common for us to have side projects that we like to work on outside of our day jobs. It's part of the way we motivate ourselves, learn and grow as developers.
For some of us, we dream of taking our projects full time so that we can work for ourselves. For others, we want to work for ourselves as consultants. The one thing we have in common is that we want more freedom of our destiny, whether that is financial freedom, or to have the ability to pick and chose what we work on and when.
Taking that first step to work for ourselves is both exciting and terrifying. I know, because I did it. I quit my full-time job to become a full-time Pluralsight Author, writer, and trainer.
In this talk, I want to take you through the path to freedom and give lots of practical advice on what you can expect, what you need to do, and how you transition to complete work based freedom.
Some of the subjects I will talk about are:
- The Pros and Cons of working for yourself
- When NOT to work for your self
- Active vs. Passive Income
- Defining your income strategy
- Preparation before quitting your job
- Finances and cost control
- What to charge for your products or services
- Productivity, procrastination, and Focus
- The working environment and loneliness
No matter whether you want to work for yourself now, or you aspire to so this sometime in the future, let me share my experiences and guide you through the process of becoming independent.
“The computer says no” – software quality in the DevOps worldMatteo Emili
“My code is perfect!” says or thinks pretty much everyone. In reality, there is so much that can go wrong. It could be something actually written in the code itself, and that would be the easy part. But it could also be a library or a combination of them. A provisioning script. Outdated components from another team, which you never updated because of miscommunication. Or stuff that should be encrypted but it isn’t, and now it is causing headaches. Welcome to the world of software quality in the DevOps world, a world where you need to be careful at every step. But is it so hard to do things the right way? Actually, not. This session is about all the tools you have at your disposal to make sure your code is not going to pose unnecessary risks (even down the line, months or years after being written!) and to make your Continuous Delivery pipelines better, more robust, and more resilient.
You should add more Speech API in your bot!Gosia Borzecka
Your bot is doing well but what if you add some more intelligence to it such as speaking? Or speaking and translating at the same time? Isn't this be great for your clients or your employees?
Come and see how to add Microsoft Speech API to your bot and what to add more to find your business requirements for speaking and translating bot!
Using Azure DevOps Pipelines to provide a robust release process of GitHub based OSS projectsRichard Fennell
Every project needs a robust release process that gets code from source to delivered to the end users with suitable testing. This can be provided with Azure DevOps, free of charge for OSS projects even when your code is not stored in Azure DevOps itself.
In this session I will show how:
- I build my publicly GitHub hosted Azure DevOps Extensions (written in PowerShell and TypeScript) based on triggers linked to the GitHub PR process.
- Release them to the Azure DevOps Marketplace for private testing
- Check they are deployed with Azure Functions and Azure DevOps Gates
- Run functional tests on Azure DevOps hosted test systems
- Release them to the Azure DevOps Marketplace for everyone to use as well as updated the WIKI based documentation stored on the GitHub WIKI
Hacking Humans : Social Engineering Techniques and How to Protect Against ThemStephen Haunts
Social engineering is one of the biggest threats to our organizations as attackers use manipulation techniques to coerce people into revealing secrets about our companies to allow attackers to gain access to critical systems. In this talk, we will look at some of the techniques used in social engineering and look at how to guard yourself against them. We will cover subjects like pre-texting, elicitation and body language as techniques for manipulating people.
The Analytical EngineJohn Stovin
Charles Babbage was a true polymath and the pioneer in the discipline of mechanical (as opposed to human) computing. His Difference Engine could automatically generate error-free mathematical tables, but his greatest achievement would have been the Analytical Engine, possibly the first programmable computing device ever designed.
This talk will explain the structure of the Analytical Engine, highlight some of the design features that made the machine so innovative, and show how we can start to simulate this ground-breaking machine.
Having fun with Generics and Abstract classes in C#Don Wibier
Join Microsoft MVP Don Wibier to bring your C# coding skills to the next level. He will show you one of his own personal killer combi's: Generics and Abstract classes.
With a lot of coding examples, you will learn how to optimize and re-use your code to the max and lay down a solid and flexible foundation for your applications.
GraphQL and Dapper : The quick route to flexible and efficient mobile APIsJohn Stovin
GraphQL is alternative to REST for providing powerful, flexible, bandwidth-efficient web APIs. It was originally developed by Facebook, but is now an open standard.
Dapper is a lightweight Object/Relational Mapping library for the .NET platform. It combines speed and efficiency with access to native SQL.
In this talk I will discuss the concepts behind GraphQL, and why you should consider it if you need an efficient, accessible API for you project. I will demonstrate how to design a simple GraphQL API, and how to use the graphql-dotnet and Dapper.GraphQL open-source libraries to implement this API for an existing application database.
How to make a multi-lingual chatbot and use it in your Xamarin Forms applicationHåkan Silfvernagel
Chatbots are commonly used in a wide range of user scenarios such as ordering pizzas, product suggestions, schedule meetings or customer support. But how can we as Microsoft developers make our own chatbot?
In this session I will demonstrate how you can make a chatbot by using the Microsoft Bot Framework together with LUIS (Language Understanding Intelligent Services). The chatbot will be multi-lingual meaning it will adapt in real-time according to the user’s language (i.e. switching from English->Spanish->Norwegian).
Finally we will integrate our chatbot in Xamarin Forms application and demonstrate how we can use this in a mobile scenario.
DevOps and Microservices Better TogetherSean Farmar
If you are trying to drive towards continuous delivery you will need to consider your architecture.
I will talk about how moving to SOA/Microservices architecture can get you to increase your delivery velocity and how DevOps and Microservices style architectures support each other to help you move to the holy grail of continuous delivery
From layers to vertical slices - simplify your code and focus on your featuresJon Hilton
We've all experienced that moment when your boss/customer calls you and says;
"This is just a small change, I can't imagine it would take more than half an hour or so"
And your heart sinks, because you know what these "small" tweaks actually entail.
You have to find the code, which means navigating all the "layers" of your application.
If you're lucky, you can locate the relevant ASP.NET controller, but you know that's only the start.
3 hours later, you're knee-deep in your Data Access Layer, desperately trying to figure out where this "small tweak" needs to be made, wondering if it's lunchtime yet.
It doesn't have to be this way!
You can skip a lot of this pain by leveraging the idea of "vertical slices".
When you build and architect your application around individual features, magical things start to happen;
You always know exactly where to look for the code that makes any given feature tick
You can use tests to be confident your feature actually does what the user/customer wants it to do (imagine that!)
You get to work with (and write) simple code
You can get all your work done in a few hours and bunk off early (OK, maybe not, but we can dream...)
So join me as we explore what vertical slices are, how you can approach any feature and specific tips and techniques for making this come to life using ASP.NET Core and MediatR.
This talk will demonstrate how, with the aid of a few of my favourite NPM packages, to write Functional code that is:
- More robust
- Easier to real
- Easier to maintain
We'll look into functional concepts such as:
- Higher-order functions
- Referential Transparency
- Composing functions
This will all be done using ES6, and NPM libraries such as RamdaJS, LoDash and Bluebird.
No promises, but I might even explain what a Monad is...
Making SonarQube work for youPeter Roberts
In a perfect world, all code would likewise be perfect - but here in the real world, that's not usually the case, and code that you or your colleagues write will always have one or two flaws that sneak in when you’re not looking. SonarQube is a tool that aims to shine a light on those flaws, and give you a way of enforcing your code quality standards as part of your CI/CD process so you can keep quality high even as your project grows and changes over time.
In this session, I'll be taking you through what SonarQube does and how you can customise it to fit your project and process. SonarQube has support baked in for analysing a wide variety of languages and technologies, and I'll be talking about how you can customise the rules and quality standards being applied to focus only on the problems you care about. I'll also be going over how you can extend SonarQube to support additional languages and technologies and how to integrate it with your existing CI/CD tools. Finally, I'll cover some problems my colleagues and I have run into while introducing SonarQube into our organisation, and will offer some ways to solve them.
Azure Machine Learning for DevelopersSteve Spencer
As a developer I want to understand what machine learning is all about but I'm not a mathematician. This talk introduces some of the machine learning concepts without the maths and shows you how to use the tools provided by Azure Machine Learning to build Machine Learning web services. It also discusses the role the developer can play in Machine Learning to help the mathematicians and analysts integrate their machine learning models with business applications
Using Azure for Good - the story behind mhasl.meRyan Yates
In this session I will cover the technical background of a new site that I have developed for sharing stories related to many different aspects of Mental Health and how it is something that affects someone just like you or me
In this session I will cover
Architectural decisions and why I made the decisions I made
The Technicals behind the site and the components used as part of the building, maintaining and development of the site, from Azure DevOps to Azure Resources and how I built a repeatable deployment of the Resources that made the site a possibility from the get go
Security Decisions that I made along the way and why I chose them
Lessons learned along the way
And lastly why I think this is a topic that in tech we need to talk more about
Not so SQL any moreMichal Poręba
What if I told you that you don't have to choose between SQL or NoSQL any more? That wouldn't be quite true, but the choice is no longer binary. Some document databases offer now features typically associated with relational databases and a lot of relational database engines support document types or use techniques pioneered by NoSQL giants. The gap between the data models is getting smaller. Let's see what is possible with JSON and XML documents in SQL Server and how well it performs.
Solving microservices challenges on the Kubernetes platformShahid Iqbal
Developing microservices based applications is a hot trend in our industry.
Sometimes this decision is based not on trying solving the specific problems that microservices solve but unfortunately a desire to use the latest techniques or, even worse, a desire to adopt trendy new platforms such as Kubernetes and service meshes.
In essence the cart is placed before and horse and application architecture is dictated by platform decisions.
However, let's assume that our audience on the other hand have clearly identified how microservices will benefit them.
This talk introduces a "journey" to microservices and highlights some new problems that are created by adopting such an architecture.
We then step through how we can leverage cloud native technologies such as Kubernetes and the even trendier topic of service meshes such as Istio to try and address some of these new problems.
This talk along with demos will cover many topics in an area which is rapidly evolving however we'll try and focus on the fundamental problems, and demonstrate tools that can help make the experience better or simply easier to manage.
Some knowledge of microservices, containers and Kubernetes is useful but not essential we'll cover the basic topics
Creating a serverless Parkrun Map with Az FunctionsKevin Smith
Over the Christmas period, I decided to start a small project to create a working mobile friendly
I quickly realized that having no data wasn't ideal, however, Azure Functions became my swift army knife for sourcing the data required to build and display a map. We'll look at how I utilized Azure Functions to source the data.
In this talk we'll go over the following items:
- Why this project?
- Azure Functions
- Timer Triggers
- Queue/Blob Triggers
- Http Triggers
- Azure DevOps
Protecting Encryption Keys with Azure Key VaultStephen Haunts
In a world where we are putting our companies data in the cloud, the protection of that data against a data breach has never been more important. In this talk, I will show you how to set up and use the Microsoft Azure Key vault to protect your encryption keys and secrets like passwords and connection strings. Azure Key Vault uses the power of Hardware Security Modules (HSM's) to protect your secrets and make sure your solutions are as secure as they can be when working in regulated industries like healthcare, financial and insurance.
As well as showing you how to set up and configure the vault, I will show you how to code against it and various different patterns for security in a cloud base multi-tenant environment. I will cover topics like:
- Setup Azure key Vault
- Authorize your application to access the vault with AzureAD
- Accessing the vault from your applications
- Using the Vault to wrap local encryption keys for performance
- Encrypting connection strings as Key Vault secrets to get flexible database routing in the cloud
- Audit logging for compliance
talkis finished you will walk away with everything you need to start using Azure Key Vault today.