SlideShare une entreprise Scribd logo
1  sur  36
DNN Horror Stories
Things That DNN Developers Shouldn't Do
Will Strohl
• CEO & Founder, Upendo Ventures
• Leader of the Awareness EAG
• Former CEO, Hotcakes Commerce
• Former DNN Corp employee
• Using DNN since 2003
• DNN MVP since 2013*
• DNN Author & Technical Editor
• Founder of DNNCon (Day of DNN)
• Founded 2 DNN User Groups*
• 25+ open source projects
https://upendoventures.com/How/People/Will-Strohl
“hismightiness”
@WillStrohl
Upendo Ventures
• Platform & Evoq
• E-Commerce
• Implementations
• Integrations
• Custom Modules
• Upgrades & Downgrades
• Custom Themes
• Training
• Fixing stuff other people did ;)
@UpendoVentures
UpendoVentures.com
We Use Technology to Help Your Business
Change People’s Lives
DNN Horror Stories
Things That DNN Developers Shouldn't Do
Who?
• Website owners
• Website administrators
• Website developers
• Content editors
Why?
• We need to grow the ecosystem
• Poor implementations make DNN look bad
• This is how we’ve been getting business
• ~80% of our DNN business
• Affects DNN upgrades
• This is all completely avoidable
• DNN is only as good as the implementor…
• Protect yourself & your website
Administration
Communications
Problem
• The vendor takes too long to respond.
Resolution
Give a reasonable buffer, but the amount of time and effort it
takes to get responses says how important they take your
business.
Low Rates
Problem
• The rates appear to be too good to be true.
Resolution
If you think the rate is exceptionally low, it is. You usually get
what you pay for.
Pay attention to agency/partner directories and follow-up on
client testimonials.
Budget
Problem
• The vendor under-budgets the effort for your project.
Resolution
This has the same impact as rates. Put your project out to bid to
multiple vendors.
Server(s)
Shared Logins
Problem
• Administrators and/or consultants are using shared logins.
Resolution
No matter how time-consuming, every single person in the
project should have a unique login.
Backup Plan (I)
Problem
• The web/database server is not being backed up regularly.
Resolution
Use a service like Acronis to backup the server no less than 1-4
times each month.
Keep off-site copies.
No Backup Plan (II)
Problem
• The database/website is not being backed up regularly.
Resolution
Use a service like Evotiva DNN Backup to backup the website no
less than 1-4 times each day/week.
Keep an on- and off-site copies.
SQL Maintenance Plan
Problem
• The database is not being backed up regularly.
Resolution
Hourly: Backup transaction logs;
Daily: Check DB integrity; Reorganize index; Update statistics;
Maintenance cleanup;
Weekly: Shrink DB; Rebuild index;
RDP Access
Problem
• RDP access is not restricted.
Resolution
RDP access should be protected either by IP address filter and/or
VPN.
CSS & JS
Inline Styles
Problem
• Yes. This is still happening.
• CSS is being applied in module settings, HTML, and templates.
Resolution
Apply these updates in the theme.
Portal.css
Problem
• Very rare that this is necessary.
• CSS is added in the Site Settings/Custom CSS.
Solution
• Apply these updates in the theme.
Portal.css
Problem
• Very rare that this is necessary.
• CSS is added in the Site Settings/Custom CSS.
Solution
• Apply these updates in the theme.
Local CSS & JS
Problem
• Third-party libraries used.
• Could be using a CDN version.
• Site owner has no choice.
• Bloat.
Solution
• Package and/or use CDN versions of the libraries.
Uncompressed CSS & JS
Problem
• Third-party and/or local libraries used.
• Usually an artifact from development or laziness.
• Bloat and decreased performance.
Solution
• Include a compression step in your build process. Point to it.
Extensions
Not Using Source Control
Problem
• Yes. We’re still seeing this today.
• Server back-ups are not good enough.
Solution
• GitHub & BitBucket have free/low cost options for public and
private repositories.
Project/Solution Architecture
Problem
• Custom/commercial extensions are developed/built within the
website.
Solution
• Any professional extension should not be embedded within the
website application itself. It should build outside of the website.
Source Code Location
Problem
• Storing the source code in the website folder(s).
• Forces checking in of the website.
• Difficult to on-board new developers & find code.
• Security!
Solution
• Store the source code in an actual development location.
Source Code Location (II)
Problem
• Storing the source code in multiple locations.
• Difficult to on-board new developers & find code.
• Often leads to re-generating code that is assumed missing.
Solution
• Centralize the source code in a single solution.
Using SQL Instead of the API
Problem
• SQL is used to directly manipulate data in the database.
• Difficult to track and audit.
• Could break any given upgrade.
Solution
• Take the time to know the DNN source code to be forward
compatible.
Validation of User Input
Problem
• Form fields, query strings, and uploads are not validated.
Solution
• InputFilter() should be used for all user-entered data.
• Encoding and validation used for all query string values.
• Uploads should be validated for format & integrity.
Third-Party Components
Problem
• Third-party libraries/frameworks are used, but not updated.
Solution
• In every release, any integrated libraries/frameworks should be
upgraded, if possible.
Using NuGet
Problem
• Manual references to other integrations/libraries are used
instead of NuGet.
Solution
• Whenever possible, package managers like NuGet and/or npm
should be used.
Extension Packaging
Problem
• “All you need to do to install/upgrade it is FTP it to the website.”
Solution
• All extensions and integrations should be versioned and use an
installer.
Build Warnings
Problem
• Build warnings are ignored and not addressed.
Solution
• Build warnings are a key indication that an extension will not be
upgrade-friendly.
• Build warnings should always be addressed as soon as they’re
noticed.
Upendo Ventures
Final Q&A
We use technology to help your business
change people’s lives
UpendoVentures.com
solutions@upendoventures.com
(650) 381-9160
548 Market St. #65401
San Francisco, CA 94104

Contenu connexe

Tendances

SQL Server 2016 JSON
SQL Server 2016 JSONSQL Server 2016 JSON
SQL Server 2016 JSONDavide Mauri
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devopsVincent Biret
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf
 
Sencha and Spring (Spring 2GX 2013)
Sencha and Spring (Spring 2GX 2013) Sencha and Spring (Spring 2GX 2013)
Sencha and Spring (Spring 2GX 2013) Sencha
 
Salesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best PracticesSalesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best Practicespanayaofficial
 
The Combined Power of Sentiment Analysis and Personality Insights
The Combined Power of Sentiment Analysis and Personality InsightsThe Combined Power of Sentiment Analysis and Personality Insights
The Combined Power of Sentiment Analysis and Personality InsightsIBM Watson
 
SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...
SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...
SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...DIWUG
 
Talking LANDESK to Upper Management and Your Peers
Talking LANDESK to Upper Management and Your PeersTalking LANDESK to Upper Management and Your Peers
Talking LANDESK to Upper Management and Your PeersEric Garlepp
 
MWLUG 2017: SA104 - IBM Notes Performance Boost
MWLUG 2017: SA104 - IBM Notes Performance BoostMWLUG 2017: SA104 - IBM Notes Performance Boost
MWLUG 2017: SA104 - IBM Notes Performance Boostpanagenda
 
Spca2014 thvo sql pub vochten
Spca2014 thvo sql pub vochtenSpca2014 thvo sql pub vochten
Spca2014 thvo sql pub vochtenNCCOMMS
 
Watson APIs for Conversational Apps - Conversational Apps Episode 1
Watson APIs for Conversational Apps - Conversational Apps Episode 1Watson APIs for Conversational Apps - Conversational Apps Episode 1
Watson APIs for Conversational Apps - Conversational Apps Episode 1IBM Watson
 
JIRA Performance Testing in Pictures - Edward Bukoski Michael March
JIRA Performance Testing in Pictures - Edward Bukoski Michael MarchJIRA Performance Testing in Pictures - Edward Bukoski Michael March
JIRA Performance Testing in Pictures - Edward Bukoski Michael MarchAtlassian
 
MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications
MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications
MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications Franziska Tanner
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL DevelopersIke Ellis
 
The Serverless Native Mindset
The Serverless Native MindsetThe Serverless Native Mindset
The Serverless Native MindsetBen Kehoe
 
MWLUG 2017: Workshop "IBM Domino Application Transformation" by panagenda
MWLUG 2017: Workshop "IBM Domino Application Transformation" by panagendaMWLUG 2017: Workshop "IBM Domino Application Transformation" by panagenda
MWLUG 2017: Workshop "IBM Domino Application Transformation" by panagendapanagenda
 
Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013Amazon Web Services
 
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham CarrickFrom Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham CarrickAtlassian
 

Tendances (19)

SQL Server 2016 JSON
SQL Server 2016 JSONSQL Server 2016 JSON
SQL Server 2016 JSON
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops
 
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
 
Sencha and Spring (Spring 2GX 2013)
Sencha and Spring (Spring 2GX 2013) Sencha and Spring (Spring 2GX 2013)
Sencha and Spring (Spring 2GX 2013)
 
Salesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best PracticesSalesforce Flows Architecture Best Practices
Salesforce Flows Architecture Best Practices
 
The Combined Power of Sentiment Analysis and Personality Insights
The Combined Power of Sentiment Analysis and Personality InsightsThe Combined Power of Sentiment Analysis and Personality Insights
The Combined Power of Sentiment Analysis and Personality Insights
 
SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...
SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...
SPSNL17 - Deep-dive building SharePoint Framework solutions - Albert-Jan Scho...
 
Talking LANDESK to Upper Management and Your Peers
Talking LANDESK to Upper Management and Your PeersTalking LANDESK to Upper Management and Your Peers
Talking LANDESK to Upper Management and Your Peers
 
MWLUG 2017: SA104 - IBM Notes Performance Boost
MWLUG 2017: SA104 - IBM Notes Performance BoostMWLUG 2017: SA104 - IBM Notes Performance Boost
MWLUG 2017: SA104 - IBM Notes Performance Boost
 
Spca2014 thvo sql pub vochten
Spca2014 thvo sql pub vochtenSpca2014 thvo sql pub vochten
Spca2014 thvo sql pub vochten
 
Watson APIs for Conversational Apps - Conversational Apps Episode 1
Watson APIs for Conversational Apps - Conversational Apps Episode 1Watson APIs for Conversational Apps - Conversational Apps Episode 1
Watson APIs for Conversational Apps - Conversational Apps Episode 1
 
JIRA Performance Testing in Pictures - Edward Bukoski Michael March
JIRA Performance Testing in Pictures - Edward Bukoski Michael MarchJIRA Performance Testing in Pictures - Edward Bukoski Michael March
JIRA Performance Testing in Pictures - Edward Bukoski Michael March
 
MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications
MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications
MWLUG 2017: BP107 Plotting the Path for your IBM Domino Applications
 
14 Habits of Great SQL Developers
14 Habits of Great SQL Developers14 Habits of Great SQL Developers
14 Habits of Great SQL Developers
 
The Serverless Native Mindset
The Serverless Native MindsetThe Serverless Native Mindset
The Serverless Native Mindset
 
MWLUG 2017: Workshop "IBM Domino Application Transformation" by panagenda
MWLUG 2017: Workshop "IBM Domino Application Transformation" by panagendaMWLUG 2017: Workshop "IBM Domino Application Transformation" by panagenda
MWLUG 2017: Workshop "IBM Domino Application Transformation" by panagenda
 
Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013Development & Test on AWS - IP Expo 2013
Development & Test on AWS - IP Expo 2013
 
PHP V/s ASP .net
PHP V/s ASP .netPHP V/s ASP .net
PHP V/s ASP .net
 
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham CarrickFrom Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
 

Similaire à DNN-Connect 2019: DNN Horror Stories

Evaluating Extensions: A Comprehensive Guide to Keeping Your Site Clean
Evaluating Extensions: A Comprehensive Guide to Keeping Your Site CleanEvaluating Extensions: A Comprehensive Guide to Keeping Your Site Clean
Evaluating Extensions: A Comprehensive Guide to Keeping Your Site CleanWill Strohl
 
DNN Upgrades Made Simple (DNN Summit 2019)
DNN Upgrades Made Simple (DNN Summit 2019)DNN Upgrades Made Simple (DNN Summit 2019)
DNN Upgrades Made Simple (DNN Summit 2019)Will Strohl
 
DNN Summit 2021: DNN Upgrades Made Simple
DNN Summit 2021: DNN Upgrades Made SimpleDNN Summit 2021: DNN Upgrades Made Simple
DNN Summit 2021: DNN Upgrades Made SimpleWill Strohl
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtimeDBmaestro - Database DevOps
 
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018hernanibf
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5SSW
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic applicationTaras Matyashovsky
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!pixelonion
 
Lessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentLessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentMartijn de Jong
 
Crm saturday madrid 2017 razwan - d365 solution release management
Crm saturday madrid 2017   razwan - d365 solution release managementCrm saturday madrid 2017   razwan - d365 solution release management
Crm saturday madrid 2017 razwan - d365 solution release managementDemian Raschkovan
 
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal InnovationsSymantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal InnovationsTag1 Consulting, Inc.
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsTaylor Lovett
 
USG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 DaysUSG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 DaysEric Sembrat
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalEric Sembrat
 
Modernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power PlatformModernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power PlatformJonathan Schultz
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with djangoYann Malet
 
Extending DevOps practices to SQL Server databases - story tracking - 20th ju...
Extending DevOps practices to SQL Server databases - story tracking - 20th ju...Extending DevOps practices to SQL Server databases - story tracking - 20th ju...
Extending DevOps practices to SQL Server databases - story tracking - 20th ju...Red Gate Software
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerRightScale
 

Similaire à DNN-Connect 2019: DNN Horror Stories (20)

Evaluating Extensions: A Comprehensive Guide to Keeping Your Site Clean
Evaluating Extensions: A Comprehensive Guide to Keeping Your Site CleanEvaluating Extensions: A Comprehensive Guide to Keeping Your Site Clean
Evaluating Extensions: A Comprehensive Guide to Keeping Your Site Clean
 
DNN Upgrades Made Simple (DNN Summit 2019)
DNN Upgrades Made Simple (DNN Summit 2019)DNN Upgrades Made Simple (DNN Summit 2019)
DNN Upgrades Made Simple (DNN Summit 2019)
 
DNN Summit 2021: DNN Upgrades Made Simple
DNN Summit 2021: DNN Upgrades Made SimpleDNN Summit 2021: DNN Upgrades Made Simple
DNN Summit 2021: DNN Upgrades Made Simple
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtime
 
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018Aiming for automatic updates - Drupal Dev Days Lisbon 2018
Aiming for automatic updates - Drupal Dev Days Lisbon 2018
 
A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5A modern architecturereview–usingcodereviewtools-ver-3.5
A modern architecturereview–usingcodereviewtools-ver-3.5
 
New life inside monolithic application
New life inside monolithic applicationNew life inside monolithic application
New life inside monolithic application
 
How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!How Not to Be Conned by Your Drupal Vendor!
How Not to Be Conned by Your Drupal Vendor!
 
Lessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentLessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions Deployment
 
Crm saturday madrid 2017 razwan - d365 solution release management
Crm saturday madrid 2017   razwan - d365 solution release managementCrm saturday madrid 2017   razwan - d365 solution release management
Crm saturday madrid 2017 razwan - d365 solution release management
 
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal InnovationsSymantec - From Early Drupal Adoption to the Latest Drupal Innovations
Symantec - From Early Drupal Adoption to the Latest Drupal Innovations
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
 
Managed WordPress Demystified
Managed WordPress DemystifiedManaged WordPress Demystified
Managed WordPress Demystified
 
USG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 DaysUSG Rock Eagle 2017 - PWP at 1000 Days
USG Rock Eagle 2017 - PWP at 1000 Days
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using Drupal
 
Modernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power PlatformModernize Solutions with SharePoint & the Power Platform
Modernize Solutions with SharePoint & the Power Platform
 
Building a custom cms with django
Building a custom cms with djangoBuilding a custom cms with django
Building a custom cms with django
 
Extending DevOps practices to SQL Server databases - story tracking - 20th ju...
Extending DevOps practices to SQL Server databases - story tracking - 20th ju...Extending DevOps practices to SQL Server databases - story tracking - 20th ju...
Extending DevOps practices to SQL Server databases - story tracking - 20th ju...
 
Project Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on DockerProject Sherpa: How RightScale Went All in on Docker
Project Sherpa: How RightScale Went All in on Docker
 

Plus de Will Strohl

DNN Community Newsletter: An In-Person Review of Recent Open-Source Activity
DNN Community Newsletter: An In-Person Review of Recent Open-Source ActivityDNN Community Newsletter: An In-Person Review of Recent Open-Source Activity
DNN Community Newsletter: An In-Person Review of Recent Open-Source ActivityWill Strohl
 
Unveiling the Secrets of Software Company Transitions: Navigating the Path to...
Unveiling the Secrets of Software Company Transitions: Navigating the Path to...Unveiling the Secrets of Software Company Transitions: Navigating the Path to...
Unveiling the Secrets of Software Company Transitions: Navigating the Path to...Will Strohl
 
DNN Awareness Group Presentation
DNN Awareness Group Presentation DNN Awareness Group Presentation
DNN Awareness Group Presentation Will Strohl
 
DNN Summit: Robots.txt & Multi-Site DNN Instances
DNN Summit: Robots.txt & Multi-Site DNN InstancesDNN Summit: Robots.txt & Multi-Site DNN Instances
DNN Summit: Robots.txt & Multi-Site DNN InstancesWill Strohl
 
DNN CMS Awareness Group Meeting: December 2020
DNN CMS Awareness Group Meeting: December 2020DNN CMS Awareness Group Meeting: December 2020
DNN CMS Awareness Group Meeting: December 2020Will Strohl
 
Tips & Tricks: Working from Home and Staying Productive
Tips & Tricks: Working from Home and Staying ProductiveTips & Tricks: Working from Home and Staying Productive
Tips & Tricks: Working from Home and Staying ProductiveWill Strohl
 
DNN Awareness Meeting July 2019
DNN Awareness Meeting July 2019DNN Awareness Meeting July 2019
DNN Awareness Meeting July 2019Will Strohl
 
DNN-Connect 2019: Build a Module in Minutes
DNN-Connect 2019: Build a Module in MinutesDNN-Connect 2019: Build a Module in Minutes
DNN-Connect 2019: Build a Module in MinutesWill Strohl
 
DNN Awareness Meeting May 2019
DNN Awareness Meeting May 2019DNN Awareness Meeting May 2019
DNN Awareness Meeting May 2019Will Strohl
 
DNN Awareness Meeting April 2019
DNN Awareness Meeting April 2019DNN Awareness Meeting April 2019
DNN Awareness Meeting April 2019Will Strohl
 
DNN Awareness Meeting March 2019
DNN Awareness Meeting March 2019DNN Awareness Meeting March 2019
DNN Awareness Meeting March 2019Will Strohl
 
DNN Awareness Meeting February 2019
DNN Awareness Meeting February 2019DNN Awareness Meeting February 2019
DNN Awareness Meeting February 2019Will Strohl
 
DNN Awareness Meeting January 2019
DNN Awareness Meeting January 2019DNN Awareness Meeting January 2019
DNN Awareness Meeting January 2019Will Strohl
 
DNN Awareness Meeting December 2018
DNN Awareness Meeting December 2018DNN Awareness Meeting December 2018
DNN Awareness Meeting December 2018Will Strohl
 
DNN Awareness EAG Meeting September 2018
DNN Awareness EAG Meeting September 2018DNN Awareness EAG Meeting September 2018
DNN Awareness EAG Meeting September 2018Will Strohl
 
DNN Awareness EAG Meeting August 2018
DNN Awareness EAG Meeting August 2018DNN Awareness EAG Meeting August 2018
DNN Awareness EAG Meeting August 2018Will Strohl
 
June 2018 DNN Awareness Group Meeting
June 2018 DNN Awareness Group MeetingJune 2018 DNN Awareness Group Meeting
June 2018 DNN Awareness Group MeetingWill Strohl
 
Build a DNN Module in Minutes
Build a DNN Module in MinutesBuild a DNN Module in Minutes
Build a DNN Module in MinutesWill Strohl
 
DNN Database Tips & Tricks
DNN Database Tips & TricksDNN Database Tips & Tricks
DNN Database Tips & TricksWill Strohl
 
Hotcakes Commerce Introduction for Developers
Hotcakes Commerce Introduction for DevelopersHotcakes Commerce Introduction for Developers
Hotcakes Commerce Introduction for DevelopersWill Strohl
 

Plus de Will Strohl (20)

DNN Community Newsletter: An In-Person Review of Recent Open-Source Activity
DNN Community Newsletter: An In-Person Review of Recent Open-Source ActivityDNN Community Newsletter: An In-Person Review of Recent Open-Source Activity
DNN Community Newsletter: An In-Person Review of Recent Open-Source Activity
 
Unveiling the Secrets of Software Company Transitions: Navigating the Path to...
Unveiling the Secrets of Software Company Transitions: Navigating the Path to...Unveiling the Secrets of Software Company Transitions: Navigating the Path to...
Unveiling the Secrets of Software Company Transitions: Navigating the Path to...
 
DNN Awareness Group Presentation
DNN Awareness Group Presentation DNN Awareness Group Presentation
DNN Awareness Group Presentation
 
DNN Summit: Robots.txt & Multi-Site DNN Instances
DNN Summit: Robots.txt & Multi-Site DNN InstancesDNN Summit: Robots.txt & Multi-Site DNN Instances
DNN Summit: Robots.txt & Multi-Site DNN Instances
 
DNN CMS Awareness Group Meeting: December 2020
DNN CMS Awareness Group Meeting: December 2020DNN CMS Awareness Group Meeting: December 2020
DNN CMS Awareness Group Meeting: December 2020
 
Tips & Tricks: Working from Home and Staying Productive
Tips & Tricks: Working from Home and Staying ProductiveTips & Tricks: Working from Home and Staying Productive
Tips & Tricks: Working from Home and Staying Productive
 
DNN Awareness Meeting July 2019
DNN Awareness Meeting July 2019DNN Awareness Meeting July 2019
DNN Awareness Meeting July 2019
 
DNN-Connect 2019: Build a Module in Minutes
DNN-Connect 2019: Build a Module in MinutesDNN-Connect 2019: Build a Module in Minutes
DNN-Connect 2019: Build a Module in Minutes
 
DNN Awareness Meeting May 2019
DNN Awareness Meeting May 2019DNN Awareness Meeting May 2019
DNN Awareness Meeting May 2019
 
DNN Awareness Meeting April 2019
DNN Awareness Meeting April 2019DNN Awareness Meeting April 2019
DNN Awareness Meeting April 2019
 
DNN Awareness Meeting March 2019
DNN Awareness Meeting March 2019DNN Awareness Meeting March 2019
DNN Awareness Meeting March 2019
 
DNN Awareness Meeting February 2019
DNN Awareness Meeting February 2019DNN Awareness Meeting February 2019
DNN Awareness Meeting February 2019
 
DNN Awareness Meeting January 2019
DNN Awareness Meeting January 2019DNN Awareness Meeting January 2019
DNN Awareness Meeting January 2019
 
DNN Awareness Meeting December 2018
DNN Awareness Meeting December 2018DNN Awareness Meeting December 2018
DNN Awareness Meeting December 2018
 
DNN Awareness EAG Meeting September 2018
DNN Awareness EAG Meeting September 2018DNN Awareness EAG Meeting September 2018
DNN Awareness EAG Meeting September 2018
 
DNN Awareness EAG Meeting August 2018
DNN Awareness EAG Meeting August 2018DNN Awareness EAG Meeting August 2018
DNN Awareness EAG Meeting August 2018
 
June 2018 DNN Awareness Group Meeting
June 2018 DNN Awareness Group MeetingJune 2018 DNN Awareness Group Meeting
June 2018 DNN Awareness Group Meeting
 
Build a DNN Module in Minutes
Build a DNN Module in MinutesBuild a DNN Module in Minutes
Build a DNN Module in Minutes
 
DNN Database Tips & Tricks
DNN Database Tips & TricksDNN Database Tips & Tricks
DNN Database Tips & Tricks
 
Hotcakes Commerce Introduction for Developers
Hotcakes Commerce Introduction for DevelopersHotcakes Commerce Introduction for Developers
Hotcakes Commerce Introduction for Developers
 

Dernier

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Dernier (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

DNN-Connect 2019: DNN Horror Stories

  • 1. DNN Horror Stories Things That DNN Developers Shouldn't Do
  • 2.
  • 3. Will Strohl • CEO & Founder, Upendo Ventures • Leader of the Awareness EAG • Former CEO, Hotcakes Commerce • Former DNN Corp employee • Using DNN since 2003 • DNN MVP since 2013* • DNN Author & Technical Editor • Founder of DNNCon (Day of DNN) • Founded 2 DNN User Groups* • 25+ open source projects https://upendoventures.com/How/People/Will-Strohl “hismightiness” @WillStrohl
  • 4. Upendo Ventures • Platform & Evoq • E-Commerce • Implementations • Integrations • Custom Modules • Upgrades & Downgrades • Custom Themes • Training • Fixing stuff other people did ;) @UpendoVentures UpendoVentures.com We Use Technology to Help Your Business Change People’s Lives
  • 5. DNN Horror Stories Things That DNN Developers Shouldn't Do
  • 6. Who? • Website owners • Website administrators • Website developers • Content editors
  • 7. Why? • We need to grow the ecosystem • Poor implementations make DNN look bad • This is how we’ve been getting business • ~80% of our DNN business • Affects DNN upgrades • This is all completely avoidable • DNN is only as good as the implementor… • Protect yourself & your website
  • 9. Communications Problem • The vendor takes too long to respond. Resolution Give a reasonable buffer, but the amount of time and effort it takes to get responses says how important they take your business.
  • 10. Low Rates Problem • The rates appear to be too good to be true. Resolution If you think the rate is exceptionally low, it is. You usually get what you pay for. Pay attention to agency/partner directories and follow-up on client testimonials.
  • 11. Budget Problem • The vendor under-budgets the effort for your project. Resolution This has the same impact as rates. Put your project out to bid to multiple vendors.
  • 13. Shared Logins Problem • Administrators and/or consultants are using shared logins. Resolution No matter how time-consuming, every single person in the project should have a unique login.
  • 14. Backup Plan (I) Problem • The web/database server is not being backed up regularly. Resolution Use a service like Acronis to backup the server no less than 1-4 times each month. Keep off-site copies.
  • 15. No Backup Plan (II) Problem • The database/website is not being backed up regularly. Resolution Use a service like Evotiva DNN Backup to backup the website no less than 1-4 times each day/week. Keep an on- and off-site copies.
  • 16. SQL Maintenance Plan Problem • The database is not being backed up regularly. Resolution Hourly: Backup transaction logs; Daily: Check DB integrity; Reorganize index; Update statistics; Maintenance cleanup; Weekly: Shrink DB; Rebuild index;
  • 17. RDP Access Problem • RDP access is not restricted. Resolution RDP access should be protected either by IP address filter and/or VPN.
  • 19. Inline Styles Problem • Yes. This is still happening. • CSS is being applied in module settings, HTML, and templates. Resolution Apply these updates in the theme.
  • 20. Portal.css Problem • Very rare that this is necessary. • CSS is added in the Site Settings/Custom CSS. Solution • Apply these updates in the theme.
  • 21. Portal.css Problem • Very rare that this is necessary. • CSS is added in the Site Settings/Custom CSS. Solution • Apply these updates in the theme.
  • 22. Local CSS & JS Problem • Third-party libraries used. • Could be using a CDN version. • Site owner has no choice. • Bloat. Solution • Package and/or use CDN versions of the libraries.
  • 23. Uncompressed CSS & JS Problem • Third-party and/or local libraries used. • Usually an artifact from development or laziness. • Bloat and decreased performance. Solution • Include a compression step in your build process. Point to it.
  • 25. Not Using Source Control Problem • Yes. We’re still seeing this today. • Server back-ups are not good enough. Solution • GitHub & BitBucket have free/low cost options for public and private repositories.
  • 26. Project/Solution Architecture Problem • Custom/commercial extensions are developed/built within the website. Solution • Any professional extension should not be embedded within the website application itself. It should build outside of the website.
  • 27. Source Code Location Problem • Storing the source code in the website folder(s). • Forces checking in of the website. • Difficult to on-board new developers & find code. • Security! Solution • Store the source code in an actual development location.
  • 28. Source Code Location (II) Problem • Storing the source code in multiple locations. • Difficult to on-board new developers & find code. • Often leads to re-generating code that is assumed missing. Solution • Centralize the source code in a single solution.
  • 29. Using SQL Instead of the API Problem • SQL is used to directly manipulate data in the database. • Difficult to track and audit. • Could break any given upgrade. Solution • Take the time to know the DNN source code to be forward compatible.
  • 30. Validation of User Input Problem • Form fields, query strings, and uploads are not validated. Solution • InputFilter() should be used for all user-entered data. • Encoding and validation used for all query string values. • Uploads should be validated for format & integrity.
  • 31. Third-Party Components Problem • Third-party libraries/frameworks are used, but not updated. Solution • In every release, any integrated libraries/frameworks should be upgraded, if possible.
  • 32. Using NuGet Problem • Manual references to other integrations/libraries are used instead of NuGet. Solution • Whenever possible, package managers like NuGet and/or npm should be used.
  • 33. Extension Packaging Problem • “All you need to do to install/upgrade it is FTP it to the website.” Solution • All extensions and integrations should be versioned and use an installer.
  • 34. Build Warnings Problem • Build warnings are ignored and not addressed. Solution • Build warnings are a key indication that an extension will not be upgrade-friendly. • Build warnings should always be addressed as soon as they’re noticed.
  • 35.
  • 36. Upendo Ventures Final Q&A We use technology to help your business change people’s lives UpendoVentures.com solutions@upendoventures.com (650) 381-9160 548 Market St. #65401 San Francisco, CA 94104

Notes de l'éditeur

  1. Reference: https://dba.stackexchange.com/questions/2687/sql-server-maintenance-plan-best-practices-on-tasks-and-scheduling