Modern MVC and Front-End Development with Telerik Sitefinity

Slides:



Advertisements
Similar presentations
Drupal Basics Part 3 Create a new page Main tabs menu Using the theme Agricultural Communications Services Integrated Media Training Sessions
Advertisements

Introduction to HTML & CSS
Click to edit Master title style How to Create a Discussion Silver & VIP members
Sending Newsletters with Wordpress and Subscribe2.
Dawn Pedersen Art Institute. What is Spry? Spry is Dreamweaver’s version of JavaScript libraries. Spry effects alter the look of a page element—or of.
Validation in Angular 1.3 And other angular tidbits.
Ch. 5 Web Page Design – Templates and Style Sheets Mr. Ursone.
SITEFINITY FEATHER, AN INTRODUCTION
Intermediate Level Course. Text Format The text styles, bold, italics, underlining, superscript and subscript, can be easily added to selected text. Text.
A Guide to Oracle9i1 Creating an Integrated Database Application Chapter 8.
Customizing Outlook. Forms Window in which you enter and view information in Outlook Outlook Form Designer The environment in which you create and customize.
3.2 Presentation Software End Show Creating slide shows including audio,video and digital images End Show.
WikiPlus customizations
Jiří Balej, Martin Podborský, Petra Čačková.  Tools, which enables to produce content without source code knowledge  Text document ◦ MS Word/OO Writer.
TUTORIAL 8: Enhancing a Web Site with Advanced CSS
Understanding HTML Style Sheets. What is a style?  A style is a rule that defines the appearance and position of text and graphics. It may define the.
Modern MVC and Front-End Development with Telerik Sitefinity
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
Sitefinity CMS Technical Overview & Developer’s Perspective
Chapter 4 Dreamweaver: Part II The Web Warrior Guide to Web Design Technologies.
Copyright © Texas Education Agency, All rights reserved. 1 Web Technologies Website Development with Dreamweaver.
Sign Up for an eFolio Account & Take the Tour In this session new users will create their account, select a design and become familiar with what is in.
Macromedia Studio 8 Step-by-Step MACROMEDIA DREAMWEAVER 8 Introduction.
Yahoo! User Interface (YUI) Library Natly Mekdara.
Creating Effective School and PTA Websites Sam Farnsworth Utah PTA Technology Specialist
Welcome to Sitefinity CMS training! Presented by: Philip Zorn & Tony Young.
Website Development with Dreamweaver
Session 1 SESSION 1 Working with Dreamweaver 8.0.
Copyright © Eric Liria Web Site Builder This application allows you to build and manage web sites. It provides the following functionnalities: use.
JavaScript Framework for Rich Apps in Every Browser Maura Wilder Joan Wortman
Lecture Set 2 Part A: Creating an Application with Visual Studio – Solutions, Projects, Files.
| | Tel: | | Computer Training & Personal Development Microsoft Office SharePoint Designer.
Website Editing From Gingerweb The Image Gallery.
Things you should have with you: Your own address Student addresses Ideas that you want to include.
Use CSS to Implement a Reusable Design Selecting a Dreamweaver CSS Starter Layout is the easiest way to create a page with a CSS layout You can access.
CSS BEST PRACTICES.
User Interface Design using jQuery Mobile CIS 136 Building Mobile Apps 1.
Microsoft ® Official Course Developing a Publishing Site for Web Content Microsoft SharePoint 2013 SharePoint Practice.
© 2012 Adobe Systems Incorporated. All Rights Reserved. Copyright 2012 Adobe Systems Incorporated. All rights reserved. ® REUSABLE DESIGN.
Positioning Objects with CSS and Tables
Chapter 1 Ionic Framework (overview) Front-end framework for developing hybrid mobile apps with HTML5 Yeunyong Kantanet School of Information and Communication.
Leveraging Web Content Management in SharePoint 2013 Christina Wheeler.
Developer Exam Preparation Thom Robbins Bryan Soltis
Cheryl Wolfe Web Services Administrator Tampa-Hillsborough County Public Library James Day Electronic Services Librarian Embry-Riddle Aeronautical University.
COMP 143 Web Development with Adobe Dreamweaver CC.
Live. learn. work. play Superior Avenue Suite 310 Cleveland Ohio Tel: Fax:
Tutorial 6 Creating Reusable Assets and Forms. Objectives Session 6.1 – Explore the head content of a page – Add keywords to a page – Add a meta description.
+ Responsive Technology Performance, efficiency and elegance are the three key elements that make our platform unique. Each of the features in this presentation.
Weebly is Your Friend. * To Enhance And Promote Your Curriculum * To Provide A Student Resource * Add Efficiency to Your Planning * Informational * Promote.
PHP MySQL Crash Course with HTML CSS
4.01 Cascading Style Sheets
OVERVIEW Objectives Follow a design document to create a small personal Web site Follow a design document to create pages in a large commercial Web site.
Creating customization with JS framework: Bootstrap
What is new In Pangea 6.11 Pangea 6.11.
LMEvents SharePoint Portal How-to Guide
Angular JS Training | Angular JS online Training at GoLogica
Intro to CSS CS 1150 Fall 2016.
Quickr Places & Templates Introduction
HTML5 Level III Responsive Web Design (RWD) and Front-End Frameworks
Developing Branding Solutions for 2013
CSS BEST PRACTICES.
Midwest NASCOE Tutorial
Intro to CSS CS 1150 Spring 2017.
Chapter 2 – Introduction to the Visual Studio .NET IDE
Introduction to JavaScript
The Internet 10/6/11 Cascading Style Sheets
Building ASP.NET Applications 2
Basic Web Page Creation
HTML5 Level III Responsive Web Design (RWD) and Front-End Frameworks
4.01 Cascading Style Sheets
Presentation transcript:

Modern MVC and Front-End Development with Telerik Sitefinity Peter Marinov

What are its main components How can you benefit from it Session Highlights What is Feather Why we introduced it What are its main components How can you benefit from it

Sitefinity Feather Build Modern, intuitive, convention based, mobile-first UI for Telerik Sitefinity MVC Stock Widgets Mobile First Front-End of Your Choice Convention-Based FW Package Everything New Designers FW

Some Useful Links Project Feather main site: http://projectfeather.sitefinity.com/ KendoUI: http://demos.telerik.com/kendo-ui/ Feather GitHub: https://github.com/Sitefinity/feather/wiki UI Bootstrap: http://angular-ui.github.io/bootstrap/

Front-End of Your Choice Bootstrap Semantic UI Foundation Anything...

Front-End of Your Choice Toast.css - The no-nonsense CSS grid Template (Default.cshtml): <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" type="text/css" href='@Url.WidgetContent("~/ResourcePackages/Toast/assets/dist/css/styles.css")' /> href='@Url.WidgetContent("~/ResourcePackages/Toast/assets/dist/css/main.css")' /> </head>

Front-End of Your Choice Toast.css - The no-nonsense CSS grid Layout Widget (grid-6+6.html): <div class="grid"> <div class="sf_colsIn grid__col grid__col--6-of-12"> </div>

Layout Files (Master Templates) Layout Templates Widget Templates Frontend Packages A Package is a complete encapsulation of the look and feel in Sitefinity. It can include everything: CSS Sass, LeSS JS Images, Icons Fonts Layout Files (Master Templates) Layout Templates Widget Templates Widget Designers Templates

Frontend Packages – Layout files Pure MVC template generation /MVC/View/Layouts Page template title = Layout name ~/ResourcePackages/PackageName /Mvc/Views/Layouts Page template title = PackageName.LayoutName

Frontend Packages – Resource Files Url.WidgetContent helper <link rel="stylesheet" href='@Url.WidgetContent("Mvc/Styles/Css/sitefinity- theme.css")'> Loading Order Resource Package (higher) ~/MVC (lower) Example: ~/Mvc/Styles/Css/sitefinity-theme.css ~/ResourcePackages/My Template/Mvc/Styles/Css/sitefinity-theme.css

Frontend Packages – Resource Files In MVC Views @Html.Section("main") @Html.Script(ScriptRef.JQuery, "top") @Html.Script(Url.WidgetContent("Mvc/Scripts/LoginStatus/login- status.js"),"bottom") @Html.StyleSheet(Url.WidgetContent("~/ResourcePackages/Bootstrap/ass ets/dist/css/styles.min.css"), "head", false) @Html.Script(Url.EmbeddedResource("Telerik.Sitefinity.Resources.Refe rence", "Telerik.Sitefinity.Resources.Scripts.jquery.ui.map.js"))

Frontend Packages – Grid templates <div class="row"> <div class="sf_colsIn col-md-3 customClass"> </div> <div class="sf_colsIn col-md-6"> <div class="sf_colsIn col-md-3">

Stock widgets Navigation Document list Profile Dynamic Content List Users list Content Block Blogs Social Share News Blog posts Search Image Login button Search Results Image gallery Login form Video Registration (Progress) Video gallery Change password Document link Account activation

Stock widgets - Widget templates Located in the ‘ResourcePackages’ Dedicated folder per framework Bootstrap Foundation SemanticUI Edit -> Save, no build required

Stock widgets - Widget templates Loading Order Resource Package (highest) ~/MVC Design->Widget Templates Feather (lowest) Naming conventions List.[ViewName].cshtml Detail.[ViewName].cshtml

Stock Widgets – Example: Related Items for News <div class="sfMultiRelatedItmsWrp"> <h2 class="sfrelatedItmTitle">Related news</h2> <ul class="sfrelatedList sflist"> @foreach (var relatedItem in Model.Item.Fields.RelatedNews) { <li class="sfrelatedListItem sflistitem"> @Html.ActionLink((string)relatedItem.Fields.Title, (string)relatedItem.Fields.ItemDefaultUrl) </li> } </ul> </div>

MVC Stock Widgets - Endless paging Sample <div id="news-container"> @Html.Partial("_RecentByTopic.Author", Model.Items.AsNewsItems().ToList()) <div class="row text-center u-mt4" id="paging-wrapper"> <a id="showMoreArticles" href="#" data-page="@Model.CurrentPage“ data-url="@Html.GetCurrentNodeUrl()" class="@Html.RenderTextIfTrue("hidden", (Model.CurrentPage >= Model.TotalPagesCount))"> <span class="glyphicon glyphicon-chevron-down glyph-bordered"></span> <br />Load more articles </a> <div id="endless-paging" style="margin-top: 10px; display: none;"> <img src="/ajax-loader.gif" height="24" width="24" alt="Ajax Loader"> </div>

Stock Widgets – Example: Search results by type <div role="tabpanel"> <!-- Nav tabs --> <ul class="nav nav-tabs" role="tablist"> <li role="presentation" class="active"> <a href="#all" role="tab" data-toggle="tab">All<span class="badge">@Model.Results.Data.Count</span></a> </li> <li role="presentation"> <a href="#news" role="tab" data-toggle="tab">News<span class="badge">@news.Count()</span></a> … </ul> <!-- Tab panes --> <div class="tab-content"> <div role="tabpanel" class="tab-pane active" id="all"> @Html.Partial("_SearchResults", Model.Results.Data) </div> <div role="tabpanel" class="tab-pane" id="news"> @Html.Partial("_SearchResults", news)

Mobile First

Mobile First Frontend Backend

Designers Framework – Stock Widget Designers Default (Simple.cshtml) <sf-html-field class="kendo-content-block" sf-model="properties.Content.PropertyValue"> </sf-html-field> $scope.properties bound to controller properties Reuses sf-html-field

Designers Framework – Stock Widget Designers ~/Mvc/Views/[WidgetName]/DesignerView.[ViewName].[extension] <h3>Welcome to TelerikNext</h3> <sf-html-field class="kendo-content-block" sf-model="properties.Content.PropertyValue"></sf-html-field>

Designers Framework – Designers configuration ~/Mvc/Views/[WidgetName]/DesignerView.[ViewName].json { "priority": 1, "scripts": [ "Mvc/Scripts/ContentBlock/shared-content- services.js", "Mvc/Scripts/MyAdditionalScript.js" ] }

Designers Framework – Custom Commands public class ContentBlockController : Controller, IHasEditCommands .... this.CommandsList.Add(new WidgetMenuItem() { Text = "Use Shared", ActionUrl = "UseShared", NeedsModal = true });

Convention-Based Framework Stock Widget templates List.[ViewName].cshtml or Detail.[ViewName].cshtml Page templates based on layout files MVC\View\Layouts or ResourcePackages\YourPackageName\Mvc\Views\Layouts

Convention-Based Framework Designer template name & location \Mvc\Views\[WidgetName]\DesignerView.[ViewName].[extension] Needed scripts and modules Mvc\[WidgetName]\DesignerView.[ViewName].json Designer module Mvc\Scripts\[WidgetName]\designerview-[viewname].js

Native support for DI (Ninject) Framework goodness Native support for DI (Ninject) public IssueController(IIssueModel issuesModel) { this.model = issuesModel; } Support for class libraries (full encapsulation)

Support for Locations Service Framework goodness Support for Locations Service public class NewsController : Controller, IContentLocatableView { } Localization resources for both front and backend [Localization(typeof(NewsWidgetResources))] And more...

Designers Framework The designer module (designerview-yourView.js): angular.module('designer').requires.push('sfImageField'); Designer View (DesignerView.YourView.cshtml): <sf-image-field sf-auto-open-selector sf-model="selectedImageId" sf-image="selectedImage" sf-provider="imageProvider"/>

Sitefinity Feather – Reusable components Directives: Collection, Tree, Sort box, Search box, Infinite scroll, Drag and drop, Flat taxon, etc. Directives are markers on a DOM element (such as an attribute, element name, comment or CSS class) that tell AngularJS's HTML compiler ($compile) to attach a specified behavior to that DOM element or even transform the DOM element and its children. Selectors: News, Page, Multisite page, Flat taxon, Hierarchical taxon, Dynamic items, etc. The selectors are part of the Telerik.Sitefinity.Frontend assembly. They are implemented as AngularJS directives.

Q&A