Angular Zoneless

2 Answers 29 Views
General Discussions
Noah
Top achievements
Rank 2
Iron
Iron
Iron
Noah asked on 12 Jun 2024, 12:22 PM
Is there support for or plans to support zoneless angular?  We would like to try to use that for new projects (and possible old)

2 Answers, 1 is accepted

Sort by
0
Bhavika
Top achievements
Rank 2
Iron
answered on 13 Jun 2024, 05:43 AM
Yes, Angular introduced zoneless support with Angular 13, enabling applications to run without relying on Zone.js. This feature enhances performance and is particularly beneficial for new projects. Migrating old projects might require additional work to adapt to the new approach.
Noah
Top achievements
Rank 2
Iron
Iron
Iron
commented on 13 Jun 2024, 01:11 PM

Just to clarify. Removing the dependence on zone.js is still listed as an "experimental" feature in angular 18 and all components in your app must operate effectively as "On Push", and can't use things like NgZone.onStable .

Do all the telerik kendo angular components comply with this?  I tried turning it off in an existing app and many pages didn't work, but before we try to migrate anything that heavily relies on kendo components, I wanted to make sure kendo components also work in a project with no zone.js

0
Zornitsa
Telerik team
answered on 14 Jun 2024, 12:20 PM

Hi guys,

At present, our team does not have plans to provide support for ZoneLess Change Detection in the Kendo UI for Angular library. This is because, in general, we have a practice of supporting the latest official Angular version and those currently under long-term support (LTS) as well:

However, in order to start providing such support for ZoneLess Change Detection, our library should not maintain any previous Angular versions that still rely on Zone.js and all Kendo components would also need to be refactored appropriately for this new change detection concept. Therefore, ZoneLess Change Detection support is not to be expected soon but might be introduced in the distant future after dropping the support for all Angular versions that are dependent on Zone.js

I hope the provided information sheds some light on the matter.

Regards,
Zornitsa
Progress Telerik

Stay tuned by visiting our public roadmap and feedback portal pages! Or perhaps, if you are new to our Kendo family, check out our getting started resources
Noah
Top achievements
Rank 2
Iron
Iron
Iron
commented on 20 Jun 2024, 12:41 PM

So if we want to develop a zoneless application, we won't be able to use kendo?  It seems like that conflicts with your stated goal, because then you're not supporting the most recent version of angular.

I don't understand why you need to wait until Angular no longer supports versions that require Zone.js.  If all your components are effectively On Push, they will work in both new zoneless and legacy angular applications.   It's not like you updating to components that work in a zoneless environment would make them not work in older versions of angular.  Waiting until angular 22 or whatever when zone.js is completely not supported anymore doesn't seem like the right time to start supporting a feature that's available experimentally now and will be the recommended development path for new projects pretty soon.

Zornitsa
Telerik team
commented on 25 Jun 2024, 07:59 AM

Hi Noah,

We completely understand your point regarding this matter and how the lack of support for ZoneLess Change Detection in the Kendo UI for Angular components may cause some inconvenience in your application. 

However, typically we follow Angular's support policy and schedule, which means that we try to provide day-one support for the latest major Angular version and keep maintaining those under long-term support (LTS). Therefore, since currently, the actively supported and LTS releases of Angular include such that still rely on Zone.js, it would be difficult to introduce support for Zoneless Change Detection in the Kendo UI for Angular packages.

To be more comprehensive, due to the fact that there are remaining supported Angular versions, which are dependent on Zone.js, introducing Zoneless support for the Kendo UI for Angular library would require an impractical approach like releasing two separate versions of our packages for example. One version would need to be suitable for Angular versions with Zone.js dependence and the other one should be adapted for the new Zoneless Change Detection concept. 

With the above being said, Zoneless Change Detection support for the Kendo UI for Angular packages may be introduced in the future, but not until the support for all Angular versions that still rely on Zone.js is dropped.

Regards,
Zornitsa
Progress Telerik

Noah
Top achievements
Rank 2
Iron
Iron
Iron
commented on 25 Jun 2024, 01:22 PM | edited

I think you are incorrect.  You don't need two versions.  A version that works in a zoneless environment will also work in an environment with zone.  Do you see what I am saying? If your library doesn't require zone.js, it can still be used in an environment that contains zone.js.  But if your library requires zone.js it can't be used in newer projects that don't want to include zone.js just to make your library work.  Do you see the difference?
Martin Bechev
Telerik team
commented on 26 Jun 2024, 11:37 AM

Hi Noah,

Due to the support of Angular v15 and v16, we currently cannot provide support for zoneless components.

The Kendo components are compatible with Angular v18, however, some of the newly introduced features such as zoneless cannot be provided yet because of the aforementioned reason.

Migrating to zoneless components will require significant refactoring on our end, especially in more complex and composite components (Grid, Gantt, Spreadsheet, Editor, ...) or other scenarios that require the integration of several components.

To make all Kendo components zoneless several main types of refactoring should be done in every package such as ensuring every component uses the "OnPush" change detection strategy, every Input/dynamic option is reactive (by using Signals), removing all Zone-related APIs and replace them with new Angular ones or generic TypeScript/JavaScript as necessary and finally adapt all Unit and E2E tests accordingly, possibly introduce new ones as necessary.

To answer directly to the initial question - Is there support for or plans to support zoneless angular?  

There is no support for zoneless components yet and we also don't have a specific plan for when the component will start supporting zoneless configuration.

There is no doubt that the support for zoneless components required a huge amount of effort on our side and we understand the benefits of such refactoring. We are excited about it and we are eager to see the performance boost that will come up with such an effort. But considering the amount of work, and the fact that we are still supporting versions that are stopping us from working on this task, the support of zoneless components cannot be provided immediately. 

I hope this sheds some more light on that case.

Onie
Top achievements
Rank 1
commented on 28 Jun 2024, 08:03 AM

What are the potential performance benefits and development challenges of implementing zoneless components in large-scale Angular applications using complex UI libraries like Kendo UI, and how can developers prepare for this transition? slope game
Tags
General Discussions
Asked by
Noah
Top achievements
Rank 2
Iron
Iron
Iron
Answers by
Bhavika
Top achievements
Rank 2
Iron
Zornitsa
Telerik team
Share this question
or