Code Monkey home page Code Monkey logo

fflib-apex-common's Introduction

FFLib Apex Common

Push Source and Run Apex Tests

Dependencies: Must deploy ApexMocks before deploying this library

Deploy to Salesforce

Updates

  • December 2022, IMPORTANT CHANGE - Support for native Apex User Mode was added to the library (see discussion). For new projects, the old enforceCRUD and enforceFLS flags on fflib_SObjectSelector should be considered deprecated and the constructors that take dataAccess arguments should be used instead. Additionally, the introduction of fflib_SObjectUnitOfWork.UserModeDML provides an IDML implementation that supports USER_MODE or SYSTEM_MODE. fflib_SObjectUnitOfWork.SimpleDML (the default IDML implementation) should be considered deprecated. There are measurable performance benefits to using SYSTEM_MODE and USER_MODE (Apex CPU usage reduction). Additionally, the use of explicit USER_MODE and SYSTEM_MODE overrides the with sharing and without sharing class declaration and makes the expected behavior of DML and SOQL easier to understand.
  • April 2020, IMPORTANT CHANGE, the directory format of this project repo was converted to Salesforce DX Source Format. While the GIT commit history was maintained, it is not visible on GitHub. If you need to see the history, either clone the repo and execute git log --follow from the command line or refer to this tag of the codebase prior to conversion.
  • September 2014, IMPORTANT CHANGE, changes applied to support Dreamforce 2014 advanced presentation, library now provides Application factories for major layers and support for ApexMocks. More details to follow! As a result ApexMocks must be deployed to the org before deploying this library. The sample application here has also been updated to demonstrate the new features!
  • July 2014, IMPORTANT CHANGE, prior 23rd July 2014, both the fflib_SObjectDomain.onValidate() and fflib_SObjectDomain.onValidate(Map<Id, SObject> existingRecords) methods where called during an on after update trigger event. From this point on the onValidate() method will only be called during on after insert. If you still require the orignal behaviour add the line Configuration.enableOldOnUpdateValidateBehaviour(); into your constructor.
  • June 2014, New classes providing utilities to support security and dynamic queries, in addition to improvements to existing Apex Enterprise Pattern base classes. Read more here.

This Library

Is derived from the Dreamforce 2012 presentation on Apex Enterprise Patterns and progresses the patterns further with a more general ongoing home for them. It also adds some form of namespace qualification from the previous version. So that classes are grouped together more easily in the IDE's and packages. Below you can find comprehensive articles and videos on the use of these patterns. There is also a working sample application illustrating the patterns here.

Alt text

Application Enterprise Patterns on Force.com

Design patterns are an invaluable tool for developers and architects looking to build enterprise solutions. Here are presented some tried and tested enterprise application engineering patterns that have been used in other platforms and languages. We will discuss and illustrate how patterns such as Data Mapper, Service Layer, Unit of Work and of course Model View Controller can be applied to Force.com. Applying these patterns can help manage governed resources (such as DML) better, encourage better separation-of-concerns in your logic and enforce Force.com coding best practices.

Dreamforce Session and Slides

  • View slides for the Dreamforce 2013 session here
  • Video recording of the Dreamforce 2013 session here.
  • Video recording of the Advanced Apex Enterprise Dreamforce 2014 session here.
  • View slides for the Dreamforce 2015 session here

Documentation

Other Related Blogs

fflib-apex-common's People

Contributors

afawcett avatar imjohnmdaniel avatar daveespo avatar daveerickson avatar afawcettffdc avatar wimvelzeboer avatar jondavis9898 avatar autobat avatar dfruddffdc avatar yurybond avatar agarciaffdc avatar peterlin888 avatar jonnypower avatar maythesforcebewithyou avatar dfrudd avatar foxysolutions avatar tmowbrey avatar tahsinz avatar 1903daniel avatar claychipps avatar dbtavernerffdc avatar dhuckins avatar stohn777 avatar benedwards44 avatar chivalry avatar christiancoleman avatar liquidjbilling avatar squattingdog avatar sskular-wonderlab avatar capeterson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.