[SalesForce] Can users edit VisualForce pages in a managed package

I am building a managed package that includes a VisualForce page that overrides the Account Edit page (by overriding the Edit button). Will users be able to customize this page? I worry that if they add fields to the Account layout, they will have no way to edit those fields, since my edit page overrides the one that would be generated based on the Account layout.

Best Answer

No, users can't modify managed code, including Visualforce pages. Instead, you should offer your functionality as a component, and an unmanaged page template for the administrators to modify at their leisure. The default template might look like this:

<apex:page standardController="Account" extensions="namespace.MyExtension">
   <!-- put your code here -->
   <namespace:myComponent accountId="{!Account.Id}" />
   <!-- you can put more code here -->
</apex:page>

Alternatively, consider using the REST API to render the account layout directly from metadata, or use some template system where users specify the field order, etc.