So you want to be a Tech Lead? 10 things you need to do to succeed.Joel Hammond-Turner
"Tech Lead" is an amorphous job title - is it all about the technology, or all about leadership? What should the balance really be?
And it can also be a complex and thankless role too - particularly if you find yourself becoming the go-to guy (or gal) for everyone from the intern to the product manager.
In this talk I'll cover (at least) 10 things that I think are essential to success in both areas, including how to address technical debt, herd your PMs and make sure your development team has a steady flow of work (and beer, pizza or other "motivationals").
Not just layers! What can pipelines and events do for you?Ian Cooper
When developers reach into their toolkit for architectural styles, they often explicitly uses layers to separate their domain from their presentation logic or infrastructure. They often implicitly use the repository style, with independent components updating the database. But there are many more styles out there, which can help you build your applications. In this talk we look at two of them: pipelines and events. Pipelines let us deal with streams of data effectively, and events provide significant advantages for loose coupling.
We discuss where these styles are appropriate and how to implement them in .NET. As both approaches can be used in-process or out-of-process we'll show examples of both, leading to an understanding of how distributed systems communicate using ideas such a SEDA - the staged event driven architecture.
Lessons learnt scaling a mainstream restful APIDavid Whitney
A walk through the design, launch, and evolution of a RESTful API that ended up powering some of the largest charity campaigns in the UK. We'll go through what worked, what didn't, along with some tips and advice to help you grow your own API to be ready for consumption by just about anyone.
Brownfield RefactoringDom Finn
Coming onto a massive old code base with an existing team can be a very daunting task. Especially when everything is going wrong. No change can be made on the code base without something breaking. The database is constantly "running slow" and requirements come in on a scrap of paper that need to be completed in comical time-scales.
I think everyone has seen this before and you have ~3 choices.
1. Get out of there!!!!
2. Join the zombies and just earn your money.
3. Kick some ass and change everything!
I have chosen number 3 a couple of times now and I wanted to share my experiences of what I do in these circumstances, what worked and what didn't work.
Break free, be agile!Preet Singh
Agile is finally here, it is now well know even in remote parts of Yorkshire. We have started following it. Can we finally say we are agile and successful with it? I have been trying to make sense of it for past few years. Why? What? and then most importantly How?. In this talk I aim to take you to the land that we forgot in the midst of implementing agile. This is my account of how my experience with agile and how the agile mindset forced me to visit that forgotten land again. It made me realise that it all starts with Code and the rest is just detail. We will look at how making our code agile, makes us agile. We will look at how breaking some rules around planning, certainty, architecture and perfection actually helps us to be more agile in our code and respond to change quicker.
RavenDB: an introduction to document databasesMauro Servienti
RavenDB rapidly moved from being one of the emerging kids to a stable and mature platform to built scalable and reliable applications.
In this talk we'll start introducing document databases concepts, such as schema-less and eventual consinstency, and then we'll see how to create applications using RavenDB as the storage backend
Windows 8.1 Behaviors SDK and Universal App upgrade war storiesJoshua Whittle
In this session, I will be covering using the Behaviors SDK that now comes with Visual Studio 2013 for use in Windows 8.1 Apps. Behaviors are very useful in keeping your MVVM code clean and avoiding lots of decision making in your view models.
The second section of the session will be some war stories when upgrading your Windows 8.1 app to a Universal App, and in turn I will provide advice on how to avoid/tackle these issues.
Web App to Store App in 60 secondsRichard Custance
Learn how a Visual Studio Template can help you turn your Web Application into a Microsoft Store Universal App in 60 seconds!!
In this session I'll guide you through integrating Window Store App features such as Tiles, Charms, Push Notifications and Navigation into your hosted (remote) and packaged (local) Web Applications.
PLUS give your Web Applications Offline functionality!!
Owin: The great asp.net rebootsteve higgs
Asp.net has a long history of delivering web applications; unfortunately this history comes with a fair amount of baggage. This all changed with the introduction of owin. Owin lets us achieve a level of efficiency and portability using asp.net that would be inconceivable using the existing .net infrastructure.
In this session I will cover:
The whats and whys of owin, how's it different to what we already have? What do we get out of it?
Owin hosts and middleware
Running owin on multiple platforms using mono
Fast and simple in-memory integration tests using the owin testing infrastructure
Owin in .net vNext
In short: Owin - it's really fast, extremely portable and you should use it; here's why.
Keeping it responsive - cross-platform MVVM with ReactiveUISam Hogarth
Building an awesome user interface is hard work. You've got the complexities of real life to deal with - handling user inputs, dealing with slow network connections and managing background workers. There's also this testing thing that people keep going on about!
We need a way of handling the real world, whilst behaving in a predictable and responsive manner. Enter ReactiveUI, a fusion of MVVM and the Reactive Extensions (Rx) for .NET applications.
In this session I'll introduce ReactiveUI, show you some tips and tricks, discuss the benefits and tradeoffs of the framework and show how it can be used as a solid foundation for building cross-platform .NET applications.
Automating deployment and testing with Visual Studio Online and OctopusDeployJoel Hammond-Turner
Last year I showed how OctopusDeploy was a great (and simple) deployment platform. Now, I'll show how the latest V12 build templates in Visual Studio Online can let you automate building, deploying and testing software - whether it's a Nugettable class library or your brand new social website.
Visual Studio CodedUI: Improving Resilience in your Automated testsRiccardo Viglianisi
CodedUI is a powerful Test Automation technology within Visual Studio, unfortunately it's still all too easy for your Automated Tests to break in the course of a project as the UI in evolves.
You can reduce the chance of this happening (and reduce refactor time if it does happen) if you go about writing your tests in the right manner. I'll be showing the methods I've adopted to achieve this and then demonstrating them with practical examples.
Decoupling from ASP.NET - Hexagonal Architectures in .NETIan Cooper
The term 'hexagonal architecture' has come back and forth in popularity since Alistair Cockburn first mooted it, with the Rails community's recent soul searching over its importance or threat just the latest. So what is a hexagonal architecture, why might you want to use one, and why is the 'Rails just falls away' (https://www.youtube.com/watch?v=tg5RFeSfBM4) threat so discomforting to web framework builders. How can we make 'ASP.NET just fall away'.
In this presentation we will look at the Layered Architectural style - when we would want to use one (as opposed to the alternatives) and when it is appropriate how to implement one. We will look at how to implement the Ports & Adapters (Hexagonal's 'proper' name) style, explaining what the different layers are.
We will look at the value the command pattern for implementing our ports , explain why Netflix uses it in Hystrix for reliability. On the way we will discuss Retry, Timeout and Circuit Breaker and explain how we can do better than Hystrix with a Command Dispatcher and Command Processor.
We'll show code throughout, including a look at the Paramore. Brighter framework, an OSS version of the platform we use at Huddle to build this kind of architecture.
As a bonus we will round off showing you how easy it is go from sync to async with this approach.
An Actor's Life for Me – An introduction to the TPL Dataflow Library and asynchronous programming blocksLiam Westley
Every version of the .NET Framework has brought improvements to asynchronous and concurrent programming. While .NET 4.0 brought the async/await model which is useful for improving UI responses and server applications, it can sometimes still be tricky to marshal multiple threads within longer processing pipelines.
The Dataflow Library consists of a Nuget package built on top of the Task Parallel Library (TPL). It harnesses the actor-based programming model to provide a set of dataflow blocks data structures that buffer and process data, which you can connect together to form custom pipelines with messages passed between the blocks.
By using the Dataflow Library you can concentrate on the messages and actions being performed, while the blocks marshal the messages, provide concurrent message processing and buffering as well as supporting cancellation and exception handling.
As in Life, so in Memory Management: Premature Promotion Produces Poor Performance and a Menagerie of Other Grotesque BlundersBart Read
Both the JVM and CLR provide automatic memory management with garbage collection. Developers are encouraged to write their code and forget about memory management entirely but, whilst ignorance is bliss, it can also lead to a host of problems further down the line. And if you move back and forth between platforms the differences can sometimes trip you up!
In this session we’ll compare and contrast memory management in both the JVM and CLR. We’ll look at some of the “classic” blunders that cause trouble and how to avoid them. We’ll also talk about the tools that can help you get to the root of problems when they do occur.
Developing Prototypes in a Connected WorldMark Stevens
The modern world is replete with a devices collecting information about the environment, people, nature and the performance of many modern devices even the humble kettle. For many developers this presents a change in mindset moving from the macro world of desktop/web environments to the smaller environment of microcontrollers.
In this session we will explore the challenges of prototyping and developing in the microcontroller world (including .NET Microframework) and connecting such devices to the macro world and the Internet of Things (IoT).
BDD, Why you should be doing itRichard Tasker
Behaviour Driven Development has been around for almost 10yrs and yet I still talk to people who think it is just a different way of writing unit tests.
BDD is a process the whole team can use, from BAs to Devs to Testers.
This session will talk about what is BDD, how you can apply it to your process and the advantages of introducing BDD into your process.
Azure Mobile Services...more than just a to-do-list APIRichard Custance
Forget the 'hello, world!' to-do-list sample. With Azure Mobile Services add a Cloud .NET backend to your App in minutes!
In this session I'll give you 0-60 in everything Azure Mobile Services, including:
- helping with Syncing Offline Data
- push notifications to n devices
- authentication with Azure Active Directory
- connecting to on-premises data
NServiceBus: introduction to a message based distributed architectureMauro Servienti
SOA and distributed has been buzzword for a long time, a message based architecture that embrace the SOA principles is the real solution to a scalable and distributed environment where HA or/and temporal decoupling are a must.
In this session we will introduce messaging concepts and see how NServiceBus, a powerfull toolkit to rule all the aspects of a messaging transport, can dramatically simplify the development process.
Authoring Useful Software LibrariesDavid Whitney
We'll work through some common sense advice for building software libraries touching on what makes a package or library good and worthwhile, how to keep the barrier to entry low for users, and helping potential contributors extend your code. We'll also touch on error handling, bridging libraries and writing just enough documentation.
Near Field Communication and Proximity in Windows and Windows PhoneSteve Spencer
In a world of devices we are continually wanting to communicate more and more with the devices around us. This talk will go through the technologies being integrated into tablets and phones which can be used to communicate between devices whether that is through tapping and NFC or with devices close by using Bluetooth and WiFi Direct.
Join the Dark Side - Why developers should choose managementCeri Shaw
Have you even thought to yourself "There's no way I'd ever want to be a manager” ? If so then this talk is for you!
‘Management’ is seen as a bit of a dirty word in the development community, so much so that we’ve had to give it other names so that people will do the job (Scrum master for example!) but it doesn’t have to mean PHB’s and David Brent. It isn’t anti-agile to have managers and there’s a real need for more developers to step up into management roles. It also doesn’t have to mean ceasing to write code.
This talk is based on my own journey from developer to manager. I’ll describe the different types of management, why we need developers to do the job and why the job might appeal to you.
By the end of the talk I aim to convince you that management is something you can and should do!
It's all about the User, man! (Authentication and Authorization with OWIN)Joel Hammond-Turner
Google, Facebook, Twitter, even Office265 - these days getting a user to sign in to your web application is all about federating identity. And with OWIN, it's easier than ever to integrate with these identity providers. In this talk I demonstrate hooking these providers up, how to avoid rolling your own user database, and what other great libraries are available to help.
AngularJS directivesMauro Servienti
Directives in AngularJS are one of the most powerful concepts and one of the hardest things to understand and manage. In this session we will start introducing directives basic concepts and we will deep dive into the programming model, and challenges, understanding how to build custom directives starting with a simple breadcrumb to move to a much more complex typeahead.
Introduction to S.O.L.I.DColin Mackay
An introduction to the five S.O.L.I.D. principles (Single Responsibility Principle, Open/Closed Principle, Liskov Substitution Principle, Interface Segregation Principle, and Dependency Inversion Principle). In this session we'll take basic OO concepts and expand on them to give a grounding in the SOLID principles. The examples are in C#, but the concepts can apply to any OO language.
Moving batch scripts to the cloud using Azure Web JobsSteve Spencer
This session will introduce Azure Webjobs and show examples of their use.