webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer...

34
Webes és mobil-alapú megoldások hatékonyan és gyorsan a közigazgatásban Gránicz Ádám, ügyvezető IntelliFactory Kft. [email protected] Copyright © 2004-2011 IntelliFactory http://www.intellifactory.com Webes és mobil-alapú megoldások ... Infotér Konferencia 2011, Balatonfüred - Nov 22-23, 2011

Upload: others

Post on 27-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Webes és mobil-alapú megoldások

hatékonyan és gyorsan a közigazgatásban

Gránicz Ádám, ügyvezető

IntelliFactory Kft. [email protected]

Copyright © 2004-2011 IntelliFactory http://www.intellifactory.com Webes és mobil-alapú megoldások ...

Infotér Konferencia 2011, Balatonfüred - Nov 22-23, 2011

Page 2: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Elektronikus kapcsolatteremtési lehetőségek

Közigazgatás <-- --> Állampolgárok

• Hatékonyság

• Elektronikus kapcsolatteremtés lehetőségeinek

bővítése

• Mobil és webes alkalmazások

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 2

Page 3: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

A mobil piac - ahová tartunk

A mobil piac†

• 3,7 milliárd mobil felhasználó, 4,3 millárd telefon

• $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön

• $8,8 milliárd ment hírdetésre/marketingre

• $3 milliárdot költöttek „fogyasztói” alkalmazásokra

• $6 milliárdot költöttek céges alkalmazásokra

• Természetesen rohamos növekedés várható

† forrás: http://communities-dominate.blogs.com/brands/2011/02/all-the-numbers-all-the-facts-on-mobile-the-trillion-dollar-industry-why-is-google-saying-put-your-b.html

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 3

Page 4: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

A mobil piac

A potenciális mobil ügyfelek elérése†

† source: http://mashable.com/2011/02/24/mobile-app-dev-cost/

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 4

Csatorna Költség Hatásfok Fő/$

Mobil website $30.000 36,40% 2.840

iPhone alkalmazás $30.000 6,75% 527

Mobil alkalmazás a 3 fő platformra

$90.000 24,04% 599

Page 5: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Mobil fejlesztés ma – nem túl biztató

• iOS – Objective-C „pokol” + Macintosh + egyedi

fejlesztési környezet és eszközök

• Android – Java + egy terjedelmes API

• Windows Phone - .NET + egy terjedelmes API

• Windows Mobile - …

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 5

Page 6: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Mobil fejlesztés ma – nem túl biztató

• Lehet-e azonos kódbázisból több platformra

alkalmazásokat fejleszteni?

– Nem igazán, hacsak nem írjuk át az alkalmazást egy

másik nyelvre

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 6

Page 7: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

És mire lenne szükség?

Mire mondanánk hogy „igen, ez kell nekem!”?

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 7

Page 8: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Mire lenne szükség?

Például a következőkre:

– Kevesebb kódra

– Magasabb szintű absztrakciók használatára

– Erősen tipizált, deklaratív UI-k

– Multi-targetálás

– A webes alkalmazások desktopra vitelére

– Felhő-alapú skálázásra

Mindezekkel óriási megtakarítások érhetők el mind

idő/munka és fenntarthatóság szempontjából

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 8

Page 9: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Natív vs Webes alkalmazások

• JavaScript a futtató nyelve …

– A kliens oldali web alkalmazásoknak

és idővel

– Desktop alkalmazásoknak: Windows 8

– Mobil alkalmazásoknak: Android, WP7, etc.

• Néhányan még szerver oldali kódot is

fejlesztenek JavaScript-ben (lásd Node.Js)

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 9

Page 10: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

JavaScript-alapú mobil alkalmazások

• Írjunk hát mobil alkalmazásokat JavaScript-ben!

• De, mi a helyzet a PhoneGap-el és társaival?

– Járható, de JavaScript-et jól írni nehéz, mert:

• Gyengén tipizált

• Nincs fordításidejű garancia

• Kódolás közben minimális segítség – kód kiegészítés, stb.

– És még mindig maradt N-1 ok a váltásra

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 10

Page 11: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper

• Vállalati erősségű webes keretrendszer

• A teljes szerver+kliens kód egy nyelven

• Ebből teljes webes alkalmazásokat állít elő

• Bármely JS könyvtárral együtt tud működni

• Hatékony és ugrásszerű teljesítménynövekedést eredményező absztrakciók

• Automatikus és teljes erőforrás követés

• Biztonságos URL-ek

• És még rengeteg más…

Kevesebb kód (50-90% megtakarítás!)

Gyorsabban fejleszthető

Könnyebben tenntartható, bővíthetó alkalmazások

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 11

Page 12: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper Mobile

• Mobil képességeket tesz elérhetővé JavaScript-

ből

• Csomag készítés automatizálása

• Gyors és hatékony multi-targeting

• Felhős infrastruktúrába is skálázható

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 12

Page 13: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper bővítések

Több tucat bővítés itt:

http://websharper.com/extensions

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 13

Page 14: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Hatékony absztrakciók – Sitelet-ek

• Erősen tipizált

• Egymásbaágyazható

• Első-osztályú

Egy únió tipusban írja le a teljes webes funkcionalitást

/// Actions that correspond to the different pages in the site.

type Action =

| Home

| Contact

| Protected

| Login of option<Action>

| Logout

| Echo of string

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 14

Page 15: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper sitelet-ek

let Template title main : Content<Action> =

let menu (ctx: Context<Action>)=

let (!) action = ctx.Link action |> HRef [

A [!Action.Home] -< [Text "Home"]

A [!Action.Contact] -< [Text "Contact"]

A [!(Action.Echo "Hello“)] -< [Text "Say Hello"]

A ["~/LegacyPage.aspx" |> ctx.ResolveUrl |> HRef] -< [Text "ASPX Page"]

]

|> List.map (fun link ->

Label [Class "menu-item"] -< [link]

)

Templates.Skin.Skin (Some title)

{

LoginInfo = Widgets.LoginInfo

Banner = fun ctx -> [H2 [Text title]]

Menu = menu

Main = main

Sidebar = fun ctx -> [Text "Put your side bar here"]

Footer = fun ctx -> [Text “Copyright (c) 2011 YourCompany.com"]

}

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 15

Erősen tipizált template-k, biztonságos URL-ek

Page 16: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper sitelet-ek

/// The pages of this website.

module Pages =

/// A helper function to create a hyperlink

let ( => ) title href = A [HRef href] -< [Text title]

/// The home page.

let HomePage : Content<Action> =

Template "Home" <| fun ctx ->

[

H1 [Text "Welcome to our site!"]

“Contact" => ctx.Link Action.Contact

]

...

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 16

Page 17: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper sitelet-ek – ágyazhatóság 1

// A simple sitelet for the root of the site.

let home =

Sitelet.Content "/" Action.Home Pages.HomePage

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 17

Page 18: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper sitelet-ek – ágyazhatóság 2

// An automatically inferred sitelet for the basic parts.

let basic =

Sitelet.Infer <| fun action ->

match action with

| Action.Contact -> Pages.ContactPage

| Action.Echo param -> Pages.EchoPage param

| Action.Login action -> Pages.LoginPage action

| Action.Logout ->

// Logout user and redirect to home

UserSession.Logout ()

Content.Redirect Action.Home

| Action.Home -> Content.Redirect Action.Home

| Action.Protected -> Content.ServerError

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 18

Page 19: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper sitelet-ek – ágyazhatóság 3

// A sitelet for the protected content.

let authenticated =

let filter : Sitelet.Filter<Action> =

{

VerifyUser = fun _ -> true

LoginRedirect = Some >> Action.Login

}

Sitelet.Protect filter

<| Sitelet.Content

"/protected“

Action.Protected

Pages.ProtectedPage

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 19

Page 20: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper sitelet-ek – ágyazhatóság

let EntireSite =

// Compose the above sitelets into a larger one.

Sitelet.Sum

[

home

authenticated

basic

]

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 20

Page 21: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Hatékony absztrakciók – Formlet-ek

• Erősen tipizált

• Egymásbaágyazható

• Első-osztályú

• Dependens formlet-ek

• Flowlet-ek

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 21

Page 22: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper formlet-ek

let TB label msg =

Controls.Input ""

|> Validator.IsNotEmpty msg

|> Enhance.WithValidationIcon

|> Enhance.WithTextLabel label

Formlet.Yield (fun v1 v2 ... vn -> <compose all vi’s>)

<*> formlet1

<*> formlet2

...

<*> formletn

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 22

Page 23: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper formlet-ek

type Person = { Name: string; Email: string }

[<JavaScript>]

let PersonFormlet () : Formlet<Person> =

let nameF = TB “Name” “Empy name not allowed”

let emailF = TB “Email” “Please enter a valid email address”

Formlet.Yield (fun name email -> { Name = name; Email = email })

<*> nameF

<*> emailF

|> Enhance.WithSubmitAndResetButtons

|> Enhance.WithLegend "Add a New Person“

|> Enhance.WithFormContainer

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 23

Page 24: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper formlet-ek

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 24

Az eredmény:

Page 25: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper formlet bővítmények

• Több kurrens UI technológiára húzható:

– jQuery UI

– Yahoo UI

– Ext JS

– jQuery Mobile

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 25

Page 26: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper formlet példa - jQM

let loginSequenceF =

Formlet.Do {

let! username, password, remember =

Formlet.Yield (fun user pass remember -> user, pass, remember)

<*> (Controls.TextField "" Theme.C "Username: "

|> Validator.IsNotEmpty "Username cannot be empty!")

<*> (Controls.Password "" Theme.C "Password: "

|> Validator.IsRegexMatch "^[1-4]{4,}[0-9]$" "The password is wrong!")

<*> Controls.Checkbox true Theme.C "Keep me logged in "

|> Enhance.WithSubmitButton "Log in" Theme.C

let rememberText =

if remember then "" else "not "

do! Formlet.OfElement (fun _ ->

Div [

H3 [Text ("Welcome " + username + "!")]

P [Text ("We will " + rememberText + "keep you logged in.")]

])

}

|> Formlet.Flowlet

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 26

Page 27: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper formlet példa - jQM

Div [HTML5.Attr.Data "role" "page"] -< [

Div [HTML5.Attr.Data "role" "header"] -< [

H1 [Text "WebSharper Formlets for jQuery Mobile"]>

]

Div [HTML5.Attr.Data "role" "content"] -< [

loginSequenceF

]

Div [HTML5.Attr.Data "role" "footer"] -< [

P [Attr.Style "text-align: center;"] -< [Text "IntelliFactory"]

]

]

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 27

Page 28: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

WebSharper formlet példa - jQM

Az eredmény:

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 28

Page 29: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Egyéb bővítmények

• GIS

– Google Maps

– Bing Maps

• Vizualizáció

– Infovis

– Protovis

– Google Visualization

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 29

Page 30: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Google Maps felhasználás példa

type CurrentLocationControl() =

inherit Web.Control()

[<JavaScript>]

override this.Body =

let screenWidth =

JQuery.Of("body").Width()

let MapOptions =

Bing.MapViewOptions(

Credentials = bingMapsKey,

Width = screenWidth - 10,

Height = screenWidth - 10,

Zoom = 16)

let label = H2 []

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 30

let map =

Div []

|>! OnAfterRender (fun this ->

// Renders a map control

let map =

Bing.Map(this.Body, MapOptions)

map.SetMapType(Bing.MapTypeId.Road)

setMap map)

// Returns markup for this control

Div [

label

Br []

map

] :> _

let setMap (map : Bing.Map) =

let updateLocation() =

// Gets the current location

let loc = Mobile.GetLocation()

// Sets the label to the current location

Rest.RequestLocationByPoint(<<your-bingmaps-key>>,

loc.Lat, loc.Long, ["Address"],

fun result ->

let locInfo =

result.ResourceSets.[0].Resources.[0]

label.Text <-

"You are currently at " +

JavaScript.Get "name" locInfo)

// Adds a pushpin at the current location

let loc = Bing.Location(loc.Lat, loc.Long)

let pin = Bing.Pushpin loc

map.Entities.Clear()

map.Entities.Push pin

map.SetView(Bing.ViewOptions(Center = loc))

// Keep updating your location regularly

JavaScript.SetInterval updateLocation 1000

|> ignore

Page 31: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Google Maps felhasználás példa

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 31

Page 32: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Egyéb bővítmények

• HTML5

– WebGL

– O3D

– GlMatrix

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 32

Page 33: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Összegzés

F# + WebSharper a következőket nyújtja:

• Óriási hatékonyságnövekedés

• Egy folyamatosan bővülő piac lehetősége

• Gyors út a többplatformos megoldásokhoz

• Skálázhatóság desktop-ra és a felhőbe

Funkcionális programozás:

– Hatékonyabb absztrakciók

– Gyorsabb fejlesztés

– Rövidebb, fenntarthatóbb kódbázis

Copyright © 2004-2011 IntelliFactory Webes és mobil-alapú megoldások ... http://www.intellifactory.com | 33

Page 34: Webes és mobil-alapú megoldások hatékonyan és gyorsan ...€¦ · • $1,2 billió (ezer milliárd) cserélt gazdát: a leggyorsabban fejlödő iparág a földön ... Action.Echo

Kérdések?

Több információ itt: http://intellifactory.com

http://websharper.com

http://infoq.com/articles/WebSharper

Copyright © 2004-2011 IntelliFactory http://www.intellifactory.com Webes és mobil-alapú megoldások ...

Infotér Konferencia 2011, Balatonfüred – Nov 22-23, 2011