Visual Cielo is 100% managed code
When you build an application with Visual Cielo you will always be creating code which is both managed and safe. There is no unmanaged or unsafe code in Visual Cielo. Language interoperability is the ability of code to interact with code that is written using a different programming language. Language interoperability can help maximize code reuse and, therefore, improve the efficiency of the development process.
Because developers use a wide variety of tools and technologies, each of which might support different features and types, it has historically been difficult to ensure language interoperability. However, Visual Cielo is written for the common language runtime and benefits from the runtime's built-in support for language interoperability.
The common language runtime provides the necessary foundation for language interoperability by specifying and enforcing a common type system and by providing metadata. Because all languages targeting the runtime, like C# and Visual Cielo, follow the common type system rules for defining and using types, the usage of types is consistent across languages. Metadata enables language interoperability by defining a uniform mechanism for storing and retrieving information about types. Compilers store type information as metadata, and the common language runtime uses this information to provide services during execution; the runtime can manage the execution of Multilanguage applications because all type information is stored and retrieved in the same way, regardless of the language the code was written in.
Managed code benefits from the runtime's support for language interoperability in the following ways:
Types can inherit implementation from other types, pass objects to another type's methods, and call methods defined on other types, regardless of the language the types are implemented in.
Debuggers, profilers, or other tools are required to understand only one environment—the Microsoft intermediate language (MSIL) and metadata for the common language runtime—and they can support any programming language that targets the runtime.
Exception handling is consistent across languages. Your code can throw an exception in one language and that exception can be caught and understood by an object written in another language.