Salesforce development basics

Salesforce has a huge perspective of possibilities when it is time to set up an org.

In most cases new clients want to enforce their own organizational processes and business methods into the system. That is why salesforce developers have to go beyond the out of the box functions and customize the system by developing additional components to the standard ones.

First, this doesn’t mean hacking of Salesforce. Salesforce supports the developers with wide range of tools. It is the software giant’s own interest to let customize the system to the higher levels. Salesforce has it’s on framework for this. Salesforce developers only have to setup an IDE (Integrated Development Environment (e.g. Welkin Suite, Eclipse, IntelliJ)) and create the custom project in it, connected to the specific org. Additionally we can integrate a GitHub too for a well formed version control.

Real life Salesforce development examples

Let’s see what are the capabilities of Salesforce development with real examples:

  • Automated background processes: usually they are managed to run connected to DML (Data Manipulation Language) operations on specified objects. With their use, DML operations can effect creating new records, calculating summaries, filling blank fields on objects and so on.
  • Synchronous/asynchronous processes on complex data sets: they are helpful for example if you want to delete all of the records of a specified object periodically, e.g. every night.
  • Custom designed complex pages for internal and/or public use (landing pages, web-to-lead pages for lead generation, web-to-case pages for customer care, etc.): creating a public page out of Salesforce can be useful if you want real time information flow into the CRM.
  • Document creation (PDF, DOC, XLS, CSV): if you send an offer, a contract or any document with dynamic data, it is feasible by one click. All the dynamic data points can be filled with the matching information from the actual CRM record.
  • Integration: incoming and outgoing data links in real time or scheduled (SOAP API, REST API, CSV, Email, Email attachment): this customer need occurs everyday. Salesforce systems often communicate with SAP, ERP or any other corporate systems.

Backend basics

The backend technology behind these capabilities is a Java based Apex language with some syntactic and semantic differencies to the original one. Salesforce has it’s own modified SQL to manage the database with an extra ’O’, called SOQL (Salesforce Object Query Language).

Frontend basic

On the frontend side Salesforce development uses Visualforce, which is a component-based user interface framework includeing a tag-based markup language (similar to HTML). Salesforce developers work with HTML, CSS and Javascript too. In this case they are referred as full stack developers, because usually the same person is responsible for both sides on a specific component.

Testing basics

Every production system has at least one sandbox for developing and testing, but we can create many more easily with one click. Moving components from sandboxes to the production is secured. Over the user testing, the developed component’s code driven tests has to be higher than 75% (of the overall number of lines) to be validated by the production system.

Standard vs. custom

One last thing to mention. Like every cloud based system, Salesforce also has it’s own standards and even limitations. It’s important for a developer to know and to use standard solutions. It’s not the Salesforce developer’s business to invent the wheel (if it’s already exists), but to have the knowledge of when to use a standard function and when to develop a new one. This means developers are Salesforce admins as well. Salesforce supports every role with their training method called Trailhead, where it is easy to learn the above mentioned standards and Salesforce specialities too.