-
Notifications
You must be signed in to change notification settings - Fork 80
Roadmap
Workbooks doesn't follow a strict release cadence, but we tend to try to get new features out in a release as soon as they're complete and ready. In 2017, major releases occurred roughly quarterly, with minor updates released as needed. We do milestone issues, typically just for the currently in-development release and for "the future".
Currently, there is a lot of C# client code calling JavaScript directly and vice versa (via IE COM + dynamic or JavaScriptCore + dynamic bridging).
There are various issues with this approach: namely, it couples the web-based rendering to the native client application that hosts the web view, so it is not possible to use an external browser as an actual UI. In the context of our existing macOS application, it also means we cannot use the latest Safari engine (via WKWebView).
We intend to draw a more clear line between the C# workbooks client and the web surface, and introduce an HTTP API to connect the two.
Historically, our web surface hosting a series of editors has lead to various issues with user experience, performance, and rendering. A common complaint is that scrolling and keyboard navigation between cells does not behave as expected.
In May and June of 2017 we prototyped a number of new editor surfaces and are likely to move from multiple ProseMirror editors to a single Draft.js editor, which will in turn host separate Monaco editors for code cells.
Workbook packages should be able to have multiple pages to avoid excessive scrolling. Work began on this many months ago but it was set aside in favor of other features. We intend to finish it.
Our NuGet package support really needs some UI updates to expose more information about installed and available packages, for example:
- Allow updating packages from sidebar
- Prompt user to restart workbook app when an upgrade occurs
- Allow managing installed packages from the search UI (which should be a more general package management UI)
- Expose more package metadata such as author, description, license, etc
- Allow user to pick specific versions instead of just latest
- Support for private NuGet feeds that require authentication
Users want to be able to pick their preferred device instead of being forced into an iPhone 5s (for example).
This work was mostly completed in a recent hack week, but was put on hold and needs to be rebased and finished.
Third parties should be able to provide their own workbook apps. Relatedly, we would like to allow the standard workbook apps to ship as separate downloads to reduce the initial installation size of Workbooks. We could also reduce build times by building some workbook apps separately and on only one platform.
We have some proof-of-concept work where new workbook apps can be brought in via NuGet. We also need to move some API from the internal Xamarin.Interactive.Client.dll into Xamarin.Interactive.dll, make it public, and document it.
Although Workbooks and Inspector clients are based on the same code, distributing them together is quite a burden. The Inspector client and necessary agent files should be distributed with the the Inspector extension itself (which is already shipped as part of the Visual Studio Enterprise products), not with the Workbooks installers.