Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Cory Smith
    @DualBrain
    @paul1956 SWEET!
    Cory Smith
    @DualBrain
    Who else here uses DevExpress?
    Jay Asbury
    @vbjay
    @DualBrain Me. But not in a long time.
    Paul M Cohen
    @paul1956
    I did but the last time was 2009.
    André Obelink
    @obelink
    I do, on a daily basis..
    Kathleen Dollard
    @KathleenDollard

    I am working in dailies to get the application model working. If anyone has been working on that, or is interested, let me know.

    My status, it requires some extra stuff in the project file, but when we got that straight, we found a bug on something missing in the runtime. That is in PR and should be in daily builds next week.

    Paul M Cohen
    @paul1956
    @KathleenDollard I am interested. Your comments are a little vague. If you mean SplashScreen, Single Instance and Title definitely. At first I liked the C# SplashScreen model but I noticed in broke older VB Framework code.
    Aaron Glover
    @aarondglover
    @DualBrain I use them and Infragistics
    Paul M Cohen
    @paul1956
    Has anyone seen Tests just stop running, and when you look in Output Window/Tests you see
    No test matches the given testcase filter `FullyQualifiedName=XUnitTestProject1.XUnitTestProject1.UnitTest1.AdditionTest|FullyQualifiedName=XUnitTestProject1.XUnitTestProject1.UnitTest1.EqualsTest|FullyQualifiedName=XUnitTestProject1.XUnitTestProject1.UnitTest1.MultiplicationTest|FullyQualifiedName...` in C:\Users\PaulM\Source\Repos\VBUncheckedMath\XUnitTestProject1\bin\Debug\netcoreapp3.1\XUnitTestProject1.dll
    Paul M Cohen
    @paul1956
    If anyone cares the issue above happens when a VB core app gets an error initializing before main starts and the framework code that catches those errors isn’t there do the app or test quietly exits.
    Paul M Cohen
    @paul1956
    Is anyone interested in a Vb code coverage UI based on Coverlet? I just finished something usable and will post to Github if anyone else cares. If there is enough interest I would like to merge into VS.
    Paul M Cohen
    @paul1956
    Merge this app into VS as a Add-On instead of a standalone application. https://github.com/paul1956/Code-Coverage
    Cory Smith
    @DualBrain
    Can anyone share with me why CanFocus, Focus, Focused, etc. on WinForms controls is "hidden" in VS Intellisense? Is it really something that you "just have to know" and anyone trying to explore is left high and dry?
    Karen Payne
    @karenpayneoregon

    I just wrote a TechNet article on dynamic ordering/sorting Entity Framework data, perhaps this might be helpful for new to vb.net and want to work with Entity Framework may find helpful

    https://github.com/karenpayneoregon/EF-Sort-VisualBasic

    Cory Smith
    @DualBrain
    When did IntelliCode support for VisualBasic get added?
    (Doesn't appear to be in 16.4.4... but is in 16.5.0 Preview 2.0.)
    Paul M Cohen
    @paul1956
    @DualBrain I don't know but I love it and it really speeds up typing and getting the right pick the first time. I don't think it was in Preview 1 or maybe it takes time to learn.
    DuckHeadSoftware
    @DuckheadUK_twitter
    To introduce ourselves. Our apps are all in Visual Basic and for the Windows Store only. We've looked at C# so many times but each time it slows us down, is less readable, and we're sticking with VB.Net for all our projects; if that means waiting for .net core then we will and then start to upgrade our apps. We have so much experience in VB.Net (going back to the original BASIC on DOS) and we've built internal libraries with 10's of thousands of lines of code, so we'd never move away from Visual Basic.
    Cory Smith
    @DualBrain
    @DuckheadUK_twitter Welcome!
    Paul M Cohen
    @paul1956
    @DuckheadUK_twitter Welcome, moving to core today is not very difficult. TryConvert does almost everything, MsgBox is available as NuGet, the only showstopper is SingleInstance, and I haven't checked its status lately in the Repo.
    Cory Smith
    @DualBrain
    @paul1956 Difficult might not be the right word; however, not having the forms designer in release does place a bit of a damper on things. ;-)
    Paul M Cohen
    @paul1956
    There are many ways to use the Framework designer for simple things. Before using TryConvert change the font to new Core default font, adjust all the forms so you don’t immediately need it. Use the backup project file from framework to open the core project and edit forms, you can use that to add additional forms as well with Mads file nesting extension. I have been porting stuff for a while now and most things take an afternoon including updating to .Net editorConfig file rules which is available under Dotnet/samples on Github.
    Using 16.5 preview 2 provides a VB code fix for Null checks but crashes a lot if Vb Forms are open in designer. I do all form changes in Framework and the close each form before opening in Preview 2.
    DuckHeadSoftware
    @DuckheadUK_twitter
    @paul1956 All our apps are WPF (we used to do UWP but it was too slow and lacked functionality). Until Microsoft support WPF designer and full vb.net (we do use the my namespace, but not that much) we can't move over. Our apps are also, generally, disk intensive, so Core 3.0 won't improve things performance wise and we already work around a lot of the .Net performance bottlenecks for disk io. But we'll start the transition as soon as it's ready for production so we're on the latest framework :)
    Paul M Cohen
    @paul1956

    @DuckheadUK_twitter the disk performance and startup is where I got the biggest boost (but I never worked around any issues) when I moved to Core 3.1. I pulled My out of Winforms GitHub repo and just wrapped it with

     #If Not netcoreapp5_0 Then

    I am still waiting for road map so I will have some idea when it "is ready".

    Cory Smith
    @DualBrain
    @DuckheadUK_twitter From a business point of view, I am in complete agreement. All of my (current) projects are still in .NET; however, I am experimenting with a new project idea where I'm building it in .NET Core (WinForms). After stubbing my toes repeatedly, I'm now working on this project in .NET with a mindful eye on moving it to .NET Core. Basically each step forward, I'm trying out the project on .NET Core - this project is something I want to do not something that is under any pressure to get completed as it currently isn't made public to my clients (at this time). It also allows me to experiment with what is currently working, what isn't and (to some degree) influences some of what I'm working on since I am keeping an eye on the future. @paul1956 much of work arounds you describe are the very reason why there is hesitation in the move forward... it needs to be more complete and, if changes are required, simpler. ;-) Until then, some of us who are OK with getting cut by being on the bleeding edge will have to continue pushing for things to, well, continue. :-D
    DuckHeadSoftware
    @DuckheadUK_twitter
    @paul1956 I don't want this to get into a .net discussion (it is a vb forum after-all), but UWP disk access has memory leaks, indexer can not be relied on, and performance, even with partial storageFiles is unusable for large numbers of files (>400). .Net 4.x is excellent, but we had to put in a lot of work around multi-threading when performing tasks on lots of files. Take something simple like copying 1,000 files, our code can do it approx 20% faster than standard .Net with a list (and disk IO is the limiter)
    Cory Smith
    @DualBrain
    @DuckheadUK_twitter Out of curiosity, are you completely bypassing some of the built in file io and opting instead to utilize Win32 (Interop)?
    Cory Smith
    @DualBrain
    As for the comment about discussions, I appreciate the fact that you are being considerate; however, please don't feel that anything has to be excluded in these discussions as long VB is at the core of the discussion. I've had the long opinion that, especially with regards to VB, the lines are pretty blurred regarding where the language, tooling, framework and api exists.
    Cory Smith
    @DualBrain
    (With that said... If there is any conversation that anyone believes is damaging/hurtful to our community, please let me know so that it can be reviewed / dealt with.)
    DuckHeadSoftware
    @DuckheadUK_twitter
    @DualBrain No, we use .net only wherever possible, but copying is done more intelligently, for example, at it's basic level, a queue of files based on size have two threads copying, one from the top, one from the bottom, this ensures the lost time waiting for IO close, seek, open, etc on small files doesn't prevent any copy, as the large file/s are always copying. There's more to it, but that's the basics.
    Cory Smith
    @DualBrain
    @DuckheadUK_twitter Ah... thanks... gives me enough for me to ponder some options (future project).
    DuckHeadSoftware
    @DuckheadUK_twitter
    @DualBrain We also take into account the disk volumes (are all files coming from the same disk, and are they going to the same disks) and their type, for SSD only 2 threads are required, but for NAS/Network, 8 threads perform better :)
    Cory Smith
    @DualBrain
    @DuckheadUK_twitter Interesting.
    DuckHeadSoftware
    @DuckheadUK_twitter
    @DualBrain We spent over a year trying to get UWP to do disk IO in any performant way and failed, even Microsoft conceded it couldn't be done and wouldn't fix it; fortunately they allowed Win32 in the store which got us around a VB problem with await and concurrent loops :) - i.e. you can't await in one - with Win32 the disk IO doesn't need to be awaited, so we run it in a tight parallel loop (restricting the threat count, if you can actually call them threads) and put it all on a background thread - works much better - super fast disk IO in the background.
    Cory Smith
    @DualBrain
    @DuckheadUK_twitter I suspect the file io is going to have a better story in .NET Core thanks (in part) to the fact that there is more than a (relatively) small team working on it (OSS). Though, from a VB point of view, working on it is still a little rough around the edges.
    Cory Smith
    @DualBrain
    On the topic of My... does anyone here any any idea what the "plan" is regarding the future? I do see that "My" is (very sparcely) in 3.1; however, the only thing there is My.InternalXmlHelper. I also see that it is entirely possible to extend My using the instructions located at https://docs.microsoft.com/en-us/dotnet/visual-basic/developing-apps/customizing-extending-my/extending-the-my-namespace. So my question really comes down to a) is My going to be part of 5.0 or b) do we, as a community, need to build our own implementation given that the base does appear to be there? Obviously I don't want to see anyone duplicate efforts... but if the later is necessary, I don't mind being involved in getting it done.
    I raise this as I'm a bit concerned by the "notice" that is located at https://github.com/dotnet/runtime/tree/master/src/libraries/Microsoft.VisualBasic.Core. "We are not accepting feature contributions to Microsoft.VisualBasic.Core. The library is effectively archived. The library and supporting language features are mature and no longer evolving, and the risk of code change likely exceeds the benefit. We will consider changes that address significant bugs or regressions, or changes that are necessary to continue shipping the binaries. Other changes will be rejected." If My isn't part of Microsoft.VisualBasic.Core... then where would it be?
    DuckHeadSoftware
    @DuckheadUK_twitter
    @DualBrain Microsoft have said they're bringing the full 'my' namespace to VB and .net Core - They just haven't given any timelines or if it will be .net core 3.1 or .net core 5 - I'm assuming we'll find out at ignite in May and it'll be the same time as the full WPF/WinForms VB.net new project templates become available.
    Paul M Cohen
    @paul1956
    @DualBrain @DuckheadUK_twitter If you go to DotNet/WinForms and just looks at Master you will see almost all the missing VB stuff. Last I checked SingleInstance was missing. There are changes in the VS UI for Core apps that removed most of the VB Assembly Information, but actually most just moved to Package (Title is missing from the UI and is now manually set in Project File). The Repo is dependent on Core 5 but I have not seen any code that depends on it. What the did is a different split between VisualBasicCore and WinForms for what I think is a very good reason. VisualBasic core is portable and should run anywhere which is very good. For now to access stuff in SplashScreen and About you need to change the code. In Core 5 there is a shim (AssemblyInfo.vb which is not regenerated with changes in Assembly Info) that translates new info from when it exists in core to where Framework expects it (except for Title).
    Here is part of my AssemblyInfo.VB
    ' Licensed to the .NET Foundation under one or more agreements.
    ' The .NET Foundation licenses this file to you under the MIT license.
    ' See the LICENSE file in the project root for more information.
    #If Not netcoreapp5_0 Then
    
    Imports System.Collections.ObjectModel
    Imports System.Reflection
    
    Imports CSharpToVBApp.Microsoft.VisualBasic.CompilerServices
    
    Namespace Microsoft.VisualBasic.ApplicationServices
    
        ''' <summary>
        '''  A class that contains the information about an Application. This information can be
        '''  specified using the assembly attributes (contained in AssemblyInfo.vb file in case of
        '''  a VB project in Visual Studio .NET).
        ''' </summary>
        ''' <remarks>This class is based on the FileVersionInfo class of the framework, but
        ''' reduced to a number of relevant properties.</remarks>
        Public Class AssemblyInfo
            ''' <summary>
            ''' Creates an AssemblyInfo from an assembly
            ''' </summary>
            ''' <param name="CurrentAssembly">The assembly for which we want to obtain the information.</param>
            Public Sub New(ByVal currentAssembly As Assembly)
                If currentAssembly Is Nothing Then
                    Throw ExceptionUtils.GetArgumentNullException("CurrentAssembly")
                End If
                _assembly = currentAssembly
            End Sub
    
            ''' <summary>
            ''' Gets the description associated with the assembly.
            ''' </summary>
            ''' <value>A String containing the AssemblyDescriptionAttribute associated with the assembly.</value>
            ''' <exception cref="InvalidOperationException">if the AssemblyDescriptionAttribute is not defined.</exception>
            Public ReadOnly Property Description() As String
                Get
                    If _description Is Nothing Then
                        Dim Attribute As AssemblyDescriptionAttribute =
                            CType(GetAttribute(GetType(AssemblyDescriptionAttribute)), AssemblyDescriptionAttribute)
                        _description = If(Attribute Is Nothing, "", Attribute.Description)
                    End If
                    Return _description
                End Get
            End Property
    
            ''' <summary>
            ''' Gets the company name associated with the assembly.
            ''' </summary>
            ''' <value>A String containing the AssemblyCompanyAttribute associated with the assembly.</value>
            ''' <exception cref="InvalidOperationException">if the AssemblyCompanyAttribute is not defined.</exception>
            Public ReadOnly Property CompanyName() As String
                Get
                    If _companyName Is Nothing Then
                        Dim Attribute As AssemblyCompanyAttribute =
                            CType(GetAttribute(GetType(AssemblyCompanyAttribute)), AssemblyCompanyAttribute)
                        _companyName = If(Attribute Is Nothing, "", Attribute.Company)
                    End If
                    Return _companyName
                End Get
            End Property
    
            ''' <summary>
            ''' Gets the title associated with the assembly.
            ''' </summary>
            ''' <value>A String containing the AssemblyTitleAttribute associated with the assembly.</value>
            ''' <exception cref="InvalidOperationException">if the AssemblyTitleAttribute is not defined.</exception>
            Public ReadOnly Property Title() As String
                Get
                    If _title Is Nothing Then
                        Dim Attribute As AssemblyTitleAttribute =
                            CType(GetAttribute(GetType(AssemblyTitleAttribute)), AssemblyTitleAttribute)
                        _title = If(Attribute Is Nothing, "", Attribute.Title)
                    End If
                    Return _title
                End Get
            End Property
    My is now in WinForms as is other stuff that depends on Windows.
    Paul M Cohen
    @paul1956
    With the "complete" code like above all the existing forms just work, today you can add About and Startup from Framework to a Core project and you will not get any errors. StartUp will not be called unless you do it yourself and there is no UI to set it. The one issue I have not worked around is there is "magic" loading your initial form to handle errors while loading your form. If you do something dumb and for example define a structure that is invalid but VS is happy with (don't ask) when you run your program nothing happens even under debug. The same program under Framework reports very clear errors while starting (which I how I found it).
    Cory Smith
    @DualBrain
    @paul1956 Good info; I'll have to dig into that more when I get a breather.
    Paul M Cohen
    @paul1956

    @DualBrain my C#ToVB application on GitHub is completely core 3.1 if you look at the source of the WinForms app you will find most of the workarounds are under MyProgram and in Form1 under

     #If Not netcoreapp5_0 Then

    Another issue is in Frameworks apps some of the stuff built-in to VB depends on Windows so it is easy to write a "portable" Class library that in fact depends on Windows. The split being done will make it explicate when you depend on WinForms.

    DuckHeadSoftware
    @DuckheadUK_twitter
    @KathleenDollard - Could you comment on the frequency of blogs in the official "Visual Basic Blog" from Microsoft. <Blog:Noun - a regularly updated website or web page> The last blog post was in 2018 (updated once in 2019) - It'd be great just to see activity, at the moment, it's abandoned. It doesn't have to be "breaking news", it's a blog, it could be "this is interesting", "did you know", or "how to guides". Thanks
    Cory Smith
    @DualBrain

    I agree that the lack of updates on the VB blog are disheartening; however, I also see that it is kind of a double-edged sword. Any comments regarding what is going on in the world of VB are met with a lot of hate and discontent; so, I somewhat understand why people are a bit reserved in offering up content. With that said, that kind of fuels the fire; basically, it's kind of a no-win situation. I know that sounds like I'm saying there isn't any hope; please don't take it that way. What I'm saying this that we need to rethink and come up with a new set of strategies. One of those is what we are using right now. We need to find a way to bring together those that are in favor of championing the merits of VB, those willing to speak publicly that they are all about VB and those willing to help in whatever capacity to ensure that things continue to march forward. In other words, those that aren't ashamed to be VB. We also need to come together as a community to find ways that we can enhance / augment what we do have instead of constantly beating the me too drum with regards about some other language(s). The blog you mention; unfortunately, is a target for much of this self-loathing... I've seen, repeatedly, the comments centered around either questioning the underlying meaning (which must be nefarious) or in the category of “this is great, but” where it becomes about something that isn’t related / doesn’t exist. With all of that out of the way, one thing we can definitely do here is come up with ideas that could potentially be on the blog, possibly write some of this content and submit it to be published. We just have to be prepared for the comments where we develop a bit of a thick-skin allowing us to let the negative wash on by.

    One (recent) area that I’d like to see right away on the blog is the inclusion of IntelliCode in VB (currently in the preview), how it works and how it helps us (from a VB dev point of view). I literally was working on a live-coding session in the preview and stumbled across it – didn’t even know anything about it until then. And, yes, I typically review the release notes… and, thinking that I missed something, I went to https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes-preview and there is no results for searching for “VB” or “basic”. This suggests that there are things happening, they just aren’t being discussed (see my previous comments). Maybe the blog isn’t the right place; however, I’d love to find a way that we could get some sort of stream of consciousness updates regarding were something being done benefits VB (even if it is in 160 characters or less – I’m not asking for much… a spark of a hint so we can investigate further).

    @KathleenDollard

    Paul M Cohen
    @paul1956
    @DualBrain @DuckheadUK_twitter I have repeatedly complained that the release note never mentioning VB and VB breaking changes, I have been able to get traction on the Breaking changes stuff and there are a lot of recent updates WRT VB. VB Core 3.1 WinForms Samples are being updated by community and accepted. There is now a VB editorConfig in Dotnet, DotNet/Samples and Roslyn(Roslyn needs VB line and some cleanup in general) but few know its there (actually all I had to do was move most of the stuff from C# to C#, VB and do a PR that was accepted. VB only really needed 1 line what was already there(except in Roslyn). There are a lot of new code fixes that apply to VB but only say C# in release note. There are 2 new features (UnconstrainedTypeParameterInConditional and CommentsAfterLineContinuation) in VB 16 that have never seen mentioned, the first I have no idea why it was done or even what it does. The one explanation theory I have is to release it all at once in a big splash when the designer is fully working, that is my glass 1/2 full theory.
    Paul M Cohen
    @paul1956
    In preview 3 the form designer looks very healthy. All my forms open, the area on the bottom for controls is there and you can click on them, so far that is all I have looked at.
    Cory Smith
    @DualBrain
    I think the only real answer at this point is that we will need to just share what we find here. ;-)