Skip to content

Commit 6005a6a

Browse files
authored
Merge pull request #1967 from riganti/roadmap
Roadmap updated
2 parents b74086a + 45505ee commit 6005a6a

File tree

1 file changed

+15
-28
lines changed

1 file changed

+15
-28
lines changed

roadmap.md

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,26 @@
11
## DotVVM Roadmap
22

3-
Current stable version: **3.0**
3+
Current stable version: **4.3**
44

5-
Next planned version: **3.1**
5+
Next planned version: **5.0**
66

77
<br />
88

9-
### DotVVM 3.1
9+
### DotVVM 5.0
1010

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:
1212

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
1818

19-
### DotVVM 4.0
19+
### Plans for next major versions
2020

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
2226

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

Comments
 (0)