Wednesday, December 14, 2016

FuseIT SFDC Explorer 3.4.16349.2

The latest v3.4 release of the FuseIT SFDC Explorer is out and contains a number of new features.

SOQL Queries with nested sub queries

Previously if you did a SOQL query with a nested related query I'd flatten out the results for display. This was less than ideal as all the sub records would get mushed together. Yuck!

Compare this with the developer console where JSON is the preferred way to handle the nested data.

Using the "Flat Display" table button will now toggle between the old behavior and providing a link to popup the nested results.

Basic IDE Workspace support

When you first connect to an Org a check will be made for existing IDEWorkspace records for the authenticating user. This can be used to restore the last anonymous apex code or previous SOQL queries.

Tabular Report Viewer

There is now a basic report viewer. The selected report can be exported to CSV, the clipboard, or Excel's XLSX format. I've only really tested it against tabular reports so far. When exported to Excel both the cell value and label will be maintained.

It's still early days for this feature. There are lots of improvements I could do around maintaining the field data types on the transition to Excel, such as DateTimes, Booleans, picklists. I could also add an option to nominate an ID column to be used for sorting that would then allow you to access more than 2000 records.

Do let me know if this is an area that would be useful to extend.

Asynchronous loading of org metadata

I'd noticed that the login time was getting successively slower. Turns out it was getting expensive to describe the sObject metadata as the number of sObjects grew in each org. They have to batched per 100. I've switched to loading the metadata asynchronously on initial login. It might take a moment before all the sObjects are available.

Pod Status and Release version

After a Session is established a quick check will be made for the current pod status and patch version.

Other changes

  • Improved Tooling API Metadata exploring by caching the describesObject results.
  • In Tooling API SOQL results, directly update values in the GridView
  • Selecting Id's or the Session ID from the Status Bar will give an option to copy the value to the clipboard.
  • Improvements for manual package creation with Metadata Deployment. You can now remove previously added nodes, or diff them with the target org.
  • Option to filter an Apex log to just rows that match the search term.

Wednesday, December 7, 2016

Transitioning to Lightning from Visualforce

Salesforce are pushing, and pushing hard, for customers to transition into the newer Lightning UI. That's not to say that Visualforce is going away any time soon, but it's time to think about moving with the cheese!

Where to start?

Choose a migration strategy

Mike Topalovich did a great blog series and presentation on migrating from Visualforce to Lightning.

In Part 1 he covers the background on Visualforce and Lightning so you know what each is an isn't.
In Part 2 he covers the roles Visualforce can play in Lightning.
Finally, in Part 3 he covers migration strategies for getting an existing org into Lightning.

Adopt the Lightning Design System in Visualforce

I recently completed a project to create a public facing Sites page for some Salesforce data. As it was a new project I thought I'd use a Lightning App and components to put it together. However, as at Winter'17, a Visualforce page that is rendering in a public facing site won't work if it contains a Lightning Component.

Instead I opted to use the Salesforce Lightning Design System (SLDS) with existing Visualforce components. I found this to be a good introduction to the SLDS as I was still using the very familiar Visualforce components.

The first thing I realized about the SLDS was all form and no minimal function. Take the Trees for example. You get a collection of CSS classes and attributes to apply, but must provide all the JavaScript functionality to apply and toggle those classes and attributes as required.

As part of the design for this new page I tried to focus all the page content into separate Visualforce components that communicated via JavaScript. Hopefully with the features come to use Lighting components in this scenario the transition will be easier.

See also, the Trailhead Lightning Design System module.

Locker Service

Coming back to needing to provide all the JavaScript logic to use the SLDS, it's important to consider the compatibility of any third party code you are bring in with the LockerService. See Introducing The LockerService For Lightning Components

Getting helps - Salesforce StackExchange

As always, the Salesforce StackExchange postings on lightning and lightning-components can be great resources for specific questions.

I found these ones in particular interesting:

Developer Tools

The following tools can make if much easier to develop and debug lightning components

Trailhead

At the time of writing there are 11 modules on Lightning in Trailhead targeting developers.