|
1 | 1 | ## DotVVM Roadmap |
2 | 2 |
|
3 | | -Current stable version: **3.0** |
| 3 | +Current stable version: **4.3** |
4 | 4 |
|
5 | | -Next planned version: **3.1** |
| 5 | +Next planned version: **5.0** |
6 | 6 |
|
7 | 7 | <br /> |
8 | 8 |
|
9 | | -### DotVVM 3.1 |
| 9 | +### DotVVM 5.0 |
10 | 10 |
|
11 | | -There are many features which didn't make it to 3.0, and will be introduced in DotVVM 3.1. |
| 11 | +DotVVM 5.0 adds focuses on providing extensibility points and contains significant performance improvements: |
12 | 12 |
|
13 | | -* Enhancements in extension methods discovery |
14 | | -* More LINQ methods supported in data-binding expressions |
15 | | -* Type inference for lambdas in binding expressions |
16 | | -* Validation enhancements |
17 | | -* `FileUpload` control which doesn't need `iframe` |
| 13 | +* Generic `GridViewDataSet` that allows multi-criteria sorting, token-based paging, and more |
| 14 | +* `AppendableDataPager` control that can create infinite scrolling experience |
| 15 | +* `ModalDialog` control based on native HTML `<dialog>` element |
| 16 | +* Replacing `Newtonsoft.Json` with `System.Text.Json` that should bring significant performance improvements |
| 17 | +* Using `resource` bindings in `Repeater` and `GridView` controls |
18 | 18 |
|
19 | | -### DotVVM 4.0 |
| 19 | +### Plans for next major versions |
20 | 20 |
|
21 | | -We have some ideas on what we can bring into DotVVM 4.0. Here are some of them: |
| 21 | +* Reimplementation of the Visual Studio extension to run out-of-process and adding support to Visual Studio Code and JetBrains Rider using Language Server Protocol |
| 22 | +* Enhancing [ASPX to DotVVM converter](https://dotvvm.com/webforms/convert) to support more translations and use of AI |
| 23 | +* Simplifying the route and control registration to avoid over-complicated `DotvvmStartup.cs` file |
| 24 | +* Adding support for ASP.NET Core [static assets](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-10.0) (pre-compressed images, scripts, stylesheets etc.) |
| 25 | +* Support for polymorphism in viewmodels and the `as` keyword |
22 | 26 |
|
23 | | -* **Easier way to write controls**: Writing custom controls in DotVVM is difficult, and we'd like to make it really easy. We have implemented a prototype of an easier way to build controls, and we have some ideas that could save many lines of code and make things easier, including a better support for web components and other concepts. |
24 | | - |
25 | | -* **(⌛ In progress)** **Selenium test helpers**: One of the biggest pain-points in web app development is end-to-end testing. It is difficult to make UI tests resilient to changes made in the UI, and it makes them difficult to maintain. There is a [Selenium Generator](https://github.com/riganti/dotvvm-selenium-generator) project that builds a command-line tool which can browse DotVVM pages and generate C# PageObjects that allow to access page controls in a strongly-typed fashion. When the UI changes and PageObjects are re-generated, you'll immediately see which tests were broken. |
26 | | - |
27 | | -* **Client-side GridViewDataSet**: The `GridViewDataSet` API supports sorting and paging of viewmodel collections, but is limited to command bindings and thus is difficult to use with REST API bindings and static commands. We want to introduce a new kind of dataset which would be able to refresh data using REST API binding or a static command, and which would not store the data rows in the viewmodel. |
28 | | - |
29 | | -### Side Projects |
30 | | - |
31 | | -There are several side projects with active development. |
32 | | - |
33 | | -* SignalR integration and the ability to update the viewmodel from the server side. |
34 | | -* Translation of C# methods in viewmodels into JavaScript (implemented, but we'll need to redesign it to fit with the rest of DotVVM infrastructure). |
35 | | -* [DotVVM Dynamic Data](https://github.com/riganti/dotvvm-dynamic-data) |
36 | | - |
37 | | -### Future Ideas |
38 | | - |
39 | | -We were thinking of replacing Knockout JS by some vdom based alternative library [#383](https://github.com/riganti/dotvvm/issues/383). Knockout JS would still be supported for compatibility reasons, but the controls included in the framework would not need it. However, the effort of implementing this would be huge, and we are not convinced of the benefits. Also, this wouldn't be possible without many breaking changes. |
0 commit comments