SlideShare a Scribd company logo
1 of 36
Delivering client sites
Ilesh Mistry
Agenda
 MMT Digital
 Ilesh Mistry
 Common mistakes in site delivery
 Delivering client sites
 Questions
@ileshmistry | #KenticoConnection
Elevator pitch –
We architect, design and build
bespoke websites and applications
that deliver outstanding user
experiences.
“
”
v
Ilesh Mistry
- http://www.mmtdigital.co.uk
/Ilesh-mistry/blog
- @ileshmistry
- Ilesh.m@mmtdigital.co.uk
@ileshmistry | #KenticoConnection
Ilesh Mistry
Mini Mistrys…
- Short videos on various
Kentico topics
- How to guides
- Smart Search is the
beginning…
- Any suggestions let me know
@ileshmistry | #KenticoConnection
Common mistakes in site delivery
@ileshmistry | #KenticoConnection
Common mistakes in site delivery
@ileshmistry | #KenticoConnection
Common mistakes in site delivery
 Search doesn’t work
 Analytics not working
 Dropped in SEO ranking
 Can’t access Online Marketing
 Page is running slow
 Can’t access admin area
 Seeing error pages
 Etc…
Make sure you site is ready ready and not just finished
@ileshmistry | #KenticoConnection
Delivering client sites - Agenda
 Kentico Connection Site Delivery Checklist (#KenticoConnectionSDC)
 UI Admin
 EMS configuration
 Front End Optimisation Techniques
 URLs & SEO
 Performance
 Caching
 Testing during site development
 Security
 Staying alive
 Any other things?
@ileshmistry | #KenticoConnection
@ileshmistry | #KenticoConnection
Your Kentico
Community
needs…
You!
#KenticoConnectionSDC
UI Admin
 Customise dashboard and
applications list
 Roles and permissions
 Page Types child items
 Workflow
 Resize image on upload
 Build all Smart Search indexes that are needed across site?
 Cleaned up the content tree and removed any unwanted items?
 Page type icons
 Forms & Form Layouts
 Switched on various settings
 Clean up templates and widgets they can select
 Kentico Editor output styling e.g. Bullet point list
 Use the new Version 9 Web Parts and Widget Usages to locate
@ileshmistry | #KenticoConnection
New in Version 9
EMS configuration
 Set-up Widgets where you can?
 Turned on/enabled Online Marketing options?
 Enabled A/B Testing and MVT option
 Enabled Content Personalization option
 Thought about tracking conversions, if so use the conversion
form control field
 Mapped Form fields to allow for contacts within Kentico
@ileshmistry | #KenticoConnection
Front End Optimisation Techniques
 Image optimisation
 Store in Filesystem
 Upload size
 Store files elsewhere
 Images
 Videos
 GZIP / output
compression
@ileshmistry | #KenticoConnection
Front End Optimisation Techniques
 Minification
 (JS, CSS, Images etc…)
 Task runner e.g. Grunt
@ileshmistry | #KenticoConnection
Front End Optimisation Techniques
 Responsive Design
@ileshmistry | #KenticoConnection
Source: https://kinsta.com/learn/page-speed/
URLs and SEO
 URL Redirects
 Same URLs
 Allowed extensions
 Canonical Links
 Page Not Found
 Robots, Google Sitemap and
Google Analytics
 Thinking about multiple cultures would help with
this
 HTML structures and syntax
 Structured data e.g. Schema.org
(https://developers.google.com/structured-
data/testing-tool/)
@ileshmistry | #KenticoConnection
Performance
 Kentico documentation for speeding up the website
 Web part performance best practice
 Only render what is required for that section not unrequired
items (e.g. non mandatory fields markup showing up)
 Bad backend coding
@ileshmistry | #KenticoConnection
Performance
 SQL Debugger
 Real time SQL debugging
 Looking at columns you need
to use and not all
 Different places to view it
 Performance benefit
 You know what to do when
you have finished with it!
@ileshmistry | #KenticoConnection
Performance
 SQL Debugger
 Under Debug  SQL Queries
 Example of a Hierarchical Viewer with
multiple Page Types
@ileshmistry | #KenticoConnection
Performance
 KInspector
@ileshmistry | #KenticoConnection
Performance - Recommendations
 I would recommend to always check the SQL Debugger /
Kinspector
 Then if things look bad, use the web part with SQL Query in
them so you define what the query / data source is and it is not
something you just let Kentico handle
 There are always and will be different scenarios to use some
options over others, it all depends per project
@ileshmistry | #KenticoConnection
Caching
 What are you
going to cache?
 Main types
 Output caching
 Partial Caching
 CacheHelper.Cache
 Debugging cache
 Output cache
substitutions
 To cache or not to
cache that is the
question
@ileshmistry | #KenticoConnection
private void BindGridCachedSection()
{
DataSet ds = null;
using (CachedSection<DataSet> cs = new CachedSection<DataSet>(ref
ds, new CacheSettings(60, "UsersDataset")))
{
if (cs.LoadData) { ds = LoadUsersFromDB("UserEnabled=1"); }
}
grid.DataSource = ds;
grid.DataBind();
}
private void BindGridTheBest()
{
grid.DataSource = CacheHelper.Cache(() =>
LoadUsersFromDB("UserEnabled=1"), new CacheSettings(60,
"UsersDataset"));
grid.DataBind();
}
Server/content cache Code from Petr Svihlik slides Kentico Developer Roadshow - London
Testing during site development
 Kentico validation
 HTML
 CSS
 Link checker
 Accessibility
 Online validation
@ileshmistry | #KenticoConnection
Testing during site development
 JS Unit Testing
 Jasmine & Karma
@ileshmistry | #KenticoConnection
Testing during site development
 JS Unit Testing
 Jasmine & Karma
@ileshmistry | #KenticoConnection
Testing during site development
 .Net Unit Testing
 NUnit
 Mocking with MOQ
outside Kentico
 Custom Services
@ileshmistry | #KenticoConnection
Testing during site development
 .Net Unit Testing
 NUnit
 Mocking with MOQ
outside Kentico
 Custom Services
@ileshmistry | #KenticoConnection
Testing during site development
 Cross browser and
device testing
 Selenium automated
testing
@ileshmistry | #KenticoConnection
Security
 Run site through HTTPS
 Stress Testing / Concurrent Testing e.g. Seige
 Penetration Testing
 Open Web Application Security Project
(OWASP) Top 10 Security Vulnerabilities
 Injection
 Cross Site Scripting
 Anti CSRF (Cross-Site Request Forgery)
 Etc…
 Now improved in version 9 protection against CSRF by employing
anti-CSRF tokens
 Great article by Juraj Komlosi on this
@ileshmistry | #KenticoConnection
Staying alive
 There are tools out there that check sites
 UpTrends
 Uptime Robot
 StatusCake
 Pingdom
 Get alerts before the client does so you can resolve them
quickly
@ileshmistry | #KenticoConnection
Any other things?
 Kentico Setup Installer
 Follow my blog post on setting up a base site template
@ileshmistry | #KenticoConnection
@ileshmistry | #KenticoConnection
Your Kentico
Community
needs…
You!
#KenticoConnectionSDC
Questions?
@ileshmistry | #KenticoConnection
Thank you!
http://www.mmtdigital.co.uk/Ilesh-Mistry
https://twitter.com/ileshmistry
https://www.facebook.com/ilesh.mistry
https://www.linkedin.com/in/ileshmistry
https://plus.google.com/+IleshMistry
ilesh.m@mmtdigital.co.uk
@ileshmistry | #KenticoConnection

More Related Content

Similar to Delivering client sites - KC2015

(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery GuideMark Rackley
 
An Introduction to Web Components
An Introduction to Web ComponentsAn Introduction to Web Components
An Introduction to Web ComponentsRed Pill Now
 
James Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 PatternsJames Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 Patternsakqaanoraks
 
Performance Tune Up for Web Developers
Performance Tune Up for Web DevelopersPerformance Tune Up for Web Developers
Performance Tune Up for Web DevelopersLenin Ghazi
 
JavaScript front end performance optimizations
JavaScript front end performance optimizationsJavaScript front end performance optimizations
JavaScript front end performance optimizationsChris Love
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14Mark Rackley
 
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday SeasonG3 Communications
 
NZYP Project Casestudy using SilverStripe CMS
NZYP Project Casestudy using SilverStripe CMSNZYP Project Casestudy using SilverStripe CMS
NZYP Project Casestudy using SilverStripe CMSCam Findlay
 
Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...
Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...
Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...Amazon Web Services
 
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)Jordan Zurowski
 
The High Performance Web Application Lifecycle
The High Performance Web Application LifecycleThe High Performance Web Application Lifecycle
The High Performance Web Application LifecycleAlois Reitbauer
 
Web performance and measurement - UKCMG Conference 2011 - steve thair
Web performance and measurement - UKCMG Conference 2011 - steve thairWeb performance and measurement - UKCMG Conference 2011 - steve thair
Web performance and measurement - UKCMG Conference 2011 - steve thairStephen Thair
 
Choosing a Web Content Management System
Choosing a Web Content Management SystemChoosing a Web Content Management System
Choosing a Web Content Management SystemBridgeline Digital
 
Shaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-ilShaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-ilAsher Sterkin
 
Highway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup MunichHighway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup MunichChristian Deger
 
Webinar web development
Webinar web developmentWebinar web development
Webinar web developmentVinit Kumar
 

Similar to Delivering client sites - KC2015 (20)

(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide
 
Presentation Tier optimizations
Presentation Tier optimizationsPresentation Tier optimizations
Presentation Tier optimizations
 
An Introduction to Web Components
An Introduction to Web ComponentsAn Introduction to Web Components
An Introduction to Web Components
 
James Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 PatternsJames Turner (Caplin) - Enterprise HTML5 Patterns
James Turner (Caplin) - Enterprise HTML5 Patterns
 
Performance Tune Up for Web Developers
Performance Tune Up for Web DevelopersPerformance Tune Up for Web Developers
Performance Tune Up for Web Developers
 
JavaScript front end performance optimizations
JavaScript front end performance optimizationsJavaScript front end performance optimizations
JavaScript front end performance optimizations
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14
 
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
5 Steps To Deliver The Fastest Mobile Shopping Experience This Holiday Season
 
NZYP Project Casestudy using SilverStripe CMS
NZYP Project Casestudy using SilverStripe CMSNZYP Project Casestudy using SilverStripe CMS
NZYP Project Casestudy using SilverStripe CMS
 
Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...
Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...
Expedite the development lifecycle with MongoDB and serverless - DEM02 - Sant...
 
Web performance tuning
Web performance tuning Web performance tuning
Web performance tuning
 
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
Deck 893ff61f-1fb8-4e15-a379-775dfdbcee77-12-173-252 (4)
 
The High Performance Web Application Lifecycle
The High Performance Web Application LifecycleThe High Performance Web Application Lifecycle
The High Performance Web Application Lifecycle
 
2013HZ12018 final-dissertation-presentation
2013HZ12018 final-dissertation-presentation2013HZ12018 final-dissertation-presentation
2013HZ12018 final-dissertation-presentation
 
Web performance and measurement - UKCMG Conference 2011 - steve thair
Web performance and measurement - UKCMG Conference 2011 - steve thairWeb performance and measurement - UKCMG Conference 2011 - steve thair
Web performance and measurement - UKCMG Conference 2011 - steve thair
 
Choosing a Web Content Management System
Choosing a Web Content Management SystemChoosing a Web Content Management System
Choosing a Web Content Management System
 
Shaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-ilShaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-il
 
Highway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup MunichHighway to heaven - Microservices Meetup Munich
Highway to heaven - Microservices Meetup Munich
 
WordCamp Denmark Keynote
WordCamp Denmark KeynoteWordCamp Denmark Keynote
WordCamp Denmark Keynote
 
Webinar web development
Webinar web developmentWebinar web development
Webinar web development
 

More from Ilesh Mistry

Getting started with Next.js - IM Tech Meetup - Oct 2022.pptx
Getting started with Next.js - IM Tech Meetup - Oct 2022.pptxGetting started with Next.js - IM Tech Meetup - Oct 2022.pptx
Getting started with Next.js - IM Tech Meetup - Oct 2022.pptxIlesh Mistry
 
Introduction to Tailwind CSS - IM Tech Meetup - May 2022.pptx
Introduction to Tailwind CSS - IM Tech Meetup - May 2022.pptxIntroduction to Tailwind CSS - IM Tech Meetup - May 2022.pptx
Introduction to Tailwind CSS - IM Tech Meetup - May 2022.pptxIlesh Mistry
 
Never too late to learn - IM Tech Meetup - Feb 2022
Never too late to learn - IM Tech Meetup - Feb 2022Never too late to learn - IM Tech Meetup - Feb 2022
Never too late to learn - IM Tech Meetup - Feb 2022Ilesh Mistry
 
Launching a website before xmas
Launching a website before xmasLaunching a website before xmas
Launching a website before xmasIlesh Mistry
 
Common accessibility mistakes
Common accessibility mistakesCommon accessibility mistakes
Common accessibility mistakesIlesh Mistry
 
Introduction to Svelte - Mmt tech meetup - September 2020
Introduction to Svelte - Mmt tech meetup - September 2020Introduction to Svelte - Mmt tech meetup - September 2020
Introduction to Svelte - Mmt tech meetup - September 2020Ilesh Mistry
 
GatsbyJS Recipes - Mmt tech meetup - August 2020
GatsbyJS Recipes - Mmt tech meetup - August 2020GatsbyJS Recipes - Mmt tech meetup - August 2020
GatsbyJS Recipes - Mmt tech meetup - August 2020Ilesh Mistry
 
Digital Transformation - How the world is changing for you
Digital Transformation - How the world is changing for youDigital Transformation - How the world is changing for you
Digital Transformation - How the world is changing for youIlesh Mistry
 
Are CMSs on the brink of extinction
Are CMSs on the brink of extinctionAre CMSs on the brink of extinction
Are CMSs on the brink of extinctionIlesh Mistry
 
Scope website - how to make an accessible website
Scope website - how to make an accessible websiteScope website - how to make an accessible website
Scope website - how to make an accessible websiteIlesh Mistry
 
Website development accessibility
Website development accessibilityWebsite development accessibility
Website development accessibilityIlesh Mistry
 
Content Centric RWD - Kentico Connection 2013 - London
Content Centric RWD - Kentico Connection 2013 - LondonContent Centric RWD - Kentico Connection 2013 - London
Content Centric RWD - Kentico Connection 2013 - LondonIlesh Mistry
 

More from Ilesh Mistry (12)

Getting started with Next.js - IM Tech Meetup - Oct 2022.pptx
Getting started with Next.js - IM Tech Meetup - Oct 2022.pptxGetting started with Next.js - IM Tech Meetup - Oct 2022.pptx
Getting started with Next.js - IM Tech Meetup - Oct 2022.pptx
 
Introduction to Tailwind CSS - IM Tech Meetup - May 2022.pptx
Introduction to Tailwind CSS - IM Tech Meetup - May 2022.pptxIntroduction to Tailwind CSS - IM Tech Meetup - May 2022.pptx
Introduction to Tailwind CSS - IM Tech Meetup - May 2022.pptx
 
Never too late to learn - IM Tech Meetup - Feb 2022
Never too late to learn - IM Tech Meetup - Feb 2022Never too late to learn - IM Tech Meetup - Feb 2022
Never too late to learn - IM Tech Meetup - Feb 2022
 
Launching a website before xmas
Launching a website before xmasLaunching a website before xmas
Launching a website before xmas
 
Common accessibility mistakes
Common accessibility mistakesCommon accessibility mistakes
Common accessibility mistakes
 
Introduction to Svelte - Mmt tech meetup - September 2020
Introduction to Svelte - Mmt tech meetup - September 2020Introduction to Svelte - Mmt tech meetup - September 2020
Introduction to Svelte - Mmt tech meetup - September 2020
 
GatsbyJS Recipes - Mmt tech meetup - August 2020
GatsbyJS Recipes - Mmt tech meetup - August 2020GatsbyJS Recipes - Mmt tech meetup - August 2020
GatsbyJS Recipes - Mmt tech meetup - August 2020
 
Digital Transformation - How the world is changing for you
Digital Transformation - How the world is changing for youDigital Transformation - How the world is changing for you
Digital Transformation - How the world is changing for you
 
Are CMSs on the brink of extinction
Are CMSs on the brink of extinctionAre CMSs on the brink of extinction
Are CMSs on the brink of extinction
 
Scope website - how to make an accessible website
Scope website - how to make an accessible websiteScope website - how to make an accessible website
Scope website - how to make an accessible website
 
Website development accessibility
Website development accessibilityWebsite development accessibility
Website development accessibility
 
Content Centric RWD - Kentico Connection 2013 - London
Content Centric RWD - Kentico Connection 2013 - LondonContent Centric RWD - Kentico Connection 2013 - London
Content Centric RWD - Kentico Connection 2013 - London
 

Delivering client sites - KC2015

  • 2. Agenda  MMT Digital  Ilesh Mistry  Common mistakes in site delivery  Delivering client sites  Questions @ileshmistry | #KenticoConnection
  • 3.
  • 4. Elevator pitch – We architect, design and build bespoke websites and applications that deliver outstanding user experiences. “ ”
  • 5. v
  • 6. Ilesh Mistry - http://www.mmtdigital.co.uk /Ilesh-mistry/blog - @ileshmistry - Ilesh.m@mmtdigital.co.uk @ileshmistry | #KenticoConnection
  • 7. Ilesh Mistry Mini Mistrys… - Short videos on various Kentico topics - How to guides - Smart Search is the beginning… - Any suggestions let me know @ileshmistry | #KenticoConnection
  • 8. Common mistakes in site delivery @ileshmistry | #KenticoConnection
  • 9. Common mistakes in site delivery @ileshmistry | #KenticoConnection
  • 10. Common mistakes in site delivery  Search doesn’t work  Analytics not working  Dropped in SEO ranking  Can’t access Online Marketing  Page is running slow  Can’t access admin area  Seeing error pages  Etc… Make sure you site is ready ready and not just finished @ileshmistry | #KenticoConnection
  • 11. Delivering client sites - Agenda  Kentico Connection Site Delivery Checklist (#KenticoConnectionSDC)  UI Admin  EMS configuration  Front End Optimisation Techniques  URLs & SEO  Performance  Caching  Testing during site development  Security  Staying alive  Any other things? @ileshmistry | #KenticoConnection
  • 12. @ileshmistry | #KenticoConnection Your Kentico Community needs… You! #KenticoConnectionSDC
  • 13. UI Admin  Customise dashboard and applications list  Roles and permissions  Page Types child items  Workflow  Resize image on upload  Build all Smart Search indexes that are needed across site?  Cleaned up the content tree and removed any unwanted items?  Page type icons  Forms & Form Layouts  Switched on various settings  Clean up templates and widgets they can select  Kentico Editor output styling e.g. Bullet point list  Use the new Version 9 Web Parts and Widget Usages to locate @ileshmistry | #KenticoConnection New in Version 9
  • 14. EMS configuration  Set-up Widgets where you can?  Turned on/enabled Online Marketing options?  Enabled A/B Testing and MVT option  Enabled Content Personalization option  Thought about tracking conversions, if so use the conversion form control field  Mapped Form fields to allow for contacts within Kentico @ileshmistry | #KenticoConnection
  • 15. Front End Optimisation Techniques  Image optimisation  Store in Filesystem  Upload size  Store files elsewhere  Images  Videos  GZIP / output compression @ileshmistry | #KenticoConnection
  • 16. Front End Optimisation Techniques  Minification  (JS, CSS, Images etc…)  Task runner e.g. Grunt @ileshmistry | #KenticoConnection
  • 17. Front End Optimisation Techniques  Responsive Design @ileshmistry | #KenticoConnection Source: https://kinsta.com/learn/page-speed/
  • 18. URLs and SEO  URL Redirects  Same URLs  Allowed extensions  Canonical Links  Page Not Found  Robots, Google Sitemap and Google Analytics  Thinking about multiple cultures would help with this  HTML structures and syntax  Structured data e.g. Schema.org (https://developers.google.com/structured- data/testing-tool/) @ileshmistry | #KenticoConnection
  • 19. Performance  Kentico documentation for speeding up the website  Web part performance best practice  Only render what is required for that section not unrequired items (e.g. non mandatory fields markup showing up)  Bad backend coding @ileshmistry | #KenticoConnection
  • 20. Performance  SQL Debugger  Real time SQL debugging  Looking at columns you need to use and not all  Different places to view it  Performance benefit  You know what to do when you have finished with it! @ileshmistry | #KenticoConnection
  • 21. Performance  SQL Debugger  Under Debug  SQL Queries  Example of a Hierarchical Viewer with multiple Page Types @ileshmistry | #KenticoConnection
  • 23. Performance - Recommendations  I would recommend to always check the SQL Debugger / Kinspector  Then if things look bad, use the web part with SQL Query in them so you define what the query / data source is and it is not something you just let Kentico handle  There are always and will be different scenarios to use some options over others, it all depends per project @ileshmistry | #KenticoConnection
  • 24. Caching  What are you going to cache?  Main types  Output caching  Partial Caching  CacheHelper.Cache  Debugging cache  Output cache substitutions  To cache or not to cache that is the question @ileshmistry | #KenticoConnection private void BindGridCachedSection() { DataSet ds = null; using (CachedSection<DataSet> cs = new CachedSection<DataSet>(ref ds, new CacheSettings(60, "UsersDataset"))) { if (cs.LoadData) { ds = LoadUsersFromDB("UserEnabled=1"); } } grid.DataSource = ds; grid.DataBind(); } private void BindGridTheBest() { grid.DataSource = CacheHelper.Cache(() => LoadUsersFromDB("UserEnabled=1"), new CacheSettings(60, "UsersDataset")); grid.DataBind(); } Server/content cache Code from Petr Svihlik slides Kentico Developer Roadshow - London
  • 25. Testing during site development  Kentico validation  HTML  CSS  Link checker  Accessibility  Online validation @ileshmistry | #KenticoConnection
  • 26. Testing during site development  JS Unit Testing  Jasmine & Karma @ileshmistry | #KenticoConnection
  • 27. Testing during site development  JS Unit Testing  Jasmine & Karma @ileshmistry | #KenticoConnection
  • 28. Testing during site development  .Net Unit Testing  NUnit  Mocking with MOQ outside Kentico  Custom Services @ileshmistry | #KenticoConnection
  • 29. Testing during site development  .Net Unit Testing  NUnit  Mocking with MOQ outside Kentico  Custom Services @ileshmistry | #KenticoConnection
  • 30. Testing during site development  Cross browser and device testing  Selenium automated testing @ileshmistry | #KenticoConnection
  • 31. Security  Run site through HTTPS  Stress Testing / Concurrent Testing e.g. Seige  Penetration Testing  Open Web Application Security Project (OWASP) Top 10 Security Vulnerabilities  Injection  Cross Site Scripting  Anti CSRF (Cross-Site Request Forgery)  Etc…  Now improved in version 9 protection against CSRF by employing anti-CSRF tokens  Great article by Juraj Komlosi on this @ileshmistry | #KenticoConnection
  • 32. Staying alive  There are tools out there that check sites  UpTrends  Uptime Robot  StatusCake  Pingdom  Get alerts before the client does so you can resolve them quickly @ileshmistry | #KenticoConnection
  • 33. Any other things?  Kentico Setup Installer  Follow my blog post on setting up a base site template @ileshmistry | #KenticoConnection
  • 34. @ileshmistry | #KenticoConnection Your Kentico Community needs… You! #KenticoConnectionSDC

Editor's Notes

  1. Hi everyone Introduction What talk is going to be about
  2. Kentico Gold partner
  3. Working with Kentico since version 3.1 Front End Kentico Specialist Solutions Architect, looking after a Kentico Development Team and a part of the K Team at MMT Digital, pushing out Kentico knowledge and standards across the company and Kentico community Kentico MVP – honour and privileged to be Kentico MVP – Love Best Practices!
  4. Before I get started I want to talk about some of the common mistakes
  5. GAME TIME
  6. But before we do, I want to try this and see what we can do together - #KenticoConnectionSDC on Twitter add your suggestions Not sure how this is going to work Generate checklist to circulate and write post
  7. New in version 9 is the ability of pinning items from the breadcrumbs Forms Tested that all forms submit correctly? Validated for incorrect and successful entries? Validated the send email notifications? Cleared out test data? Made the form layout easy for content editor to follow? Made sure SMTP server is set up, as too often we developers rely on E-mail Queue
  8. Image optimisation In Kentico can set default / preferred image sizes Host elsewhere CDN? Videos on YouTube Kentico HTML Validation Accessibility checking Anything else? Gzip compression Enable output compression Store in Filesystem is better than DB & generate thumbnail
  9. Minimisation techniques e.g. Grunt, Gulp etc… CSS and JS minifications SVG and Icon Fonts Grunt JS (what it is, how it works, set up, Grunt JS) JS Task Runner with NodeJS (npm) Useful for realtime tasks e.g. Save and see the changes Install locally Create a Package.JSON file Grunt file Load plugins and tasks Show Grunt plugin for SVG optimisation Minification plugin for CSS and JS
  10. This ties in with website speed/performance Talk about Kentico Performance a little later on Drop off rates Google Rankings Mobile Responsive Google and Yahoo Page Speed testing
  11. Same URLs = convert to all lowercase Explain that there is a SEO section is site settings 301 redirects Short selectors Exclude listing and results pages from search Page not found 404 Other list of the error codes Meta data URL Redirects Module from Kentico - http://devnet.kentico.com/articles/url-redirection Canonical Links Module from Kentico - http://devnet.kentico.com/articles/canonical-links Reduce number of HTTP requests HTML Hierarchy Designers with no Heading 1 on the homepage or landing pages https://developers.google.com/structured-data/testing-tool/ URL Redirects Module from Kentico - http://devnet.kentico.com/articles/url-redirection Canonical Links Module from Kentico - http://devnet.kentico.com/articles/canonical-links
  12. Andy Thompson Kentico MVP’s blog posts (shout out) http://www.getstarted.com.au/Blog/July-2015/Kentico-Website-Speed-Optimisation-Basics https://github.com/Kentico/Kinspector Look Kentico speed options Web part performance best practice
  13. The name and SQL code of the query. The Context in which the query was called. Click on the method to see the full stack trace. If you enable the Show complete context option at the top of the interface, the stack trace is displayed for all queries. The Duration of the query execution. The total size of the data retrieved by the query.
  14. SQL Debugger Look into this How to switch on? How to identify problems? How to fix problems? REMEMBER TO SWITCH IT OFF AFTER YOU FINISH USING IT Hierarchical viewer with multiple Page Types example. Show the SQL query for this and how long it is http://localhost/Kentico9_10/Examples/Web-parts/Listings-and-viewers/Pages/Hierarchical-viewer.aspx GetFileURL or other methods add to the other queries to retrieve this information, so the less you can do this the better, maybe even using the Media Library and Media Selection form control if such an option would be available. The name and SQL code of the query. The Context in which the query was called. Click on the method to see the full stack trace. If you enable the Show complete context option at the top of the interface, the stack trace is displayed for all queries. The Duration of the query execution. The total size of the data retrieved by the query.
  15. https://github.com/Kentico/Kinspector Kinspector – easy to set up, currently only works for Version 8 Open Source KInspector is an application for analyzing health, performance and security of your Kentico solution http://localhost/Kentico81 http://localhost:9000/FrontEnd/index.html#/results/
  16. Cache types Kentico provides the following types of caching: Output cache (full page) - caches the full HTML output of pages. Partial output cache - caches the HTML output of individual page components (web parts). File cache - stores files and resources, such as images, CSS stylesheets or JavaScript files. Supports both server and client-side caching. Content cache - stores structured data loaded by web parts and controls (for data sources, repeaters, etc.). Page info cache - stores basic information about pages (documents). Custom code cache - allows developers to cache data used in custom code. Output cache substitutions – some sections of an Output caching need to be dynamic Dynamic elements like shopping cart, constantly changing features/elements, user updated content
  17. Jasmine is a behaviour-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.
  18. Run Karma ... launches [PhantomJS, Chrome, Firefox, Internet Explorer etc.] ... sends individual tests to the browsers ... collects test output ... plugins generate reports [Coverage, JUnit etc.]
  19. NUnit is the current unit test library Test must use the Arrange, Act , Assert layout They should be simple and easy to read.
  20. MOQ – is the mocking library Mocking allows dependencies to be ‘Mocked’ so the real dependency is not required to run the test.
  21. Selenium is a portable software testing framework for web applications.
  22. https://devnet.kentico.com/articles/protection-against-cross-site-request-forgery-(csrf-xsrf) https://www.youtube.com/user/IBMSecuritySolutions/search?query=OWASP+Top+10+Vulnerabilities Injection Broken Authentication and Session Management (XSS) Cross Site Scripting (XSS) Insecure Direct Object References Security Misconfiguration  Sensitive Data Exposure Missing Function Level Access Control Cross Site Request Forgery (CSRF)  Using Components with Known Vulnerabilities  Unvalidated Redirects and Forwards
  23. Sites https://uptimerobot.com/ https://www.statuscake.com https://www.pingdom.com/ https://www.uptrends.com/
  24. Remember - #KenticoConnectionSDC on Twitter add your suggestions Not sure how this is going to work Generate checklist to circulate and write post
  25. Checklist will be circulated in a future blog post