Learning & Development Telerik Software Academy.

Slides:



Advertisements
Similar presentations
Windows Basic and Dynamic Disk Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator Marian Marinov CEO of 1H Ltd.
Advertisements

Hybrid or Native?! Doncho Minkov Telerik Software Academy Senior Technical Trainer
HTML Forms, GET, POST Methods Tran Anh Tuan Edit from Telerik Academy
Make swiftly iOS development Telerik Academy Telerik Academy Plus.
Amazon S 3, App Engine Blobstore, Google Cloud Storage, Azure Blobs Svetlin Nakov Telerik Software Academy academy.telerik.com.
RPN and Shunting-yard algorithm Ivaylo Kenov Telerik Software Academy academy.telerik.com Technical Assistant
Telerik School Academy ASP.NET MVC.
Shortest paths in edge-weighted digraph Krasin Georgiev Technical University of Sofia g.krasin at gmail com Assistant Professor.
Telerik Software Academy Telerik School Academy.
Coding JavaScript the expressive way Learning & Development Telerik Software Academy.
Asynchronous Programming with C# and WinRT
Unleash the Power of JavaScript Tooling Telerik Software Academy End-to-end JavaScript Applications.
Touch and Gestures with Xamarin Forms
Telerik School Academy ASP.NET MVC.
Character sequences, C-strings and the C++ String class, Working with Strings Learning & Development Team Telerik Software Academy.
Hybrid or Native?! Doncho Minkov Telerik Software Academy Senior Technical Trainer
Done already for your convenience! Telerik School Academy Unity 2D Game Development.
Processing Sequences of Elements Telerik School Academy C# Fundamentals – Part 1.
With Mocha and Karma Telerik Academy Telerik Software Academy.
C# Fundamentals – Part I
Welcome to the JSON-stores world Telerik Software Academy Databases.
The Business Plan and the Business Model Margarita Antonova Volunteer Telerik Academy academy.telerik.com Business System Analyst Telerik Corporation.
What are ADTs, STL Intro, vector, list, queue, stack Learning & Development Team Telerik Software Academy.
Making JavaScript code by template! Learning & Development Team Telerik Software Academy.
Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training Who, What, Why?
Access to known folders, using pickers, writing to and reading from files, caching files for future access George Georgiev Telerik Software Academy academy.telerik.com.
Reading and Writing Text Files Svetlin Nakov Telerik Software Academy academy.telerik.com Technical Trainer
Telerik Software Academy ASP.NET Web Forms.
Classical OOP in JavaScript Classes and stuff Telerik Software Academy
Optimization problems, Greedy Algorithms, Optimal Substructure and Greedy choice Learning & Development Team Telerik Software.
Using Selenium for Mobile Web Testing Powered by KendoUI Telerik QA Academy Atanas Georgiev Senior QA Engineer KendoUI Team.
NoSQL Concepts, Redis, MongoDB, CouchDB Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training
New features: classes, generators, iterators, etc. Telerik Academy Plus JavaScript.Next.
Throwing and Catching Exceptions Tran Anh Tuan Edit from Telerik Software Academy
Past, Present and Future Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer
Loops, Conditional Statements, Functions Tran Anh Tuan Edit from Telerik Academy
Telerik Software Academy ASP.NET Web Forms.
Private/Public fields, Module, Revealing Module Learning & Development Team Telerik Software Academy.
Building Data-Driven ASP.NET Web Forms Apps Telerik Software Academy ASP.NET Web Forms.
Telerik Software Academy End-to-end JavaScript Applications.
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation Team Leader, Team Pulse, Team Leader, Team Pulse, Telerik Corporation,
Closures, Function Scope, Nested Functions Learning & Development Team Telerik Software Academy.
What you need to know Ivaylo Kenov Telerik Corporation Telerik Academy Student.
Data binding concepts, Bindings in WinJS George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer itgeorge.net.
Pavel Kolev Telerik Software Academy Senior.Net Developer and Trainer
Objects, Properties, Primitive and Reference Types Learning & Development Team Telerik Software Academy.
When and How to Refactor? Refactoring Patterns Alexander Vakrilov Telerik Corporation Senior Developer and Team Leader.
Free Training and Job for Software Engineers Svetlin Nakov, PhD Manager Technical Training Telerik Corp. Telerik Software Academy.
Free Training and Job for Software Engineers Svetlin Nakov, PhD Manager Technical Training Telerik Corp. Telerik Software Academy.
Access to known folders, using pickers, writing to and reading from files, caching files for future access George Georgiev Telerik Software Academy academy.telerik.com.
Doing the Canvas the "easy way"! Learning & Development Telerik Software Academy.
The past, the present, the future Telerik School Academy HTML, CSS and JavaScript.
Creating and Running Your First C# Program Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training
Course Overview Doncho Minkov Telerik Software Academy Technical Trainer
Data Types, Primitive Types in C++, Variables – Declaration, Initialization, Scope Telerik Software Academy academy.telerik.com Learning and Development.
The past, the present, the future Learning & Development Team Telerik Software Academy.
Connecting, Queries, Best Practices Tran Anh Tuan Edit from Telerik Software Academy
Processing Sequences of Elements Telerik Software Academy C# Fundamentals – Part 2.
Telerik JavaScript Framework Telerik Software Academy Hybrid Mobile Applications.
Telerik Software Academy Databases.
Things start to get serious Telerik Software Academy JavaScript OOP.
Learning & Development Mobile apps for iPhone & iPad.
Processing Matrices and Multidimensional Tables Telerik Software Academy C# Fundamentals – Part 2.
Nikolay Kostov Telerik Software Academy academy.telerik.com Team Lead, Senior Developer and Trainer
ASP.NET Web API Telerik Software Academy
Functions and Function Expressions Closures, Function Scope, Nested Functions Telerik Software Academy
Implementing Control Logic in C# Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical trainer
Mocking tools for easier unit testing Telerik Software Academy High Quality Code.
What why and how? Telerik School Academy Unity 2D Game Development.
Windows Security Model Borislav Varadinov Telerik Software Academy academy.telerik.com System Administrator
Presentation transcript:

Learning & Development Telerik Software Academy

 View Engines  Overview  Client-side view engines  KendoUI, Mustache.js, AngularJS  Server-side view engines  Jade

 View engine (template engine) is a framework/library that generates views  Using a programming language  Web view engines are a mix-up of HTML and JavaScript  Given a template/view JavaScript generates a valid HTML code

 There are lots of JavaScript view engines, and they can be separated into client and server  Client: KendoUI, mustache.js, jQuery, AngularJS, etc.  Server: Jade, HAML, EJS, Vash, etc.  Why use view engines?  Speed-up developer performance and easify the writing of HTML code  Auto generate DOM elements and make manual DOM manipulation almost useless

KendoUI, AngularJS, mustache.js

 Client view engines (templates) are used to parse data  The data is sent over HTTP  The data is either raw JSON, XML or plain text  Server view engines parse the data on the server  The client (browser) receives the read-to-use HTML

 mustache.js is a library for creating client-side templates  mustache.js supports:  One-time value-binding to JavaScript objects  Iteration over a collection of elements  Conditional templates

 Generates a list with all mustache types var model = { title: 'Hello mustache!', title: 'Hello mustache!', types: ['Hungarian', 'Dali', 'Imperial', …] types: ['Hungarian', 'Dali', 'Imperial', …]} {{title}} {{title}} {{#types}} <input name="mustaches[]" <input name="mustaches[]" id="mustache-{{.}}" id="mustache-{{.}}" type="radio" type="radio" value="{{.}}" /> value="{{.}}" /> {{.}} {{.}} {{/types}}  All binding is done inside {{ }}  <- Template  JavaScript <-

Live Demo

 KendoUI templates are part of the KendoUI framework  Can be found in kendo.core.js  KendoUI supports:  One-time value-binding to JavaScript objects  Iteration over a collection of elements  Conditional templates

 Generates a table of technologies #: title # #: title # <table> # for (var i = 0; i < technologies.length; i+=1) { # # for (var i = 0; i < technologies.length; i+=1) { # #: technologies[i].name # #: technologies[i].name # </table> var model = { title: 'Technologies', title: 'Technologies', technologies: [{ name: 'ASP.NET', field: 'web' }, technologies: [{ name: 'ASP.NET', field: 'web' }, { name: 'Node.js', field: 'web' }, { name: 'Node.js', field: 'web' }, { name: 'WPF', field: 'windows desktop' }, { name: 'WPF', field: 'windows desktop' }, { name: 'Android', field: 'mobile' }] { name: 'Android', field: 'mobile' }]};

Live Demo

 AngularJS templates are a part of the Core AngularJS framework  They actually represent views for controllers  AngularJS supports:  Two-way data and event binding to JS objects  Iteration over a collection of elements  Conditional templates

 Generates a slide of images {{currentImage.title}} {{currentImage.title}} <img ng-src="{{image.src}}" <img ng-src="{{image.src}}" ng-click="changeCurrent(image)"/> ng-click="changeCurrent(image)"/> </div> app.controller('ImagesController', function ($scope) { $scope.images = [{title: 'QA Academy 2012/2013 Graduation', $scope.images = [{title: 'QA Academy 2012/2013 Graduation', src: 'imgs/ _cbe735bb73_c.jpg'} … ] src: 'imgs/ _cbe735bb73_c.jpg'} … ] $scope.currentImage = $scope.images[0]; $scope.currentImage = $scope.images[0]; $scope.changeCurrent = function(image){ $scope.changeCurrent = function(image){ $scope.currentImage = image; $scope.currentImage = image; }; };});

Live Demo

 Server view engines return ready-to-use HTML to the client (the browser)  They parse the data to HTML on the server  *Web applications, created with server view engines are not real SPA apps  In most cases

 Jade is a server view engine  Produces HTML as a result  Can be parsed:  Manually (using CMD/Terminal commands)  Automatically using a task runner  Automatically using framework like Express  Jade is more expressive and dynamic than HTML  Jade template can be parsed based on JS models or conditionals

 Install Jade with Node.js: $ npm install jade -g  Create the index.jade file: ul each val in [1, 2, 3, 4, 5] each val in [1, 2, 3, 4, 5] li= 'Item ' + val li= 'Item ' + val  Run: $ jade index.jade  Generates index.html with content: <ul> Item 1 Item 1 Item 2 Item 2 Item 3 Item 3 Item 4 Item 4 Item 5 Item 5 </ul>

Live Demo

 Omit the opening and closing tags  Even their brackets  IDs and classes are set as in CSS selectors  #id and.class div#wrapper table.special table.special tr tr th Header 1 th Header 1 th Header 2 th Header 2 tr tr td Data 1 td Data 1 td Data 2 td Data 2 Header 1 Header 1 Header 2 Header 2 Data 1 Data 1 Data 2 Data 2 </div> Is parsed to

 Attribites are written inside ' ( ' and ' ) '  And separated with commas ', ' #wrapper header header h1#logo h1#logo a(href='...') a(href='...') img(src='…') img(src='…') nav#main-nav: ul nav#main-nav: ul li.nav-item li.nav-item a(href='…') a(href='…') </div> Is parsed to

Live Demo

 Jade can generate markup, using data models  i.e. given an array of items, put them into a table #wrapper header header h1#logo h1#logo a(href='...') a(href='...') = title = title nav#main-nav: ul nav#main-nav: ul each item in nav each item in nav li.nav-item li.nav-item a(href= item.url) a(href= item.url) = item.title = item.title Lorem ipsum Lorem ipsum Home Home About About </div> Is parsed to

Live Demo

 Jade can contain conditionals, loops, etc…  And the HTML is generated based on the model if condition h1.success h1.success | Fulfilled! | Fulfilled!else h1.error h1.error | Not fullfilled | Not fullfilled model = { condition: true } condition: true } Fulfilled! Fulfilled!</h1> model = { condition: false } condition: false } Not fulfilled! Not fulfilled!</h1>

Live Demo

форум програмиране, форум уеб дизайн курсове и уроци по програмиране, уеб дизайн – безплатно програмиране за деца – безплатни курсове и уроци безплатен SEO курс - оптимизация за търсачки уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop уроци по програмиране и уеб дизайн за ученици ASP.NET MVC курс – HTML, SQL, C#,.NET, ASP.NET MVC безплатен курс "Разработка на софтуер в cloud среда" BG Coder - онлайн състезателна система - online judge курсове и уроци по програмиране, книги – безплатно от Наков безплатен курс "Качествен програмен код" алго академия – състезателно програмиране, състезания ASP.NET курс - уеб програмиране, бази данни, C#,.NET, ASP.NET курсове и уроци по програмиране – Телерик академия курс мобилни приложения с iPhone, Android, WP7, PhoneGap free C# book, безплатна книга C#, книга Java, книга C# Николай Костов - блог за програмиране

1. Create a simple web site for buying mobile devices  Create the following pages and put them into nav  Home -> contains greeting and site information  Smart phones -> contains a list of smartphones  Tablets -> contains a list of tablets  Wearables -> contains a list of wearables  All pages must have the same header, navigation and footer  Use Jade and Jade Layouts  Use the each directive to create the navigation