Essential Force.com Resources

Posted by Luigi Montanez
on Saturday, April 26

Because the Force.com developer community is still very small, it’s important to make the most out of what Salesforce.com (the company) provides for us on the Web. The best site for all things Force.com is of course developer.force.com, with its invaluable Wiki and Discussion Boards. But sometimes dead-tree versions of knowledge can be helpful too.

Ebooks

SFDC has made available two free books, one is an introduction to the platfom and the other is a recipe-style book. If you’ve been to a Force.com event recently, chances are you received these as actual, bound books. Here are the PDF ebooks:

  • Introduction to the Force.com Platform – Really a beginner’s guide, this book takes you on a feature tour of the Force.com platform, and goes over both administrative/declarative features as well as the more programmatic Apex and Visualforce capabilities.
  • Force.com Cookbook – I find myself flipping through this problem/solution recipe book often. It’s very helpful at producing those “Ah! So that’s how I’m supposed to do it!” moments.

The APIs

The Force.com Application Programmer Interfaces (APIs) allow us developers to integrate our Salesforce instances with external web services, as well build in some powerful customization into those instances. I don’t print these out, but rather just keep the PDFs quickly accessible for fast keyword searching:

  • Apex Web Services API – Covers the SOAP API in all its glory. I personally wish this was REST, but SOAP is better than everything but REST.
  • Apex Metadata API – A newer API, the Metadata API allows us to define the structure (fields and relationships) of our custom objects via XML rather than via the declarative point-and-click interface. Unfortunately there’s no Metadata API available for standard objects (Contacts, Accounts, Opportunities) yet, but I expect that to change this year.
  • Apex AJAX Toolkit API – The AJAX Toolkit is primarily used with S-Controls, which are being phased out in favor of Visualforce. To be honest, the AJAX Toolkit has always seemed like a workaround hack to me, and hopefully the combination of Visualforce and Apex Code will render it obsolete.

The Developer Guides

These are must-prints. As more thorough extensions to the ebooks above, these guides are the definitive resources for developing with Apex and Visualforce.

Frequent Updates

Both the APIs and Developer Guides are updated with every release (Spring, Summer, Winter), so make sure to grab the newest versions when you see your org being updated, and please do recycle the old versions if you print them out.

I suggest bookmarking this post, so you can quickly access these PDFs instead of browsing through the developer.force.com Wiki. Enjoy!

Tour de Force Atlanta Recap

Posted by Luigi Montanez
on Wednesday, April 23

Two weeks ago, Salesforce.com’s Tour de Force rolled into Atlanta, the first stop in a multi-city tour. While I’m terribly late in producing the following recap, I’m sure you’ll find it in your heart to forgive me:

The Opening Keynote

The event was held at a hotel in downtown Atlanta, and the Expo area was packed when I got there about thirty minutes before the keynote was to begin. I’m continually amazed at how well-attended Salesforce events tend to be. Maybe it comes from never working in the enterprise, but I couldn’t believe how many people flew in from around the country to attend Dreamforce last September, and I was equally surprised at the turnout in Atlanta.

The keynote started at 10:00 AM sharp, and Polly Sumner, President of the Platform, was the first speaker. She spoke for what seemed to be over an hour, in what was a general overview of Salesforce.com and Force.com. As a developer, I got a bit antsy during her talk because it was completely review to me and I find Salesforce.com’s marketing slickness to be offputting, but I know that they had many potential customers in the audience.

After Sumner’s opening presentation, she invited up to the stage several partners to display impressive applications they’ve been working on. I won’t bore you with the details, but overall the demos were very impressive, many showing off the power of VisualForce. Then, an SFDC employee did a “Build an App in 15 Minutes” run through, which once again was review to me. It was at this time, sitting there for about 90 minutes, that I wished we had time for a break, and I assume others in the audience were suffering through it like I was.

Lastly, Nick Carr, the author of “The Big Switch”, came on and did a great talk on cloud computing. Carr even mentioned that he knew many in the audience were uncomfortable sitting there for so long, so he promised to go through the talk quickly. That was unfortunate, as he had some great things to say, and I really wished he could have gone on longer. His central thesis is that bandwidth and computing power is becoming a utility that we tap into on demand much like electricity or water has been. He made a compelling case, and I look forward to reading his book. By the time he was finished, the audience was sitting for over two hours, and we were, how to say, quite relieved to have a break.

Developers’ Track: Apex Code Deep Dive and VisualForce Preview

There were three tracks available for the afternoon session:

  • Admins, Managers, and Analysts
  • Developers
  • Entrepeneurs and Vendors

Upon entering the room for the Developers track, I was surprised at how few people were there. While I would estimate that 300 people were in the room for the morning keynote, only 25 or so were attending these Developers sessions. I’m not sure how many people were in the other two tracks, but the lower number more closely aligned with my expectations of how many Force.com developers are actually in the Atlanta area.

The first 75 minute session focused on Apex. It was largely a language overview with a little bit of demo, and it had some stuff for both newbies and more experienced Force.com developers. My ears perked up at the end, when upcoming features were discussed:

  • Dynamic Apex – Apex that acts more like the Partner WSDL for the SOAP API. It’s more loosely typed, and includes metadata methods.
  • Asynchronous Apex – Asynchronous is actually a misnomer, as the more appropriate term for it is Queue-based. This means that Apex transactions can be put in a queue to be processed in the background as the rest of the application moves forward. I surmise that this will allow for looser Governor limits, but I’m not certain of that.

The second 75 minute session featured VisualForce. I have yet to play with VisualForce (shame on me!), and so this talk was very, very interesting. Overall, I get the “Ah, this is the Right Way to do it” feeling that I first got with Ruby on Rails. However, I’ll have to try it out to see the limitations, as I’m sure there are quite a few. We closed with a demo of Salesforce wrapped in the the iUI interface, which was really, really slick.

Conclusion

Overall, it was a day well spent. I loved the demos and the breakout sessions. My big gripe was with the length of the morning keynote. Yes, Salesforce.com is great at selling their product, but this day was supposed to be about developing with Force.com. More demos, more sessions, and less marketing!

Salesforce Tools of the Trade

Posted by Luigi Montanez
on Monday, April 07

Salesforce.com is billed as Software-as-a-Service: a complete software experience contained in the web browser. While regular users will never have to leave the warm comfort of their browsers, the reality for administrators and developers is much different. We depend on several essential tools to wrangle our data. Luckily, all the following tools are downloadable for free, and versions are available for both Windows and Mac OS X.

Apex Data Loader

Windows Installer | Mac Installer

Originally called LexiLoader (the Mac application is still called this), the Data Loader is the most essential tool for getting data in and out of Salesforce. The Data Loader connects via the Force.com SOAP API and understands the ubiquitous format of CSV (comma-separated values). When exporting data out of Salesforce, you’ll need to use SOQL, Salesforce.com’s SQL-like language for querying your data. SOQL doesn’t work exactly like SQL, and at times can be maddeningly confusing. But have no fear, as we have help.

Force.com Explorer

Windows Installer | Mac Installer

The Explorer explores your data. With it, you can build and execute SOQL queries, view the results, and edit the data (one record at a time).

The Windows version includes a SOSL Tester, which let’s you play with results from SOSL, Salesforce.com’s search language.

The Mac OS X version, SOQLXplorer, doesn’t include SOSL support, but does include a nifty graphical view of your data schema:

Let’s say that a city changes it’s name from Raritan to Edison (it’s happened before). So your workflow for updating contact data using the Data Loader and Explorer looks something like this:

  1. Use the Explorer to figure out the correct SOQL query for all contacts in Raritan
  2. Using the Data Loader and your cool query, export the data to a CSV file
  3. Open the CSV file in Excel, and replace the City column with “Edison”
  4. Fire up the Data Loader again and update the fields using with the new values in the CSV

Three different applications, four steps. Whew! If only there was a tool that did all of that in one neat little package…

Mass Update Anything

Windows/Mac Installation Instructions

Mass Update Anything, as the name implies, updates fields in bulk, based on a SOQL query. In addition, you can choose to delete fields in bulk as well. It’s a great little tool that does one job very well, and will save you from CSV hell.

Force.com IDE

Windows/Mac Installation Instructions

Last but not least, the Force.com IDE, based on Eclipse, is essential if you’re going to write any custom code for Salesforce. It has more features than I could ever describe in one post, so your best bet is to just visit the page. The IDE also includes an integrated Schema Browser (like the Force.com Explorer), and I’ve found myself using that rather than the stand-alone app.

Summary

So there you have it. The Data Loader loads data. The Explorer explores data. Mass Update Anything does what it says. And the IDE provides you with an integrated development environment for Apex Triggers and Classes, S-Controls, Visualforce, and Metadata. These are the tools you need to kick ass, so get ‘em and get started!