The place for the VB community to join our collective voice! See https://github.com/CommunityVB/Main for more info.
People
Repo info
Activity
Cory Smith
@DualBrain
You know... for all of the negative stuff around VB... it sure is odd how much stuff from VB has made it's way into the other language(s). ;-)
Paul M Cohen
@paul1956
@DualBrain So true
Mohammad Hamdy Ghanem
@VBAndCs
I am still trying to run VB.NET code in wasm. I don't like Blazor at all, and I am trying to create another path to wasm. I proposed this in Monon wasm and hope we can make it happen (thou we may contribute in C# code to create the library).
In fact I am trying to contact people who already made similar efforts in creating such library like script# and Ooui praeclarum/Ooui#245
I don't want to fight this alone.
Mohammad Hamdy Ghanem
@VBAndCs
I could have try to create all the tools myself, except this needs a deep knowledge about wasm and mono wasm which I dob't have, so, I contacted wasm, and they told me about interface-types. The Blazor team is not willing to do any thing differenet, so, I contacted Mono wasm to see how can they make use of that, and there is a good response. This can move forward if there is a community contributions.
Note that I say nothing about VB.NET. There is alot of hate towards VB.NET, and issues closed as soon as I say the VB word! So, lets keep our true agenda hidden for a while :)
In fact the path I am proposing is superior to Balzor and will allow us to use wpf/UWP/Xamarin in the web like Qoui and cshtml5 do, besides using Blazor component as well, but with minimum download size.
Paul M Cohen
@paul1956
Updated C# to VB converter, added full solution conversion with many other features.
Jeff Bowman
@InteXX
@VBAndCs "So, lets keep our true agenda hidden for a while" The spy who loved us ;-)
Mohammad Hamdy Ghanem
@VBAndCs
:D
What else to do? They treat VB.NET as a crime :(
@paul1956 I depend on your converter daily. It is helpful. I hope you try to create IL to VB converter, so you don't have to update the converter with every new C# release.
previously it had an option to convert it to VB but disappeared in recent versions
you can make use of it's source to convert IL to VB.NET code
Cory Smith
@DualBrain
I think the dependency in @paul1956 converter will require a new version whenever Roslyn is updated since it's using Roslyn to do most of the heavy lifting.
Mohammad Hamdy Ghanem
@VBAndCs
Then tour converter: compiles C# to IL, then converts it back to VB.NET. This will need no more updating unless something shanges in Il, which is not expected to happen
@DualBrain I don't think Roslyn will ever break backward compatibility. Any addition will not affect the converter functionality.
But C# versions, will always have new syntax features, which will need updating the converter, at least to reference new Roslyn versions.
Mohammad Hamdy Ghanem
@VBAndCs
If there is no more than updating the Roslyn version, it is OK. If there is more to do in VB side, this will need more work.
_
Cory Smith
@DualBrain
@paul1956 Haven't had a chance to try just yet; but out of curiosity, how are you handling "local functions"?
Mohammad Hamdy Ghanem
@VBAndCs
Private Function x() As Void
' TODO TASK: Local Functions are not support by VB:' Original Statement:
' ' void y() ' { ' }
End Function
Not supported. But it is easy to convert it to a lambda sub/function
by the way, As Void is my mistake, becuase of the uppercase Void :D
That astroids project looks to be nearly EXACTLY what I'm looking for... thanks!
"Asteroids.WinForms - Reconstructed WinForms GUI that uses the game engine with a PictureBox as the main renderer. This is using the .NET Framework 4.8."
That's how I'm approaching it in WinForms... so looks like it would be a great thing to dig deeper into.
@DualBrain, I don't as @VBAndCs pointed out, I can look at it, I will open an issue. I also don't create the solution file, I just convert all the projects within, but it does a lot better when it has the entire solution for all the references.
Paul M Cohen
@paul1956
Joseph Musser provided a working sample for how to place the Lambda function correctly for simulate local functions. I have covered many cases but I am sure not all. I will post a new converter tonight, please open issue if you find cases where if doesn't handle a local function or puts the lambda in the wrong place. This works because VB and C# have different rules for Lambda's (discussed by Anthony Green in Roslyn) and maybe why VB never got Local Functions and doesn't need them.
Cory Smith
@DualBrain
For the record, right now I really dislike Blazor. Everyone seems to talk about it as if it's "done"; yet the previews seem to change so often (and enough) that every... single... project... example... I... find... doesn't... work. Sure, I can do "dotnet new" and that works. (From what I understand, it's now "code complete"; so samples built on it NOW should be OK... but how many people out there seem to be circling back to fix what they've already done? What a mess.)
Jeff Bowman
@InteXX
Thought I'd let everyone know... we just got a Visual Studio VB.NET bug fixed in record time—18 hrs. Details here.
@InteXX Wonders never cease... Thought you'd have to wait till .NET 5 .. Seems to be the standard response to many issues at the moment
Cory Smith
@DualBrain
@aarondglover Are you seeing similar activity elsewhere? If so, please share. ;-)
@InteXX That is AWESOME!
Cory Smith
@DualBrain
@paul1956 Just a quick comment to say that the implementation of internal function conversion is interesting. I had an opportunity last night to take advantage of it; it got me about 90% there for the particular example I was working with. There was a collision between the parameter name and the name used in the method... I simply added an X on the end of the one in the "internal function" to work around that. Ultimately I pulled the labdas (there were actually two of them in this example) out into regular functions (which ultimately solved the name collision - providing a cleaner result IMO). For what it's worth, I usually extract these as their own methos named OriginalMethod_InternalMethod passing by reference where I can any parameters - but in other cases, I have to create member variables to hold. With all that said, like I said, the approach your taking is very interesting... just providing some feedback. If there is any one suggestion I can think if that would definately be useful is for you to place some sort of a "TODO:" comment explaining that these were internal methods and "may" require additional work.