development with crafter cms a guide to modern java web

47
A Guide to Modern Java Web Development with Crafter CMS E-book

Upload: others

Post on 18-Jun-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Development with Crafter CMS A Guide to Modern Java Web

A Guide to Modern Java Web Development with Crafter CMS

E-book

Page 2: Development with Crafter CMS A Guide to Modern Java Web

Every Application has ContentE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com2

A Content Management System (CMS) is a critical component of almost every modern application.

Here’s why:Content is now a critical part of almost every kind of modern application.

When developers are involved in updating an application’s content the process is slow, updates are difficult and time that could be spent on making the application code better is wasted. Smart developers know that separating code from content allows an application to stay fresh, relevant and manageable.

Crafter CMS is an APP CMS. Unlike other WCM technologies that focus ONLY on content authors, Crafter CMS focuses on authors, developers, the development process and integration with your enterprise.

An APP CMS is for anyone one that needs to quickly build and iterate on highly scalable, highly personalized content centric applications. An APP CMS is for organizations that depend and compete based on innovation.

Page 3: Development with Crafter CMS A Guide to Modern Java Web

Developers are Still Searching for an AnswerE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com3

60+ years into programming developers are still looking for a better way to build software. Today’s developers face two major challenges:

1. Finding a platform, a process and a set of tools that meets the demands on them for agility while maintaining quality.

2. Few platforms offer the developer the programming and Software Development Lifecycle (SDLC) support they need while also providing out of the box integration, scalability, performance, and critical services like security, persistence, personalization and content renditioning, query and search.

In this e-book, we’ll explore what makes Crafter the perfect platform for modern Java-based, Content centric applications, websites and portals.

Page 4: Development with Crafter CMS A Guide to Modern Java Web

HOW DOES CRAFTER HELP

4

Page 5: Development with Crafter CMS A Guide to Modern Java Web

E-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com5

Crafter was built from the ground up with today’s environment and challenges in mind.

Cloud scalability, performance, social, the internet of things and the rise of multi-channel and multi-screen are part of the Crafter CMS’s architecture.

Era of Engagement

Page 6: Development with Crafter CMS A Guide to Modern Java Web

Built for the EnterpriseE-book: A Guide to Modern Java Web Development with Crafter CMS

6

- Internationalization

- High Performance Content Delivery

- Ease of Integration – CRM, ERP, etc.

- On Premise and Cloud Support

- Social, User Generated Content

- Identity management, SSO and profiles

- Multi-tenant infrastructure

- User Friendly Content Authoring

- In-context Preview and Editing

- Multi-Channel Publishing

- Personalization and Content Targeting

- Time-machine like versioning

- Web Analytics Integration

- Site Blueprints

A Modern Open Source CMS with modern enterprise capabilities.

Page 7: Development with Crafter CMS A Guide to Modern Java Web

Easy to Use Tools for Content CreatorsE-book: A Guide to Modern Java Web Development with Crafter CMS

7

Crafter CMS provides authors with powerful yet easy to use content authoring tools such as drag and drop design, and in-context editing and review capabilities that anyone can use.

Page 8: Development with Crafter CMS A Guide to Modern Java Web

The Right Answer for DevelopersE-book: A Guide to Modern Java Web Development with Crafter CMS

8

Most CMS platforms are great for content authors and tolerable at best for developers. Crafter CMS is GREAT for author AND DEVELOPERS!

● Work with the most technology you know and love○ Java and Groovy○ Any front end framework you want○ JSON and XML○ Solr and MongoDB

● Work inside your tools and SDLC Process○ Work in your local IDE○ Manage your code in source control○ Easily move code through environments and

your SDLC○ Easily move content between environments

● Quickly create, test and deploy code with lightweight scripting and deployment

Page 9: Development with Crafter CMS A Guide to Modern Java Web

The Right ArchitectureE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com9

Architecture dictates what is possible. To get different results, you must be built different. Crafter’s architecture is unique in the Java space.

Unlike every other CMS that leverages problematic shared SQL databases or Java Content repositories (JCR) that are difficult to secure and scale, Crafter takes a completely different approach.

Crafter CMS is decoupled and leverages disk, memory and Solr. It’s blazing fast and scales easily and inexpensively.

Crafter’s architecture is focused on delivering better results in the following areas:

● High performance multi-channel. Personalized content delivery

● Cost effective scalability● Ease of digital experience creation and management● Ease of development● Integration with development tools and SDLC#NoSQL

#NoJCR… No more problems

Page 10: Development with Crafter CMS A Guide to Modern Java Web

Leverage & Learn Industry Standard TechE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com10

Most development platforms require you to learn an entirely new skill set -- that, once learned, pigeon-holes you as a specific kind of developer on a niche or even proprietary technology stack.

Crafter CMS takes the exact opposite approach. Crafter is based on and programmed with the industry’s most standard, proven, high performance enterprise grade technology.

Developers leverage and bolster their existing skills with industry standard technology.

● Easier to find and hire talent● Shorter startup ramps and smaller learning curves● Faster delivery● Better quality ● Happier more flexible and marketable developers

Page 11: Development with Crafter CMS A Guide to Modern Java Web

100% Open SourceE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com11

Every line of our code is available on GitHubhttp://github.com/craftercms

We believe transparency and openness breeds better software and greater innovation.

Crafter CMS is open source software built on open source software. Crafter CMS is constructed using todayʼs leading software architecture practices and open source components including JGit, FreeMarker, Spring Framework, Groovy, and Apache Solr, MongoDB and others.

● More Innovation● More Secure● No Vendor Lock-in

Page 12: Development with Crafter CMS A Guide to Modern Java Web

Deploy How and Where You NeedE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com12

On Premise Managed Service

CrafterCloud

SaaS

Docker

Hybrid

Page 13: Development with Crafter CMS A Guide to Modern Java Web

Part of Your Enterprise Content ManagementE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com13

Digital Experience doesn’t exist in a vacuum. For many large organizations, WCM / WXM is part of a larger Enterprise Content Management picture. While many CMS’s only handle WCM needs, Crafter CMS is built for the enterprise.

Crafter CMS integrates seamlessly with your enterprise ECM and Process Orchestration platforms.

Leverage platforms like Alfresco’s content repository, Activiti and other CMIS based stores to support ECM use-cases like distributing corporate documents and videos, integrating with your corporate Digital Asset Management (DAM), Collaboration, E-Learning and Records Management,

Page 14: Development with Crafter CMS A Guide to Modern Java Web

Integration. Modularity. Plug-in Support.E-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com14

Crafter CMS is 100% modular, pluggable and extensible. Every component in Crafter CMS is entirely configurable and customizable.

Customize the tools through configuration or extend them through plugins from our app store or supply your own.

Page 15: Development with Crafter CMS A Guide to Modern Java Web

Get Help When You Need ItE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com15

Crafter CMS has a great open source community and a ton of on line documentation!

That said, companies running mission critical systems want support and from time to time developers need support

and training. Crafter Software has you covered:

● Technical and Operational Documentation

● Commercial licenses

● Certified builds and patches

● On-premise production support

● SaaS content management capabilities

● Training and architectural assistance

● Award winning partner ecosystem

Page 16: Development with Crafter CMS A Guide to Modern Java Web

It’s All About The Details

16

Page 17: Development with Crafter CMS A Guide to Modern Java Web

Decoupled ArchitectureE-book: A Guide to Modern Java Web Development with Crafter CMS

17

Crafter CMS provides a decoupled architecture consisting of two major applications: Crafter Studio for content authoring, management, and publishing, and Crafter Engine for content delivery of dynamic website applications. All content is stored in the underlying Alfresco repository.

Content is created, maintained and managed in the safety of the Crafter Studio authoring environment. Changes are submitted through workflow for review and once approved content and website components are deployed to a separate high-performance delivery infrastructure running Crafter Engine.

A Decoupled Architecture provides:● Native multi-channel PUSH based publishing● Better scalability, performance● Stronger security● Cleaner architecture, Separation of concerns● Reduced complexity● Lower total cost of ownership

Page 18: Development with Crafter CMS A Guide to Modern Java Web

Innovative Content DeliveryE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com18

Crafter Engine is an extremely scalable, high-performance, dynamic content delivery server built in Java with JEE technologies and today’s most popular Java based application framework, Spring MVC.

You don’t need to train or re-tool your development team! Spring Bean Factory and Spring MVC are powerful yet simple.

Most importantly, these technologies are among the most widely used and well understood frameworks in the Java software development space.

Page 19: Development with Crafter CMS A Guide to Modern Java Web

Extreme PerformancePerformance is a critical. Studies have shown that page load times directly impact your bottom line.

Crafter Engine can serve over 1 million fully-dynamic renders per hour on a single node.

19

Page 20: Development with Crafter CMS A Guide to Modern Java Web

Content Services, Dynamic WebsitesE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com20

Dynamic Content

Dynamic Navigation

Powerful Search

Built in user profile Management

Integrated Analytics

Drive compelling, effective dynamic user experiences that scale to meet the demands of the world’s most visited websites, content-rich apps and modern digital experiences.

Page 21: Development with Crafter CMS A Guide to Modern Java Web

POWERFUL SEARCH & QUERYCrafter Engine provides search and rich, dynamic query driven content capabilities with Apache Solr.

Faceted Navigation Fields & Data Types Boosting Binary Document indexing & much more

Matching Highlighting

Fuzzy Matching

21

Page 22: Development with Crafter CMS A Guide to Modern Java Web

AT THE HEART OF CRAFTER ENGINE is Spring MVC. Spring’s framework provides a powerful foundation for Java based rapid application development. All components and services within the system are assembled via Spring Bean Factory making it straightforward to add new capabilities as well as override and extend out of the box functionality.

22

Page 23: Development with Crafter CMS A Guide to Modern Java Web

Built with Modular ComponentsE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com23

Crafter Engine’s larger components such as Search, Profile, Social and Commerce are packaged as separate war files.

This keeps each component simple and enables a wide range of deployment options.

Page 24: Development with Crafter CMS A Guide to Modern Java Web

Tier and Scale HorizontallyE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com24

Because key components are packaged as individual JEE applications and each application is stateless, the platform is extremely scalable.

You can tier any component of the system in order to scale out horizontally according to your specific requirements.

Page 25: Development with Crafter CMS A Guide to Modern Java Web

Service Oriented DesignE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com25

Crafter Engine’s architecture is stateless and service oriented.

Websites and content rich applications can be constructed more quickly and are inherently more scalable.

Crafter Engine provides a wide range of relevant services out of the box and makes it easy to add your own.

Content Services

Social Content Services

Search Services

Profile Services

Commerce Services

Single Sign-on

Page 26: Development with Crafter CMS A Guide to Modern Java Web

Content is stored in the repository as XML in a format that is AGNOSTIC to delivery channel or presentation.

● Content Re-use● Easier integration● Simplify deployment and dev-ops processes● Easier Migration

Content First

26

XML</>

Page 27: Development with Crafter CMS A Guide to Modern Java Web

Content InheritanceE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com27

Crafter Engine supports a concept called content inheritance.

Content inheritance allows authors to create and manage content that is shared across a section of the information architecture in a single location.

Page 28: Development with Crafter CMS A Guide to Modern Java Web

Coding the Client-Side Front EndE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com28

You have complete control of the client side frameworks with Crafter Engine.

Crafter Engine ships with out of the box components for generating navigation, breadcrumbs, and other site features that conform with markup required by popular frameworks like Twitter Bootstrap.

Don’t get locked into a CMS that dictates your front end technologies. Crafter CMS lets you use any front end markup and frameworks you want.

Further, Crafter CMS provIdes powerful RESTful APIs as well as the ability to create your own RESTful APIs.

Deliver Content as a Service to support you native mobile applications, digital signage and other thick clients.

Page 29: Development with Crafter CMS A Guide to Modern Java Web

Coding the Server-Side Front EndE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com29

The presentation layer for Crafter Engine on the server side is based on Freemarker Templates.

Freemarker is extremely fast and easy to use. There are no assumptions or constraints put on the markup which makes it ideal for addressing accessibility, mobile and other concerns.

Page 30: Development with Crafter CMS A Guide to Modern Java Web

Coding the Server BackendE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com30

Use Groovy and Grapes to download and interface with the libraries you need. Scripting makes it easy to write and deploy

● Page and component controllers● RESTful services● Scheduled jobs● Interceptors / servlet filters● Backend services and Data Access Layers

Or fully leverage the power of Java and Spring through traditional deployment. Simply package your Java classes in a standard JAR along with a Spring context file and deploy it in the shared libraries folder of your application server.

Page 31: Development with Crafter CMS A Guide to Modern Java Web

Leverage Your Tools and ProcessE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com31

○ Work in your local IDEs

○ Manage your code in standard source control

○ Easily move code through environments and your SDLC

○ Quickly move production content to test environments

CODE

CONTENT

Page 32: Development with Crafter CMS A Guide to Modern Java Web

If you want to create dynamic experiences, you need modern technology.

Crafter Studio is the content authoring, management and publishing application (and lightweight development environment) that allows non-technical content creators to create, collaborate on, manage and publish content across one or more online channels.

Content authoring tools are powerful yet user-friendly. The in-context preview capability enables content and dynamic behavior to be reviewed and optimized immediately. Content targeting tools allow editors to personalize the message across all devices. And workflow and publishing tools allow content to be delivered to end users rapidly.

Capabilities include:● WYSIWYG authoring tools ● Live in-context preview for Web and mobile● Dashboards for tasks and workflow● Multi-channel publishing● Content targeting and personalization● Integrated analytics

Crafter Studio

32

Page 33: Development with Crafter CMS A Guide to Modern Java Web

Easy Multi-channel Content AuthoringE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com33

In-Context Preview Channel Preview Targeting & Personas

Authors review content and functional updates in context through a real, fully functional website all within the safety of the authoring environment sandbox.

Authors can preview and modify content for every digital channel their content will be published to before making it live, including all types of mobile devices.

The key to reaching customers through all of the noise on the web is to speak directly to them with timely, personalized content.

Crafter Studio makes it easy for authors to quickly create and test personalized, targeted content across different user personas and channels.

Page 34: Development with Crafter CMS A Guide to Modern Java Web

Authors can edit content at the same time they are reviewing it without leaving the page.

All of the authoring tools ensure that the author is working in the right form factor and the right styles for the channel they are editing for.

Authors can connect to the repository and use rich native desktop tools like Adobe Photoshop to create and modify content.

Authors can construct pages with reusable web components via drag and drop.

In-Context Editing Native Tool Support Component-based Page Construction

34

Page 35: Development with Crafter CMS A Guide to Modern Java Web

AnalyticsE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com35

Crafter StudioProvides your authoring team with website analytics right within the authoring environment.

Crafter Studio integrates with 3rd party Web Analytics platforms, and provides an out of the box integration with Google Analytics.

Page 36: Development with Crafter CMS A Guide to Modern Java Web

WorkflowsE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com36

Crafter Studio makes it very easy to manage content and code changes in a review and publishing workflow.

A simple dashboard allows authors to track content through every step in the workflow.

Manage Content

Page 37: Development with Crafter CMS A Guide to Modern Java Web

Data Sources and IntegrationE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com37

Content form controls like checkboxes, dropdowns, and image pickers are developed independently from their source of data.

This makes the control reusable across a wide range of data sources and allows Crafter Studio to plug in to additional sources of content such as a Digital Asset Management systems or a Product Information Management system.

Page 38: Development with Crafter CMS A Guide to Modern Java Web

Most if not all common development tasks can be completed, tested and deployed entirely through Crafter Studio.

Crafter CMS leverages the most modern and powerful Java and browser based development frameworks. Developing new capabilities for your website is at least ten times easier and faster in Crafter CMS than on any other platform.

In this section we’ll cover the steps performed during component development.

Development Lifecycle

38

Page 39: Development with Crafter CMS A Guide to Modern Java Web

Building and Deploying Apps In Crafter CMSE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com39

Developers

Authors

Reviewers and

PublishersCustomers

Page 40: Development with Crafter CMS A Guide to Modern Java Web

Developer Step 1: Define the ModelE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com40

in creating any page, component or other content object is to define the model that authors will use to configure the component.

Creating a content model is a simple drag and drop process.

The First Step

Page 41: Development with Crafter CMS A Guide to Modern Java Web

Developer Step 2: Create a TemplateE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com41

In is to create the rendering template. The template is the view layer on top of the model.

Use any Markup you want. From HTML5 to VRML and anything in between, Crafter CMS is completely agnostic to the frameworks you use.

Further, unlike nearly every other CMS and application framework, Crafter’s libraries do not interfere with your markup or require you to work around predefined markup and structure.

The Second Step

Page 42: Development with Crafter CMS A Guide to Modern Java Web

Developer Step 3: Create a ControllerE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com42

Is to define a controller that contains any business logic you want to execute.

Controllers provide clean separation between your templates and the model, giving you a clear and architecturally sound place to construct your business logic in a reusable, maintainable way.

The Third Step

Page 43: Development with Crafter CMS A Guide to Modern Java Web

Author: Create ContentE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com43

Authors simply click to make edits to their content. Crafter takes care of the rest.

Crafter CMS dynamically creates the content entry capabilities based on your content type definitions.

Behind the scenes content is stored and versioned in the repository as XML Crafter Engine leverages the controllers and templates created by the developer to present a real-time preview for the authors.

Page 44: Development with Crafter CMS A Guide to Modern Java Web

Reviewer: Review, Test and Workflow E-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com44

Once you’ve created your content based on your new types it’s time to test, review and deploy.

Crafter Studio makes this process seamless with built in review tools, workflow, integration with your Software SDLC and it’s powerful deployment framework.

Simply review your work in preview and then submit it for review and approve for publish.

Page 45: Development with Crafter CMS A Guide to Modern Java Web

Engage Target Audiences and Get FeedbackE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com45

Once approved, Crafter CMS will push your content out to all of your delivery channels either immediately or at the appropriate time if a schedule for deployment has been assigned.

Crafter CMS enables you to deliver your dynamic personalized digital experiences on any channel, gathering “Big Data” and insights at each step of the customer journey.

Page 46: Development with Crafter CMS A Guide to Modern Java Web

Crafter Software enables the creation of rich and engaging websites, mobile applications, and multi-channel digital experiences. Available both in the cloud and on-premise, Crafter Software’s solutions are based on the award-winning Crafter CMS open source project, which was built from the ground up as a modern platform for creating more relevant Web and mobile experiences through targeted delivery of personalized content. Serving as the lynchpin between enterprise systems and end users, Crafter’s solutions enable marketing, sales and support teams to author and manage content while harvesting analytics and data-driven insights to deliver engaging experiences across all digital channels - the Web, mobile, social, virtual reality, and more. Learn more about Crafter CMS at craftercms.org.

Page 47: Development with Crafter CMS A Guide to Modern Java Web

Want to Learn More? Contact UsE-book: A Guide to Modern Java Web Development with Crafter CMS

www.craftersoftware.com47

E-mail

Phone Number

Website

[email protected]

703.234.7744

www.craftersoftware.com