Machine Learning for MugglesMartin Kearn
Artificial Intelligence is the latest hotness. We’ve heard how bots are going to be the new apps allowing natural conversational interfaces. Siri, Cortana and Google Now are no longer a gimmick and are becoming more useful every day. Machine Learning sits behind artificial intelligence and on the surface it may seem like a deeply technical, scientific topic. We are here to tell you that it is more accessible than you think. We’ll look at some of the basics around machine learning. We’ll also look some of the API services that make it very easy to implement artificial intelligence ‘smarts’ into your application with simple, standard REST calls
10 more things you need to do to succeed as a Tech LeadJoel Hammond-Turner
In 2014, I talked about 10 things that I believe any developer stepping into the role of Tech Lead needs to do to succeed.
This year, I've got 10 more things you should be doing as a Tech Lead.
This new 10 things are a little more specific, and a little more controversial in places, but they're tried and tested and well worth considering, if not implementing right now!
Busting the Myths with Cross-Platform XamarinFilip Ekberg
You're promised high amounts of code sharing when building your next million dollar business with Xamarin, but is that really what's going to happen?
We'll uncover the truth about code sharing with Xamarin; looking at custom renderers versus doing a native UI approach, as well as talking about how these decisions can haunt your throughout the development and maintenance of your app.
React for the .Net DeveloperChris Canal
ReactJs is the new hotness for creating maintainable, composable UIs. In the session, we will cover what ReactJS is, how it works, and what advantages you have as a .Net developer. This session assumes you are comfortable with web technologies, most of the Gang of Four design patterns, and cursory knowledge of declarative functional coding.
Diving Deep into DockerDavid McKay
Metrics driven developmentSam Elamin
Moving to a distributed system will solve all your problems and you will be in developer heaven. Right? Not exactly, having hundreds of services doing different things means it's increasingly difficult knowing where exactly production issues are hiding.
In this talk Sam Elamin will relate his real life experience working on a distributed system dealing with £100,000 worth of transactions every hour. Sam will cover monitoring and how to develop your features based on how your customers use your platform and, most importantly, business metrics.
Sam will cover how to implement metrics in your application and setting up dashboards to gaining visibility into what is happening in your production system right now. We'll also go through some helpful techniques to help you convince your domain experts that gaining this insight is invaluable to keeping your competitive advantage.
As an extra treat come and see how JUSTEAT time travels in production, using open source software that can be set up in a matter of days!
Code Quality and Static Code AnalysisStephen Haunts
Visual Studio offers many great tools to help you with improving the quality of your code. These range from unit test tools, code metrics tools and static code analysis.
In this talk we will explore some of these tools and also take a look at tools like NDepend which offers a very rich palette of tools to help assess the quality of your code, or investigate dependencies of legacy brownfield code.
Levelling Up - Intentional Practice and the Coding DojoDerek Graham
A Coding Dojo is a safe environment for beginning developers to learn and for experienced developers to teach or hone their craft, with intential practice.
It’s where we get together to discover, learn and have fun. It's about sharing knowledge, practicing and improving technical and human skills needed in modern software development. It's collaborative, non-competitive and inclusive.
It's where we practice or experiement with new techniques (XP, pair programming, TDD, katas, mob programming, clean code and refactoring) to make us more effective in our lives as professional developers.
In this session, I'll talk about how intentional practice fits into the dojo format, what tools you will need, how to be a participant, how to organize your own and will include some stories and advice from my own experience running a weekly dojo for the last 3 years.
This presentation is not guaranteed to turn you into a coding "rockstar", web "wizard", a cyber "ninja" or even a programming "guru".
Just a spoonful of Front End OpsBen Cooper
When developers think Ops, most of think DevOps. Also most of us shudder. Just me?
When we think DevOps, we also think about it in terms of servers and system architecture and it seems very focused to the full stack/back end orientated programmer.
In this talk I would like to introduce you to this branch of the sector and cover the various areas from performance, tooling and even localisation. I think a spoonful maybe a little bit of an understatement.
This is not the Async you are looking forLiam Westley
With the introduction of Async/Await .NET developers never had asynchronous code this easy before. Finally, every programmer could create a multi-threaded app.
It’s nearly four years since that official launch of .NET 4.5 and there is still a significant level of misunderstanding on what Async/Await actually provides and when to use it.
I think it’s time to rewind and get back to basics and ask some fundamental questions.
- Is your application CPU intensive, or I/O intensive?
- How many CPU threads will your application actually be running on?
- Are your business requirements suitable for asynchronous processing anyway?
We’ll check out the great advantages of Async/Await, highlight some gotchas and take a look at the other ways of creating multi-threaded applications so you can select the right approach for the problems you have.
Does a mobile app need local storage?Liam Westley
A mobile app that has no local storage is just a glorified web application that doesn't work properly when your device is offline.
Is this true? What are the different types of mobile apps, and what requirements do they have for offline storage?
RPC is EvilIan Cooper
As the microservice train thunders into town, it is bringing with it an old enemy - the Remote Procedure Call. Libraries like Thrift are being used for client-server communication and no one seems to be looking back to the past to understand why we ran screaming from RPC last time. Drawing on bitter experience of DCOM, .NET remoting and Web Services, and his very British desire for a decent cup of tea, in this talk Ian Cooper will explain the anti-patterns of RPC and look at the alternatives which will ensure your system stays stable and he gets a decent brew.
Back to Basics: Efficient Async and AwaitFilip Ekberg
We've all experienced deadlocks, and we all hate them, but how do we prevent (and potentially fix) them?
That's right, no one likes applications crashing or giving users an unexpected behaviour. Introducing asynchronous patterns is so much more than just applying async and await to your methods; you really, I mean really, need to understand what's going on.
In this session, we'll make sure you know how to avoid crashing your applications, and how to adhear to best practices when applying asynchronous patterns in our .NET applications.
Getting Into the Zero Downtime Deployment WorldTugberk Ugurlu
Continuous delivery is a huge step forward in our ability to rapidly deliver features and value to the users of distributed applications, but it comes with a cost and a responsibility. Most modern web applications need to be highly available, and this also means that it should be up during the deployments. Dealing with zero-downtime deployments is a challenge, and there is no easy solution. Moreover, the solutions available vary based on the number of integrated clients, which parts of the World it addresses, how many active users it has... Isn’t there a simple way to figure out how to get there?
Join me to get into the details of the key steps on your path to zero downtime deployments. Learn about the patterns, practices and techniques that make it easier, such as semantic versioning and blue/green deployments. We’ll also walk through an end-to-end demo of how a high traffic web application can survive the challenge of deployments.
What seemed insurmountable at the start of the session will be practical and applicable by the time we’re finished, and you should be able to see how to start moving your production application close to the zero-downtime gold standard.
Component Driven Development with AureliaSean Hunter
The web development and design worlds are converging on the idea that websites should be built out of a system of components (or significant panels) rather than the traditional monolithic website approaches of the past. Building websites in this way improves agility, testability, reusability, and even team collaboration. The design world is also moving in this direction with the increasing popularity of Atomic Design http://bradfrost.com/blog/
In this talk we’ll take a deep dive into how to build component based single page applications by combining Aurelia’s dynamic composition and CustomElement & CustomAttribute features. We’ll then look at how we can make these components communicate in a way that is simple to implement and maintainable in the long run, by combining DataBinding and pub-sub with the AureliaEventAggregator.
Ping Me! Bidirectional messaging with SignalRDon Wibier
In HTTP-land, everything is supposed to be initiated from the client: the client requests, the server responds. But what if you wanted some other kind of communication, one that’s not limited by this protocol?
One of the very cool latest additions to the ASP.NET web stack is SignalR, which allows real-time communication between your web apps and your client apps, even outside the browser.
This session will walk you through the process of adding real-time communication to your web app and setting up a number of different clients like web, desktop and mobile apps. You will also get to know what needs to be done when your app needs to scale out.
Salesforce Platform ToolsKevin Reece
Sage recently embarked on a journey to become a Salesforce ISV and develop a market leading and revolutionary accounting product called Sage Live. Sage Live was initially developed in 90 days and this was achievable by the rapid development that the Salesforce platform enables.
This session will cover an introduction to built-in platform tools such as Object Modelling, Approval Processes and Process Builder.
Development and QA dilemmas in DevOpsMatteo Emili
The quick rise of Continuous Delivery in the enterprise means that common problems are often approached the other way round. Concepts like Feature Flags and Testing In Production caused several headaches to developers and QA engineers, especially where they have a wealth of experience about traditional development.
There are some challenges and approaches which are very common, and they still scare newcomers. Let's have a look at a few of these, with the most common solutions.
Running a real-world node.js applicationColin Mackay
Node.js is taking off in the .NET world in the build pipeline, but you can also run real world web applications with it too.
The Hitchhiker's Guide to ReduxSam Hogarth
The traditional MVC approach to application structure is eschewed, in favour of a predictable unidirectional data flow. By adopting a few functional programming principles, Redux can significantly reducing the complexity of your code.
To understand the approach, we will first understand its philosophy and what problems it solves. As applications scale they introduce a new set of problems, from developer tooling to communication between modules. Redux has some interesting ideas in these areas too! Utilising hot module reloading and Redux's reducer structure, we can debug by travelling through time. Redux's companion libraries, such as reselect and redux-saga, are targeted at efficient data access and containing asynchronous side-effects.
The Hitchhikers Guide to Redux will present you with a glimpse of the future of front-end development, from a beginner's point of view.
Functional Frontends - An Intro to ElmlangRob Ashton
Elm is *amazing*.
Okay, I have some misgivings but you have to praise how easy the author of this language/framework has made building front-end applications in a haskell-like programming language. It is super accessible and has some wonderful patterns (Think React but more authoritarian).
I want to help you build better front-end applications and I think that Elm is a brilliant starting point for this. Let's do an intro together, let's build an application and cover the patterns and look at the tooling and fantastic error messages and how easy this actually is.
Sketchnoting for DevelopersDerek Graham
As developers the one thing we can count on is that we can never stop learning. Retaining, processing and making sense of new information are all parts of what we do every day. Sketchnoting is a set of techniques you can use to support and improve your visual thinking, communication and learning. You can even use it to get more benefit from the other sessions you attend at DDD North!
In this session, I will show you how sketchnoting works, how to get started, tips and tricks to save you time and why sketchnoting is so much better than F#. I'll also cover how it can be applied beyond conferences and talks to UX/UI design, team collaboration, agile methods and your personal development.
Beautifying your mobile appsJames Croft
There's more to creating mobile apps than a great idea and a developer. The best apps don't get where they are without a great user experience that keep the user engaged and excited to use them.
In this session, we will take a look at common UX concepts for creating beautiful, simplistic mobile apps, show you how you can take an existing app UI and give it a bit of umph with animations, transitions and effects to create a beautiful experience with UWP app demos.
While the demos will focus on UWP, this talk is appropriate for anyone looking to create awesome app experiences and you don't have to be a designer to do this.
C# Scripting - use your C# in places you never thought of before!Filip W
In this talk we'll examine using C# as a scripting language. Pioneered by the scriptcs project, C# scripting has grown to become a first class citizen in the Roslyn compiler and can now be enjoyed and applied in your applications in various ways - using the embeddable assemblies, command line CSI tool, the new "dotnet" CLI, Visual Studio Interactive Window and - still - the scriptcs project. It all also works cross platform!
Let's dissect what's going on under the hood in C# scripting and how it can make life easier for you as a developer.
Don't Build Your Own REST APIs/Up Your API Game, from REST to MicroservicesAlexandra Bowen
Many companies face the same challenges we had to think about and tackle over the years. One of the biggest challenges is figuring out a winning API strategy. This talk lays out some of the traps and pitfalls that companies often experience when they decide to build their own REST APIs.
Many project managers and engineers underestimate the full workload required when releasing an API. I will also be discussing the perils of building your own REST API, look at some ineffective solutions that companies use to battle backend API complexit, and survey the advantages of a more comprehensive and reusable API strategy
-Building your own REST APIs can snowball into a giant mess that adds to backend complexity and slows mobile and web development projects.
-Building APIs with REST API development tools, or trying to manage backend complexity with API management tools, doesn’t solve the root complexity problem, and adds an additional arbitration layer to the mess.-Building comprehensive, reusable REST API services for groups of applications is possible with a carefully designed RESTful backend.
Introduction to Salesforce DevelopmentKevin Reece
Sage recently embarked on a journey to become a Salesforce ISV and develop a market leading and revolutionary accounting product called Sage Live. Sage Live was initially developed in 90 days and this was achievable by the rapid development that the Salesforce platform enables.
This session will cover an introduction to Salesforce development, inc. APEX, Visualforce and Lightning.
.NET Data Security : Hope is not a StrategyStephen Haunts
Not encrypting your data is a risky move and just relying on 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 product a hybrid encryption scheme which includes AES, RSA, HMACS, and Digital Signatures.
Designing an API for developer happinessGarry Shutler
How do you go about designing an API that makes developers happy? Garry will discuss the decisions Cronofy made to optimise their developer experience, what's gone well, what hasn't gone so well, in order to help you make developers happy too.
Breaking Bad: you CAN make Fast Web PagesDon Wibier
This session discusses the bad habits you may have picked up from those "web school" pages on the internet and shows how to break them with some simple-to-follow rules.
No Heisenberg uncertainty involved either, you'll understand and use the developer tools provided with your browser to tweak performance, save time, and optimize bandwidth.
How Roslyn has revitalized .NET open sourceFilip W
This talk takes a tour through a number of open source initiatives that only exist out there because of the new .NET compiler - Roslyn.
It is responsible for a whole wave of new and wonderful .NET OSS projects, and enables .NET developers to work with with some very exciting new scenarios. It also makes a lot of things that were traditionally difficult in .NET much, much easier.
Learn why it is so important for the ecosystem and how you too, could become a part of the Roslyn wave of changes.
App 2.0 - why the web lost and Apps won.Liam Westley
In the heady days after the dotcom boom and bust, Web 2.0 arrived and created an exciting new delivery mechanism for software. Browser wars improved performance to a level where they could host fully functional applications, with easy of deployment and updating.At the same time smartphones had appeared and the first real applications were breaking cover, but they suffered from reliability, performance and discoverability issues.When Apple launched the iPhone, and the App Store it solved many of these concerns.
We now have easily discovered applications, streamlined deployment and high levels of usability.Is everything solved though? There are issues related to speed of updates, development costs, security, deep linking and whether the mobile platform owners are fighting back against the likes of Facebook.What is the future of apps? Who will win the platform battles? What will it mean to write an app for a light switch?
Dealing with intellectual trolling, how to hack harassmentAlexandra Bowen
Don’t let trolls define your experiences in work, in your communities and in your projects. If you've ever had to deal with an intellectual bully in an online community, on a project, or social media, you know that it's one of the most unpleasant aspects of the internet. An intellectual bully may be adding value, but is mostly condescending, rude and aggressive. Don't let your toxic users define your community. Do you want a "death star" or "rock star" community member? I will also touch on how to create inclusive experiences.
Azure Functions is the cool new kid you want to hung out withChristos Matskas
Docker swarm, Azure Container Services, Mesosphere, Service Fabric - what, when & why!Andrew Macdonald
It seems like every day a new container orchestration platform is joining the bandwagon!
I don't know if it's the same with everyone else, but seriously, I'm starting to suffer from decision paralysis with all the options!!
I'm sure there are many more than those mentioned in the title, but the session will start with a brief whistle stop tour of these guys and then the floor will be opened to encourage an open discussion on what, when and where!
I don't have all (if any) of the answers.. just my own thoughts - this is an opportunity for you to shape my and others thoughts on the topic!
Becoming an awesome Open Source contributorChristos Matskas
Have you always wished you could contribute to Open Source but didn't know where to start from? Perhaps you want to build something great and gain invaluable experience by working in open source? Or you just want to join the open source movement because, well, OSS is the future? Just look at all the cool tech built with OSS: Node.js, BootStrap, ASP.NET etc. Join Christos Matskas to learn about the many ways to contribute, the development tools necessary and what it take`s to become a successful first-time contributor and collaborator in this welcoming and open community.
Learn how to become a Visual Studio Jedi MasterChristos Matskas
Do you spend most of your day working in Visual Studio? Do you feel that you know all there is to know about it? Would you like to learn how to unlock some of its hidden features in order to boost your productivity and code more efficiently? Visual Studio's powerful IDE comes crammed with numerous features that can suprise and amaze you. Join Christos Matskas as he showcases some invaluable tips and tricks to help you become a Visual Studio Jedi Master.
Responsive Web Design for DevelopersDon Wibier
Unless you work for a web agency where you have an art director and a team of web-designers, it is probably you, the developer, who has to make sure that the sophisticated web application you are building looks visually stunning on any internet connected device.
In this session you will see how your web application can look attractive on computers, tablets and smartphones by delivering a responsive user interface. We’ll investigate CSS media queries and some ready to go responsive CSS Frameworks like Bootstrap, but you will also see how to create reusable CSS by using the CSS preprocessor LESS and how to add images without going (completely) mad with Adobe Photoshop.
Introduction to node.js: From "Hello, world" to deploying on AzureColin Mackay
In this talk, I'll discuss what is node.js, show you the obligatory "Hello, World!" application, how to add dependencies into your project including how the node package manager works and finally how to build a basic web application in node.js and deploy that to Azure.
Building your first dashboard with Azure PowerBI EmbeddedJoel Hammond-Turner
Users love dashboards… Dashboards give them that warm fuzzy feeling that they can see into your software and watch it working perfectly… And dashboards give you the same insight into what's actually going on.
Microsoft's new Azure PowerBI Embedded product lets you capture data, analyse it and present it on dashboards that live within your application.
In this session, I'll take an existing instrumented application, pipe the data into Azure and demonstrate just how easy it is to create a rich dashboard to monitor the application - live.
Getting your Splunk on - a developer's introduction to SplunkJoel Hammond-Turner
Splunk is a magical tool - it sucks in your logs, indexes them and gives you a rich search and data mining application to drill deep into them.
But as a developer why the heck would you want to use such a DevOps'y tool?
In this session, I'll show how using Splunk whilst developing can give insight into your code - how to time transactions, graph volumes and analyse performance - and how Splunking as a developer will make life in production that much easier.
Docker Changes the Way You Develop and Release Your Scalable SolutionsTugberk Ugurlu
Developing a distributed software solution is hard. Even if you boil it down to modular pieces and nicely define deployment boundaries, what matters at the end is that all of those modular pieces should work together in a cohesive way. It’s a must to get it building and working locally to see it in action but it’s a challenge if you have too many moving parts. Not to mention you need to control this many moving parts in production, too.
I have been working in a .NET project and it has many moving parts including MongoDB, Elasticsearch, Redis, HTTP Services, worker processes, clients… I felt the pain very deeply. However, I was able to see the light at the end with Docker. Docker made it easy to glue all the pieces together in development, pre-production environments and production. Getting the application up and running is just possible by running a single bash script thanks to Docker’s declarative nature.
But, how? How does it all work together? What are the tips and tricks to get it all functioning properly? Is Docker the magic silver bullet? What are the caveats? Join me in this session to walk you through the 1000 feet overview of this architecture and answer these questions based on my experience. By the end of this talk, you should have the right concepts in your mind to start thinking about bringing your solution to a high quality, stress-free level.
Jankety JankBen Cooper
Rendering performance is becoming such a prominent figure in web applications that not having an understanding will cost you dearly in the eyes of your users. Understanding how the browser optimises rendering and what the app lifecycle consists of, your apps will be running at a silky smooth 60 FPS in no time.
With no particular focus on a specific rendering engine, we will focus on what is known as the "Rendering Pipeline" and provide a detailed understanding of the tasks which must take place in order to get your web application on to the screen.
DDD: The God that Failed?Gary McLean Hall
DDD is rarely applied 'properly'. When directed at the right sort of problem and executed well, DDD is a valid solution. But DDD is over-used, misunderstood, misapplied, deified, and just downright bastardized. It is a small core concept that has gargantuan consequences throughout the solution.
Thankfully, there are alternatives. By following the Single Responsibility Principle at an architectural level, we can create a suite of small, decoupled services with high internal cohesion. These services can be composed and orchestrated in many different ways to solve business problems.
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…
Audio Synthesis in F#John Stovin
Functional languages are a great fit for writing applications that generate and process audio signals. In this session I will attempt to provide a whistle-stop tour around digital audio theory, and demonstrate how F# makes it easy to create the basic building blocks of an audio synthesiser and hook them together.
Warning: for those of a nervous disposition - there will be noises.
Safe At Any SpeedIan Cooper
You committed to TDD, you embraced your agile methodology, you read up on CQRS and whiteboarded your microservices. The time has to come to release and you are brimming with confidence. But once you are live the pain starts coming; deadlocks in the Db, servers that begin queuing requests and then fail, users reporting errors you have never seen. Keeping an application alive in production takes more than just good practices. You have to understand stability patterns like retry and circuit breaker, you have to understand what it means to be a multi-user system if you don't want deadlocks, you need to understand what happens if you lose a node and you need to know how to monitor your application in production so you can understand the pain when it hits you.
In this presentation we explore some of the key patterns you need to know to keep your application alive in production. By the end of the session you should have a far better idea of what you need to know to stay up.
Developer UI testing made easy before you commit to source!Richard Wilde
Unit testing helps us when writing any sort of application, however we often end up writing unit tests for small pieces of logic that don't really matter and sometimes miss out on the bigger picture. As a developer we tend to shy away from Web UI testing as the feedback loop is just too slow.
In this demo led presentation we will take a look at a toolset that gives us end-to-end testing to give us far faster feedback. As a developer you will be able to run UI tests before you commit your code to source!
I will show you:
- how to get up and running
- how to screen scrape and take screen captures
- how to test your UI
- how the Page Object pattern can help you maintain your test code
- how Visual Studio Code and Typescript fits in
Creating VSTS extensions for fun and profitRichard Fennell
TFS 2015 and VSTS share a new extensions model with an associated Marketplace for web widgets, build/release tasks and other components.
In this session I will look at how you too can write these extensions, there will be PowerShell, NodeJS, Visual Studio Code and much much more!
But I don't use TFS or VSTS I hear you cry, will all is not lost, the session will also focus on the DevOps workflow I am using that allows me to locally build my extensions and then share them in the marketplace as private extension to only my test accounts, prior to full publication when I am happy.
So something for everyone
Building a Continuous Delivery Pipeline using Release Management and Windows ContainersNaeem Sarfraz
How awesome is Release Management? The old WPF tool has been completely re-written to be configured and run directly from the TFS website for both On-Premise or in the cloud with VSTS.
In this session we'll be looking at how easy it is to build a delivery pipeline using the tool and DevOps practises. We'll look to use the new Windows Server Containers to deploy an ASP.NET Core application.
The Murky World of Hybrid AppsMartin Kearn
Enabling Plugins in your web application with MEFDon Wibier
One of the many smaller sub-frameworks in the dotNET development platform is the Managed Extensibility Framework. In essence, this framework gives you the ability to support plugins and extensions in your application.
In this session I will show you what MEF is about and how to get started with it. I will also discuss some of the pitfalls you’ll encounter and how to get round them to make sure your app remains maintainable and secure.
Implementing OpenID Connect using IdentityServerRajpal Singh Wilkhu
You read The Phoenix Project and you loved it! Now what?Matteo Emili
Pipelines and DevOps are the new Big Data - everybody is talking about them, but how many actually implemented and use them in a valuable way?
The Phoenix Project is a great book describing a very common scenario in many companies, and you can read it very quickly - let's say in a weekend. But once you get back to work, you risk facing a shock: you might still be deploying on Friday afternoon, or you might still face the kind of frictions the book narrated that well.
Can I introduce a Release Pipeline in a regulated environment, or in an enterprise where most of the development teams are still anchored to a legacy perspective? How can I actually bring value in an incremental and iterative way, without disrupting everybody like a big bang?
This session is all about this - from my experience and others', a different perspective on DevOps and Continuous Delivery focused on how to bring the practices in an environment where big, disruptive changes are not always welcome and on using technology to bring a tangible contribution to the ultimate business goal: revenue.
Building (micro) services in .NetSean Farmar
In this talk I will demo how we can build deploy and monitor a couple of (micro) services using the .NET platform.
On 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
Continuous deployment with TeamCity and Octopus DeployJohn Staveley
Everyone is doing continuous deployment, in the case of Flickr they are doing over 10 live deployments per day. There are huge business and developer benefits from being able to deploy at will including:
In this introductory session we will set up a TeamCity and Octopus deploy to automate a deployment of a website to a test server so we can perform automated web tests against it. With what you will learn you will then be able to extend to similar deployments in QA, UAT and production environments.
- Shorter time to market
- Less downtime
- Faster developer/marketing feedback
- Effortless 'boring' deployments
- Deployments to new environments is not a headache
Run Your Team Lean and Deliver MoreStephen Haunts
Lean software development (LSD) is a translation of lean manufacturing and lean IT principles and practices to the software development domain. Adapted from the Toyota Production System, a pro-lean subculture is emerging from within the Agile community
In this talk we will look at Lean Software Development and how it is a benefit to modern development.
We will start off quickly looking at Waterfall and Agile, and then look at the history of Lean and its origins at Ford and Toyota. From there we will show how leans applies to software with the following lean principles:
- Eliminate Waste
- Build Quality In
- Create Knowledge
- Defer Commitment
- Deliver Fast
- Respect People
- Optimize the Whole
We will then answer the question Agile or Lean and then look at different software practices that will help support your use of lean including Kanban.
The talk would be aimed at software developers who are keen to apply lean to their software projects.
Logic Apps! Integration made easyLee Williams
Moving data quickly and securely between applications has always been a challenge. With Logic Apps you can now keep all your services connected in the cloud and on-premise without having to write any code!
In this session I will show you how you can easily integrate many cloud services and automate business processes within minutes. We will also look at how you can extend your existing on-premise systems to integrate with popular cloud services such as Office 365 and salesforce.com
Love and Death -- or, Everything you wanted to know about coupling but were afraid to askKevin Rutherford
TDD is the panacea of software development, the golden child of Extreme Programming. But there is a problem with test-driven development. A big problem. Everywhere I go, I see teams practicing TDD, and yet they are still creating horrible, smelly balls of mud. Code with many tests, and yet also many bugs. Code with many tests, but which cannot be refactored. How can that be possible?
The problem lies in the third step of the RED-GREEN-REFACTOR cycle. It's just too difficult!
In this talk we will explore a tool that can help us decide what to refactor and when. That tool is COUPLING (aka CONNASCENCE).
WARNING: Many of the slides in this talk will show code snippets.
Desiging Solutions with Ployglot Persistance In-mindTugberk Ugurlu
The World we live in today makes us deal with a lot of information. The solutions we put out there also has the same problem. We collect a lot of data through our applications and we try to give those data back in a non-asphyxiating fashion. Doing this with a single data storage technology makes you feel definite agony even on a medium-scale solution but it's next to impossible to provide a viable solution in a large scale products like Foursquare and Twitter.
This is where the polyglot persistence comes into picture. As much as the word "polyglot persistence" sounds extremely fancy to your ears, it's also not that straightforward to adopt in a solution, especially in existing ones. Come and join me in this session to learn about what most matters in this type of architecture to build a viable, maintainable solution. Also, I will be talking about how to make decisions to choose the right data storage technologies based on my personal experiences I gained with the side project I am spending my nights on.
By the end of the talk, polyglot persistence should seem less scary and you would at least have one real world example in your mind on how a solution is being architected where polyglot persistence is the solid foundation.
Thinking FunctionallyJohn Stovin
The determined programmer can write FORTRAN programs in any language - Ed Post
To program effectively in a functional language, you need to discard many of the thought processes and habits that you have developed for coding in ‘curly bracket’ languages, and understand a new set of idioms and ways to think about code.
In this session I will talk about some of those fundamental idioms, explain why they exist and how they interact to provide a very different framework for thinking about your code. Even if you never write any F#, these ways of thinking can be used to make your C# code more efficient and more robust.
Living in Orleans for a yearAndrew Macdonald
It’s becoming more of the norm for web sites and applications to be hosted with hyperscale cloud providers like Azure, Amazon and Digital Ocean to name a few instead of using co-located dedicated hardware.
While there are many facets to helping an application become cloud native and making the best of the hyperscale on offer, we'll be taking a look at Project Orleans; a framework designed from the ground up to assist in the delivery of distributed high-scale computing applications without the need to learn and apply complex concurrency and other scaling patterns.
Is it really this simple, what are the pitfalls, what are the benefits and more importantly if I had to choose again, would I still make the move into Orleans...?
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.<p>
Meet new kid on the block – Microsoft’s .NET is going to rock your world.Christos Matskas
NET Core has been written from the ground up to be the best web development platform for Windows, Mac, and Linux. You can now use your favorite editor to create faster, leaner and more memory efficient NET applications that work everywhere. In this session, you'll get an introduction to the major advancements and an overview of what's changed in the new, brave world of .NET Core. You'll also get the chance to see how you can create ASP.NET Core apps that leverage all the new front-end tooling like npm, Bower, Grunt and Gulp to make development easier. This is going to be session full of demos and information that promises to rock your world!
Reusable APIs for the win! -or- Why Reusable APIs Win for Mobile DevelopmentAlexandra Bowen
This talk describes lessons learned writing one-off APIs the bad way, important characteristics of a reusable API, and how architects and developers can use reusable APIs in practice. With mobile applications and APIs taking over, this talk provides practical guidance for a winning API strategy.
3 part talk:
1. Lessons learned
2. Reusable API's - what that means, why they are important, and why you should embrace them for mobile app development3. Use a reusable API - tips, techniques, examples that are useful to developers and architects of mobile apps
.Net Mvc SecurityJohn 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 focuses 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
• Insecure direct object references
• Sensitive data exposure
• Missing Function Level Access Control
• 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.
This talk has already been presented at DotNetNotts, Derby.Net, LeedsSharp and NEBytes and has had great feedback from the developers who have seen it.
Giving apps intelligence with Cognitive APIsJames Croft
You may have seen this in action with sample demonstrations like the "how old do I look?" website but how do you go from having fun with smart APIs to gathering useful information to provide rich user experiences in your applications.
This session will take a look at Microsoft's Cognitive services, which allow you to build smarter applications using the knowledge of the web, and how you can integrate them into new or existing projects with demos!
Windows brings Docker Goodness - What does it mean for .NET developers?Naeem Sarfraz
You've ignored them long enough now, Microsoft is bringing Containers to you in Windows Server 2016. Yes, that's right, you'll be able to run Containers on Windows using Docker.
In this talk we'll run through getting started with containers and deploying a ASP.NET Core (formerly ASP.NET 5) application into it. We'll be focusing on what this means for your workflow as a developer using the latest offerings from Docker & Windows Server.
Angular 2 & rxjs, a force to be reckoned with!Andrew Macdonald
The second version of Angular is hot off the press (or very close) and it comes with many cool new features and improvements over the original version.
When considering what cool feature to focus on, we could choose to look into how Angular has re-written it's change detection from the ground up, how it offers advanced shadow dom features that work now for legacy browsers while ready to master new green field browsers or even how rendering and processing have been split to facilitate native or browser based utilisation of your core directives, services and app logic!
Nope, in this session we will instead take a look at how Angular has embraced the power of rxjs, including it as a first class citizen.
After a brief introduction to some basic Angular and reactive programming concepts, we shall swiftly move into several code examples where rxjs can empower your development experience!
Storymapping for beginnersColin Mackay
Sometimes it is difficult to work out how to prioritise the backlog and effectively work iteratively. What do you put in your MVP (Minimal Viable Product)? What then goes in each incremental release to give your users more and more useful functionality? Storymapping is a technique for solving this problem and getting your solution to your users faster.
In this highly interactive session I'll explain how you go about creating a story map and I'll get you to create one. Lots of sticky notes later you should have a fairly good grasp and be able to use the same technique on your own projects to better manage your backlog.
A Piece of Cake - C# powered cross platform build automationGary Park
Have you ever wanted to create a build script for your application, but been faced with learning a new language, or DSL, or writing more XML than any person should ever need to?
Have you ever wanted to create a build script that will work cross platform?
Have you ever wanted to create a build script that has first class support for the most common build tools like XUnit, WiX, SignTool, and many others?
Have you ever wanted to create a build script that uses a language that you already know, and love?
If you have answered yes to any of these questions, then the Cake (http://cakebuild.net/) Build Automation System is for you!In this session we will start with a standard .Net Solution and incrementally add a build and orchestration script to compile the application, run unit tests, perform static analysis, package the application, and more, using the C# skills that you may already have.
Securing your API with OAuthFilip Ekberg
Rolling your own security layer on top of your API? Stop it. You'll end up regretting that decision for the lifetime of your API!
Why should you care about OAuth and Identity? What's the difference between authoriation and authenticaiton? Should you just roll your own OAuth implementaiton (No!....)?
I'll make sure you know how to secure your API with OAuth, be it with IdentityServer, or some PaaS. You'll know the difference between all the OAuth flows and where they're applicable. We'll see how to approach this from the server, and the client.
Bringing the Admins to the Dev SideRyan Yates
In this session we will look at how IT Admins can be coaxed into working with more in the Dev side of the Force - wait no - the IT World - in their day to day tasks. in a more efficient manner with effective Unit Testing and Source Control of their Scripts. In a Windows world this really means PowerShell but increasingly we are getting submitted to other scripting languages including Python & Ruby we can carry the practices across to these languages too as we require.
This is a session where there will be chance to follow along (if you bring your own laptop) and learn in real time from the co-ordinator of the UK PowerShell User Groups for getting started with the PowerShell resources - however you will also be lead to further community resources for getting started with Ruby & Python as well as further PowerShell resources if you require further time after the session to get this built into your current day to day workflow.
In this session, I will walk you through the process of setting up a WebAPI service and how to secure it by using MS Identity and the OWIN middleware.
SignalR - Can a real-time library for .NET be more awesome?Christos Matskas
.NET developers now have a great, open source library for implementing real time communication solutions both on the web and the desktop. SignalR is a persistent connection abstraction library for .NET which was inspired by tools such as socket.io and now.js on Node. Join Christos Matskas as he shows you how to get started with SignalR, it's requirements, features and supported platforms. Leaving this session, you will have a firm understanding on how SignalR works and how to leverage this amazing, community-driven library to provide real-time experiences for your users.
REST APIs and the Internet of Things: A winning combination.Alexandra Bowen
-A developer perspective of Internet Of Things
-REST and the Internet Of Things
-Leveraging open source services to build IoT applications-Demo - raspberry pi into IoT gateway *optional
Internet of Things (IoT) is more than a buzzword. The convergence of devices, cloud and analytics is creating a perfect storm for the developers. Cheaper sensors, affordable prototyping platforms like Arduino, Raspberry Pi, and BeagleBone make it easy for the developers to get started with IoT. But sensors are only the tip of iceberg. The actual value of IoT is in the data generated by the sensors deployed at various locations. Developers need to deal with a variety of data sources such as object storage, semi-structured NoSQL databases and RDBMS to store and process sensor data.
I will touch on how DreamFactory Services Platform (DSP) empowers developers through a unified, industry-standard REST backend to interface with multiple data sources. DreamFactory shortens the learning curve by abstracting proprietary APIs via simple REST APIs. What's more, DreamFactory can be deployed in any LAMP host including Raspberry Pi 2. This capability turns Raspberry Pi 2 into an IoT Gateway that aggregates data ingested by Sensor Nodes.
Getting started with Unity3DLee Williams
With the rise of Indie Game Developers we take a look at one of the biggest tools being used right now. In this session I will be talking about my experience as a developer learning Unity and some of the common mistakes and how to avoid them from happening to you.
We will be creating a basic 3D game from scratch written in C# and using some free assets from the Unity Asset Store. I will also be showing you some examples of what I have been working on over the last year and looking at some lessons learnt.