by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    rskar-git
    @rskar-git
    Part II. The "Big If", after the release of .NET 5, is on whether synergy between the VB community and Microsoft/.NET Foundation might improve substantially. The "canaries-in-the-coal-mine" test of that may be when folks like @paul1956 or @AdamSpeight2008 report a more productive experience as contributors. However, VB doesn't have the "dogfooding" factor which C# does. VB looks to be more in an F# mode - which is to say that the very modest level of Microsoft focus is the new normal. We need to understand that the programming language business isn't what it used to be - the situation is now many customers that hardly pay for VB.NET or C# or F#. If this were the restaurant business, then languages would be like the ketchup, mustard, sugar, straws, and paper napkins - it's all just part of the service.
    Part III. But let's reflect: VB6 was something that had to be bought, yet VB.NET can be used commercially for free in organizations of up to five developers. Language design hardly changed from VB1 thru VB6 (and VBA too!) - it was mostly set in stone circa 1991. VB.NET language design has had an awesome path of evolution, especially after it could be had for free (as in free beer!) since sometime 2005 (remember Visual Studio Express?). So, yeah, things may have quickly slowed, and it took a few years to go from VB15 to VB16, but look at what you can do for free today (VB16) versus what you could do for a price way-back-when (VB6). And with .NET Core, a cross-platform system, your favorite language now has greater reach.
    Part IV. So the way forward is to get used to this new normal. We may simply have to endure the learning-curve of becoming contributors, figuring out the inner workings of the .NET Foundation, etc. I think the issue here is that the typical VB programmer wasn't doing DevOps on Linux-based server forests and open source software on git repositories, which I guess amounts to a cultural factor. We need to get good with this, and that this is the "price" for a "free" language. Finis :)
    Paul M Cohen
    @paul1956
    I am trying to add Checked and Unchecked (expressions based on work Adam started) and Statements, the issue with Vb and maybe C# is the lack of documentation on what needs to be done. Adding the new syntax, was "easy" based on my experience added _ ' comments, updating the binder had an excellent article, that took me a while to find, on the "Matt" operator Matt(x) = x, adding operations I was able to use NameOf as a sample and code generation just worked because VB already supported unchecked math as a compile switch (another thing that was very hard to learn about). All of that is language stuff and I now have a compiler that fully supports Dim x as Byte = Unchecked(CByte(255) + CByte(1)) without a compiler or run-time error but that isn't 1/2 the solution. It also turns out to be the easy part. Now I need to support new Classifications, Workspace.GetInfo and who knows what else for Visual Studio to work and there is little to copy from. VB will need on internal champion to help review and assist with new features and get past the LDM.
    Mohammad Hamdy Ghanem
    @VBAndCs
    Does anyone hear anything about VB team recently? I am worried about them :D. Is there any VB.NET team left?
    Paul M Cohen
    @paul1956
    After a long silence Kathleen Dollard did respond to VB PR last week. Also I did get a trivial VB PR approved in current Roslyn Master. There are new VB CodeFixes in every Preview that are not language independent (they work with both VB and C# but have at least partly separate implementations) and I am seeing bug fixes in Master, so someone is doing something but no release notes. On the downside there has not been anything changed in WinForms, specific to VB, for 3 months with nothing significant for 5 months and SingleInstance is still not supported. On the very positive side CoverLet now fully supports VB. As for the state of the team, I have no idea, but I never did know who was on the team.
    Mohammad Hamdy Ghanem
    @VBAndCs
    Thanks for the info
    Cory Smith
    @DualBrain
    @paul1956 Do you have the following working: Dim x = Unchecked(CByte(255) + CByte(1)); where x will determine to be a Byte (given the correct options are enabled)?
    Paul M Cohen
    @paul1956
    Yes
    Expressions work well. Statements work for compiler but crash VS. still a WIP.
    Mohammad Hamdy Ghanem
    @VBAndCs
    @VBAndCs
    They finally declared they will kill VB.NET:
    https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/
    Going forward, we do not plan to evolve Visual Basic as a language.
    Paul M Cohen
    @paul1956
    @VBAndCs that is not the line that bothers me, it is lack of support for new Core API's that concerns me.
    Mohammad Hamdy Ghanem
    @VBAndCs
    They give the same meaning: VB.NET is frozen to death. It was obvious since 2017, and this is why I kept shouting in VB.NET repo: MS is killing VB! It would be grate if they did our XML literals proposals and the generic script interpolated string. If we can write other languages fragments in interpolated strings with a intillsense and compiler support, we will no more improvements to VB.NET. We can just embed some C# chunks in VB.NET to borrow the new features directly inline.
    I feel sad.
    Paul M Cohen
    @paul1956
    It is already possible to compile a C# program (in VB or C#) and get the result, it is used in tests, but it is not fast I am not sure what you are proposing with generic script interpolated string and why it needs to be in the language. Before I started with UncheckedExpression I created an Unchecked Library based on BigInt, it worked but it required odd looking code and wrapping every sub expression that would cause Overflow vs just wrapping expression with Unchecked(<Expression>) but if I can't call libraries in Core 6 because they use Ref Return I am dead.
    Mohammad Hamdy Ghanem
    @VBAndCs
    Another idea: dotnet/vblang#498
    Paul M Cohen
    @paul1956
    @VBAndCs because what I am learning is the parser is the easiest part, just parsing additional stuff does not generate code, create variables, help intellisence guide your input, make auto completion work... Today you can pass source as a string to a function and do anything, if you are recommending your parser is for the contends of the string that could make sense.
    Mohammad Hamdy Ghanem
    @VBAndCs
    I suggested to add Embedded unit tests. If you like the idea please vote for it: https://developercommunity.visualstudio.com/idea/956194/embedded-unit-tests.html
    Paul M Cohen
    @paul1956
    I just finished Checked/UnChecked expressions for VB the problem I was having was in Roslyn and when it was fixed and I merger Visual Studio now works correctly with my new expression if anyone want to try it https://github.com/paul1956/roslyn/tree/UncheckedExpression
    Mohammad Hamdy Ghanem
    @VBAndCs
    VB.NET programmers silence made MS think they don't exist. Please post about VB.NET on Facebook and Twitter on #I_love_VB_NET
    Mohammad Hamdy Ghanem
    @VBAndCs
    A hot discussion here regarding a logical comparison different behavior between C# and VB, which I reported as a VB bug but some VBers say otherwise. I hope I hear the decision prospective form C#, VB and Roslyn team.
    dotnet/vblang#507
    Mohammad Hamdy Ghanem
    @VBAndCs
    A full ASP .NET Core 3.1 app in VB .NET
    dotnet/vblang#510
    Jeff Bowman
    @InteXX
    @VBAndCs How's your VB.NET Razor implementation going? Are you seeing any adoption?
    Cory Smith
    @DualBrain
    @InteXX I suspect now that there is a published sample that might spur more interest.
    Mohammad Hamdy Ghanem
    @VBAndCs
    @InteXX I neglected the whole thing since Anthony Green evolved it to includ Xamarin and WPF. I found some talking about Vazor in the web, some listing Vazor Nuget amoung top ten nugets should VB developer have, but the sample written for Core 3.0 preview broke in later releases, so I imagine this drove away many VB developers. When they announced freezing VB, I updated the project, and published the complete VB version of eShopOnWeb for core 3.1. I hope I can get developers attention back, and wish .NET magazine speak about it. The next step is to write some VS extension to provide HTML5 intellisense in XML literals, which make it a productive and easy to use tool. I wish someone help in that, because I am not an expert in this area.
    Paul M Cohen
    @paul1956
    @VBAndCs take a look at Regex Intellisense in Roslyn as an example
    Cory Smith
    @DualBrain
    @paul1956 @VBAndCs Awesome idea!
    Jeff Bowman
    @InteXX
    @DualBrain I'm anxious to get some time to try it out
    @VBAndCs What great work you're doing. Keep it up if you can.
    Cory Smith
    @DualBrain
    I've been thinking about the recent MS announcement... and I'm not nearly as upset as I was orginally once I realized (and reflected) on all of the announcements over the past 15 years. I suspect that things will (and do) change with regards to the "current plan"... so I suspect the reality is that this is the plan between now and .NET 5.0. I don't have any sort of inside track... but, ultimately, I suspect this is most likely the case. Given the surface area and the pressure to "get things working" from the point of view of the current technologies that #VisualBasic devs are currently used to (minus, of course, WebForms) the plan seems to make sense (again, between now and .NET 5.0). Don't get me wrong, I'm absolutely interested in Blazor (as an example)... but, with that said, I'm definately not interested in another Silverlight, Windows Phone, Project Acropolis, etc. etc. In other words, I am kind of tired of "the next big thing"; maybe it would be a good idea to let the dust settle on some of this stuff. The landscape is changing all the time... some of us (speaking particularly, of course, about myself) desire some "stability" in the technology that we target so I don't blow the budget on "here we go... again". With that out of the way... I still don't understand why (as it's not a language thing) we still aren't included as part of Try.NET???
    While looking whether or not the Try.NET situation has changed... I stumbled across https://docs.microsoft.com/en-us/dotnet/ Scroll down to the programming languages... FINALLY... a description that doesn't sound like CRAP. "An approachable language with readable syntax" NICE! (The descriptions in the past didn't really impress me - or represent what I believe the language is. I also like the "A modern, object-oriented type-safe member of the C family" description for C#... WHAT A MOUTHFUL (and, for the record, #VisualBasic does all those things too...)
    Cory Smith
    @DualBrain
    @VBAndCs Out of curiosity... any idea what effort would be involved in doing the same sample treatment you did eShopOnWeb for https://github.com/madskristensen/Miniblog.Core ? Would you be able to put together a basic outline as to what would be necessary (beyond converting C# -> #VisualBasic)?
    Cory Smith
    @DualBrain
    How many of you utilize tuples as a return type on functions? How often and, more importantly, under what scenarioes do you find it beneficial to do so?
    Paul M Cohen
    @paul1956
    Often, usually when I want to return an object with a status without extending the Object or pairs of objects. Just a few examples
    Dim Braces As (LeftBrace As SyntaxToken, RightBrace As SyntaxToken) = node.Body.GetBraces
    
    Dim CompileResult As (Success As Boolean, EmitResult As EmitResult) = CompileVisualBasicString(TextToCompile, DiagnosticSeverity.Error, _resultOfConversion)
    
    If CompileResult.Success AndAlso CompileResult.EmitResult.Success Then
    
    ' In both cases the same Type is returned but I need to know if an error was in the original typeInfo.
    If (typeInfo.Type.IsErrorType) Then
        Return (PredefinedTypeObject, _Error:=True)
    ElseIf SymbolEqualityComparer.Default.Equals(typeInfo.Type, Model.Compilation.ObjectType) Then
        Return (PredefinedTypeObject, _Error:=False)
    End If
    Paul M Cohen
    @paul1956
    One other example that is different, Index is not unique or consecutive and StatementHandlingOption is an Enum.
    For Each StatementTuple As (Index As Integer, Statement As StatementSyntax, StatementHandling As StatementHandlingOption) In s_statementSupportTupleList
    Mohammad Hamdy Ghanem
    @VBAndCs

    @VBAndCs take a look at Regex Intellisense in Roslyn as an example

    would be helpful. Please give me the link. Thanks

    Mohammad Hamdy Ghanem
    @VBAndCs
    @DualBrain Don't relay on false hops. They made it clear that there will be no change in VB after .NET 5. Any additions to .net core that needs changes in VB will not work in VB! This is a kill statement.
    Mohammad Hamdy Ghanem
    @VBAndCs
    To create a VB version or the app:
    1. Translate C# code to VB and take care of special vb behaviors specially in EF. Try to avoid lambdas in fluent api and use NameOf() instead.
    2. You can keep cshtml files, but in Razor pages you change the .cshtml.cs code behind file to .cshtml.vb file.
      That's all and the project will run!
      This is a big evidence that MS planned to kill VB three years ago. They added an F# project template that uses c# razor to design the views, but refused to do the same with vb, which made VB developers think they can't create ASP.NET core apps at all! Even Katherine Dollard though that C# razor code can't exist in VB project and I responded to her that it is just a script and Razor Engine is responsible for compiling it at runtime, so it has nothing to do with the VB project, and the side effect of that is there is no intellisnse and syntax check for C# in such VB project.
    The optional step is to translate the views/pages of type cshtml (containing C# code in razor) to vbxml code or ZML code. I described how in the ReadMe file in each repo.
    Another option, is to use a mix:
    Let the existing cshtml files untouched, put design any new pages with Vazor and ZML.
    You have a variety of options.
    Paul M Cohen
    @paul1956
    Can someone explain who is “they” with respect to VB. Does the dotnet Foundation own it? Who has checkin rights, only Microsoft? If so that doesn’t seem very open. I know anyone can extend Roslyn and even run the extended Roslyn in Visual Studio so my question is how to we get 1 VB maintainer with checkin rights not controlled by MS?
    Cory Smith
    @DualBrain
    My gut tells me that, based on continuing to see the term LDM for C# - as well as the usage of it for #VisualBasic in the past, is that Microsoft has complete ownership and say so. I wouldn't mind seeing this transition; however, I would also demand that the person in this roll have to take on a very undesirable task of having to say NO more often than yes. There should be a provable benefit to the majority and/or very little to no impact to existing developers or potential future restriction with regards to adding/changing the language. This isn't an easy task. To give an example, I had to argue against the addition of several new keywords or, worse, breaking changes against "fixing" the issue of not having a way to quickly truncate a floating point value into a whole number that would have the same performance level (proven benefit) that C# has with the way they "cast". My stance was that the language didn't need to change; just fix the existing pattern that was already in use... which provided the result desired AND is of instant (unknown) benefit to everyone. My point is that language design is hard... and, I would argue that most of the time, the right answer isn't to change the language - but instead improve what is already there. ;-) Right now we have a group in place, that for whatever reason(s), is pretty much in no as a response mode... this isn't necessarily a bad thing. With all of that out of the way, there are clearly things that many people (including myself) desire to have in place... so it would be nice to know if the stance is forever or until .NET 5 releases. Now with that out of the way, we also need to find an answer to a much more important query... for things that aren't language related (ie Try.NET, Blazor, etc.)... how do we encourage those responsible to include us? On that note, I've reached out to the #OpenSilver team (a Silverlight alternative built on top of Blazer not done by Microsoft) and am waiting for them to get back to me on this very subject. It would be awesome if it were possible to leverage a Xaml, Silverlight method to build for WebAssembly using #VisualBasic. I think it is also equally important that we, as a community, take a queue from the F# community where we (outside of the language - as we haven't gotten that figured out as yet) to "just do it". For example, no Razor... fine, let's walk to our own beat ala Vazor. ;-) I know that all of this isn't ideal, but given that #VisualBasic is no longer a product... one where we are allowed to "vote" with our dollars... we have to evolve and adapt to this new world.
    Cory Smith
    @DualBrain
    On a similar note... it might help if we can figure out what would "wet Microsofts wistle". For example, what would happen if there was a way, say with regards to Azure that we, as a community, could say "well, we'd like to play in that particular pond... but you don't have support for x... and we don't want to switch to something else... let us know when you support x and we'll be happy to make the move there". I'm not sure where exactly this would be... but given that Microsoft's clear public strategy is cloud... it would seem to make some sense to me that, if we can figure this out, someone would stand up and listen. ;-)
    Mohammad Hamdy Ghanem
    @VBAndCs
    VB developers are silent, and search and ask questions in C# (I myself do that) which made C# dominate and MS are assure that we will move easily to C#, so it just keeping our code base running on .net core to wrap it in dlls and use it in new C# apps.
    untitled1.jpg
    I am tampering with xml literals intellisense
    I took the xml doc cooment Completionprovider and made it work for XML literals :)
    Mohammad Hamdy Ghanem
    @VBAndCs
    Of cource I need more work to view suggestions for html5 (in general, for and xsd schema)
    But I am happy that this baby step worked :)
    Aaron Glover
    @aarondglover
    Cool