Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Mohammad Hamdy Ghanem
    @VBAndCs
    Mohammad Hamdy Ghanem
    @VBAndCs
    Cory Smith
    @DualBrain
    (RANT) Abandoning #VisualBasic for something else is EXACTLY the reason why more people are jumping ship... think about it... what effort is there to support it if you just wait them out so they give up and you don't have to. This is exactly what certain people want to have happen... why... because building software shouldn't be easy. This isn't a #VisualBasic thing. This isn't a .NET thing. This is a reality that has existed for, well, over 50 years. And #VisualBasic isn't the only language that suffers (or suffered) from this... look at COBOL or Delphi. Everyone should be able to build software. Additionally, all languages shouldn't look, basically, the same. Since when did C become the right way to write code? In the end, it's up to us as a community to build a stronger community so that we can have a voice. We can no longer "vote with our wallet" (as the product is pretty much free at this point)... so we have to find a way to *vote with our voice, vote with our action". This means we have to invest time and effort instead of simply handing over our hard earned cash to the product vendor. What does that actually all mean in the end... that is what we need to figure out. The answer to this certainly isn't... "oh well, guess I'll give up, join the other crowd and be miserable using something that isn't even my second choice"... especially if it is possible that we can address (as a community) the reasons why one might feel the need to have to make a choice.
    Cory Smith
    @DualBrain
    Now... what is one thing that we could all do to "force" action? I'll give you one simple target space... AZURE. What, if anything, is preventing us from fully leveraging AZURE as a #VisualBasic developer? (I can't answer this as the only thing I use in AZURE is AzureSQL which has nothing to do with language choice.) So what is the "killer app" that prevents us, as #VisualBasic devs to do "stuff" in AZURE? Does anyone know? Once this is known... how do we convince a ton of #VisualBasic devs that they NEED this and we, as a community, start shouting to Microsoft saying... "hey, we'd love to spend our money on AZURE, but... ummm, you apparently don't want our money because __ doesn't work with #VisualBasic... and NO!, we don't want to have to build that in __". I can bet money that if something like this were to happen, you'd see a change in the tide. Why? Because AZURE is WAY!!!! MORE!!!! IMPORTANT!!! than Visual Studio, F#, C#, #VisualBasic and even Windows to the bottom line of Microsoft and anything that can clearly impact that bottom line is going to be addressed.
    (DISCLAIMER: I do own a very, very, very small number of shares in Microsoft and I can clearly see that, as a shareholder, they are clearly focused on Azure. Because I have such an insignificant number of shares... my voice doesn't mean jack diddly at any shareholder meeting. ;-) )
    Filippo Bottega
    @filippobottega
    Sorry but my approach is more pragmatic: I don't care about a specific language. I have developed using C, C++, C#, VBA, VB.NET, ABAP, SQL (Sql Server and Oracle), MATLAB and so on. Recently I have tried to study GO. What I need is the best path to solve what customers ask me to solve. And the best path is a mix of language simplicity, tools, frameworks, tutorials, documentation, samples, and communities. Sometimes I prefer to suggest a product already done instead of develop a new one. For my work using VB or C# is equivalent because other factors of the mix are more o less the same. But there are a lot of examples written in C# instead VB and I need to avoid to loss time to translate from C# to VB. For the moment I don't see any killer application or use case where VB could be better than C#.
    Filippo Bottega
    @filippobottega
    More over VB is case insensitive and some times I have had interoperativity issues with C# libraries because C# is case sensitive.
    Aaron Glover
    @aarondglover
    @DualBrain I agree with you on some levels... But product teams actively exclude visual basic
    Azure Functions is a prime example. No native support although I know some have managed to achieve it despite it not being officially supported...
    I use azure all the time and most recently with AKS which doesn't care what language I use ... I wrote ASP.NET core web API microservices, bundle them into a container... I am now using DAPR too which is a fantastic language agnostic platform open source from Microsoft.
    Aaron Glover
    @aarondglover
    But as to killer app.... Not sure there is anything you can't really do in Azure in visual basic... It's just made sooo much damn easier because project templates, documentation and samples are for C# only (occasionally F#) and rarely for VB
    I think getting new templates into visual studio out of the box is the biggest thing in making VB devs understand these project types and azure platforms services are available to them
    The biggest killer for VB though was made years ago when it was excluded from .NET Core MVC/RAZOR etc
    Aaron Glover
    @aarondglover
    I watched VB.net support languish on the asp.net core roadmap for years only for it to be unceremoniously dumped and told that most VB devs dont write web apps!!! 😩
    rskar-git
    @rskar-git
    @VBAndCs Thumbs-up for Vazor and getting on VS Magazine!
    rskar-git
    @rskar-git
    @DualBrain Re: #VisualBasic, I think there's just one thing left for us to do: “Don’t just stand there, do something!” Like @tverweij and @VBAndCs. If this "Walter Mitty" type (i.e. me) may suggest, we need to rally around a specific Github fork that makes real all that we desire of VB on .NET (and Azure and MVC and Internet-Of-Things, etc.). But for that to work, then there needs to be a few somebodies who can, and will, regularly spare maybe 20 hrs per week for several years. If it's going to be volunteers, then the odds for success are linked to their having real needs to address; this would provide natural motivation for timeliness of enhancements and bug fixes. Once they reach a point of having something stable, useful, and interesting, can they then easily attract other volunteers who can help out with documentation, wikis, and otherwise provide feedback, alpha testing, and beta testing.
    Mohammad Hamdy Ghanem
    @VBAndCs
    @rskar-git Thanks.
    I agree with your practical approach. And I add: we need to convince regular VB.NET developers to publish VB samples and small apps and libraries on GitHub. VB is nearly vanished from Stackoverflow and rarely exist on Github. MS is convinsed that All vb developers can use C# to ask, read sources, and write new apps, so what is the need for VB?
    Mohammad Hamdy Ghanem
    @VBAndCs
    VB developers seem to be either lazy or selfish. Or all they need is already there in C# so, there is nothing to add! This ended up killing VB
    Mohammad Hamdy Ghanem
    @VBAndCs
    I am trying now to write Blazor app in VB.NET. I found out the Mono translates CIL to webasm, so VB.NET can run on broswer if we just created the assembly that mono expects. My big issue now is to use a virtual file provider with Blazor. Another issue that may appear, is that Blazor auto generates C# classes based on the .razor files. I added those in the VB project as a Vazor code behind class, but I am not sure this will until I provide the .razor file virtually to Blazor. If the trial succeeded and VB worked on the browser, we can start creating web controls like main and context menus in VB.NET to make writing asp.net apps much like wpf and silver light. If the trial failed, I will look at the Blazor source code to find a suitable point to plug VB in.
    Cory Smith
    @DualBrain

    If someone were to make a sample that could provide me the following:

    • a drawing surface, or possibly an "image" surface where I could create a image/bitmap in memory and update the display surface - using system.drawing.
    • a way to capture keyboard/mouse input

    In as pure of a VB model as possible... I'd be all over WASM.

    Some nice things to have would be to have events/api for:

    • startup
    • shutdown
    • surface resize
    • focus state

    From here it would be possible, in theory, to write a simple 2D game... from there... we could start implementing line-of-business type display components.

    Unfortunatly, I haven't been able to find a simple, straight forward sample that shows how to do any of this (even in C#) - and I haven't had time to dig into the specifics of WASM and/or Blazor. You'd think this would be something that would already exists... it's basically a "hello world" for a graphics based interface. If anyone does know how to create a sample (even in C#) of how to do the above... I would then be very interested in continuing forward with several ideas that I have (and a couple of projects that I think would be perfect to demonstrate this). I have one project right now that is literally a WinForms application with nothing but a PictureBox for the display -- where I draw to an image in memory and then update the "display" by updating the Image of the PictureBox... all UI is done through code - buttons, popups, text entry, menus, etc.

    Even if a sample was a raw as initializing a display and drawing (and able to redraw) a single pixel... I could then take the ball and run. ;-)

    (Note, it would also need to be able to have multiple assemblies. ;-) )
    Mohammad Hamdy Ghanem
    @VBAndCs
    this is the tool.. Dig around https://github.com/BlazorExtensions/Canvas
    Paul M Cohen
    @paul1956
    @DualBrain there are at least 2 VB - Core 3.1 demo's that do most of what you want under https://github.com/dotnet/samples (Conrad's Game of Life and Sudoku).
    Cory Smith
    @DualBrain
    But these are for WinForms, right? I'm looking for something similar that is VB targetting WASM as the execution engine.
    @paul1956 (With or without Blazor... for what I want to do, the Blazor components are of little-to-no-interest to me.) @VBAndCs Thanks for the link... I'll have to try to find some time to carve out to explore that more.
    Paul M Cohen
    @paul1956
    @DualBrain sorry misunderstood.
    Cory Smith
    @DualBrain
    @paul1956 No problem.
    Cory Smith
    @DualBrain
    Just found "Run C# natively in the browser through the web assembly via mono-wasm" (https://itnext.io/run-c-natively-in-the-browser-through-the-web-assembly-via-mono-wasm-60f3d55dd05a) article by Ali Bahraminezhad. It's interesting as it has NOTHING to do with Blazor and not the "AOT" (I'm guessing) method that Mono is also persuing. Instead, it spins up an assembly on a .NET runtime within WASM. I was able to get this sample working using #VisualBasic! (His sample can be found at https://github.com/0x414c49/mono-wasm-example) I also found a pretty good TypeScript oriented video on building a WASM compiler that does (what I think) I'm looking for regarding how to interact with the "canvas" (or similar) - watched the video and haven't had a chance to dig deeper into his repo (https://colineberhardt.github.io/chasm/) (Video: https://youtu.be/OsGnMm59wb4). He also has a weekly WASM newsletter that you can find at https://wasmweekly.news/. According to his video, he makes mention that WASM has ZERO I/O... you can only expose functionality across the host boundry. With that said, when he gets to discussing the drawing of the output he mentions "shared memory" and basically setting up a video buffer.
    Cory Smith
    @DualBrain
    I've also been thinking... I'm a BIG fan of .NET. With that said, I'm extremely concerned that the trajectory of .NET is at risk due C# zeolots and they don't seem to understand what it is that they are doing. From the inside (their side), they think that things are going GREAT... however, from outside (our side) things are starting to look at lot like Java. (Yes, I know, there are multiple languages that target the Java runtime... but that doesn't change the fact that Java is about Java...) To me, the beauty of .NET is a platform that KICKS ASS that "just works" across languages that are designed for the platform. This isn't a #VisualBasic thing... this is what our programming world should be. The problem as I see it is that people (including Microsoft) are creating frameworks, api stacks and execution platforms that are actively excluding other languages. Don't get me wrong, I don't give a rats rearend regarding what other languages can and can't do within the context of their language... but what they create with those (after it's compiled) with the intent of getting wide adoption (as a platform)... it should be done within the context of language neutrality. Additionally, I remember (I was there...) a time when .NET user groups were EVERYWHERE; however, one thing that I saw universally was language diversity was not being celebrated/excepted/welcomed. I remember having someone come in to talk about Boo and it blew me away the absolute closed mindedness of the audience to be open to even a remote possibility that another language might be something of interest in our collectively toolbelts. I don't know what we can do to fix this; but, as they say, identifying the problem is the first step to solving it. With that said, in my mind, it is my believe that .NET needs mutliple first class citizen languages to remain relevant... otherwise, what's the point. And as I recently saw on Twitter, more specific to #VisualBasic... as much as I love .NET... at the end of the day, if I'm honest, I'm on .NET because of #VisualBasic and the familiar environment that is WinForms. Don't get me wrong, I also really enjoy building Console apps and what library (assemblies) affords me... but at the end of the day, I'm on .NET because of #VisualBasic. Finally, when my latest late night experimenting; I'm happy to see that there does appear to be some hope with regards to a #VisualBasic and WASM story... it might not be Blazor and that's OK. We can walk our own path as long as there is a path that can be walked. ;-)
    Jay Asbury
    @vbjay
    I think .net 5 will help with that situation.
    I just did an example project recently. https://github.com/vbjay/ImageProcessing
    Cory Smith
    @DualBrain
    @vbjay I agree...
    Mohammad Hamdy Ghanem
    @VBAndCs
    @DualBrain Try a vb code that contains lambdas. I don't think it will run on webasm. I am facing troubles with such codes in Blazor, although I am using identical VB classes to thise in C#.
    Cory Smith
    @DualBrain
    @paul1956 Love some of your comments in the initial submission over at dotnet/winforms#3050 - especially the one about no automated tests. (HUGE HIGH FIVE!)
    Paul M Cohen
    @paul1956
    When I did initial work on porting VB file I/O to core all the code was VB from reference source and I wrote all the tests in VB as well. The code stayed VB but someone ported all the tests to C# after I was done, so I want going to bother. I did do one test in C# for the repo, all my testing is in another project that needs single instance.
    Cory Smith
    @DualBrain
    @paul1956 I'm simultaneously happy and tramatized watching the work take place on the whole SingleInstance process through github. It's awesome to see that there is a ton of review and a lot of eyes - if this much effort goes into everything... no wonder the wheels turning so slowly. ;-) I suppose in the end it's a good thing... helps to protect all of us in the end.
    "I believe Using statement should be avoid." <--- Huh?
    Paul M Cohen
    @paul1956
    Yes, after a few comments I decided to ignore the rest. It’s Jared’s that I find most disturbing, “Ignore editor.Config”and follow the style of decades old code” that to me was the Huh? The one file had 1/2 of the style violations of the entire Repo.
    Adam Speight
    @AdamSpeight2008
    Jared is too focused on the "style of the code" rather than the function of the code.
    Paul M Cohen
    @paul1956
    Agreed.
    Mohammad Hamdy Ghanem
    @VBAndCs
    I hope you participate in this discussion about Vlazor (VB.NET Blazor) dotnet/vblang#534
    Cory Smith
    @DualBrain

    I have to point out something that is not only annoying me, but also affecting @paul1956 . It is pretty silly that the VB style of checking for whether or not a string has a value or not is warned against.

    If MyString <> "" Then

    The suggested "fix" is that you have to write:

    If String.IsNullOrEmpty(MyString) Then

    Seriously????

    Why do I, as the writer (and ultimately reader) have to conform to such a mechanism? The first way is a) eaiser to type and b) from at least my point of view, easier to read.

    Sure... we could also write:

    If MyString?.Length > 0 Then

    But why?

    Having Visual Studio constantly bark at me because I'm doing it the VB way... in VB... is really damned annoying.

    Furthermore, having the dotnet team complain about the VB... way... really?!?!

    Annoying...

    Jeff Bowman
    @InteXX
    @DualBrain I agree. In my case, at least, I've been able to mitigate the issue somewhat by using a pair of extension methods in a private package that I add to all my projects by default.
      <Extension>
      <DebuggerStepThrough>
      Public Function IsNothingOrEmpty(Instance As String) As Boolean
        Return String.IsNullOrEmpty(Instance)
      End Function
    
      <Extension>
      <DebuggerStepThrough>
      Public Function IsNothingOrWhiteSpace(Instance As String) As Boolean
        Return String.IsNullOrWhiteSpace(Instance)
      End Function
    Paul M Cohen
    @paul1956
    These don’t stop VS from complaining. All my code used to include them but they are not understood by Analyzers. The analyzer is wrong for VB where Nothing = “” is True. I am still confused about CType(Nothing, String). IsNothingOrWhitespace because I always thought it worked but there say be some extensions that fail to check for Nothing.
    Paul M Cohen
    @paul1956
    I think there needs to be an Attribute (maybe that is what Nullability is about) that I can put on my Extension to tell the analyzer that a VB Extension is Null/Nothing safe.
    Jeff Bowman
    @InteXX
    @paul1956 I'm interested in this. Could you provide some repro steps?
    Paul M Cohen
    @paul1956
    @InteXX not sure what you are asking?
    Jeff Bowman
    @InteXX
    @paul1956 VS doesn't complain about these extension methods, at least to me. I'd like to be able to reproduce what you're talking about.