Preface |
|
1 | (8) |
|
Chapter 1 Learning to Fly with Force.com |
|
|
9 | (14) |
|
|
9 | (2) |
|
Infrastructure as a service (IaaS) |
|
|
11 | (1) |
|
Platform as a service (PaaS) |
|
|
12 | (1) |
|
Software as a service (SaaS) |
|
|
12 | (1) |
|
|
13 | (1) |
|
|
13 | (1) |
|
|
13 | (1) |
|
|
14 | (1) |
|
Understanding the Force.com stack |
|
|
15 | (1) |
|
Infrastructure as a service |
|
|
15 | (1) |
|
|
16 | (1) |
|
|
16 | (1) |
|
|
17 | (1) |
|
User interface as a service |
|
|
17 | (1) |
|
|
18 | (1) |
|
|
18 | (1) |
|
Introduction to governor limits |
|
|
18 | (1) |
|
|
19 | (4) |
|
|
21 | (2) |
|
|
23 | (22) |
|
|
23 | (1) |
|
|
24 | (1) |
|
|
24 | (1) |
|
|
24 | (1) |
|
|
25 | (1) |
|
|
25 | (1) |
|
Analyzing the test import |
|
|
26 | (1) |
|
|
26 | (1) |
|
|
26 | (1) |
|
Using Data Loader for data export |
|
|
27 | (1) |
|
Using Data Loader for uploading attachments |
|
|
28 | (1) |
|
|
28 | (1) |
|
When to use the Import wizard |
|
|
29 | (1) |
|
|
29 | (1) |
|
|
30 | (1) |
|
Third-party tools for data integration |
|
|
30 | (2) |
|
Force.com Integrated Development Environment (IDE) |
|
|
32 | (1) |
|
|
33 | (1) |
|
|
33 | (1) |
|
|
34 | (1) |
|
|
34 | (1) |
|
|
35 | (1) |
|
|
35 | (1) |
|
|
35 | (1) |
|
|
36 | (1) |
|
AppExchange - cloud application marketplace |
|
|
37 | (1) |
|
DupeCatcher - real-time deduplication |
|
|
38 | (1) |
|
Milestones PM - project and task management |
|
|
38 | (1) |
|
Salesforce CRM dashboards |
|
|
39 | (1) |
|
Salesforce for Twitter and Facebook (v4) |
|
|
39 | (1) |
|
Appirio Contact Sync for Salesforce and Google Apps |
|
|
39 | (1) |
|
|
39 | (1) |
|
SnapShot Change And Release Management |
|
|
39 | (1) |
|
Salesforce Adoption Dashboards (2011) |
|
|
40 | (1) |
|
|
40 | (1) |
|
|
40 | (1) |
|
Find Nearby - Accounts, Contacts, Leads - Managed, PE/EE/UE/DE |
|
|
40 | (1) |
|
AppExchange Dashboard Pack |
|
|
40 | (1) |
|
Action Plans - v3 - Unmanaged - EE, UE, and DE |
|
|
41 | (1) |
|
Project and Issue Management |
|
|
41 | (1) |
|
CloudConverter for Force.com |
|
|
41 | (1) |
|
Opportunity Planning Wall |
|
|
41 | (1) |
|
Data Loader - Salesforce integration |
|
|
41 | (1) |
|
Mass Edit + Mass Update + Mass Delete |
|
|
42 | (1) |
|
Implementation Cloud - project management app |
|
|
42 | (1) |
|
S-Docs - free document generator (PDF, Word, Excel) |
|
|
42 | (1) |
|
|
42 | (1) |
|
FormFactory quotes and invoices |
|
|
43 | (1) |
|
Chatter Usage Dashboards - Force.com Labs |
|
|
43 | (1) |
|
FinancialForce Accounting for Salesforce |
|
|
43 | (1) |
|
Professional Services Automation - PSA for Salesforce |
|
|
43 | (1) |
|
CVM Supplier Central Enterprise Edition |
|
|
43 | (1) |
|
|
44 | (1) |
|
|
44 | (1) |
|
Chapter 3 Making Best Use of Salesforce Objects |
|
|
45 | (22) |
|
Understanding the field types |
|
|
46 | (1) |
|
Basic non-relational field types |
|
|
46 | (1) |
|
|
47 | (1) |
|
|
48 | (1) |
|
|
48 | (1) |
|
|
48 | (1) |
|
Additional database features |
|
|
49 | (1) |
|
Considerations for relationships |
|
|
50 | (3) |
|
|
53 | (1) |
|
|
53 | (1) |
|
|
53 | (1) |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
56 | (1) |
|
|
57 | (1) |
|
|
58 | (1) |
|
|
58 | (1) |
|
|
59 | (1) |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
63 | (1) |
|
|
64 | (3) |
|
|
66 | (1) |
|
Chapter 4 Understanding Analytics |
|
|
67 | (30) |
|
|
68 | (1) |
|
Tips and considerations for report types |
|
|
69 | (1) |
|
|
69 | (1) |
|
Choosing object relationships |
|
|
70 | (1) |
|
|
70 | (1) |
|
|
71 | (1) |
|
|
72 | (1) |
|
|
73 | (1) |
|
|
73 | (6) |
|
Subtotaling the report results |
|
|
79 | (3) |
|
|
82 | (1) |
|
|
83 | (1) |
|
Printing and exporting reports |
|
|
84 | (1) |
|
|
85 | (1) |
|
|
85 | (1) |
|
|
86 | (1) |
|
|
86 | (2) |
|
|
88 | (4) |
|
|
92 | (1) |
|
|
92 | (1) |
|
|
93 | (1) |
|
Tips for analytic snapshots |
|
|
93 | (1) |
|
|
94 | (3) |
|
|
95 | (2) |
|
Chapter 5 Setting Up Development Environments |
|
|
97 | (20) |
|
Building apps on Salesforce |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
99 | (1) |
|
|
99 | (1) |
|
|
99 | (2) |
|
Configuration-only sandbox |
|
|
101 | (1) |
|
|
101 | (1) |
|
|
102 | (1) |
|
Typical uses of sandboxes |
|
|
102 | (1) |
|
Tips for creating or refreshing a sandbox |
|
|
103 | (1) |
|
|
103 | (1) |
|
Individual versus partner DE |
|
|
104 | (1) |
|
When to use individual DE org |
|
|
104 | (1) |
|
When to use partner DE org |
|
|
104 | (1) |
|
|
104 | (1) |
|
Choosing a development environment |
|
|
104 | (1) |
|
Development considerations |
|
|
105 | (1) |
|
|
105 | (1) |
|
When to use a Partner Test Edition org |
|
|
106 | (1) |
|
When to use a sandbox org |
|
|
106 | (1) |
|
Various development scenarios |
|
|
106 | (1) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
107 | (1) |
|
Migrating changes between environments |
|
|
107 | (1) |
|
Migrating changes manually |
|
|
108 | (1) |
|
Establishing a change process for production org |
|
|
108 | (1) |
|
|
109 | (1) |
|
|
110 | (1) |
|
Migration using change sets |
|
|
110 | (1) |
|
|
111 | (1) |
|
Application lifecycle management |
|
|
111 | (1) |
|
|
112 | (1) |
|
|
112 | (1) |
|
Isolating development and testing |
|
|
113 | (1) |
|
Multiple project development with integration, UAT, and staging |
|
|
114 | (1) |
|
Developing enterprise applications |
|
|
115 | (2) |
|
|
116 | (1) |
|
Chapter 6 Tools and Destinations that Every Force.com Developer Should Know |
|
|
117 | (16) |
|
Tools for developers and admins |
|
|
118 | (1) |
|
|
118 | (1) |
|
Force.com IDE based on Eclipse |
|
|
118 | (1) |
|
Developer console based on your browser |
|
|
119 | (1) |
|
Sublime Text plugin for Force.com |
|
|
120 | (2) |
|
Exploring objects, fields, and relationships using Schema Browsers |
|
|
122 | (1) |
|
|
122 | (1) |
|
|
123 | (1) |
|
|
123 | (1) |
|
|
123 | (1) |
|
|
123 | (1) |
|
Force.com Excel Connector |
|
|
124 | (1) |
|
|
124 | (1) |
|
Utility tools and apps for productivity boost |
|
|
125 | (1) |
|
|
125 | (1) |
|
|
125 | (1) |
|
Force.com Security Code Scanner |
|
|
126 | (1) |
|
|
127 | (1) |
|
|
128 | (1) |
|
|
129 | (1) |
|
|
130 | (1) |
|
|
130 | (1) |
|
|
130 | (1) |
|
Queries and troubleshooting |
|
|
131 | (2) |
|
|
132 | (1) |
|
Chapter 7 Writing Better Apex Code |
|
|
133 | (34) |
|
Understanding the language basics |
|
|
134 | (1) |
|
Using the correct nomenclature for code files |
|
|
134 | (2) |
|
|
136 | (1) |
|
Finding what's different with static keywords |
|
|
136 | (1) |
|
|
137 | (1) |
|
Making constants better with enums |
|
|
137 | (1) |
|
Reducing script statements |
|
|
138 | (1) |
|
|
138 | (1) |
|
Security data access via the with sharing keyword in classes |
|
|
139 | (1) |
|
|
139 | (1) |
|
Writing better SOQL queries |
|
|
140 | (1) |
|
Query-required fields only |
|
|
140 | (1) |
|
|
141 | (1) |
|
Executing selective and index-based queries |
|
|
142 | (1) |
|
Combining multiple SOQLs to avoid governor limits |
|
|
142 | (1) |
|
Fixing SOQL that returns a single record |
|
|
143 | (1) |
|
Making the most out of dynamic SOQL |
|
|
144 | (1) |
|
Taking control on DML operations |
|
|
145 | (1) |
|
Controlling transaction commits and rollbacks |
|
|
145 | (1) |
|
Fine-tuning with extra DML options |
|
|
146 | (1) |
|
Error handling during DML operations |
|
|
147 | (1) |
|
Decoding the Apex Describe Information |
|
|
148 | (1) |
|
Getting info about sObjects and associated fields |
|
|
148 | (2) |
|
Accessing/updating the sObject records based on field names |
|
|
150 | (1) |
|
Getting SobjectType from ID |
|
|
150 | (1) |
|
Instantiating classes dynamically |
|
|
150 | (2) |
|
|
152 | (1) |
|
Understanding the order of execution for triggers |
|
|
152 | (1) |
|
Writing triggers to handle bulk data |
|
|
152 | (1) |
|
Multiple triggers on an sObject |
|
|
153 | (1) |
|
|
154 | (2) |
|
|
156 | (1) |
|
Packaging considerations with Apex |
|
|
156 | (1) |
|
|
157 | (1) |
|
|
158 | (1) |
|
|
159 | (1) |
|
Isolating test data from org data |
|
|
159 | (1) |
|
Testing with various profiles |
|
|
159 | (1) |
|
Letting your class know about the test context |
|
|
160 | (1) |
|
|
160 | (1) |
|
API versioning with REST web services |
|
|
160 | (1) |
|
|
161 | (1) |
|
Tracking resource (limit) usage |
|
|
162 | (5) |
|
|
165 | (2) |
|
Chapter 8 Writing Better Visualforce Code |
|
|
167 | (26) |
|
Knowing the Visualforce architecture |
|
|
168 | (1) |
|
Reusing the platform's native look and feel |
|
|
169 | (1) |
|
Starting the page design with native headers |
|
|
169 | (1) |
|
Native detail sections/forms |
|
|
170 | (1) |
|
Styling tables to look like native grids |
|
|
171 | (1) |
|
Printing messages in a native style |
|
|
172 | (1) |
|
Native (standard) versus custom controllers/extensions |
|
|
173 | (1) |
|
|
174 | (1) |
|
|
175 | (1) |
|
Defining templates or page layouts |
|
|
175 | (1) |
|
Defining your own components |
|
|
176 | (1) |
|
|
176 | (1) |
|
Use the view state inspector |
|
|
177 | (1) |
|
Using static when possible |
|
|
177 | (1) |
|
Trimming the view state by using transient variables |
|
|
178 | (1) |
|
Identifying a transient variable |
|
|
178 | (1) |
|
|
179 | (1) |
|
Query-required fields only |
|
|
180 | (1) |
|
More tips and tricks on the view state |
|
|
181 | (1) |
|
Flexible pages using field sets |
|
|
181 | (1) |
|
|
182 | (1) |
|
Using the immediate attribute |
|
|
182 | (1) |
|
Re-rendering required components only |
|
|
182 | (1) |
|
Demarcating using action regions |
|
|
183 | (1) |
|
Global variables and functions |
|
|
183 | (1) |
|
|
184 | (1) |
|
Public versus global - using the right access modifier |
|
|
184 | (1) |
|
Making the most out of the method arguments and return types |
|
|
185 | (1) |
|
Handling namespace prefixes in managed packages |
|
|
185 | (1) |
|
|
185 | (1) |
|
|
186 | (1) |
|
Taking care of security compliance in pages |
|
|
186 | (1) |
|
|
186 | (1) |
|
|
187 | (2) |
|
|
189 | (1) |
|
|
189 | (1) |
|
Rendering a page as a PDF |
|
|
190 | (1) |
|
|
190 | (1) |
|
|
190 | (3) |
|
|
191 | (2) |
Index |
|
193 | |