52
®

Telerik Kendo UI Overview

Embed Size (px)

Citation preview

Page 1: Telerik Kendo UI Overview

®

Page 2: Telerik Kendo UI Overview

Fast, Light, Complete70+ jQuery-based UI widgets in one toolset

JS Framework Agnostic | No lock in

AngularJS Integration | Bootstrap

Theme Extensive Data Visualization

Support Mobile Specific Widgets |

App Tooling Touch Support |

Adaptive Rendering

Modern Comprehensive HTML5/JS Framework

Page 3: Telerik Kendo UI Overview

Why Kendo UI?Everything you need, in one neat

package

Page 4: Telerik Kendo UI Overview

What's in the Box?The different parts of Kendo UI

Application

Framework Web UI

Mobile UI

Data Visualization

Page 5: Telerik Kendo UI Overview

Web UI30 Widgets (and growing...)AutoComplete Button Calendar ColorPicker ComboBox DatePicker DateTimePicker DropDownList EditorGrid ListView

MaskedTextBox Menu MultiSelect Notification NumericTextBox PanelBar PivotGid ProgressBar SchedulerSlider Sortable

Splitter TabStrip TimePicker ToolBar Tooltip TreeView Upload Window

Page 6: Telerik Kendo UI Overview

Mobile UIA complete application toolset for building hybrid and mobile web applications

ActionSheet ButtonGroup Drawer Forms ListView MobileButton ModalView NavBar PopOver Scroller

ScrollView SplitView Switch TabStrip

Page 7: Telerik Kendo UI Overview

Data VizualizationCharts / Graphs/ Other Visuals

Area Charts Bar Charts BarcodeBox Plot Charts Bubble Charts Bullet Charts Chart API Diagram Donut Charts

Funnel Charts GanttLine Charts Linear Gauge MapPie Charts Polar Charts QR code Radar Charts

Radial Gauge Range Bar Charts Scatter Charts SparklinesStock Chart TreeMap Waterfall Charts

Page 8: Telerik Kendo UI Overview

From the very SimpleA Kendo UI AutoComplete Widget

Page 9: Telerik Kendo UI Overview

To the very ComplexA Kendo UI Scheduler

Page 10: Telerik Kendo UI Overview

From Web essentialsA Kendo UI Grid

Page 11: Telerik Kendo UI Overview

To MobileA Kendo UI Mobile ActionSheet

Yes, this works Cross-Platform .. And renders adaptively!

Ready?

Page 12: Telerik Kendo UI Overview
Page 13: Telerik Kendo UI Overview

And Everything in BetweenA Kendo UI Donut Chart

Page 14: Telerik Kendo UI Overview

Application FrameworkEverything ready out of the box

1. DataSource2. Single Page Application

(SPA)3. Globalization4. Templates5. MVVM6. Validators7. Effects8. Drag-And-Drop9. AngularJS Integration

10. Bootstrap Friendly

Page 15: Telerik Kendo UI Overview

Let's code

Page 16: Telerik Kendo UI Overview

First, set ReferencesYou can do local or use hosted CDNs

<!DOCTYPE<html><head>

<link<link

html>

rel="stylesheet" href="styles/kendo.common.min.css"rel="stylesheet" href="styles/kendo.default.min.css

<script src="js/jquery.min.js"></script><script src="js/kendo.all.min.js"></script>

</head>

Page 17: Telerik Kendo UI Overview

How do I use Kendo UI?Well, you know jQuery right?<div id="calender"></div>

// Select the 'calendar' div$('#calendar');

Page 18: Telerik Kendo UI Overview

That's allYou already know Kendo UI!

<div id="calendar"></div>

// Select the 'calendar' div// Turn it into a Kendo UI Calendar$('#calendar').kendoCalendar();

This is Imperative Initialization

Page 19: Telerik Kendo UI Overview

Or use semantic HTMLA </div> is a div .. readable markup

<div id="calendarControl" data-role="calendar"></div>

kendo.init(document.body);

This is Declarative Initialization Use 'data-*' attributes

Page 20: Telerik Kendo UI Overview

Widget configuration # 1Use Properties<div id="palette" />

$("#palette").kendoColorPalette({ columns: 4,

palette: ["#f0d0c9", "#e2a293",

"#d4735e", "#65281a","#eddfda", "#dcc0b6",

"#cba092", "#7b4b3a"]

});

Page 21: Telerik Kendo UI Overview

Widget configuration # 2Or use 'data-*' attributes<div id="pallette" data-role="colorpalette"

data-columns="4"data-palette: "[

'#f0d0c9', '#e2a293', '#d4735e', '#65281a',

'#eddfda', '#dcc0b6', '#cba092', '#7b4b3a']">

</div>

Same results ...

Page 22: Telerik Kendo UI Overview

Let's talk FrameworkOut-of-box features of Kendo UI

MVVM

Templates

Data Source

Page 23: Telerik Kendo UI Overview

ViewModel BindingsBuilt-in MVVM Pattern

<h1 data-bind="html: title"></h1><input data-role="slider" data-bind="value: amount"

min="0" max="100">

var viewModel = kendo.observable({ title: 'Hello World!',

amount: 50});

kendo.bind(document.body, viewModel);

Bindings are 2-Way!

Page 24: Telerik Kendo UI Overview

MVVM in ActionUI & ViewModel always in Sync

Page 25: Telerik Kendo UI Overview

Templates are SlickNamed & Parameterized<script id="someTemplate" type="text/x-kendo-template">

Hello, #= firstName # #= lastName #</script>

<script>var scriptTemplate = kendo.template($("#someTemplate").html var

scriptData = { firstName: "John", lastName: "Doe" };// Guess the output?$("#script").html(scriptTemplate(scriptData));</script>

Use as repeatable markup!

Page 26: Telerik Kendo UI Overview

Data SourceA Developer's best friend!

1. Proxy for Data bindings with Kendo UI widgets

2. Works with local or remote data3. Consistent API4. Easy CRUD operations on data source5. Shareable between widgets6. Paging, Sorting, Filtering - client/server

side

Page 27: Telerik Kendo UI Overview

Data Source Hookup<div id="products"></div><script type="text/x-kendo-template" id="template">

<h3>#:ProductName#</h3></script>

<script>$(function() {

var template = kendo.template($("#template").html());

var dataSource transport:

= new kendo.data.DataSource({{

read: {url: "http://demos.telerik.com/kendo-ui/service/Products", dataType: "jsonp"}

},change: function() {

$("#products").html(kendo.render(template, this.view()));}});

dataSource.read();});

</script>

Remote data bindings

Page 28: Telerik Kendo UI Overview

Data Source in ActionSeeing is believing

Page 29: Telerik Kendo UI Overview

Easy CRUD Operationsvar crudServiceBaseUrl = "http://demos.telerik.com/kendo-ui/service"; var dataSource =

transport:read:

new kendo.data.DataSource({{{

url: crudServiceBaseUrl + "/Products", dataType: "jsonp"},update: {

url: crudServiceBaseUrl},destroy: {

url: crudServiceBaseUrl},create: {

url: crudServiceBaseUrl}

+ "/Products/Update", dataType: "jsonp"

+ "/Products/Destroy", dataType: "jsonp"

+ "/Products/Create", dataType: "jsonp"

},batch: true, pageSize: 20

});

Configure service endpoints

Page 30: Telerik Kendo UI Overview

Data Edits SimplifiedGrid Edit Modes - Inline/Popup/Batch!

Page 31: Telerik Kendo UI Overview

I get the Chi .. how do I start?

Page 32: Telerik Kendo UI Overview

We love Open Source

Application Framework

Web UI

Mobile

UI

Yup, it's Free .. there is no catch!

Kendo UI Core is on GitHub - Use it. Fork it.

Page 33: Telerik Kendo UI Overview

Kendo UI ProfessionalFor Enterprise apps

1. Grid | PivotGrid2. Barcode | QR Code3. Scheduler | Gantt4. Editor | Upload5. Gauge6. Diagram7. Map8. Data Visualization | ~20

Types

Feature-rich with consistent API

Page 34: Telerik Kendo UI Overview

Server-Side WrappersRenders HTML5 Kendo UI Widgets

ASP.NET

MVC PHP

JSP

Pick your server stack!

Page 35: Telerik Kendo UI Overview

Angular JS IntegrationDirectives to render Kendo UI Widgets<script src="js/jquery.min.js"></script>

<script src="js/angular.min.js"></script><script src="js/kendo.all.min.js"></script>

<div id="example" ng-app="KendoDemo"><div ng-controller="AutoComplete">

<h4>Select Telerik Product: </h4><input kendo-auto-complete ng-model="product" k-data-source="productNames"/>

</div></div>

<script>angular.module("KendoDemo", [ "kendo.directives" ])

.controller("AutoComplete", function($scope){$scope.productNames = [ "Telerik Kendo UI", "Telerik AppBuilder", "Telerik UI for ASP.NET"];

})</script>

Page 36: Telerik Kendo UI Overview

Let's hit the SPA ...

Page 37: Telerik Kendo UI Overview

App Building BlocksSPA

Componen

ts Routers

Layouts

Views

Everything you need - out of the box!

Page 38: Telerik Kendo UI Overview

RouterSPA Components

Breakdown

Tracks application state

Manages navigation between states

Integrates into browser history

stack

Application states become bookmarkable

Supports parameters for routes to entities

Page 39: Telerik Kendo UI Overview

Router in ActionURL Change fires events

<div id="demo"><a href="#/">Home</a><a href="#/about">About</a>

</div>

var router = new kendo.Router();

router.route('/', function(e) {// Event Handler

});

router.route('/about', function(e) {

// Event Handler});

router.start();

Page 40: Telerik Kendo UI Overview

Layouts & ViewsSPA Components Breakdown

Layout is the container for Views

View is a chunk of markup

Views have a corresponding

ViewModel Views render when URL

changes

Page 41: Telerik Kendo UI Overview

Layout in ActionLike a container Master page<div id="demo"></div>

<script type="text/x-kendo-template" id="layout"><div id="layout">

<ul data-role="menu"><li><a href="#/">Home</a></li><li><a href="#/about">About</a></li>

</ul></div></script>

var layout = new kendo.Layout('#layout'); var router = new kendo.Router({

init: function() { layout.render('#demo');

}});

router.start();

Page 42: Telerik Kendo UI Overview

View in ActionHTML markup with ViewModel bindingvar homeModel = kendo.observable({

title: 'Home'});

var home = new kendo.View('#home',{ model: homeModel });

var layout = new kendo.Layout('#layout'); var router = new kendo.Router({

init: function() { layout.render('#demo');

}});

router.route('/', function(e) { layout.showIn('#someContainer', home);

});

router.start();

Page 43: Telerik Kendo UI Overview

Let's talk Mobile ...

Use Web skills to make Mobile Apps!

Page 44: Telerik Kendo UI Overview

Kendo UI MobileBuild Hybrid or Mobile Web apps

Completely Open Source & Free!

Bower install to any project

Has Angular Directives to render

Totally Cross-Platform

Page 45: Telerik Kendo UI Overview

Hybrid Mobile AppsKendo UI Mobile powered

Best with AppBuilder

Use Cordova Plugins for Native API

Respective App Store presence

Page 46: Telerik Kendo UI Overview

Remember the UI WidgetsA complete application toolset for building hybrid and mobile web applications

ActionSheet ButtonGroup Drawer Forms ListView MobileButton ModalView NavBar PopOver Scroller

ScrollView SplitView Switch TabStrip

Page 47: Telerik Kendo UI Overview

Mobile App ArchitectureBuilding Blocks with Kendo UI Mobile

Kendo UI Mobile includes App Framework App container initializes all UI widgets Apps are made of ViewsViews can share Layouts - like TabStrips or NavBar Heavy usage of 'data-*' attributesUI Widgets render adaptively or use Flat theme Transitions add to Native feelTrue single code base for Cross-Platform apps

Page 48: Telerik Kendo UI Overview

Kendo UI Mobile BasicsViews, Layouts & Initialization<div class="app">

<div data-role="view" data-title="Home" id="home" data-layout="main"></div><div data-role="view" data-title="About" id="about" data-layout="main"></div>

<div data-role="layout" data-id="main">

<div data-role="header">

<div data-role="navbar">

<span data-role="view-title"></span>

</div></div><div data-role="footer">

<div data-role="tabstrip">

<a href="#home" data-icon="home">Home</a><a href="#about" data-icon="about">About</a>

</div></div>

</div>

</div>

// Initializationnew kendo.mobile.Application('.app');

Page 49: Telerik Kendo UI Overview

Kendo UI MobileFlexibility for Developers

Plays well with others

Offline capabilities Flat Themes

OS Adaptive Rendering

Page 50: Telerik Kendo UI Overview

Feel the ZenTooling that truly helps

Interactive Dojo

Web

ThemeBuilder

Mobile ThemeBuilder

Chrome Inspector

Demos | Forums |

Docs

Page 51: Telerik Kendo UI Overview

To Recap ..Something for everyone

Kendo UI CoreApplication Framework | Web | Mobile | Completely Free

Kendo UI ProfessionalEnterprise UI | Licensed per Developer | Support & Maintenance

Page 52: Telerik Kendo UI Overview

Modern Web & Mobile Done Right!kendoui.com |

@KendoUI