development with crafter cms a guide to modern java web
TRANSCRIPT
A Guide to Modern Java Web Development with Crafter CMS
E-book
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.
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.
HOW DOES CRAFTER HELP
4
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
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.
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.
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
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
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
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
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
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,
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.
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
It’s All About The Details
16
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
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.
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
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.
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
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
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.
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.
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
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</>
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.
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.
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.
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.
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
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
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.
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
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.
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
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.
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
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
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
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
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
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.
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.
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.
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.
Want to Learn More? Contact UsE-book: A Guide to Modern Java Web Development with Crafter CMS
www.craftersoftware.com47
Phone Number
Website
703.234.7744
www.craftersoftware.com