Developer Transition from Java to Salesforce

This post is for those Java Developers who are looking for a transition to Salesforce or might

have already started. Understanding the basic points mentioned here will help them with in this

transition.

Salesforce products knowhow: Salesforce is a product with well defined release cycles. Every

developer should be on top of the new features of Salesforce release announcements.

Salesforce comes with bag full of useful side products like Desk.com, Work.com, Data.com,

Communities etc and knowledge of these are very much required. Salesforce out of box Sales

and Service model which completes it as a CRM tool are a must to be learned for a Java

developer. One should also be aware of the internal Data model which is accessible via direct

Object referencing much as in Java­Spring­Hibernate combination.

Multi-tenant Architecture: Java application run on a JVM and can be hosted on Servers or run

locally but Salesforce is a pure Cloud based Technology. For Java developers it is a must to

understand that this Multi-tenant Architecture. The multi tenant design of a cloud service can

have a dramatic impact on the application delivery and productivity of an IT organization, yet

most CIOs, CTOs, system architects, and developers who use clouds don’t give it a second

thought because it’s all magic that transparently happens behind the scenes.

Test

Integration: Salesforce being a CRM need lots of integration with other 3rd party tool. This is

one of the most common scenario in which a Java developer learns about Salesforce and take

the path of enlightenment. Salesforce also provide ready made APIs for integration. Java

developers have several options for integrating Java­ based systems with Force.com and

Database.com.

● Restful APIs, such as the Force.com REST API, Bulk API, and Streaming API.

● Web Services Connector (WSC)

WSDL generation and consumption is much as a one click process.

Programming Language: Salesforce Apex and Java programming language are quite similar.

Apex Code uses a Java­like syntax, and like Java, Apex Code is strongly typed, which is that

the code is compiled by the developer before it is executed, and that variables must be

associated with specific object types during this compile process. Control structures are also

Java­like, with for/while loops and iterators being exactly the same. Apex Code is much more

limited in scope; whereas a language and platform like Java can be used to build almost any

kind of application. Apex is exclusively for building business applications to manage data and

processes within Force.com platform framework. Salesforce library of functions and system

commands are must for a Java developer to learn and understand as quickly as possible.

Salesforce and Java have some common Design patterns as well.

Apex-topic

Packaging and Deployment: Java Classes developed needs packaging before deployment

and every developer needs to do their own end of unit testing & bug fixing. Creating Jar is a

standard process done manually or by IDE whereelse Force.com gives some readymade

restrictions, governer limits and process for Apex code development, Testing, bug fixing and

Deployment. Salesforce has a much strict validation and deployment steps for live orgs. Feature

development in Salesforce CRM is always specific to certain edition. All the development

components like Apex classes, Visualforce pages, Validation rules etc can be added to

Changesets, Managed or Unmanaged Packaging and Metadata. All of these methods have

different purposes Manage Package is for application development in Apexchange, Changeset

and metadata group is for code deployment.

force-packaging


Author: AJ

Share This Post On

2 Comments

  1. Thanks mate. That helped

    Post a Reply
  2. thanks. was helpful. i am freshly in love with salesforce. Could you please guide me how i can do it and challenges you faced. anything will be helpful.

    Post a Reply

Submit a Comment

Your email address will not be published. Required fields are marked *