├── CODE-OF-CONDUCT.md ├── LICENSE ├── README.md └── github.md /CODE-OF-CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. 4 | 5 | For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct). 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 CommunityVB 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Welcome 2 | 3 | This is a github org, documentation and set of repos (currently just one) by and for the VB community! 4 | 5 | ## OSS from the VB Community 6 | 7 | The following list are projects that are not only of interest/benefit to most VB developers, but are also primarily built in VB. So if you are interested in getting more involved in open-source as a VB dev... check these out! 8 | 9 | ### [CSharpToVB (powered by 'Roslyn')](https://github.com/paul1956/CSharpToVB) 10 | 11 | Paul has been working on a pretty incredible and completely free C# to VB conversion tool that is powered by the Roslyn API. It is (as of this writing) seeing continued improvements on a very regular basis. If you have a need to convert C# to VB... check this thing out! 12 | 13 | ### [Code Coverage](https://github.com/paul1956/Code-Coverage) 14 | 15 | Using Visual Studio 2019 Community alongside unit testing? Be sure to check out Paul's excellent utility to assist you in reviewing how well your tests are actually testing your code. 16 | 17 | ### [x8086NetEmu](https://github.com/morphx666/x8086NetEmu) 18 | 19 | This is so cool that it has to be included it here! Xavier has created a working 8086 emulator. There are a few things that aren't 100% working; but, for the most part, it's working pretty much as well as other offerings in this space... and it's written in VB! 20 | 21 | ### [Community.VisualBasic (alternative to the Microsoft.VisualBasic library)](https://github.com/DualBrain/Community.VisualBasic) 22 | 23 | Want to have all of the ease-of-use features that VB provides regardless of the project type and/or target operating system? Enter [Community.VisualBasic](https://github.com/DualBrain/Community.VisualBasic), the *.netstandard 2.0* community driven alternative to the official Microsoft.VisualBasic "runtime". 24 | 25 | [Community.VisualBasic](https://github.com/DualBrain/Community.VisualBasic) Goals: 26 | 27 | - Compatibility with Microsoft.VisualBasic namespace/functionality. 28 | - Cross-platform capability/compatibility. 29 | - Slice and dice into smaller packages. 30 | - Publish as separate nuget packages. 31 | - Add additional functionality where appropriate. 32 | 33 | See [Community.VisualBasic](https://github.com/DualBrain/Community.VisualBasic) for more details. 34 | 35 | ### [Vazor](https://github.com/VBAndCs/Vazor) 36 | 37 | A VB Razor framework for ASP.NET Core 6 (MVC and Razor Pages). 38 | 39 | ### [VB to WebAssembly Compiler (Proof-of-Concept)](https://github.com/biocad-cloud/data.ts/releases/tag/v0.5.136-alpha) 40 | 41 | Although not a much more than a proof-of-concept at this stage, it is a great start on creating an independent WebAssembly compiler for VB. 42 | 43 | > NOTE: since the commit [9466098](https://github.com/biocad-cloud/data.ts/tree/9466098937eb30f80f77d3b17b6f37878d047170), wasm compiler module for VB.NET language was move to a new individual project, and the new compiler project called [``VanillaBasic``](https://github.com/dotvanilla/vanilla). 44 | 45 | ### Category: VisualBasic.NET Machine Learning & Data Science Library 46 | 47 | #### 1. [LibOptimization](https://github.com/tomitomi3/LibOptimization) 48 | 49 | LibOptimization is a numerical optimization library that simplifies optimization using C#, VisualBasic.Net and other .NET Framework languages. This library is used by people who need optimization such as science (eg physics), engineering, sound, finance, statistics, medical care, structural design etc. 50 | 51 | #### 2. [sciBASIC](https://github.com/xieguigang/sciBASIC) 52 | 53 | A framework for developing the general data science application in VB.NET language. The sciBASIC framework provides a set of library module api for: 54 | 55 | 1. math algorithm 56 | 2. data mining and machine learning 57 | 3. data visualization 58 | 4. I/O for data with multiple general common used file formats in data science area 59 | 5. general application framework for develop console pipeline application. 60 | 61 | #### 3. [Darwinism](https://github.com/xieguigang/Darwinism) 62 | 63 | ``Darwinism`` project is a high performance parallel computing toolkit for VisualBasic.NET data science application running on unix mono/.net 5. 64 | 65 | ## **VB Welcome Here** (OSS that is VB friendly...) 66 | 67 | The following projects ("pocket communities") that, although aren't built in or specificaly for VB, are generally positive toward the VB developer. 68 | 69 | Note that some will have documentation/samples specifically for VB while others simply ensure that their projects work regardless of what development language utilizes them. 70 | 71 | - [FluentFTP](https://github.com/robinrodricks/FluentFTP): An FTP and FTPS client for .NET & .NET Standard, optimized for speed. Provides extensive FTP commands, File uploads/downloads, SSL/TLS connections, Automatic directory listing parsing, File hashing/checksums, File permissions/CHMOD, FTP proxies, FXP support, UTF-8 support, Async/await support, Powershell support and more. 72 | - [NAudio](https://github.com/naudio/NAudio): Audio and MIDI library for .NET. 73 | - [DynamicAudioNormalizer](https://github.com/lordmulder/DynamicAudioNormalizer): Dynamic Audio Normalizer is a library for advanced audio normalization purposes. It applies a certain amount of gain to the input audio in order to bring its peak magnitude to a target level (e.g. 0 dBFS). However, in contrast to more "simple" normalization algorithms, the Dynamic Audio Normalizer dynamically re-adjusts the gain factor to the input audio. This allows for applying extra gain to the "quiet" sections of the audio while avoiding distortions or clipping the "loud" sections. In other words: The Dynamic Audio Normalizer will "even out" the volume of quiet and loud sections, in the sense that the volume of each section is brought to the same target level. Note, however, that the Dynamic Audio Normalizer achieves this goal without applying "dynamic range compressing". It will retain 100% of the dynamic range within each "local" region of the audio file. 74 | 75 | ## Resources 76 | 77 | ### [Code samples for VB.NET](https://github.com/karenpayneoregon/visual-basic-getting-started) 78 | 79 | Karen has been working on moving her samples (collected over the years on, I believe, TechNet) to a repo here on github. There's some really good stuff in here! 80 | 81 | ### [GotBASIC.com - VB7+](https://gotbasic.com/vb.html) 82 | 83 | Cory has a website dedicated to BASIC with a section for VB v7+ with a lot of great resources. 84 | 85 | --- 86 | 87 | ## Discussion 88 | 89 | Discussion pertaining to VB.NET takes place in the form of issues in this repo, under the Discussion section. 90 | 91 | If you want to suggest a feature, discuss current design notes or proposals, etc., please begin the discussion in the Discussion section. 92 | 93 | It is beneficial to have language ideas discussed nearby to where the design artifacts are. Comment threads that are short and stay on topic are much more likely to be read. If you leave comment number fifty, chances are that only a few people will read it. To make discussions easier to navigate and benefit from, please observe a few rules of thumb: 94 | 95 | - Discussion should be relevant to Visual Basic .NET language and related technologies. Issues that are not will be summarily closed. 96 | - Choose a descriptive title for the issue, that clearly communicates the scope of discussion. 97 | - Stick to the topic of the issue title. If a comment is tangential, start a new issue and link back. 98 | - If a comment goes into detail on a subtopic, also consider starting a new issue and linking back. 99 | - Is your comment useful for others to read, or can it be adequately expressed with an emoji reaction to an existing comment? 100 | 101 | ## VB.NET Language Implementation 102 | 103 | The reference implementation of the Visual Basic .NET language can be found in the [Roslyn repository](https://github.com/dotnet/roslyn). Until recently, that was also where language design artifacts were tracked. Please allow a little time as we move over active proposals. 104 | 105 | -------------------------------------------------------------------------------- /github.md: -------------------------------------------------------------------------------- 1 | # Github - How To 2 | 3 | This document attempts to provide details on how to successfully contribute to open-source projects. As such, it may be broken down into separate documents in the future depending on how it evolves (based on feedback). 4 | 5 | ## Easiest Way to Contribute. 6 | 7 | The simples way to contribute to open source are the things that are needed that have nothing to do with the "source" such as: 8 | 9 | - Leverage the project and if you encounter problems... 10 | - Report Issues. 11 | - Engage in Discussions (if enabled)... if not, utilize Issues to start conversation. 12 | - If a project doesn't currently have *CI*, assist. 13 | - If a project doesn't currently deploy as a *nuget* package, assist. 14 | - Documentation, documentation, documentation! 15 | 16 | The number one thing to keep in mind regarding all of the above is that the answer to your suggestions, issues, and/or contributions may be met with a "No". Try not to take it negatively; remember that there may be plans in place that they are already engaged in that may either duplicate or invalidate your contribution. Which takes me to the second "rule" to keep in mind... engage positively in all of your interactions - no one, including yourself, want to interact with those that start off a conversation negatively. Remember... flies... honey... vinegar. 17 | 18 | ## Create a Successful Issue. 19 | 20 | (TODO) 21 | 22 | ## Contribute Code. 23 | 24 | There are several things that you'll need before you can contribute code to a repo. 25 | 26 | - Assume a project is utilizing the latest version of Visual Studio unless they've made mention otherwise. 27 | - You'll need *git* installed on your machine. 28 | - You'll need a GitHub.com account. 29 | 30 | With the *tools* out of the way, some things to consider before attempting to contribute to the source. 31 | 32 | Start with creating/comment on an issue. In general, when first visiting a repo, it's not a bad idea to first comment on an issue (if one exists) or open an issue on the topic. Mention that you're interested in contributing and ask if that's OK. Doing so let's the team (and others) know that you are considering tackling a particular subject and if there are things that you need to know about regarding contributing, the team can be sure to loop you in. 33 | 34 | Also some repos have a general rules in places that new features (*pull requests*) are immediately closed (not reviewed) unless explicit permission was given out to someone to work on it. 35 | 36 | In many repos, there are generally *issues* that have been flagged as being "up for grabs". You can comment on these letting everyone know that you are considering contributing to those. 37 | 38 | Once you submit the *pull request*, be sure to keep current with it so that if any request for changes or other feedback is provided that you can respond to them in a timely manner. Doing so can increase the likely-hood of getting the request accepted. 39 | 40 | As a side note, if you are familiar with anyone on the team and they asked you to specifically "break a rule", be sure to *tag* them in the *pull request*. 41 | 42 | It is also important keep in mind that "just because you did the work" doesn't mean that your work will be accepted; this is normal and please respect it. 43 | 44 | ### Fork 45 | 46 | It is not possible (unless you are on the primary team) to contribute code directly to someone elses repo. To get started, you'll need to *fork* their project into your account. 47 | 48 | (TODO: Walkthrough) 49 | 50 | ### Branch 51 | 52 | Although not absolutely necessary, it kind of makes sense to create a developmental branch for your changes. By doing this, you can keep the main branch up to date with the source repo (see below) and keep your code separate. It is also recommended that you make your branches such that your code changes are as small as possible so that they can be more easily accepted (see below). 53 | 54 | **Using GitHub Desktop** 55 | 56 | - Verify that you have the correct repo (yours) selected for the *Current repository* dropdown. 57 | - Click on the *Current branch* dropdown to display more details. 58 | - Click the *New branch* button. 59 | - In the *Create a branch* dialog, enter a meaningful name for the branch. 60 | - Click *Create branch*. 61 | - You will then want to *publish* the branch to your repo. 62 | 63 | **Using Git (CLI)** 64 | 65 | (TODO) 66 | 67 | ### "Atomic" 68 | 69 | When making a contribution, make it **small**. Sure, sometimes this isn't possible... however, you should always go into each contribution with this mindset. Don't make the specific change that you desire to contribute along with several other, possibly meaningless, but certainly unrelated changes. Focus, focus, focus. 70 | 71 | (TODO: Example of both wrong and right ways) 72 | 73 | ### Pull Request 74 | 75 | Once you are ready to submit your contribution, you do this through a *pull request*. This is where you create a package of your changes to push to the original repo a form that they can review and then pull into their codebase. 76 | 77 | (TODO: Walkthrough) 78 | 79 | ### Pull Request - Changes 80 | 81 | It is possible that the target repo team may like what you've done and are very close to accepting the *pull request* but would like to see a few changes. 82 | 83 | (TODO: Walkthrough / Example) 84 | 85 | ### Pull Request - Cancel 86 | 87 | The *pull request* was completely rejected so there's really might not be any point in keeping it around in your repo, so how do you get rid of it? 88 | 89 | (TODO: Walkthrough) 90 | 91 | ### Pull Request - Accepted 92 | 93 | Now that the *pull request* was accepted and merged into the upstream repo, what do you do on your *fork* to keep things clean? 94 | 95 | (TODO: Walkthrough) 96 | 97 | ### Keep Updated 98 | 99 | It's been a while since you *forked* the upstream repo and they've made a lot of improvements since you've done so. How do you keep things *cleanly* up-to-date witht he upstream repo? 100 | 101 | Although Github.com has some mechanisms to assist with this, it creates additional *commits* that add "noise" to your repo. It's simply confusing to see: 102 | 103 | > This branch is 3 commits ahead. 50 commits behind. 104 | 105 | When the only reason why it's "3 commits ahead" is that you utilized Github.com to merge (via *pull request*) the upstream changes into yours. 106 | 107 | I submit that it would make more sense to cleanly "refresh" your main repo to *match* the upstream. To do so... 108 | 109 | ``` 110 | git fetch --all 111 | git checkout your_branch 112 | git reset --hard upstream/their_branch 113 | ``` 114 | 115 | Where *your_branch* is the branch that is in your repo that you want to "bring up to date* to match *their_branch* in the original repo. 116 | --------------------------------------------------------------------------------