Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Microsoft.VisualBasic.dll on top of netstandard #44

Closed
iainnicol opened this issue Mar 8, 2017 · 9 comments
Closed

Microsoft.VisualBasic.dll on top of netstandard #44

iainnicol opened this issue Mar 8, 2017 · 9 comments

Comments

@iainnicol
Copy link

Split off from https://github.com/dotnet/corefx/issues/14300

The usual Microsoft.VisualBasic DLL exists in .NET Core, but only with a tiny API subset. The API in .NET Core shouldn't be extended. However, I would be interested in a fuller subset of the the DLL which could sit on top of netstandard.

As @AnthonyDGreen writes, we would have to consider

whether [it] should exist and what should be in it and how we deal with what's left out moving forward.

For a start, I presume it would be much easier to leave out the My* namespaces, and also PInvoke heavy code.

@gafter
Copy link
Member

gafter commented Mar 8, 2017

This doesn't sound like a VB language issue. Perhaps it belongs in the Roslyn repo?

@AnthonyDGreen
Copy link
Contributor

Hey @gafter,

I asked him to create it here for the time being.

It's not going to perfectly fit in either repo but given how the VB runtime interacts with the language I'm comfortable having it here. Whether and how the My namespace works when targeting netstandard, for example, is as much a language decision as it is a library one. Not to mention late-binding (except now I just mentioned it).

@AdamSpeight2008
Copy link
Contributor

I think we should not port the legacy functionality across. It's time to leave the "old fashioned" VB6 approach behind, and use the .net approach. Especially on dot net core.

@rolfbjarne
Copy link
Member

For pure managed (doesn't require P/Invokes, or any other API that is platform-specific) API I don't see a reason not to make them available in .NET Core (assuming the required underlying API is available in .NET Core).

IMHO the origin of the API doesn't matter, only its usefulness does.

@Bill-McC
Copy link

Is there a list of what is in, what's not ?

@KathleenDollard
Copy link
Contributor

Is this issue addressed with the expanded surface area of .NET Standard 2.0?

@iainnicol
Copy link
Author

Thanks for asking. No, the surface area for Microsoft.VisualBasic was not extended (or at least not significantly).

@iainnicol
Copy link
Author

iainnicol commented Jul 11, 2018

I'm going to close this, given the news in issue #280 that the corefx team want the VisualBasic dll ported to .NET Core 3.

My understanding is that Anthony D Green originally envisaged .NET Core could give VB the possibility of having having a newly designed VisualBasic dll. This new dll would possibly be slimmed down, and certainly be more modern (e.g. async support), compared to the old desktop version of the VisualBasic dll.

Regarding being slimmed down, .NET Core has since decided to instead massively expand the API surface. I think that's good for compatibility. A .NET linker now exists, which can be used where slimness matters.

Regarding modern API support (e.g. async), I think that's something that could be feasibly designed and added in a separate NuGet package, community maintained. But that should probably be done after the port of the existing VisualBasic dll to .NET Core.

@KathleenDollard
Copy link
Contributor

Thanks @iainnicol

I agree with your assessment here. A core tenet of .NET Core 3 is code compatibility (not so with earlier .NET Core versions), so this is a good time to move the VB runtime, then consider changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants