Winter 13 Maintenance Exams

I passed the Certified Developer and Administrator Winter ’13 Release Exams this morning. I always try to do this as early as possible and make the exams the culmination of a detailed investigation into the new release. The excellent resources available (pre-release webinars and orgs, release training, release notes and sandbox previews) make this a painless process. The pace at which the platform evolves can really catch you out if you don’t invest the time in keeping your expertise current. New features such as Chatter Answers, Case Feed etc. are extremely powerful but take hands-on experience to really understand, spin-up a pre-release test org and get your hands dirty.. In respect to the maintenance exams my approach is to have Salesforce open in one browser and the exam in another (Safari), I also have the release notes open and the full help documentation pdf open for quick reference. This arrangement works for me, I can quickly switch from the question to reference materials and the app for verification. That said, if you’ve read the release notes thoroughly, and you should, the exams shouldn’t prove too much of a challenge.

Salesforce Winter 13 Top 10

The Winter 13 release (v26.0 in API terms) will be with us shortly, yes the summer is officially over. Sandboxes updates start on the 7th September. For architects and developers this release brings some great new features, the Top 10 below is in order of my own personal interest.

1. Canvas Framework – Pilot. The Canvas framework provides a means to stitch external applications into the Salesforce UI with a much greater degree of control and depth of integration than through mashups via frames. Authentication and cross-domain issues are handled by the Canvas SDK. This topic is massive and I’ll come back to this in more depth in a future post. For now it’s sufficient to understand the potential, which is deep integration of off-platform apps – namely those built on Heroku.

Canvas Framework Developers Guide (html) is here

2. Testing Apex Callouts. Writing test code for functionality which invokes callouts has historically been a problem, in short the test context proceeds to make the callout which is prohibited so it fails the test. Great. The answer has typically been the application of a pattern where the execute and response processing code are separated into virtual methods, the callout class is subclassed, with the subclass overriding the virtuals (which don’t make the callout and return prefabricated responses) – the test code instantiates the subclass not the base class etc.. With Winter 13, this behaviour is nicely tidied up using the HttpCalloutMock interface and the Test.setMock() method. Responses can be dynamically generated or loaded from static resources, in the latter cases endpoint specific responses can be mapped from multiple static resources. This is number 2 on my list as this is a real-world problem given a comprehensive platform solution.

3. Test Data from Static Resources. The new Test.loadData(‘sobject’, ‘resource’) method does what it says, and will be extremely useful in creating richer data sets for unit testing. The typical for..loop creating Account 1..200 etc. can now be replaced with the loading of a file of better quality test data, which should be helpful in identifying code issues sometimes encountered only when code runs against real data. Note, ideally this method of test data creation should run outside of the governor limits applied to the test execution context, thereby enabling larger data sets to be created. I’m certain this isn’t the case, but I’d be very happy to be corrected..

4. Visualforce Charting. Now GA with additional chart types. I really like the ability to add charts into Visualforce pages without round-tripping data to external sources such as Google Charts, or embedding flash objects (although fun to write). Easy to use and flexible components.

5. Geolocation Custom Field – Beta. In an increasingly location-aware world, storing geolocation data and supporting proximity calculations is imperative to many mobile use cases. The beta introduction of a custom field type for geolocaton data looks interesting but requires special consideration in terms of support across the Salesforce platform.

6. Developer Console Enhancements. Now with added test execution and query editor. I’ll drill into the new Developer Console in a future blog post – for now it’s good news that the previous investments in the console are being extended – not sure the potential of the console is fully exploited by platform developers as yet.

7. Custom Object Truncation. No more bulk deletions of test data. Instead custom objects can be truncated – an unlogged operation which efficiently flushes all records from the object – a common practice with traditional RDBMS.

8. SOQL Polymorphism – Developer Preview. The new TYPE OF expression enables a different select clause based on the actual type of polymorphic field, i.e. if the Who field is actually a Lead, then select one set of fields, if its a Contact select another.

9. Salesforce Touch – Beta. Limited to Apple iPad and still at beta status, however Touch really does deliver a great user-experience. With Winter 13 a hybrid app can be downloaded from the App Store – delivery convenience and a persistent session. At some point the app will presumably provide local on-device data and functional integration – beyond what can be achieved within the browser.

10. Environment Hub – Pilot. Down at 10 simply because the feature is pilot only with Winter 13. Basically, the Environment Hub will provide a centralised view of all orgs in use – with auto-detect of sandboxes and a basic tagging model. In a world where multi-org strategies are commonplace and development projects are rapidly evolving toward complex environment configurations – this new feature will help understand the scale and state of the org estate.

Note the full Winter 13 release notes are available right here