.NET. Jonas Bandi. http://blog.jonasbandi.net jb@jonasbandi.net twitter: @jbandi. User Group Bern



Similar documents
C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.

Information Builders BARC BI Forum / CeBIT 2015

SharePoint 2010/2013 Course

Programming in C# with Microsoft Visual Studio 2010

AGIL JA, ABER SICHER? , ANDREAS FALK, 34. SCRUM TISCH

Beginning ASP.NET 4.5

SharePoint 2010 Advanced Foundation Development

Intro to Developing for SharePoint Online: What Tools Can I Use?

IOT & Big Data: The Future Information Processing Architecture

Rich Internet Applications

Noramsoft Inc. Noramsoft Inc. SPT2O1O - Course Description. Developing Solutions with SharePoint Server 2010 SPT2010. Noramsoft Inc. Noramsoft Inc.

ASP.NET. Web Programming. Telemark University College Department of Electrical Engineering, Information Technology and Cybernetics

Web Application Development

How To Run A Server On A Linux Computer (For Free) On A Microsoft Server (For Linux) On An Ipad Or Ipad (For Microsoft) On Free Software (For Ubuntu) On Your Computer Or Ipa (

AD2 - The future of mobile enterprise applications: Live from the Citrix Labs

Functional UI testing of Adobe Flex RIA. Viktor Gamov August,

Kurs-Dokumentation. Zentrum für Informatik ZFI AG. Advanced Solutions of SharePoint Server 2013 (BSPA)

Developing Windows Azure and Web Services

Cloud Computing with Windows Azure using your Preferred Technology

I DO NOT CARE. Technologieneutrale Anwendungsentwicklung für mobile Geräte. September Sascha Wolter

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

ADOBE AIR. Working with Data in AIR. David Tucker

DAS ALSO MICROSOFT ONLINE MEETING «NUTSHELL» September 2015 startet um Uhr. Wir lizenzieren Microsoft -Software

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

Cloud OS Network. Uwe Lüthy, Die Bedeutung einer Partner Managed Cloud für Kunden. Partner Technology Strategiest

The Service Revolution software engineering without programming languages

Introduction to Azure: Microsoft s Cloud OS

Best of SharePoint Composites

SharePoint 2013 Syllabus

JOURNAL OF OBJECT TECHNOLOGY

Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010

Cloud Powered Mobile Apps with Microsoft Azure

Mobile Apps with App Inventor

MOC SERVER VIRTUALIZATION WITH WINDOWS SERVER HYPER-V AND SYSTEM CENTER

BP8 Citrix Integrations with System Center Configuration Manager 2012

Linux & Docker auf Azure

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Programmieren von Schnittstellen für LiveCycle ES2-Modulen (November 2009)

Skillsoft Course Directory

SharePoint 2010 Performance and Capacity Planning Best Practices

Überblick Oracle Fusion Applications: Funktionen, Architektur und Implementierung

Big Data. Marriage of RDBMS-DWH and Hadoop & Co. Author: Jan Ott Trivadis AG Trivadis. Big Data - Marriage of RDBMS-DWH and Hadoop & Co.

Skillsoft Course Directory

How To Perform On An African Fusion 8 (Free) With An Afroberware 8 (Amd) On A Microsoft Microsoft 8 (Windows) And An Ubuntu 8 (Win) On An Ubro 8 (Powerbook)

Building Automated Trading Systems. Financial Market Technology

Neueste Microsoft Server Technologien - Vorteile und Nutzen im Überblick Michael Faden Technology Solution Professional Datacenter Microsoft Schweiz

Elena Chiocchetti & Natascia Ralli (EURAC) Tanja Wissik & Vesna Lušicky (University of Vienna)

Open Text Social Media. Actual Status, Strategy and Roadmap

BP6 Unified Communications in a virtual desktop. Systems Engineer, Citrix Systems

BP1 Mobile App Management: Solutions for ios and Android. Gary Barton Mobility Architect Citrix Receivers and Gateways Group

Skillsoft Course Directory

Office 365 SharePoint Online

Application Development,.NET

FIVE SIGNS YOU NEED HTML5 WEBSOCKETS

Kai Wähner. The Next-Generation BPM for a Big Data World: Intelligent Business Process Management Suites (ibpms)

Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)

MO 25. Aug. 2008, 17:00 UHR RICH INTERNET APPLICATIONS MEHR BISS FÜR WEBANWENDUNGEN

SAP CRM Infotag. Angelika Scheifele, Business Development, SAP (Schweiz) AG 19. November 2013

Java in Web 2.0. Alexis Roos Principal Field Technologist, CTO Office OEM SW Sales Sun Microsystems, Inc.

Kurs-Dokumentation. Zentrum für Informatik ZFI AG. Developing Windows Azure and Web Services (NAZS-0313) -IT Ausbildung nach Mass

DC1 Citrix Cloud Strategy Solutions for Private, Hybrid & Public Clouds. Olivier Maes, Sr Director Cloud Platform Group, Citrix Systems

Getting started with your AppDev Microsoft Development Library

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

Titolo del paragrafo. Titolo del documento - Sottotitolo documento The Benefits of Pushing Real-Time Market Data via a Web Infrastructure

Is Cloud relevant for SOA? Corsin Decurtins

Course 10175A - Microsoft SharePoint 2010, Application Development

The following slides describe these prototypes above in more details

Visual Studio 2008: Windows Presentation Foundation

Cloud Use Cases Day. January 24 th Presented by Andreas Kuster & Tobias Maeder (Swiss Re) and Robert Santner (Nefos)

Zielgruppe Dieses Training eignet sich für System Engineers und an SCCM- Administratoren.

MiniDraw Introducing a framework... and a few patterns

New Features in BSF4ooRexx (Camouflaging Java as oorexx)

Introduction to SharePoint Development. for.net developers

Windows Presentation Foundation (WPF)

Service Oriented Architectures

Software Life-Cycle Management

SharePoint Community Tools fürs Web 2.0

CEBP mit Lync 2010 Philipp Beck MCM in Lync 2010

Practical Android Projects Lucas Jordan Pieter Greyling

Introducing Windows Workflow Foundation. Building Basic Activities. Building Composite Activities. Activity Development Advanced Features

Web Services with ASP.NET. Asst. Prof. Dr. Kanda Saikaew Department of Computer Engineering Khon Kaen University

RIA DEVELOPMENT OPTIONS - AIR VS. SILVERLIGHT

Servermigrationen zu Hyper-V / Azure mit Double-Take Move

NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne,

Rich-Internet Anwendungen auf Basis von ColdFusion und Ajax

Whats the difference between WCF and Web Services?

Storage XenMotion Tampa Technology Project

Joseph M Conaty Software Engineer

Wie bediene ich meine BYOD oder Mobile Zielgruppe? Martin Rohde

SAP Business Partner (SAP BP)

Mitgliederversammlung OdA ICT Bern. Kurzreferat Cloud Computing. 26. April 2012 Markus Nufer

SavvyDox Publishing Augmenting SharePoint and Office 365 Document Content Management Systems

Transcription:

.NET User Group Bern Jonas Bandi http://blog.jonasbandi.net jb@jonasbandi.net twitter: @jbandi

DNUG Bern Sponsoren

About me Jonas Bandi At TechTalk since 2009 Committer to SpecFlow http://blog.jonasbandi.net Twitter: @jbandi TechTalk is a software development and consulting company with ~60 people located in Vienna, Budapest and Zürich. We focus on Scrum and.net. Hinweis: Verwendung für eigene Präsentationen nur mit Einverständnis des Autors

The audience? Who knows RX? Who is working with JavaScript Who is working with asynchronous systems? Who is familiar with functional programming concepts?

Agenda Introduction to Reactive Programming Concepts in.net 4 Reactive Extensions Framework Demos

Let s discuss! "We're still figuring this stuff out. All of us." - Jay Fields Thoughts on developer Testing: http://blog.jayfields.com/2009/02/thoughts-on-developer-testing.html

Reactive Programming? Year 8084: C# 7.3: P##: destiny operator

Reactive Programming Reactive Programming is a programming paradigm oriented around data flows and the propagation of change. - Wikipedia

Reactive Programming? But Excel does just that

Ok nothing new here JavaScript: C# 3.5:

The observer pattern Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

From Patterns to Language Constructs Events & Delegates Anonymous Methods Lambdas For many use-cases the Observer Pattern becomes obsolete Still important for communication

.NET Events

Problems with.net Events Attach/Detach Detach has to be called manually Not composable Result: complicated ad-hoc statemachines Example: Drag & Drop No concept for synchronization Difficult to test

.NET events are not first class language constructs

Erik Meijer Former University Professor Functional programming Haskel Head of Cloud Programmability Team at Microsoft Inventor of LINQ Inventor of RX

Events are collections Different perspectives on the same thing.. Did you ever regard the MouseMove event as a collection of Point values? In the world of Rx, we see events as just another concrete form of observable sequences: your mouse is a database of Point values!

IEnumerator & IEnumerable

Applying Duality

RX: Interfaces Part of.net 4.0 BCL

That s it Questions?

DevLabs: Reactive Extensions http://msdn.microsoft.com/en-us/devlabs

Using the RX framework.net 3.5 & 4, Silverlight 3 & 4, WindowsPhone 3 Dlls: System.Reactive, System.Interactive, System.CoreEx JavaScript Libraries: rx.js (30kb), rx.jquery.js

Creating Observable Collections Demo 1

Observable collections are first class language constructs

Pull vs. Push

Convert between both worlds

Cold Observables vs. Hot Observables

- Create Observables from Events - Basic Query Operators - Composition Demo 2 Linq to Events Query the Future

Asynchronity RX abstracts and hides the concept of asynchronity and concurrency but it is still there RX introduces the notion of a Scheduler The Scheduler is an abstraction for Threads, Threadpool, WPF Dispatcher, TPL

RX Operators

RX Sandbox http://mnajder.blogspot.com/2010/03/rxsandbox-v1.html

So far Events are first class objects Leverage the power of LINQ Operations on bservable collections are composable Declarative declarations of data flow Separation of data-flow and actions

Combining Events: Example D&D

Combining Events: Demo Simple Drawing http://www.amazedsaint.com/2009/11/linq-to-events-more-on-net-reactive.html

Asynchronous Data Sources Web Services / Cloud / Mobile Create Observables from Async Method Pattern Begin : IAsyncResult End

Demo 3 http://www.dict.org.

Debugging / Testing Debugging Debugging schwierig Operators:.Do,.Finally,.TimeStamp Testing Representing asynchronous data sources as first-class objects is a big help

Summary

JavaScript Demo

Real World Silverlight Testing -> Abstract Asynchronity Silverlight Apps http://timecard.codeplex.com/ MVVM / Databinding -> Events https://github.com/xpaulbettsx/reactiveui ESB http://masstransit-project.com/ https://github.com/masstransit/masstransit/tree/master/src/masstransit.reactive Port to ActionScript (Adobe Flex) https://github.com/richardszalay/rxas

Links http://rxwiki.wikidot.com/ http://rxwiki.wikidot.com/101samples http://code.google.com/p/rx-samples/ https://github.com/joeldart/rx-example

The async ecosystem in.net TPL Framework for distribution of work (parallelism) Async features in C# 5.0 RX manage asynchrony from a language level framework to compose and orchestrate asynchronous data streams

Podcast with Bart de Smet http://bit.ly/e2gjf P

jobs@techtalk.ch TechTalk Schweiz sucht Mitarbeiter! TechTalk ist eine Entwicklungsfirma mit ca. 60 Mitarbeiter in Wien und Budapest und Zürich. Wir fokussieren auf die.net Plattform und auf Scrum. Wir suchen erfahrene Entwickler für den Aufbau des Standorts Schweiz: Mehrjährige Erfahrung in diversen Projekten, idealerweise in unterschiedlichen Branchen Grosse Flexibilität, Eigeninitiative und Selbstmotivation Erfahrung und Bereitschaft für On-Site Einsätze bei Kunden Wir bieten: Aufbau eines jungen Unternehmens in einem kleinem Team Möglichkeit eines Aufenthaltes in Wien / Budapest Weiterbildung und Verwirklichung eigener Ideen

Fragen und Diskussion