TDD Overview - Uncle Bob - June 11th

Spend a day improving your TDD skills with Uncle Bob.  This is a back–to–basics workshop.  We'll start at the beginning and work our way through the initial skills that every TDDer needs to know.  We'll talk about the justifications for the discipline, and walk through the techniques and practices one step at a time.  There will be plenty of demonstrations and exercises.
Alternate
        Text
Alternate
        Text
Alternate
        Text
 

Clean Architecture - Uncle Bob - June 10th

What is the ideal architecture for a web application, or _any_ application? Spend a day with Uncle Bob exploring that concept and putting together a small application that uses state–of–the–art architectural principles. Learn what components are for and how to take advantage of them in a large scale system. Learn the true benefits of the Structured, Object Oriented, and Functional programming styles. Learn how to combine those paradigms into a robust and decoupled architecture.
Alternate
        Text
Alternate
        Text
Alternate
        Text
 

Pre Conference Workshop at NDC 2013

The Pre–Conference Worshops at NDC will be held on the top floor of Radisson Blu Plaza, right opposite Oslo Spektrum. All the workshops start at 09:00 and ends at 17:00.

Remember to login using the username and password provided in the booking confirmation and choose your workshops after the booking. You can also send your workshop preferences to info@ndcoslo.com
Alternate
        Text
Venue: Radisson Blu Plaza Hotel (map)
Starts: 09:00
Ends: 17:00

Some of the workshops will require that you bring your own laptop for labs etc.
Alternate
        Text
Alternate
        Text
 

Continuous Integration and Delivery Workshop - Hadi Hariri/Paul Stack - June 10th

Continuous Integration is fundamental to properly run an agile project. With an uprise in continuous delivery, it has become even more important. If run correctly, CI⁄CD can have a huge impact on your project, team and organization. But you probably already know this, right? You’ve heard it many times most likely. Well, this workshop isn’t about hearing it again. In this workshop we’re going to deal with the implementation details.
Alternate
        Text
We’ll see how to set up projects, distinguish types of tests, deal with triggering and branching, configure dependencies to improve maintainbility, work with outputs, deal with failures, as well as manage and run deployment pipelines.

This will be a workshop about putting the concepts into practice and seeing where things work, where they don’t.

We’ll see how to set up projects, distinguish types of tests, deal with triggering and branching, configure dependencies to improve maintainbility, work with outputs, deal with failures, as well as manage and run deployment pipelines.

This will be a workshop about putting the concepts into practice and seeing where things work, where they don’t.
Alternate
        Text
Alternate
        Text
 

ReSharper Workshop - Hadi Hariri - June 11th

In this full day workshop, we're going to refresh your knowledge about mainstream ReSharper functionality, and learn about many of the overlooked features of ReSharper. Beyond the simple navigation, we'll learn how to effectively navigate legacy codebases using advanced navigation features, inspections, usage search, and value⁄call tracking. We'll learn about using some of the less known yet very useful automatic refactorings that ReSharper offers.

We'll dive deeply into code inspections and learn not only how to configure them but extend them using Structural Search and Replace. We'll create and extend all the different types of templates ReSharper offers, as well as learn how to do effective TDD⁄BDD. We'll also dig into the configuration features ReSharper offers and see how to effectively configure ReSharper for yourself, your team and your company. After getting a firm grip of everything ReSharper offers, we'll get into extending ReSharper.
Alternate
        Text
After an overview of ReSharper's architecture, we'll see how we can extend it using ReSharper SDK, learning about the different types of extensibility points that ReSharper offers. And if all that isn't enough, we'll top it off with some of ReSharper's best kept secrets!

This is a hands–on keyboard workshop. Bring your machine. Do not  bring a mouse!
Alternate
        Text
Alternate
        Text
 

Claims-based Identity & Access Control for .NET 4.5 Applications - Dominick Baier - June 10th - 11th

Every serious application needs identity & access control: from “classic” intranet applications integrated into a Windows domains, and “simple” internet facing web sites with authentication up to highly complex federated and single sign–on (cross–platform, cross–device, mobile) solutions for business and consumer oriented applications.
.NET 4.5 is a big release when it comes building the above mentioned applications.

The complete identity management, authentication and authorization system and APIs have been upgraded to meet the demands of modern application development. This was achieved by introducing the notion of claims–based identity into the core .NET Framework and providing a number of useful extra services on top of this technology to make implementing federation, single sign–on and identity delegation features much easier across all application development stacks (like ASP.NET and WCF).
Alternate
        Text
This course introduces to the fundamental concepts of identity & access control in .NET 4.5 and covers the integration of these new technologies into the main application frameworks like ASP.NET, ASP.NET Web API and WCF.

You will learn about patterns like single sign–on, federation, home realm discovery and identity delegation and how to implement them with .NET. You will learn how to implement authentication and authorization in web applications, SOAP services and HTTP⁄REST based services. You will learn about the SAML and JWT token types and the WS–Federation, WS–Trust and OAuth2 protocols.

Finally we will have a look at new cloud–based innovative offerings that make identity and access control ready for the next generation of cross–platform and cross–device applications.

Day1: Introduction & Web Applications Day
– Introduction to Claims–based Identity & Access Control
– Web Applications & ASP.NET
– Advanced Patterns & Topics for Web Applications
– Single Sign–on ⁄ Sign–off, Federation, Home Realm Discovery…

Day 2: Web Services, Web APIs & the Cloud Day
– SOAP Services & WCF
– HTTP⁄Mobile Services & ASP.NET Web API
– Identity Management as a Service & the Cloud
– Windows Azure Active Directory & Azure Access Control
Alternate
        Text
Alternate
        Text
 

Behaviour-Driven Development - Liz Keogh - June 10th

BDD is a set of practices which help software development teams to have conversations about the behavior of their system and how it delivers value to the project stakeholders. BDD has changed from its early roots as a replacement to TDD and now works as a mini–methodology across the whole software lifecycle. Over the last few years the adoption of BDD has grown globally, with dozens of tools created, used by hundreds of projects around the world., In this tutorial we look at the original reasons behind the creation of BDD, bringing the focus back to the language and conversations which lie at its heart.

We look at how BDD’s patterns can be applied at multiple scales – from the initial project vision all the way to the code – to deliberately discover and address ignorance in every aspect of software development, producing reliable, maintainable software that matters.
Alternate
        Text
Alternate
        Text
Alternate
        Text
 

Embracing Uncertainty - Liz Keogh - June 11th

Most software projects involve doing something new, which brings uncertainty. Our brains aren't generally comfortable with that, so we have to make conscious effort to stop pretending to be certain when we're not! In this workshop–filled tutorial we look at how common practices can help us experiment, letting us learn safely and address risks early. We also look at how they are frequently abused when discomfort around uncertainty arises, creating premature commitments or being used to support them.

Attendees will sharpen their development practices, explain their benefits and abuses in the language of risk and commitment, and learn and share techniques to help manage uncertainty and complexity within their projects.
Alternate
        Text
Alternate
        Text
Alternate
        Text
 

JavaScript: Getting your feet wet - Venkat Subramaniam - June 10th

JavaScript is a powerful language with many capabilities. Yet, this is one of the most misused, feared, and often poorly utilized languages. In this hands–on workshop, we will demystify JavaScript. We will start with some of the fundamental dos and don'ts of this language, explore the dynamic capabilities of this language, and learn to make use of its powerful prototypal inheritance. Come prepared with your laptops to crank out some code and work along exercises.

Alternate
        Text
Alternate
        Text
Alternate
        Text
 

JavaScript: Taking a Deep Dive - Venkat Subramaniam - June 11th

JavaScript is powerful, but it is important not to let that turn into a beast on our projects. In this workshop we will learn techniques to tame this language to get the most out of it. We will explore ways to modularize it, learn about asynchronous programming, look at how to perform automated unit testing, and observe code coverage. We will also take a look at CoffeeScript and how it removes some of the inherent complexities of JavaScript. Come prepared with your laptops to crank out some code and work along exercises.

Alternate
        Text
Alternate
        Text
Alternate
        Text
 

Develop Mobile Applications with C# and .Net - Jonas Follesø/Chris Hardy - June 10th

Join Chris Hardy and Jonas Follesø as they will transform you from a .NET developer into a iOS and Android mobile developer in this one day workshop on using .NET and C# to develop native iOS and Android mobile applications using MonoTouch and Mono for Android. This is your chance to find out how easy mobile development with C# and .NET really is and how you can produce stunning native applications.
Alternate
        Text
Alternate
        Text
Alternate
        Text
 

Day of Clojure - Stuart Halloway - June 10th

The Clojure language is the centerpiece of a set of technologies designed from the ground up to build information systems of the future, systems that:
– compose simply
– provide leverage over real memories and records
– take advantage of modern platforms: virtualized, multicore, ephemeral, and horizontally scaled
Alternate
        Text
This one–day course will provide an overview of Clojure and the stack around it, including:
– Data (edn and Fressian)
– Data as Code
– Functional Abstractions
Perception and Action
Concurrency and Parallelism
– Platform interop on the JVM and the web

Resources
Programming Clojure book
Alternate
        Text
Alternate
        Text
 

Accelerated Agile: from months to minutes - Dan North - June 10th - 11th

Formula 1 drivers don’t just drive faster than you, they drive differently. Accelerated Agile practitioners use different rules, based on the core principles of agile but taken to another level, to deliver in hours and days what regular teams can only achieve in weeks or months.

Accelerated Agile  is a course for experienced agile practitioners who are frustrated with the pseudo–science of agile planning and estimation, the social pressure to automate where it doesn’t add any value, the artificial commitment of sprints and the unwelcome surprises that still derail their projects. You will learn new techniques that both enhance and replace existing agile practices, some of which are counter–intuitive and many which are completely counter to current Agile doctrine. This is not a course for beginners. Using a mixture of discussion, instruction and exploration you will start to think differently about agile development, automation and team dynamics. By exploring several architecture and development strategies you will learn how you and your teams can produce and deploy software faster than they thought possible. You’ll never look at TDD the same way again, not to mention copying–and–pasting code.
Alternate
        Text
What you will learn
– The three ages of a product lifecycle, and why understanding them helps you go faster
– How design and architecture are at the heart of faster delivery
– How to do just enough planning and estimation
– Why up–front thinking is valuable and how to keep it focused
– How to critically assess agile and non–agile practices

Syllabus
– Rethinking analysis
– Rethinking planning and estimation
– Techniques for faster development
– The Build and Deployment ecosystem
– The value of Operations
– Building effective teams

Praise for Accelerated Agile
“one of the best courses I have ever attended, if not the best!”
“really interesting with good discussions and lots of relevant information”
“[not using slides] made the course flow in a neat and agile way”
Alternate
        Text
Alternate
        Text
 

Building Windows 8 Apps - Rocky Lohtka - June 11th

Building a Windows Runtime (WinRT) app requires that you understand the WinRT environment, API, and related services. In this workshop you’ll learn how to build a WinRT app in .NET and XAML from the ground up. This includes choosing the right project template, building the UI, interacting with remote services, integrating with the Windows 8 operating system through charms and other WinRT API services, and more. By the end of the day you’ll have a good understanding of WinRT development and everything the Windows 8 platform has to offer.

You will learn:
– How to get started with Windows 8 WinRT app development
– About the WinRT API and the features it provides for development of Windows Store Apps
– WinRT app deployment through the Microsoft Store, and via sideloading for enterprise LOB apps
Alternate
        Text

Alternate
        Text
Alternate
        Text
 

Day of Datomic - Stuart Halloway June 11th

Datomic is a database of flexible, time–based facts, supporting queries and joins, with elastic scalability, and ACID transactions.

Datomic can leverage highly–available, distributed storage services, and puts declarative power into the hands of application developers.
Alternate
        Text
This day–long introduction to Datomic includes the following modules:
– the Datomic architecture
– querying with Datalog
– Datomic's ACID transaction model
– data modeling in Datomic
– deployment and scaling

On the Web
Sample code on Github
Review from Michael Petersen
Alternate
        Text
Alternate
        Text