58
Simplicity Compose modern web apps with efficient tiny frameworks & tools Rui Carvalho/@rhwy

Simplicity - develop modern web apps with tiny frameworks and tools

Embed Size (px)

DESCRIPTION

You have learned for years how to do big enterprise applications with big enterprise frameworks. Sometimes it was good, but sometimes it was over-engineered, rarely fun. It changed a lot a few years ago with Asp.Net Mvc and with a lot of impulse of the community. But today, the web moves faster and faster, and people want tools that do the job in a simple way and that just works. Today we have these tools in .Net and they grow every day for our pleasure. Get an overview of why you should care about Simplicity and how you can build great web apps in a simpler way with small frameworks and tools "that just work" (with pieces of NancyFx, SimpleData, RavenDb, Nuget, jQuery, Markdown, Bootstrapper, ...) Slides of my #Web.Net conference 2012 in Milano cheers!

Citation preview

Page 1: Simplicity - develop modern web apps with tiny frameworks and tools

Simplicity

Compose modern web apps with efficient tiny frameworks & tools

Rui Carvalho/@rhwy

Page 2: Simplicity - develop modern web apps with tiny frameworks and tools

Thanks to the sponsors

Page 3: Simplicity - develop modern web apps with tiny frameworks and tools

About

@rhwy on twitter, githubDevelopment, architecture, Consulting, speak, teach

http://www.rui.frhttp://www.codedistillers.com

Networks

Write

Work?

Page 4: Simplicity - develop modern web apps with tiny frameworks and tools

Web

FrameworksToolsPatterns

Page 5: Simplicity - develop modern web apps with tiny frameworks and tools

Get the Control back!

Less Pain&&

Page 6: Simplicity - develop modern web apps with tiny frameworks and tools

Background

“Should I really care?”

Page 7: Simplicity - develop modern web apps with tiny frameworks and tools
Page 8: Simplicity - develop modern web apps with tiny frameworks and tools

The nature of the Web

“ how desktop techniques doesn’t fit interconnected application

needs ”

Page 9: Simplicity - develop modern web apps with tiny frameworks and tools

The web is documents…

The web is not objects

Page 10: Simplicity - develop modern web apps with tiny frameworks and tools

The DomainProblem

“ how humans need to talk more”

Page 11: Simplicity - develop modern web apps with tiny frameworks and tools

Customer needs ‘Foo’

Page 12: Simplicity - develop modern web apps with tiny frameworks and tools

…You think schema ‘Bar’

Page 13: Simplicity - develop modern web apps with tiny frameworks and tools

…Don’t think schema too hard…

Page 14: Simplicity - develop modern web apps with tiny frameworks and tools

Over engineered?

Page 15: Simplicity - develop modern web apps with tiny frameworks and tools

Hexagonal, Onion?

Page 16: Simplicity - develop modern web apps with tiny frameworks and tools

ConcreteApplication?

Page 17: Simplicity - develop modern web apps with tiny frameworks and tools

I misunderstood

“Architecture is about an intent, it’s not about a technical framework”

Fail

Page 18: Simplicity - develop modern web apps with tiny frameworks and tools
Page 19: Simplicity - develop modern web apps with tiny frameworks and tools

Node

Page 20: Simplicity - develop modern web apps with tiny frameworks and tools

So, what is

Page 21: Simplicity - develop modern web apps with tiny frameworks and tools

Responsive

Page 22: Simplicity - develop modern web apps with tiny frameworks and tools

Cross Media

Page 23: Simplicity - develop modern web apps with tiny frameworks and tools

Patterns of ModernWeb Applications

Page 24: Simplicity - develop modern web apps with tiny frameworks and tools

SPA*

*Single page application(ie : gmail)

Page 25: Simplicity - develop modern web apps with tiny frameworks and tools

SPA

Page 26: Simplicity - develop modern web apps with tiny frameworks and tools

SPAA

Page 27: Simplicity - develop modern web apps with tiny frameworks and tools

REST

“Your API Is your APP”

Page 28: Simplicity - develop modern web apps with tiny frameworks and tools

REST

Page 29: Simplicity - develop modern web apps with tiny frameworks and tools

Tools!(for what?)

Page 30: Simplicity - develop modern web apps with tiny frameworks and tools

Get the shell back!

Page 31: Simplicity - develop modern web apps with tiny frameworks and tools

CurlEverything you need to test your app is here!

-X [GET|POST…]-I (include headers)-d key=value

Page 32: Simplicity - develop modern web apps with tiny frameworks and tools

NugetPackage management is essential

Enterprise grade => build your own

Quite multi-platform

Page 33: Simplicity - develop modern web apps with tiny frameworks and tools

Nuget curl http://nuget.org/nuget.exe -L -k -o nuget.exe

#!/bin/shPATH=/usr/local/bin:$PATHmono --runtime=v4.0 /usr/local/bin/NuGet.exe $*

(for Mac lovers)

Page 34: Simplicity - develop modern web apps with tiny frameworks and tools

Chocolatey@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('http://bit.ly/psChocInstall'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

(nuget powered)

> Cinst ruby

Page 35: Simplicity - develop modern web apps with tiny frameworks and tools

See what append

(live)

Page 36: Simplicity - develop modern web apps with tiny frameworks and tools
Page 37: Simplicity - develop modern web apps with tiny frameworks and tools

Chrome dev tools

Page 38: Simplicity - develop modern web apps with tiny frameworks and tools

Editors

Chose a good tool also for the client side!

Webstorm

Page 39: Simplicity - develop modern web apps with tiny frameworks and tools

Online web editors

C9.io

Jsfiddle.com Jsbin.net Plnkr.co Codepen.io

Page 40: Simplicity - develop modern web apps with tiny frameworks and tools

Frameworks!

Page 41: Simplicity - develop modern web apps with tiny frameworks and tools

Frameworks ?

Page 42: Simplicity - develop modern web apps with tiny frameworks and tools

Frameworks ?

Page 43: Simplicity - develop modern web apps with tiny frameworks and tools

OSS ?oss projects -most of the time-

fits real user needs

tiny oss projects usually fit one need, but do it well.

Page 44: Simplicity - develop modern web apps with tiny frameworks and tools

jQuery

Page 45: Simplicity - develop modern web apps with tiny frameworks and tools

jQuery

Page 46: Simplicity - develop modern web apps with tiny frameworks and tools

Angular

Html enhanced for web apps!

Page 47: Simplicity - develop modern web apps with tiny frameworks and tools

Angular

Page 48: Simplicity - develop modern web apps with tiny frameworks and tools
Page 49: Simplicity - develop modern web apps with tiny frameworks and tools

Less css

dotLess for .Net

Page 50: Simplicity - develop modern web apps with tiny frameworks and tools

Nancy fx

Page 51: Simplicity - develop modern web apps with tiny frameworks and tools

RavenDB

Page 52: Simplicity - develop modern web apps with tiny frameworks and tools

Simple.Data

Page 53: Simplicity - develop modern web apps with tiny frameworks and tools

SignalR

(Socket.io like framework for .Net)

Page 54: Simplicity - develop modern web apps with tiny frameworks and tools

So what?

Page 55: Simplicity - develop modern web apps with tiny frameworks and tools

“if you don’t love it, it gonna fail!”

“stay foolish, stay hungry”

Jobs

Page 56: Simplicity - develop modern web apps with tiny frameworks and tools

Get more Fun

Page 57: Simplicity - develop modern web apps with tiny frameworks and tools

Please rate this sessionScan the code, go online, rate this session

Page 58: Simplicity - develop modern web apps with tiny frameworks and tools

All sketches are by me – with the help of the fabulous iPad application

Paper by 53 – and can be reused under The creative commons licence