35
Make Sitecore Architecture More Powerful

24 Sitecore Tips that Every Sitecore Architect Needs to Know

Embed Size (px)

Citation preview

Page 1: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

Make Sitecore

Architecture More

Powerful

Page 2: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

HELLO!I am Ashish BansalI am here because I love sitecore and belive in sharing my sitecore knowledge. You can find me at @sitecore_ashish on twitter

Page 3: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

How to make Sitecore

architecture more powerful!Sharing some tips and best pratices for robost sitecore

architecture

Page 4: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

“Architecture begins where engineering ends.

- Walter Gropius”

“Architecture is as important in software development as it is in

building construction. No one breaks ground on a

building without any plans and good architect”

Page 5: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

The architect should be very careful about

Sitecore IA architecture and initial back

grounding of the project.

He/she should know all the alternative and

pros/cons of the technology and of course

cost.

Page 6: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

24 Points

That every Sitecore Architect Should Know:With the non-functional requirements captured, the next step is to start thinking about how you're going to solve the problems set out by the stakeholders and define the architecture.

Page 7: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

1: Identify the scope of the project

scope of the project must decide at the very begging  of the any project so accordingly we can design/architect the application, below are some few sample questions that needs to be asked for a customer for Sitecore applicable

Page 8: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

› Identify the scope of the project:› How will the website use the content?› Scope of data migration?› Scope of Web Forms?› Scope of any third party integration like CRM,

Sales-force, Facebook› Infrastructure requirement would be on cloud

or physical servers?› Any specific performance required?› Any rapid development requires like

campaign etc.› Scope of multi-lingual and multi-site?› Scope of DMS, what type of reporting they

want?› What kinds of content items exist?

Page 9: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

› What types of content elements will appear consistently on multiple pages (also known as reusable content)?

› Where does the aforementioned, reusable content come from?

› Does the reusable content display different content on different pages?

› Does the system display content from other systems?

› How do you integrate the content from the other systems?

› Is the solution multilingual? If so, does the content on the multilingual versions differ?

› What kinds of users will have access to the CMS?

› What website regions or content types will each user have access to?

Page 10: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

2: Choose the Right Sitecore version:

Always choose the right version of Sitecore, before project getting started. It’s not always good to implement the latest version of Sitecore, it should be decided after considering the factors below

1. Team strength2. Product version maturity and stability3. Cost4. Scope and timeline of the Project.

Page 11: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

3: Selection of technology:

Web Forms and MVC are two different approaches for building Sitecore application

Both can be excellent choices, and both can be very bad choices,

Depending the requirements of the application and the knowledge and experience of the team on technology.

Page 12: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

4: Setup Sitecore project and code deployment methodology

There are two ways to set up the visual studio solution with Sitecore. Your solution is fully coupled with the Sitecore web site. Your solution is outside of Sitecore's website and you use some post build process to deploy. For more information please visit @

http://sitecoresolution.blogspot.in/2015/02/setup-sitecore-development-environment.htmlAnd it’s always recommended to keep your project outside the root directory

Page 13: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

5: Identify the build deployment process:

Architect need to be decided which methodology should be used for deployment purpose, obviously the cost can be the most important factor like TDS has license cost over serialization or package creation methodologies.

Page 14: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

6: Use of Sitecore Rocks:its need to be decided that Sitecore rock would be used in the project or not. Sitecore itself recommends using this tool for rapid development.

Page 15: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

7: Responsive design framework

RWD is very common now’s a day, it need to be decided which framework would use for responsive design like bootstrap, htm5 etc. So, accordingly resource and design would be finalized.

Page 16: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

8: Third party integrationIt should be proper planning for any third party integration with Sitecore application like CRM, Sales force, etc., so, accordingly IA architecture and solution can be designed.

Page 17: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

9: Defining IAInformation architecture design can be as significant as the coding of a CMS solution. Below are some important aspect that should be considered

Page 18: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

10: Scope of DMSSitecore layout, template, DB design (Mongo-DB in Sitecore 7.5 or later) must be designed based on the DMS scope like personalization, email campaigning etc.

Page 19: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

11: Search selectionsearch is the backbone of any ECM system, so need to decide very carefully which search pattern or framework should be implemented like Lucence, Solr, Coveo, custom search pattern. You can find some information on Coveo search here http://sitecoresolution.blogspot.in/2014/09/coveoindustrys-most-advanced-sitecore.html

Page 20: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

12: Setting multiple site solution

It is possible to have multiple sites in the same solution in Sitecore, but there are a few pitfalls and issues which need to be taken care while developing the solution.

Page 21: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

13: Identify the multi-lingual solution

Architect also needs to consider the factor of multi-lingual solution while creating an IA including template, layouts, presentation and standard value.

Page 22: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

14: Publishing architecture

publishing is very time consuming process in Sitecore application, sometime we required the dedicated Sitecore instance for publishing task to avoid long queue.So here we need to decide and set up the accordingly

Page 23: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

15: Setup multiple CM and CD:

By default, each Sitecore instance provides both content management (CM, for CMS users maintains the managed sites) and content delivery (CD, for visitors to those managed sites). But we can separate the CM and CD facilities into separate environments, typically involving separate servers. It’s always recommended to keep separate the CM and CD environment. Below are some advantage of separating CM and CD:· Scalability· Performance· Security· Administration

Page 24: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

16: Handling media library:

we can manage a media library within Sitecore by two ways either inDatabase or file system. Both have pros and cons so, at the time of designing the project we need to decide the best approach. Also, we need to consider some cloud based approaches like DAM with Sitecore etc.

Page 25: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

17: Caching implementation

Cache plays very important role in website performance. So, an understanding of all Sitecore caches is really important before implemented. If we understand all of them, then it would be easy to do performance tuning using cache settings.

Page 26: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

18: Web form implementation

Architect also needs to identify the web form marketer scope and find out how it compatible with MVC.

Page 27: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

19: Logging mechanismSitecore uses log4net for its logging purposes, but in some situations we need to build a custom logging mechanism. One of the most common scenarios would be a multi-site solution in which the standard log will become huge and finding the exact trace information becomes painful. so we need to consider this factor at the time of designing the architecture of the application.

Page 28: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

20: Error handling in Sitecore

we need to consider various levels of exception/error handling like Custom Errors, Try... Catch... Finally Blocks, XSL Exception Management, Web Forms Exception Management, MVC Exception Management, Application (Global) Exception Management, Error Pages, Managing Exceptions. So after taking all error handling, need to decide the base architecture where it should be forcefully implemented..

Page 29: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

21: Sitecore customizationArchitect needs to identify the scope of customization in Sitecore like pipeline and some UI customization so accordingly template and project should be modified from the very beginning of the project.

Page 30: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

22: Consider Sitecore performance

Sitecore IA plays a very important role in performance point of view, below are some points that need to be considered for optimization purpose of the application:

· Avoid Item which has more than 100 items.· Caching tuning· Enable CSS, JS Caching, Compression· IA architecture (avoid creating items with hundreds of children· Optimization in publishing wizard· Prevent use of Get Descendants· IIS level optimization

Page 31: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

23: Sitecore securitySitecore provides a comprehensive security infrastructure that you can use to secure any item in any Sitecore database. An architect should know all the aspect of Sitecore security and should implement at the time of designing the application. Sitecore also provides additional functionality that enables you to use Microsoft Dynamics Customer Relationship Management (CRM) and Active Directory (AD) for authentication.

Page 32: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

Below are the some security topics that need to be considered at the time of designing the site.· Access rights· Users· User profile· Roles (groups)· Domains· Security inheritanceFor more information:

http://sitecoresolution.blogspot.in/2015/05/go-live-security-checklist-sitecore.html

Page 33: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

24: Scope of data migration

Scope of data migration requirement should be handled from beginning of the project here you can find the complete details on this topic.

http://sitecoresolution.blogspot.in/2015/01/sitecore-tips-techniques-on-data.html

Page 34: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

A picture is worth a thousand wordsA complex idea can be conveyed with just a single still image, namely making it possible to absorb large amounts of data quickly.

Page 35: 24 Sitecore Tips that Every Sitecore Architect Needs to Know

THANKS!Any questions?You can find me at:@sitecore_ashishhttp://sitecoresolution.blogspot.comEmail me on [email protected]