Using the Kentico CMS API Thom Robbins Bryan Soltis

Slides:



Advertisements
Similar presentations
Samsung Smart TV is a web-based application running on an application engine installed on digital TVs connected to the Internet.
Advertisements

JTX Overview Overview of Job Tracking for ArcGIS (JTX)
Keys, Referential Integrity and PHP One to Many on the Web.
Kentico CMS 5.5 R2 What’s New. Highlights Intranet Solution Document management package – WebDAV support – Project & task management – Document libraries.
Advantage Data Dictionary. agenda Creating and Managing Data Dictionaries –Tables, Indexes, Fields, and Triggers –Defining Referential Integrity –Defining.
Microsoft Dynamics AX 2009 Integration and Development with.NET Framework Enterprise Portal.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
1 Chapter 12 Working With Access 2000 on the Internet.
Integrating Access with the Web and with Other Programs.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Localization Roadmap Content Localization in DNN neXt Sebastian Leupold.
Midwest Documentum User Group Harley-Davidson Documentum WCM 10/10/2006.
UNIT-V The MVC architecture and Struts Framework.
CVSQL 2 The Design. System Overview System Components CVSQL Server –Three network interfaces –Modular data source provider framework –Decoupled SQL parsing.
©2011 Quest Software, Inc. All rights reserved. Steve Walch, Senior Product Manager Blog: November, 2011 Partner Training Webcast.
Presented by…. Group 2 1. Programming language 2Introduction.
MS Access Advanced Instructor: Vicki Weidler Assistant:
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
OU Campus Intermediate Training Workshop. Agenda Administrator Overview and Roles Administrator Controls Administrator Configuration Setting Up Access.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
CSS/417 Introduction to Database Management Systems Workshop 5.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
Enticy GROUP THE A Framework for Web and WinForms (Client-Server) Applications “Enterprise Software Architecture”
Using Visual Basic 6.0 to Create Web-Based Database Applications
RECALL THE MAIN COMPONENTS OF KIM Functional User Interfaces We just looked at these Reference Implementation We will talk about these later Service Interface.
Needs for Accessing Database To make your web site more dynamic and maintainable, you can display information on your web pages that are retrieved from.
1 Data Bound Controls II Chapter Objectives You will be able to Use a Data Source control to get data from a SQL database and make it available.
WCM Platform Improvements ECM and Enterprise Metadata Advanced Routing and Document Sets In Place Records Management.
ICONICS ActiveX ToolWorX V 6.1.
INTRODUCTION TO JAVASCRIPT AND DOM Internet Engineering Spring 2012.
NMD202 Web Scripting Week3. What we will cover today Includes Exercises PHP Forms Exercises Server side validation Exercises.
Building Applications with the KNS. The History of the KNS KFS spent a large amount of development time up front, using the best talent from each of the.
JSTL Lec Umair©2006, All rights reserved JSTL (ni) Acronym of  JavaServer Pages Standard Tag Library JSTL (like JSP) is a specification, not an.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
Security Attacks CS 795. Buffer Overflow Problem Buffer overflows can be triggered by inputs that are designed to execute code, or alter the way the program.
Sage CRM Developers Course
Solutions using Microsoft Content Management Server 2002 Connector for SharePoint Technologies Sue Corke Mark Harrison Microsoft UK.
Introduction to Views Stanford Drupal Camp April 6, 2013.
Technical Overview. Project Overview Document Library Document List Index TransmittalsPlanning.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
NMD202 Web Scripting Week5. What we will cover today PHP & MySQL Displaying Dynamic Pages Exercises Modifying Data PHP Exercises Assignment 1.
Greenstone Internals How to Build a Digital Library Ian H. Witten and David Bainbridge.
Presented by Vishy Grandhi.  Architecture (Week 1) ◦ Development Environments ◦ Model driven architecture ◦ Licensing and configuration  AOT (Week 2)
KIM: Kuali Abstraction Layer for Identities, Groups, Roles, and Permissions.
Security Attacks CS 795. Buffer Overflow Problem Buffer overflow Analysis of Buffer Overflow Attacks.
ICM – API Server & Forms Gary Ratcliffe.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Copyright (c) 2014 Pearson Education, Inc. Introduction to DBMS.
XP New Perspectives on Microsoft Office Access 2003, Second Edition- Tutorial 8 1 Microsoft Office Access 2003 Tutorial 8 – Integrating Access with the.
Developer Exam Preparation Thom Robbins Bryan Soltis
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
Wes Preston DEV 202. Audience: Info Workers, Dev A deeper dive into use-cases where client-side rendering (CSR) and SharePoint’s JS Link property can.
Generating XML Data from a Database Eugenia Fernandez IUPUI.
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
Does your website speak Chinese? Thom Robbins
The Holmes Platform and Applications
Chris Menegay Sr. Consultant TECHSYS Business Solutions
iVend Retail Extensibility
Lecture 1: Multi-tier Architecture Overview
Microsoft Office Access 2003
Microsoft Office Access 2003
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Versatile workflow management Tool
TN19-TCI: Integration and API management using TIBCO Cloud™ Integration
SharePoint 2007 Developer Overview Collaboration BI Features
Presentation transcript:

Using the Kentico CMS API Thom Robbins Bryan Soltis

Agenda Overview (Architecture/Objects) (Thom) CMS Context (Bryan) Document Management (Thom) Global Events (Thom) Modules (Bryan)

Looking at Kentico CMS Logical three tier architecture…

Architecture breakdown Data layer (+metadata) Business layer Controls libraries UI components Web project pages Live site pages + admin UI pages Web parts + User controls CMSControlsHelpersSettingsProviderEnumerationsInfos & Providers Data engine GeneralConnection Abstract info Metadata infos (Class, Query, SettingsKey) InterfacesThird party code Module web parts + Module user controls Module controls Module Infos & Providers Module definitions Presentation layer Best Practice Tip Kentico CMS web site project provides examples of all sorts of code!

OO Basics - Object Creation Examples // Create UserInfo CMS.SiteProvider.UserInfo user = new CMS.SiteProvider.UserInfo(); // Set properties user.UserName = "Alice"; user.FirstName = "Alice"; user.LastName = "Cooper"; user.FullName = "Alice Cooper"; user. = user.IsEditor = true; user.IsGlobalAdministrator = true; user.PreferredCultureCode = "en-us"; user.Enabled = true; // Create new user CMS.SiteProvider.UserInfoProvider.SetUserInfo(user); // Prepare the TreeProvider (it must be initialized with user information when editing document structure) UserInfo ui = UserInfoProvider.GetUserInfo("administrator"); CMS.TreeEngine.TreeProvider tree = new CMS.TreeEngine.TreeProvider(ui); // Get the document (current culture) CMS.TreeEngine.TreeNode node = tree.SelectSingleNode(CMS.CMSHelper.CMSContext.CurrentSiteName, "/News/TestingWorkflow", CMS.CMSHelper.CMSContext.CurrentUser.PreferredCultureCode, false, null, false); if (node != null) { // Always delete the document with DocumentHelper, it handles all the dependencies CMS.WorkflowEngine.DocumentHelper.DeleteDocument(node, tree, true, true,true); } Example - Creating new user Example – Delete Document

API Everywhere! Class View is your Friend CMS.SettingsProvider.SettingsHelper.SQLHelperClass.TranslationHelp er CMS.GlobalHelper.DataHelper.ContextHelper.AJAXHelper Library Specific CMS.Controls.CM SControlsHelper CMS.WorkflowEn gine.DocumentHe lper CMS.Blogs.BlogHe lper Some Examples… Best practice Tip: Class view is customizable to allow personalized organization and viewing

Helpers and general libraries SettingsProvider (metadata helpers) SettingsHelper (web.config) SettingsKeyHelper (web site settings) SqlHelperClass (low level DB connection, used only from SettingsProvider) DataHelper (basic data manipulation) TranslationHelper (conversion of IDs based on code names or GUIDs) GlobalHelper (general helpers) /Context (HTTP context related data) /Data (advanced data manipulation and validation) /Globalization (resource strings and cultures) /Markup (macros, HTML, XML, text, script) /Media (images and media manipulation and information) Library specific (module helpers) ControlsHelperCMSControlsHelperDocumentHelperWebFarmSyncHelperClass Etc. App_Code (helper functions) Functions.csInstallerFunctions.csBlogFunctions.csEcommerceFunctions.cs Etc. Best Practice Tip For general code locate the appropriate helper and use it If the helper contains similar methods override and extend Implement new behavior in helpers

CMS Context CMS.CMSHelper.CMSContext class provides static methods to access common information Method CurrentAliasPath CurrentDocument CurrentPageInfo CurrentSite CurrentSiteName CurrentUser ViewMode ResolveCurrentPath Need a code snippet?

Document Management – How documents are stored Documents stored in SQL joined tables – CMS_Tree – Table with basic document data shared between different language versions. Contains one record for all culture version of the document – CMS_Document – Table with document data of specified language version of the document. Contains one record representing one language version of the document – Coupled table – table that contains custom document type fields CMS_TreeCMS_DocumentCoupled tableCMS_DocumentCoupled tableCMS_DocumentCoupled table Best Practice Tip: Every document is stored in up to three (3) tables. Use the API to access documents

Document Management – Versioning Internals Document versions and its history are stored in separate tables – CMS_VersionHistory – Table containing the document versions. Each version of the document is represented by one record that contains the complete document data in XML. – CMS_AttachmentHistory – Table containing the attachment version records. Each attachment version is bound to one or more document versions. Every record contains binary data of the attachment. – CMS_VersionAttachment – Table containing the bindings of the attachment versions to the document versions. CMS_VersionHistoryCMS_VersionAttachment CMS_AttachmentHistory Version of attachments CMS_VersionAttachment CMS_AttachmentHistory Version of attachments

Document Management Techniques CMS.TreeEngine.TreeNode Not aware of versioning/workflow/attachments Only works with published records CMS.WorkflowEngine.DocumentHelper Versioning/workflow/attachment aware Use for all document deletes Best Practice Tip: CMS.WorkflowEngine.DocumentHelper is recommended to access document information CMS.CMSHelper.TreeHelper allows access to documents directly Best Practice Tip: TreeHelper.GetDocuments checks the view mode and then calls either TreeProvider or DocumentHelper

Global Events Provide a way to execute custom events within the CMS system Managed as a separate projects Web Config Key Best Practice Tip: Developer documentation contains step by step instructions for implementing Global Events

Global Event Classes The events are applied to all data items that are stored to the database. It includes documents, user information or any other settings Receives DataClass CustomDataHandler.cs Event applied to all exceptions that occur Receives System.exception CustomExceptionHandler.cs Allows the integration of external databases and modify the authentication and authorization process CustomSecurityHandler.cs Execute custom actions when a document is created, updated or deleted CustomTreeNodeHandler.cs Event applied to workflow documents (same as CustomTreeNodeHandler) Same as CustomtreeNodeHandler CustomWorkflowHandler.cs Best Practice Tip: For Document events always use either the CustomTreeNodeHandler (no workflow) or CustomWorkFlowHandler (workflow) not the CustomDataHandler

Modules Extend the CMS system to include your custom code

Additional Information Best samples are in your project! Get your poster Documentation - Code Snippet Library - Marketplace -