Designing and developing applications on the Force.com platform
Before you start development on the Force.com platform, you have to do some ground work and have to learn about the data orientation of the Force.com platform, suitability of the application for the Force.com platform, the nature of the data underlying that application, and design the application for the Force.com application.
Signing up for a free developer edition account
The Force.com platform provides the development environments, tools, resources, and documentation, which can be used to develop applications. The Force.com tools will be described in Appendix A, Force.com tools. When we talk about development environments, free developer edition (DE) environment is the best option to develop with the latest technologies such as the Apex programming language, Visualforce markup language, and web services API.
Tip
DE is free, and you can use it for learning purposes, although it comes with certain limitations.
Follow the steps to create a free developer account:
- Go to https://developer.salesforce.com/.
- Click on Signup.
- Then, you will get the following page and fill all the fields in the form.
Tip
Select a unique username in the form of an e-mail by which you will access your developer edition account. Salesforce allows you to select a unique name by default. If you select any pre-existing username, you will get an error.
- Click on Sign me up.
- An e-mail will be received including the link to specify your login credentials
Basic application design
When we design and build an application on the Force.com platform, we need to be aware of the data that we are going to process underneath the application. Good data design and good development practices can produce flexible and efficient applications.
Types of applications suitable for Force.com
We cannot use the Force.com platform for any kind of application development. Therefore, we need to understand the apps that are better suited for the Force.com platform. There are four types of applications that are required to automate an enterprise process, which are as follows:
- Data-Centric Apps: Data-centric applications are the ones that have powerful databases. They are based on the structure and consistency data such as in database or XML files. They are centered on a database and with data-centric apps it is easy to control access and manage data, which are centered to the database. The Force.com platform is data-centric by its nature and it is a perfect platform to build and host data-centric apps.
- Process-Centric Apps: A process-centric app is based on automating the business process in the organization and multiple users can be involved in the process. The Force.com platform has many features that align with the features of process-centric applications such as the approval process, the workflow, and security and sharing models.
- Content-Centric Apps: These applications are intensely increasing the storage needs of on-demand performance. These kinds of applications have main functionalities such as version controlling, content management, and sharing.
- Transaction-Centric Apps: The main functions of these types of applications are focused on transactions such as banking systems, stock market-related systems, and online payment systems.
Data and process-centric apps are the most suitable application types for the Force.com platform. The following two figures explain to us how the data-centric and process-centric apps are the most suitable apps for the Force.com platform:
Design consideration
When we develop a system on the Force.com platform, we need to consider some facts about the design phase. As in traditional software development, identifying your stakeholders and business partners is the first thing you need to do. Then, you need to capture the business requirement from your stakeholders. By analyzing the captured requirement, you can identify the users of the applications and the security model of the application. The security model is the most important part of designing a Force.com application.
Tip
Do not keep the defining of the security model of the Force.com application to the end. It will only increase the rework required of the application's designing and development.
Customization on the Force.com platform
In the design phase, we can consider the development method, which can be used to develop the particular application. There are two development methods on the Force.com platform. They are as follows:
- Declarative Development: This development can be done using point and click with zero coding. We can do declarative development via the browser. The declarative customizations require an understanding of the Force.com platform overview, but no coding knowledge. The developments and deployments can be rapidly done using the declarative development method.
- Programmatic Development: Programmatic developments require coding skills and allow developments to extend beyond the declarative capabilities. For example, if we need to create a page with a wizard, we cannot fulfill that requirement with declarative development. We need to use programmatic development, such as Apex and Visualforce.
The following screenshot shows the Force.com development model. It illustrates the deviation development methods with the skills of the developer.
Most complete and robust solutions actually use a combination of declarative and programmatic solutions. Developers should understand how to develop using both declarative and programmatic features. The following table shows the advantages of declarative and programmatic customizations:
Declarative customizations |
Programmatic customizations |
---|---|
Ease of development (more visual and quicker to do) |
Can extend the capabilities of an application beyond standard functionalities |
Ease of upgrade |
More control and flexibility over the application |
Ease of maintenance |