Get Unlimited Access to every Packt eBook and Video course

Book Details

ISBN 139781782172994

Paperback402 pages

About This Book

Build your own application from start to finish, making use of unique tools and platform features

Learn how to use the platform to build a truly integrated, scalable, and robustly engineered application to design, develop, package, and support an application focusing on enterprise-level customer demands

Build the first iteration of your own ready-to-install packaged application with the help of a mix of step-by-step, worked examples and tips and tricks that discuss and answer key architectural questions

Who This Book Is For

This book is for advanced Force.com developers and architects who need to understand the Salesforce platform from the perspective of enterprise-level requirements. You should have an existing understanding of Apex and Visualforce. Those familiar with other enterprise software ecosystems will also find this book ideal as they adopt Force.com.

Table of Contents

Chapter 1: Building, Publishing, and Supporting Your Application

Required organizations

Introducing the book's sample application

Package types and benefits

Creating your first managed package

Package dependencies and uploading

Introduction to AppExchange and listings

Installing and testing your package

Becoming a Salesforce partner and benefits

Licensing

Providing support

Customer metrics

Trialforce and Test Drive

Summary

Chapter 2: Leveraging Platform Features

Packaging and upgradable components

Understanding the custom field features

Understanding the available security features

Platform APIs

Localization and translation

Building customizable user interfaces

E-mail customization with e-mail templates

Workflow and Flow

Social features and mobile

Summary

Chapter 3: Application Storage

Mapping out end user storage requirements

Understanding the different storage types

Reusing the existing Standard Objects

Importing and exporting data

Options for replicating and archiving data

External data sources

Summary

Chapter 4: Apex Execution and Separation of Concerns

Execution contexts

Apex governors and namespaces

Where is Apex used?

Separation of Concerns

Patterns of Enterprise Application Architecture

Unit testing versus system testing

The packaging code

Summary

Chapter 5: Application Service Layer

Introducing the Service layer pattern

Implementation of design guidelines

Handling DML with the Unit Of Work pattern

Services calling services

Contract Driven Development

Testing the Service layer

Calling the Service layer

Summary

Chapter 6: Application Domain Layer

Introducing the Domain layer pattern

Implementation design guidelines

Domain class template

Implementing Domain Trigger logic

Implementing custom Domain logic

Object-oriented programming

Testing the Domain layer

Calling the Domain layer

Updating the FormulaForce package

Summary

Chapter 7: Application Selector Layer

Introducing the Selector layer pattern

Implementing design guidelines

The Selector class template

Implementing the standard query logic

Implementing the custom query logic

Introducing the Selector factory

Updating the FormulaForce package

Summary

Chapter 8: User Interface

What devices should you target?

Leveraging the Salesforce standard UI

Translation and localization

Client communication layers

Visualforce

Custom Publisher Actions

Creating websites

Mobile strategy

Custom Reporting and the Analytics API

Updating the FormulaForce package

Summary

Chapter 9: Providing Integration and Extensibility

Reviewing your integration and extensibility needs

Force.com platform APIs for integration

Application integration APIs

Alignment with Force.com extensibility features

Extending the application logic with Apex Interfaces

Summary

Chapter 10: Asynchronous Processing and Big Data Volumes

Creating test data for volume testing

Indexes, being selective, and query optimization

Asynchronous execution contexts

Volume testing

Summary

Chapter 11: Source Control and Continuous Integration

Development workflow and infrastructure

Developing with Source Control

Hooking up Continuous Integration

Releasing from Source Control

Automated regression testing

Summary

What You Will Learn

Learn how to package, install, test, and upgrade an application, and understand how best to license and support an application

Define architecture-aligning data storage and functional requirements with the platform for a consistent and integrated user experience using the platform’s declarative features

Develop Apex code that is easy to navigate, self-documenting, testable, robust, and organic leveraging the Separation of Concerns principle

Leverage your application's client-agnostic Service layer backbone to support numerous platform areas such as Batch, Scheduler, Visualforce, and the latest Salesforce1 client

Apply querying, indexing and asynchronous best practices, guidelines, and patterns for large data volumes and complex processes covering custom indexes and Batch Apex

Explore approaches and tips on how to develop advanced application life cycle processes around Source Control, Continuous Integration, and testing, utilizing the Metadata and Tooling APIs from Salesforce

In Detail

Successful enterprise applications require planning, commitment, and investment in understanding the best practices, processes, tools, and features available.

This book will teach you how to architect and support enduring applications for enterprise clients with Salesforce by exploring how to identify architecture needs and design solutions based on industry standard patterns. As your development team grows, managing the development cycle with more robust application life cycle tools and using approaches such as Continuous Integration becomes increasingly important. There are many ways to build solutions on Force.com—this book cuts a logical path through the steps and considerations for building packaged solutions from start to finish, covering all aspects from engineering to getting your application into the hands of your customers, and ensuring that they get the best value possible from your Force.com application.

Authors

Andrew Fawcett

Andrew Fawcett has over 20 years of experience, holding several software-development-related roles with increasing focus and responsibility around enterprise-level product architectures with major international accounting and ERP software vendors over the years. He is experienced in performing and managing all aspects of the software development life cycle across various technology platforms, frameworks, industry design patterns, and methodologies, more recently Salesforce's Force.com and Heroku.

He is currently a CTO, Force.com MVP, and Salesforce Certified Developer within a UNIT4 and salesforce.com-funded start-up company, FinancialForce.com. He is responsible for driving platform adoption, relationship, and technical strategy across the product suite. He is an avid blogger, a StackExchange junkie, an open source contributor and project owner, and an experienced speaker at various Salesforce and FinancialForce.com events. He loves watching Formula1 motor racing, movies, and building cloud-controlled Lego robots!

His Twitter handle is @andyinthecloud. His Lego robot Twitter handle and website is @brickinthecloud.

Alerts & Offers

Series & Level

We understand your time is important. Uniquely amongst the major publishers, we seek to develop and publish the broadest range of learning and information products on each technology. Every Packt product delivers a specific learning pathway, broadly defined by the Series type. This structured approach enables you to select the pathway which best suits your knowledge level, learning style and task objectives.

Learning

As a new user, these step-by-step tutorial guides will give you all the practical skills necessary to become competent and efficient.

Beginner's Guide

Friendly, informal tutorials that provide a practical introduction using examples, activities, and challenges.

Essentials

Fast paced, concentrated introductions showing the quickest way to put the tool to work in the real world.

Cookbook

A collection of practical self-contained recipes that all users of the technology will find useful for building more powerful and reliable systems.

Blueprints

Guides you through the most common types of project you'll encounter, giving you end-to-end guidance on how to build your specific solution quickly and reliably.

Mastering

Take your skills to the next level with advanced tutorials that will give you confidence to master the tool's most powerful features.

Starting

Accessible to readers adopting the topic, these titles get you into the tool or technology so that you can become an effective user.

Progressing

Building on core skills you already have, these titles share solutions and expertise so you become a highly productive power user.