Salesforce for Beginers

What is Salesforce?
Salesforce.com is a cloud based Customer Relationship Management (CRM) solution. Delivered using the software as a service model encompassing various components , viz. Sales, Service, Marketing, Community collaborations, Analytics & App Development
What is Cloud computing?
Cloud computing is a style of computing in which dynamically scalable and often virtualised resources are provided as a service over the Internet. Users need not have knowledge of, expertise in, or control over the technology infrastructure in the "cloud" that supports them.
How does cloud computing affect us ?
The best description of how cloud computing impact us is the video @ Salesforce
Architecture
In the past software programming was once static, Saas allows for dynamic attributes. The Saas model allows a vendor to click a button and deploy a new version to over several companies utilizing its services. SalesForce is a Software as Service and Force.com Platform as service.
The figure below describes high level architecture of Salesforce.

Key Concepts

Force.com Platform
The Force.com platform is the first platform as a service (PaaS), enabling developers to create and deliver any kind of business application entirely on demand and without software. The platform also includes easy to use point-and-click customization tools to help you create solutions for your unique business requirements, without any programming experience.
AppExchange
It is a marketplace featuring hundreds of cloud applications created by Salesforce customers, developers, and partners. 
Multitenacy
Force.com is a built for multi-tenancy inherent in its design. Force.com’s core technology uses a run-time engine that materializes all application data from metadata (data about the data). In Force.com’s well-defined metadata-driven architecture
Data and meta-data across different tenants are identified based on organization identifier
Environments
Broadly speaking, there are three types of environments:
  1. Production Environments - Salesforce.com environments that have active paying users accessing business critical data
  2. Development Environments - Salesforce.com environments where you can extend, integrate and develop on Force.com without affecting your production environments. A Developer Edition environment is a free, fully-featured copy of the Enterprise Edition environment, with less storage and users. Sandbox is a nearly identical copy of your production environment available to Enterprise or Unlimited Edition customers.
  3. Test Environments - These can be Production or Development Environments specifically used for testing application functionality before deploying to production or releasing to customers
Identifying environment requirement could be crucial to identifying subscription type needed for solution of any given business case.
Sales Cycle
SalesForce provides basic sales cycle management out of the box. The sales cycle could be understood from the figure below:
Customization
Salesforce is capable of providing solution for core functionality of any business. It can be extensively customized through user interface (clicks), as its an extremely generic solution. You could also create Custom Objects, new fields, workflow, triggers, and approval processes on the fly, without requiring to compile/build/deploy.
Customization could be achieved either thru configuration or code. A business user could make the necessary customization thru configuration which is within the framework of Salesforce. However need for complex customization arises when you need to use the Web services to implement business logic from client-side programs. 
These customization are achieved thru Apex Code
Apex
Apex enables developers to add business logic to most system events, including button clicks, related record updates, and Visualforce pages.
  1. Integrated with Force.com
  2. Easy to use
  3. Hosted by Force.com
  4. Automatically upgradeable
  5. Easy to test - built-in support for unit test
  6. Versioned
    When to use APEX?
Use Apex if you want to:
  1. Create Web services.
  2. Create email services.
  3. Perform complex validation over multiple objects.
  4. Create complex business processes that are not supported by workflow.
  5. Create custom transactional logic (logic that occurs over the entire transaction, not just with a single record or object).
  6. Attach custom logic to another operation, such as saving a record, so that it occurs whenever the operation is executed, regardless of whether it originates in the user interface, a Visualforce page, or from SOAP API.
This is a sample Apex code to add elements to a list:
// Create a list and add elements to it in one step

List<String> colors = new List<String> { 'red', 'green', 'blue' };
// Add elements to a list after it has been created
List<String> moreColors = new List<String>();
moreColors.add('orange');
moreColors.add('purple');
Looks familiar right? 
Visualforce
Visualforce consists of a tag-based markup language that gives developers a more powerful way of building applications and customizing the Salesforce user interface. With Visualforce you can:
    1. Build wizards and other multi-step processes.
    2. Create your own custom flow control through an application.
    3. Define navigation patterns and data-specific rules for optimal, efficient application interaction.
    VisualForce Developer's Guide.
Workflow
Workflow is automated process that fired an action based on Evaluation criteria and rule criteria. We can access a workflow across the object. Workflow automates the following types of actions based on your organization's processes:
  1. Tasks—Assign a new task to a user, role, or record owner.
  2. Email Alerts—Send an email to one or more recipients you specify.
  3. Field Updates—Update the value of a field on a record.
  4. Outbound Messages—Send a secure, configurable API message (in XML format) to a designated listener.
    Triggers
Trigger is a piece of code that executes before or after a record is inserted or updated. We can use 20 DML operations in one trigger. A trigger is Apex code that executes before or after insert, update, delete, merge, upsert, undelete
Translation workbench
The translation workbench allows you to create translations for the customization you’ve made to your Salesforce.com organization. Everything from custom pick-list values to custom fields can be translated so your global users can use all of Salesforce.com in their language. The translations can be added thru the user interface or imported.
Batch Jobs
Salesforce provides an interface Database.Batchable in order to implement batch operations 
    1. Start
    2. Execute and
    3. Finish
    More details at https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_batch_interface.htm
Multi currency support
International organizations can use multiple currencies in opportunities, forecasts, reports, quotes, and other currency fields. The administrator sets the “corporate currency,” which reflects the currency of the corporate headquarters. The administrator also maintains the list of active currencies and their conversion rates relative to the corporate currency. The active currencies represent the countries in which the organization does business. Only active currencies can be used in currency amount fields.
Dataloader 
Dataloader.io is (is an app available at appexchage) MuleSoft's solution for connecting APIs, applications, data and devices. It could be very useful for
    1. Export/import & Delete data.
    2. Scheduling: Automate task imports and exports on a hourly, daily, weekly or monthly basis
    3. DropBox, Box, FTP and sFTP support: Import and export data from multiple file sources.
    4. Canvas UI for ease of use
    Integration
The Force.com platform implements the OAuth 2.0 Authorization Framework, so users can authorize applications to access its resources (via REST and SOAP Web Service APIs) 
The Force.com platform supports oAuth2 and SAML protocals. 
It coube also be integrated with a number of toolkits that are built around REST/SOAP API :


  1. Mobile SDK
  2. Ruby
  3. Azure
  4. Facebook
  5. Google Data APIs
  6. Google App Engine
  7. Amazon Web Services exposes the Amazon Web Services Simple Storage System (S3) services natively in the Force.com 
    References
Salesforce documentation - https://developer.salesforce.com/docs/

Comments

Popular posts from this blog

jQgrid reload with new data

Introduction to jQgrid

Rich Client based UI technologies- A Comparison of Thick Client UI tools