from realtime to isomorphic dart

50
@usethedartforce #DevFest14 #DartForce From Realtime to isomorphic dart Joris Hermans Truvo (goldenpages.be)

Upload: joris-hermans

Post on 04-Jul-2015

780 views

Category:

Internet


0 download

DESCRIPTION

A presentation I did on Brussels DevFest 2014 about my dart applications and packages that I created from one year at the dartlang community.

TRANSCRIPT

Page 1: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

From Realtimeto isomorphic dart

Joris Hermans

Truvo (goldenpages.be)

Page 2: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Schedule

1. History

2. Force MVC & Wired

3. Realtime dart with Dart Force

4. Isomorphic

5. Conclusion

Page 3: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

At the end of 2013

Page 4: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

So I started with …

Xmlstream (SAX parser)

RSS

Page 5: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

But maybe…

Not possible

Page 6: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

So I started …

Dart Force

Realtime web framework

Page 7: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

In need of …

Not possible to use websockets in IE & Android Browser

So I need to build a polling server

No big web server frameworks

Page 8: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Familiar with …

Java spring mvc

Force MVC

Page 9: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Schedule

1. History

2. Force MVC & Wired

3. Realtime dart with Dart Force

4. Isomorphic

5. Conclusion

Page 10: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Force MVCUsed to familiar annotations @Controller,

@RequestMapping, @RequestParam, @PathVariable

Page 11: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Force MVC

Used to familiar annotations @ControllerAdvice,

@ModelAttribute, @ExceptionHandler

Page 12: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Wired

@Config, @Bean, @Autowired, @Qualifier

Page 13: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Wired

@Qualifier

Page 14: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Wired & Force MVC

Used to familiar annotations @Value

properties out of .yaml files

Page 15: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

SMALL DEMO

Page 16: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

What are people saying?

If you were using Spring MVC on Java you ‘ll feel at home!

Page 17: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Recap

Dart ForceMVC -> Web Application framework, standard http

requests

Wired -> Dependency Injection

Dart Force -> Realtime web framework

Page 18: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Recap – Setup dart project

Bin folder -> serverside code

Web folder -> clientside code

Page 19: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Tip – Setup dart project

pub serve web --port 7777

export DART_PUB_SERVE="http://localhost:7777"

pub run bin/server.dart

Instead of

pub build everytime …

Page 20: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Schedule

1. History

2. Force MVC & Wired

3. Realtime dart with Dart Force

4. Isomorphic

5. Conclusion

Page 21: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Realtime Dart with Dart Force

Page 22: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Realtime Dart with Dart Force

inspired

Page 23: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Realtime Dart with Dart Force

inspired

Page 24: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Communication types

Send data to all

Broadcast data directly to all the clients

Page 25: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Communication types

Send data to one specific Websocket, by his Id

Sending info to profiles

Page 26: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Profile Management

Send information to a specific group

of clients

Examples apps :

- Rooms (facebook)

- Group messaging apps

Page 27: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Profile Management

Clientside

Attach a profile to your communication flow

Send info to a specific profile

Page 28: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Authentication

Secure your messages

Add a securityStrategy to ForceServer

Page 29: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Annotations

You can use annotations with Dart Force

Page 30: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Dart Force – server to server

Page 31: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Dart Force – Internet Of Things

Page 32: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Server to Server communication

Add a ServerSocket connector to ForceServer

ForceClient in a dart:io environment

Page 33: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Dart Force

Realtime demo time

Page 34: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Schedule

1. History

2. Force MVC & Wired

3. Realtime dart with Dart Force

4. Isomorphic

Page 35: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

Wat is Isomorphic?

Page 36: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

ABSTRACTION ABSTRACTION ABSTRACTION

Run your code everywhere

Page 37: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

WHERE?

On the server, in the browser

Page 38: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

R2D2 handling device detection

The same logic only an other way to get useragent

Page 39: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

Yeah but what if I want to run my code against MONGODB

and later on against REDIS or MEMCACHE?

ABSTRACTION ABSTRACTION …

Page 40: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

Cargo is a great example!

Key – value storage everywhere

Page 41: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

Drawing of the cargo space!

Page 42: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

BountyHunterReversed Index (full text search)

Deployable on every possible environment with X persistent possibilities

Page 43: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

ClientHunter …Bountyhunter in the browser

MongoHunter …Bountyhunter with mongoDB

Page 44: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Isomorphic Dart

ClientHunter …Bountyhunter in the browser

MongoHunter …Bountyhunter with mongoDB

Page 45: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Schedule

1. History

2. Force MVC & Wired

3. Realtime dart with Dart Force

4. Isomorphic

5. Conclusion

Page 46: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Ultimate goal

Combine Dart Force and Cargo more

+ +

like

Page 47: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Upcoming features – first steps

Page 48: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Youtube channel

Page 49: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

More on …

ForceUniverse

http://github.com/forceuniverse

Page 50: From Realtime to Isomorphic Dart

@usethedartforce#DevFest14 #DartForce

Q & A

http://github.com/forceuniverse