Volta Known Issues and Limitations
Volta is only a technology preview at this point and the code is still experimental,
so you may encounter issues when using it. Below are some of the things you
should be aware of.
Library Download Times
At run time a Volta application downloads many files from the server, one for each
class that is used. The classes are loaded lazily, i.e. not downloaded until
they are needed, so initial application load time is not affected by classes not
used immediately. However, because of the number of files often required to
support an application, load times can be affected. In future versions of
the technology preview we plan to add additional intelligence to the way we compile
and load assemblies to address this.
Visual Basic Language Support
One of the benefits of Volta compiling to MSIL before the destination runtime, rather
than source-to-source translation, is that developers can use multiple .NET programming
languages to build Volta applications and controls, including C# and Visual Basic.
However, currently you will encounter several limitations when using Visual Basic,
including:
- Late binding is not supported.
- Services from My (such as User, Computer, etc.) are not supported.
The following are also unsupported unless explicitly specified otherwise:
- Conversion functions. For example, the Cint conversion function works only if the
underlying type supports the conversion.
- Helpers and VB6 legacy. For example, the Beep method is unsupported.
Volta Compiler
- The JavaScript output of the Volta compiler is not fully optimized.
- There is no source and line info for unparsable JavaScript in attributes.
Libraries
- The Volta libraries provide limited support for the Base Class Library (BCL).
- The Volta libraries provide minimum reflection support.
- The Volta libraries don’t support multi-threading.
Tier Splitting
- Only subclasses of Object can be tier split.
- The serialization between the two tiers is not very fast.
- The Visual Studio support for tier splitting supports only one server.
- The server URI can only be specified as an attribute argument (i.e., in source code).
Consequently deploying to a different server requires recompiling the code.
Imports
- Binding through the Import attribute does not support arrays.
Other
- Concurrent debugging multiple Volta applications is not supported.