Within the last view days I found that a lot of basic functionality available in Visualforce is not available in Lightning Components right now. At some features I was surprised a bit, because I considered them as the heart-and-soul of the force.com platform. But since Lightning Components are evolving and still in BETA, it’s fine.
Now to save time for digging and testing each single feature individually, it would be very helpful to have a feature-matrix what we have (or have not) in Visualforce and Lightning right now and what is on the roadmap with a target date – and on the other side what is not on the roadmap and maybe why.
I know, I ask for a lot, but this is very important for developers to pick the right framework for a set of given requirements today.
Also to make reasonable decisions if a developer should start to build a feature on his or her own. Imagine you need to automatically populated picklist-values from metadata-definition: is it really not available?? should you start to implement it or not? If it comes within the next 6 months as a native feature, you might wait or continue with Visualforce. If it’s not on the roadmap at all, you might start to implement it immediately today…
Other features might be obsolete or there are best practices with entirely different approaches.
Is there any feature-matrix available?
Should we start something right now? Maybe here as answers?
I could contribute some points I found out. Unfortunately no tables are supported here at SFSE, otherwise I had had started already…
Please feel free to edit this answer! Caveat Emptor: I’m doing my best to update it as precisely as possible, but can’t promise everything is correct and stays correct.
To get things rolling, here is a collection of topics which belong to the feature-matrix I have in mind. Since most them have no final answer, I think this format might be a good start. I’ve added the intermediate (maybe wrong) results in square brackets at the end.
~= partly available
?= unknown, not tested
Bugs or necessary workarounds I would count as missing.
Any suggestion on how to create a matrix or table here is welcome. Feel free to extent.
Forms and Inputs
- Field-Labels from Metadata
- LC: confirmed missing feature (2015-10-28). No ETA yet.
- Custom-Labels using $Label
- Dependent Picklists [VF+ LC?]
- can anyone test this please?
- Picklist Values from Metadata
- LC: with force:inputField but buggy. Workarounds available
- Lookup Inputs
- LC: with force:inputField but confirmed bug (2015-10-28), workarounds available. Safeharbor ETA Spring’16
- Polymorphic InputFields
- LC: force:inputField and force:outputField are working partly
- Localiced Numeric Inputs
- LC: confirmed bug (2015-10-30). No ETA.
- Inline Editing
- Supporting a Viewstate
- Use Lightning Components in Visualforce
- Use Visualforce in Lightning Components
- only partly: there is a Component for App Builder but not yer for Community Builder
- Using URL-parameters and #anchors in Communities
- SPA-Navigation out of the box
- VF: I count the rerender-attribute as partly
- LC: you have to swap, add, delete, hide or show components in your own logic. There is no strong customizable pattern as $route in AngularJS
- Support for Browser-History, Forward/Backward, Deeplinks, Open-in-tab/window
- possible unexposed feature in S1/LE. Not available for Community, Standalone Apps or subnavigation
JS Frameworks and Libraries
- General Usability
- LC: you need to be careful since Aura in LC itself is a JS-Framework and might clash with additional frameworks. At dreamforce’15 they encouraged us to use additional frameworks as rarely as possible.
- VF: almost all frameworks will work nicely
- Use CDNs
- LC: CDNs blocked by CSP, need to use Static Resources
- Caching Prevention for updated Static Resources
- having an premier+ case open, yet
- It’s essential as of Winter16 that “My Domain” be enabled both to use and to develop new or existing Lightning Components. See Important Change to Lightning Components in Winter 16.
- Not possible to see all JS-errors in Communities
- LC: Use
$A.run()which has been deprecated.
- PDF Generation
Your feedback is very welcome, especially if I got something wrong, please let me know!