ASP.NET Core Razor Deep DiveJoseph Woodward
Along with many parts of the ASP.NET Core framework, one area that's seen lots of improvements is Razor, ASP.NET Core's powerful view engine. In this talk we'll dissect what's changed in the Razor view engine, how we can utilise Razor's new tag helpers, View Components and more to create cleaner, reusable and maintainable markup and views (along the way we'll stop to learn some tricks, tips and features you may not know!). If we have enough time we'll also take a look at some of the upcoming features in Razor and discover how we can extend Razor to go further than we thought possible By the end of the talk you'll be able to go away and build better ASP.NET Core MVC applications with your deeper understanding of what new features are available to you and how best to utilise them.
Take advantage of telemetry with Application to save your day!Matteo Emili
A proper telemetry is critical in a DevOps process and as part of the Application Lifecycle Management for any kind of software and Application Insights is a brilliant tool for closing the loop, with a solution that allows information sharing for the whole team, regardless of the role. Proactive telemetry enables the development team to get a meaningful insight of how the application is used and where the critical 'hotspots' in our system are - also using Machine Learning! - whereas reactive telemetry is the #1 tool for solving problems after they happen. Let's take a look at how to take advantage of all the information we can gather instead of deleting that hundred GBs of logs every few weeks :)
How Stuff Works! - Meta-programming in C# 101David Whitney
We live in a world where our tools, frameworks and libraries are often built for us. Especially in .NET, we rely on ASP.NET MVC, DI Containers, Unit testing tools and IDEs and all of these things sell themselves on hiding complexity and being "hard problems".
In this session, David will explain how all these big tools and frameworks aren't really that different, and are built using the same language and practices that you using in your user-land code every day. We'll break down how all that stuff works - MVC, Test frameworks and containers - illustrating how it's all just meta-programming with reflection, and hopefully leave you with practical tips for implementing strong conventions, discovery, and implementing composition in your own code bases.
Introducing Elixir: Self-healing applications at ZOMG scaleAndy Pike
Elixir is a new functional language built on the Erlang VM. We’ll tour the Elixir language and it’s most important frameworks to discover what makes Elixir a great choice for building systems at ZOMG scale and how those systems stay up for so long with Wolverine level self-healing.
Elixir’s secret is in its Erlang heritage. When was the last time your telephone network went down? Never, right? That’s because most of the telephone network is written in Erlang. How does WhatsApp manage to support 1.2 billion users and deliver 42 billion messages a day with only around 50 engineers? Yes, Erlang.
Elixir takes the power and stability offered by Erlang and makes it more approachable, with a Ruby inspired syntax, simpler attractions and some powerful tools which will enable you to build concurrent, fault-tolerant and distributed systems.
Hold up, isn’t this a .NET focused conference? Challenge yourself to break out of your comfort zone and look at how other languages solve problems. You’ll become a better developer if you do.
How to speed up .NET and SQL Server web appsBart Read
Why Service Oriented Architecture?Sean Farmar
When we go about designing and building a scalable durable system we need to solve the number one issue in developing scalable software systems: coupling.Implementing Service Oriented style architecture also refereed to lately as micro-services will help you solve this problem.In this talk, I will try to explain the Service Oriented Architecture’s paradigm…
Successfully Decomposing Your MonolithSean Farmar
Designing a system is hard, it’s even harder to build a distributed microservices style architecture…I’m going to try and walk us through a simplified example of carving our our entities, bounded contexts and processes on the road to building better applications.
Scaling Docker Containers using Kubernetes and Azure Container ServiceBen Hall
The Azure Container Service offers simple deployments of Kubernetes, an open source container orchestration solution, designed to help manage running containers at scale. In this session, Ben will demonstrate the benefits of deploying Containers to Kubernetes and how to ensure your system remains reliable and scalable by building on top of the Azure Container Service.
Topics and discussion points will include:
- Introduction into Containers
- Scaling considerations
- Deploying Kubernetes
- Migrating Application to Kubernetes and Azure Container Service
- Scaling to meet application demands
By the end, attendees should understand the benefits of using a Container Orchestration system, where Kubernetes fits into the eco-system and how it can be combined with the Azure Container Service.
Improving UWP development skills and techniquesJames Croft
Are you new to UWP application development or looking to brush up on some common mistakes made when creating apps for the platform? Covered within this session will include some coding tips & tricks, pitfalls and how to get unstuck, and building a better understanding of the Universal Windows Platform. This will allow you, as developers, to build great, responsive cross-device applications on laptops, tablets, phones, the Surface Hub and even HoloLens!
Counting Your Chickens After They've HatchedGary Short
We data scientists are sometimes asked to solve bizarre problems. One of the strangest I've been asked to solve this year, was the problem that a chicken farmer had no idea how many chickens he actually had! In this session I'll walk you through the machine learning software I built in order that we could count the chickens. When I was finished the farmer asked me how I'd managed to count the chickens so accurately, I'm not sure he believed me when I told him I counted the legs and divided by two :-)
The Art and Science of Predictive AnalyticsGary Short
In this fun presentation we'll cover the science of predictive analytics, with a look at statistical methods such as regression and Bayesian inferencing, but we'll also have a look at some of the art, those techniques that lay outside of the pure science that we practitioners pick up along the way.
Lessons learned from building real world chatbotsGaliya Warrier
In this session, we will cover some basics of building conversational interfaces (chatbots) and explore the practical use cases that are now being implemented by the companies in various ways to interact directly with their customers, internally, or simply improve their backend systems. We will touch on the design principles, and discuss examples where the chatbots shine the most and when they really should not be considered despite all the hype. By the end of the session, you'll know how to build a simple chatbot, as well learn how to take it forward.
You keep using the word agile, I do not think it means what you think it meansNathan Gloyn
More and more you hear of people that have being working in an agile team writing blog posts like "Scrum should die in a fire", or people on twitter complaining about "yet another agile meeting that goes on for hours"
The first thing that comes to mind when I read these posts/tweets is that the person wasn't working in an agile manner in the first place.
In this presentation I'm going to look at what people frequently think agile is, explain why it’s not agile, and then move on to discuss what agile is covering principles & practices.
I can't promise I'll provide enough information to allow you to fix agile where you work but hopefully you'll have a better idea of what agile looks like which in turn could help you improve your agile implementation.
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 cool API.
C# 7 and beyondJoseph Woodward
Since C#'s initial inception back in January 1999 under the original name of COOL (standing for C-like Object Oriented Language but later dropped for trademark reasons), we've seen C# grow from strength to strength with each release. Fast forward 18 years and C# is still going strong, with version 7 being bundled inside Visual Studio 2017 we'll stop and take a look at the latest developments and language features being made available to us. We'll look at what they are, how we can take advantage of them whilst also taking a peek under the covers of the more interesting C# 7 developments such as the new ValueTuple type, pattern matching and more to see how they work and their limitations. After covering C# 7 we'll move on and take a look at what the future of C# has for us by looking at some of the proposed changes that may make it to C#8 or later.
What is .NET Standard?Adam Ralph
.NET Standard is one of many new technologies to emerge from the mass of open source .NET initiatives during the past year. Compared to what's come before, .NET Standard is not only a more effective way to use NuGet packages cross platform, it's also way simpler.
It has the potential to remove most, if not all, of the current confusion surrounding cross platform multi-targeting. So what is exactly is it and how does it work? How does it relate to .NET Core? Join Adam as he answers these questions and more, and takes a dive into some of the magic which makes .NET Standard work.
Breaking The Common Myths Around Artificial IntelligenceGaliya Warrier
In this presentation, we will be talking about 5 main common myths around Artificial Intelligence as well as what it can actually deliver at this moment of time. We will discuss and see a demo of interesting AI examples that span beyond chatbots and personal assistants, and that should leave you with some practical ideas on how you can get started in this space.
Client-side web performance for back-end developersBart Read
Introducing the LEDS StackAlex Brown
Linux, Nginx, Dotnet, SQL Server Ok, I made that acronym up. It isn't yet a 'thing' (as far as I'm aware) Hopefully we can change that! This talk aims to introduce you to ASP.net Core, Entity Framework Core, Visual Studio Code and SQL Server on Linux. First, we'll get Microsoft SQL server set up, on a Linux box (running on a non-MS cloud) Then, we'll use Visual Studio Code (on a Mac) to create a data-capturing ASP.net core application. Finally, we'll package and deploy this application to our Linux box, and make it live on the internet.
Introduction to Azure Service FabricSteve Spencer
Azure Service Fabric is the Microsoft microservices framework and this talk explains how to build applications that can be deployed in Azure, on your own infrastructure or in a Docker container. Service fabric lets you deploy your own existing services or build them using the service fabric framework to take advantage of the built-in microservices features that service fabric provides
Analysing SQL Server performance: execution plans, extended events, and profilingBart Read
Dealing with performance problems in SQL Server can be a daunting prospect, especially for the casual or part-time DBA, whose main job is software development.
But SQL Server actually provides a host of tools to help you understand and fix performance issues, so in this session we're going to take a good look at what's available.
We'll cover execution plans, which give detailed insight into query performance, and how to go about interpreting these sometimes confusing diagrams. We'll also look at the more comprehensive SQL Server performance data you can collect using extended event traces (recommended) or, if you prefer, SQL Server Profiler, along with ancillary data available from tools such as perfmon, and SQL Server's built-in DMVs.
By the end of this session you should have a good idea of how to begin tackling any SQL Server performance problem you might encounter.
10 more things you need to do to succeed as a Tech LeadJoel Hammond-Turner
XSS: Don't die of ignoranceRobin Minto
You wouldn't allow any Tom, Dick or Harry to add code to your application; but cross-site scripting (XSS) vulnerabilities allow exactly that. This session aims to prevent these issues from keeping you awake at night. We'll look at the mechanics of XSS, how protections can be bypassed and how defence in depth is your friend. We'll demonstrate XSS in action using the Browser Exploitation Framework Project to illustrate the power of this attack. Examples are in C# and React.js; lessons will be useful to any web developer. We’ll learn how to protect ourselves from XSS so we can all get a better night’s sleep.
Developing with HoloLens: The Path to Mixed RealityMike Taulty
Microsoft HoloLens is a self-contained, mobile, mixed reality headset which blends your physical world with your digital world.
In this session, we'll have some fun looking at developing for HoloLens and Windows Mixed Reality by building out a simple demo application to illustrate how you can build features like gaze, gesture, voice, speech, spatial audio and spatial mapping into HoloLens applications with C# and Unity.
SOA lessons learnt (OR Microservices done better)Sean Farmar
Service Oriented Architecture has been around for a while, now Microservices is the new black, that’s cool, but can we learn from when we failed and succeeded implementing SOA?
There are some really useful lessons we can take and avoid the pitfalls.
Ten tips from real world SonarQube experiencesMatteo Emili
I use it on personal projects, I use it on enterprise, production projects of all sizes and I use it since more than a year. What did I learn dealing with SonarQube in my TFS and VSTS environments? A lot! Come and see ten tips from the real world which might help your implementation and raise the quality bar for your projects.
HALT! Who goes there?Robin Minto
Is the visitor to your website friend or foe? Authentication is the sentry to your web application or API. "Bad dudes" are ready to march into your app but you have to control who gets through the gate. This session will show you how to authenticate your users and keep your application secure. We'll look at the threats to your system and how to avoid pitfalls. We'll compare options in the .NET ecosystem and consider when they might be used. We'll look at examples in .NET Framework and .NET Core, tackle integration with Identity Server and look at third-party authentication systems. By the end of this session, you'll have learned how to change your authentication for the better or what to choose if you're starting out.
Building (micro) services in .NetSean Farmar
In this talk I will show how we can build deploy and monitor a couple of (micro) services using the .NET platformOn the Java platform we have a lot of options to implement micro services, this is not the case on the .Net platform, lets look how we can do this using .Net tools like NServiceBus and the Particular Platform
Functional Programming in C#Ian Russell
Functional programming has been one of the major trends in software development over the last few years. Most of the most important new features of C# in the last few versions have been ported from F# (e.g. Generics and LINQ). In this session you will learn how think functionally and make use of the new functional features of C# to improve how you write your software.
The Psycological Tricks Your Mind Plays on You That Means You Suck at Data ScienceGary Short
In this light hearted presentation we'll examine some of the psychological tricks our minds play on us that stop us using our cognitive abilities to their upmost. By the end of this session, you'll never look at a "fact" the same way again.
TestCafe: Web Testing Made Easy!Don Wibier
Join Don Wibier as he shares just how easy testing your web app should be. Using it's 'plug-in free' design, Don will demo the benefits TestCafe delivers in just a few mouse clicks. • see how quickly TestCafe can be deployed • learn the powerful API • discover the browser based script editor • witness the true independence as Chrome, IE, FireFox and Safari all play host
Teaching Your Computer to ReadGary Short
Sometimes there's just no shortcut other than to read and absorb a lot of written material. When I'm faced with such a situation, naturally, I cheat. In this session I'll show you how to I do it. We'll create a machine learning bot that will curate a lot of written material and then provide us with a summary of the main points as well as creating a graph of the content for us so we can get a "single view" of a complex topic.
Goodbye REST; Hello GraphQLSandeep Singh
Do you want a single endpoint to access your data? Fetch only the data your client needs all in a single request? Do away with API versioning? Well if the answer is yes to any of these questions then GraphQL might just be what you are looking for. GraphQL is a query language for your application and not your database. Unlike RESTful API’s, with GraphQL, developers can use composable typed queries to request and receive only what’s required from the server.
We’ll walk through an introduction to GraphQL, drawing comparisons with traditional RESTful API’s, highlighting the implications on server and client design. Live coding examples will be used to illustrate how to get started creating a GraphQL client including: defining a schema, connecting to a database, fetching/manipulating data and much more.
Service Discovery with Consul.io for the .NET developerJoel Hammond-Turner
Microservice architectures are all the rage - hundreds of tiny services, all communicating - built, versioned and deployed independently. But even if your application only has a very few components, as soon as you go for High Availability you're already deep into that world.
Enter Consul.io - your saviour of service discovery.
In this session, I'll explain the High Availability architecture employed at Landmark, and how we've use Consul.io to provide discovery, monitoring and load-balancing for our services across an environment that spans two geographically separate data centres.And as a bonus, you can potentially get rid of a LOAD of configuration in your app.config or web.config file.
Deploying Applications as Containers on Windows Server 2016Ben Hall
Docker has changed the way we deploy applications onto Linux and
ARM basedsystems. Windows Server 2016 introduces first class container support to the Windows Kernel.
In this session Ben will explore how Docker and Windows will work together, the impact it will have and how you can get started.
Key talking points will include:
- Deploying applications using Windows containers
- Managing Windows containers using tools from the Docker ecosystem
- Combining Linux and Windows containers
- Difference between Nano containers and Server Core containers
- Why Hyper-V isolation exists
- Windows Container Security Model
endattendees will understand how containers on Windows will work and the problems they’ll solve.
Creating Desktop Apps for Windows, Mac OS and Linux with your favorite web-tools and Electron.Don Wibier
Building a modern enterprise with UWPJames Croft
Based on experiences and learning through practice, this session covers the benefits and pain points of moving from traditional desktop applications to modern cross-device applications that works across multiple form factors using Microsoft's Universal Windows Platform. We will take a look at building your modern desktop app, bringing those experiences to the mobile form factor and moving into the future with Microsoft HoloLens.
Shifting from one app does all to multiple apps working togetherJames Croft
You're probably used to looking for those killer applications that have every single feature imaginable. Have you found one yet? Probably not. If you have though, it's probably not perfect.
This is where app extensibility comes in handy. In this session, we will cover how you can move away from traditional one app does all approaches to building more manageable, extendable applications using the Universal Windows Platform.
Countering the OWASP Top 10 web security threatsjohn staveley
The number and frequency of attacks on websites in the news is increasing steadily and effects can be devastating. However for each company that you hear about there are many more who cover up or are unaware of breaches on their sites. Thus what you hear about in the news represents just the tip of the iceberg. This primer session on security focusses on the major risks and the practical steps you can take now in your software development to protect an ASP.Net Mvc website from the major threats in the web today and will include code you can take away and implement in your own sites. Each type of attack will be introduced in a technology agnostic way, then highlighted with some case studies using major breaches as examples, then finally countermeasures which you can use will be proposed for each risk. The attacks I will be looking at are: * SQL Injection * Session hijacking * Password hacking * Weak account management * XSS * Insecure direct object references * Misconfiguration * Sensitive data exposure * Missing Function Level Access Control * CSRF * Unvalidated redirects and forwards A sample code project is included as part of the talk which helps mitigate against all of these threats and more.
Personalisation Architecture in ASOSAli Kheyrollahi
Beyond the hype around Big Data and Microservice architecture, there is a real need in this highly competitive market to provide the most excellent user experience powered by personalisation. We in ASOS take this very seriously and our 3-year journey to produce state-of-the-art personalisation has turned an important corner and we would like to share our experience with you.
What does it take to churn terabytes of user interaction data via machine learning to produce recommendation models for 20 million customers and generate recommendations in real-time and serve them up to 1000 request per second while maintaining a 95th percentile of 250ms? What is the level of complexity when you have to marry Spark with Cassandra with Elasticsearch and all powering an API?
We are happy to share our secrets.