The Salesforce platform is always advancing, with three major updates rolled out each year: Winter, Spring, and Summer. These updates introduce a wide range of new functionalities and improvements. For developers, it’s essential to have a clear strategy for these releases. This approach guarantees that you and your team are ready to fully utilize the newest developer features of the platform, optimizing the benefits of the latest functionalities.
With the Salesforce Spring ’24 release, a collection of innovations is introduced, specifically designed to boost developer and administrator capabilities. This upgrade is focused on three key areas:
- enhancing productivity,
- integrating artificial intelligence (AI) to provide deeper analytics, not limited to simple
Einstein Search or basic insights, - improving the overall user experience across the platform.
Through these advancements, the Spring ’24 release aims to streamline processes, offer more profound insights, and deliver a smoother interface for users, thereby elevating the Salesforce ecosystem for all its users.
Key Developer Features in Salesforce Spring ’24 Release
Lightning Web Components Enhancements
The release of LWC API version 60.0 brings numerous bug fixes and enhancements. Developers are encouraged to transition their LWC projects from LWC.studio to StackBlitz for a more robust development environment, benefiting from faster prototyping and easier bug reproduction. Below are key features and enhancements for Lightning Components:
Workspace Management
The LWC Workspace API now offers methods to manage
workspace tabs and subtabs within Lightning console apps, featuring minor bug fixes and
improvements since its beta version.
Record Selection Made Easy
The ‘lightning-record-picker component’ (available now) allows both desktop and mobile users to swiftly find and select Salesforce records. This component now supports fetching up to 100 records, enhanced error messaging, and new attributes for a more tailored user experience. It utilizes the GraphQL wire adapter for offline usage.
Native Shadow DOM Support
Prepare your components for the native shadow DOM with the beta mixed shadow mode, aiming for improved performance and web standards compliance. Migration to StackBlitz: With the impending shutdown of LWC.studio, developers should migrate their projects to StackBlitz, leveraging its efficient coding environment and integration with VS Code.
Enhanced Accessibility with ARIA
Additional ARIA attributes are now reflected in properties, expanding the accessibility of web components. Security and Observability Enhancements: Lightning Web Security introduces new
protections and the Custom Component Instrumentation API, which allows the monitoring of
component events within Salesforce’s Event Monitoring system.
Internal DOM Structure Changes
Salesforce is updating the internal DOM structure of base Lightning components like lightning-input, in preparation for adopting native shadow DOM. This aims to enhance performance and compliance with Web Components standards while cautioning developers to adjust their tests and styles accordingly.
👉 Additional info: Full Lightning Components release notes
💡 Insight:
A notable improvement is seen in the ‘lightning-datatable’ component, which now features a ‘wrap-table-header’ attribute. This addition enables the wrapping of header text to fit within the confines of column widths, addressing the need for better space utilization in data presentation. Additionally, the ‘lightning-input’ component has been enriched with a ‘role’ attribute. This enhancement facilitates the creation of accessible combo boxes, streamlining the development of user interfaces that are both more intuitive and compliant with accessibility standards.
Apex Enhancements
The Spring ’24 release of Salesforce introduces a variety of Apex enhancements aimed at simplifying and enriching the development experience. Spring ‘24 Salesforce Apex key updates:
Null Coalescing Operator
Simplify your code by using the null coalescing operator ‘??’ to bypass null checks. This operator selects the first non-null value from its two operands, streamlining expressions and reducing code verbosity. This addition was inspired by community feedback on IdeaExchange.
UUID Generation
The introduction of a new UUID class enables the generation of version 4 UUIDs, utilizing a strong pseudo-random number generator. This feature provides a standard method for creating unique identifiers, a functionality requested by the Salesforce community.
Enhanced DML Operations
Salesforce now allows for more flexible transaction management. By using a savepoint, developers can roll back all uncommitted DML operations. The addition of the ‘Database.releaseSavepoint’ method further permits the explicit release of savepoints before making external callouts, addressing previous limitations around callouts post-savepoint creation.
Compression Namespace
The new Compression namespace, currently in Developer Preview, offers methods for generating and extracting compressed zip files. This feature allows for efficient data handling and storage, enabling the compression of multiple files into a zip archive and selective extraction.
Formula Evaluation
The FormulaEval namespace, also in Developer Preview, supports the evaluation of user-defined formulas for Apex and sObjects. This capability eliminates the need for DML operations to recalculate formula values, facilitating dynamic formula evaluation directly in Apex.
REST Response Header Validation
Following RFC 7230 standards, Salesforce enforces validation for REST response headers defined in Apex, ensuring compliance and enhancing the reliability of API interactions.
Logging Enhancements for FOR UPDATE Locks
Salesforce now logs the release of record locks obtained with the ‘FOR UPDATE’ clause, improving transparency and debugging for developers.
Type.forName Method Behavior
The behaviour of the ‘Type.forName’ method has been adjusted. Now, specifying an invalid namespace returns null, promoting clearer error handling and code correctness.
DML Enhancements for External Objects
Spring ’24 refines DML operations for external objects, restricting certain DML methods to external and big objects, and improving limit accounting and validation to prevent misuse.
New Quiddity Enum Value
A new default quiddity value, undefined (UD), has been introduced for events without a specific descriptive quiddity, streamlining event handling and categorization.
These updates, many of which were driven by user suggestions on IdeaExchange, showcase Salesforce’s commitment to enhancing the Apex programming environment, making it more powerful, user-friendly, and efficient for developers.
👉 Additional info: Full Spring ‘24 Salesforce Apex release notes
International Components for Unicode (ICU) Locale Formats
The Spring ’24 update introduces a feature that integrates International Components for Unicode (ICU) locale formats into Salesforce. This allows for the customization of dates, times, numbers, and currencies to match the local preferences of users from various regions.
If you create applications within Salesforce intending to present information in a way that feels familiar and intuitive to a global audience you have to enable ICU locale formats. By enabling this feature, you’re essentially harnessing a powerful tool that automatically adjusts these elements according to the cultural and regional standards of your users. This capability ensures that your applications provide a consistent and culturally relevant experience to users everywhere.
This enhancement significantly improves your applications by ensuring that all presentations of time, numerical data, and monetary values are appropriate for each user’s cultural context. It enables your applications to fluidly navigate between different languages and locales, offering a seamless experience for all users.
With ICU locale formats, you’re offered a wide range of formatting choices, ensuring that your application not only looks professional but also aligns accurately with cultural norms. Additionally, this feature simplifies the task of formatting, allowing you to dedicate more effort to the development of your application’s key features. Essentially, it acts as a supportive tool that enhances both the appearance and functionality of your application, making it more accessible and enjoyable for a worldwide audience.
👉 Additional info: Full Enable ICU Locale Formats release update
Visualforce JavaScript Remoting API Security
The next Spring ’24 release also addresses security improvements, notably through the Visualforce JavaScript Remoting API. The Visualforce Remoting API enables the use of JavaScript to call Apex controller methods directly from Visualforce pages. To enhance security, particularly to guard against unauthorized data serialization and deserialization across different package namespaces, this update introduces validation for the JsonAccess annotation in Apex classes. Initially introduced in the Winter ’23 release, this security measure is being strictly enforced starting with the Spring ’24 update. This ensures that only properly annotated Apex classes can be serialized or deserialized, providing an additional layer of protection against potential vulnerabilities.
Salesforce Packaging
Packaging serves as a key tool in the development and distribution of business applications. For creating and selling apps on the AppExchange, developers should utilize second-generation managed packages. Meanwhile, unlocked packages are recommended for the development of internal business applications.
The introduction of the ‘scopeProfiles’ setting in the ‘sfdx-project.json’ file offers developers precise control over which profile settings are packaged. This feature comes into play when creating a new package version with the ‘sf package version create’ command, allowing for a more tailored package content.
Salesforce has enhanced the management of second-generation managed packages by enabling the removal of both protected and public records from a custom metadata type. The impact of removing these records on the subscriber org varies based on the records’ visibility:
Visible Records: Marked as deprecated in the subscriber org, still counting against the org’s limit.
Invisible Records: Deleted from the subscriber org.
Package developers are encouraged to inform subscribers about deprecated records and the importance of deleting them to manage their org limits. This improvement was implemented in response to feedback shared on IdeaExchange.
The process for managing push upgrades has been simplified. The Package Manager page now only shows valid production orgs in the Target Organization list, specifically including orgs with a status of trial, free, or active. This update makes it easier for developers to identify and select the appropriate orgs for push upgrades, streamlining the upgrade process.
👉 Additional info: Full Spring ‘24 Packaging release notes
💡 Insight:
Do not forget to check features that will be retired, such as Salesforce Functions.
Salesforce Functions will be retired from January 31, 2025. You may keep using your current subscription until the end of your existing Order Term. To maintain the functionalities that Salesforce Functions offered to your organization, it’s necessary to implement a replacement solution before.
Conclusion
The Salesforce Spring ’24 release brings an array of new features and enhancements designed to transform the way office-based and remote Salesforce developers create and refine applications on the platform. This update focuses on increasing component flexibility, bolstering security measures, ensuring global compatibility, and providing more efficient tools for debugging. Together, these advancements facilitate a smoother, safer, and more inclusive approach to development. Developers are invited to delve into these updates to fully harness the capabilities of Salesforce in their projects, potentially elevating their applications to new levels of performance and user experience.