Skip to content

Commit 150c896

Browse files
authored
Add documentation (#122)
1 parent beb76e8 commit 150c896

File tree

5 files changed

+124
-0
lines changed

5 files changed

+124
-0
lines changed

docs/ABOUT.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# About
2+
3+
VB.NET is a multi-paradigm, statically-typed programming language with object-oriented, declarative, functional, generic, lazy, integrated querying features and type inference.
4+
5+
__Statically-typed__ means that identifiers have a [type](https://en.wikipedia.org/wiki/Type_system#Static_type_checking) set at compile time--like those in Java, C++ or Haskell--instead of holding data of any type like those in Python, Ruby or JavaScript.
6+
7+
__Object-oriented__ means that VB.NET provides imperative [class-based objects](https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/concepts/object-oriented-programming) with features such as single inheritance, interfaces and encapsulation.
8+
9+
__Declarative__ means programming [what is to be done](https://stackoverflow.com/questions/1784664/what-is-the-difference-between-declarative-and-imperative-programming), as opposed to how it is done (a.k.a imperative programming) (which is an implementation detail which can distract from the domain or business logic).
10+
11+
__Functional__ means that [functions are first-class data types](https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/delegates/) that can be passed as arguments to and returned from other functions.
12+
13+
__Generic__ means that algorithms are written in terms of types [to-be-specified-later](https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/data-types/generic-types) that are then instantiated, when needed, for the specific types provided as parameters.
14+
15+
__Lazy__ [(a.k.a "deferred execution")](https://docs.microsoft.com/en-us/dotnet/visual-basic/language-reference/statements/yield-statement) means that the compiler will put off evaluating an item until required. This lets one safely do weird stuff like operating on an infinite list--the language will only create the list up to the last value needed.
16+
17+
__Integrated Querying__ means the language feature called [LINQ "Language-Integrated Query"](https://msdn.microsoft.com/en-us/library/bb308959.aspx), which enables lazy querying directly within the language, not only its own objects but, also, external data sources through formats such as XML, JSON, SQL, NoSQL DBs and event streams.
18+
19+
__Type inference__ means that the compiler will often figure out the type of an identifier by itself so you don't have to specify it. Scala and F# both do this.
20+
21+
__Syntax__ is similar to that of other structured BASIC languages such as [Xojo](https://www.xojo.com), [PureBASIC](https://www.purebasic.com/) and the [B4X](https://www.b4x.com/) family.
22+
23+
__.NET__ is the managed environment within which VB.NET runs, so you get access to the entire .NET ecosystem, including all packages on [nuget.org](http://www.nuget.org). .NET used to be Windows-only but, with the release of [.NET Core](https://www.microsoft.com/net/core) -- as well as [Mono](http://www.mono-project.com/) -- you can also use VB.NET on Mac, Linux or Unix-based systems and on mobile platforms too.
24+
25+
VB.NET also has features, amongst others, to make programming with multiple threads/processors, parallelisation, asynchrony, unmanaged code in a managed environment and language interoperability easier. It is developed and maintained by Microsoft, who provides the official [documentation](https://docs.microsoft.com/en-us/dotnet/visual-basic/).

docs/INSTALLATION.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Installation
2+
3+
## Installing .NET Core
4+
5+
The VB.NET track is built on top of the [.NET Core](https://www.microsoft.com/net/core/platform) platform, which runs on Windows, Linux and macOS. To build .NET Core projects, you can use the .NET Core Command Line Interface (CLI). This CLI is part of the .NET Core SDK, which you can install by following the [installation instructions](https://www.microsoft.com/net/download/core). Note: the VB.NET track requires SDK version 3.0 or greater.
6+
7+
After completing the installation, you can verify if the CLI was installed succesfully by running this command in a terminal:
8+
9+
```bash
10+
dotnet --version
11+
```
12+
13+
If the output is a version greater than or equal to `3.0.100`, the .NET Core SDK has been installed succesfully.
14+
15+
## Using an IDE
16+
17+
If you want a more full-featured editing experience, you probably want to to use an IDE. These are the most popular IDE's that support building .NET Core projects:
18+
19+
- [Visual Studio 2019](https://www.visualstudio.com/downloads/) (version 16.0.0 and higher)
20+
- [Visual Studio Code](https://code.visualstudio.com/download) with a grammar and snippets [VB.NET extension](https://marketplace.visualstudio.com/items?itemName=gordonwalkedby.vbnet)
21+
- [Visual Studio for Mac](https://www.visualstudio.com/vs/visual-studio-mac/) (still in beta)
22+
- [Project Rider](https://www.jetbrains.com/rider/download/)
23+
24+
Note: as the .NET Core project format differs significantly from earlier versions, older IDE's (like Visual Studio 2015 and Xamarin Studio) are not supported.

docs/LEARNING.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Learning VB.NET
2+
3+
## Websites
4+
5+
* The [official VB.NET documentation](https://docs.microsoft.com/en-us/dotnet/articles/visual-basic/) has great content on a wide variety of subjects, including key [concepts](https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/concepts/), [sample applications](https://github.com/dotnet/docs/tree/main/samples/snippets/visualbasic) and [walkthroughs](hhttps://docs.microsoft.com/en-us/dotnet/visual-basic/walkthroughs).
6+
7+
## Videos
8+
9+
* [Visual Basic Fundamentals for Absolute Beginners](https://www.youtube.com/watch?v=6utWyl8agDY)
10+
* [Learn Visual Basic in 30 Minutes (2017)](https://www.youtube.com/watch?v=gcFHyVYdeFU)
11+
* There are [VB.NET courses](https://www.pluralsight.com/search?q=vb.net&categories=all) on PluralSight. The downside: PluralSight is a paid service, but you can request a [free trial](https://www.pluralsight.com/pricing).
12+
13+
## Books
14+
15+
* [Learn Visual Basic 2019 Edition: A Step-By-Step Programming Tutorial](https://www.abebooks.com/servlet/BookDetailsPL?bi=30946734112&searchurl=isbn%3D1951077105%26sortby%3D17&cm_sp=snippet-_-srp1-_-title2)
16+
* [Visual Basic 2019 Handbook: A Concise Guide to VB2019 Programming](https://www.abebooks.com/servlet/BookDetailsPL?bi=30903890407&cm_sp=Searchmod-_-NullResults-_-BDP)
17+
* [BEGINNING VISUAL BASIC](https://www.kidwaresoftware.com/Beginning-Visual-Basic-A-Computer-Programming-Tutorial-by-Philip-Conrod-and-Lou-Tylee/)
18+
* [Visual Basic and Databases](https://www.kidwaresoftware.com/visual-basic-and-databases-by-philip-conrod-and-lou-tylee/)
19+
* [Learn Visual Basic .Net Programming: A Practical Approach](https://www.abebooks.com/9781080576890/Learn-Visual-Basic-.Net-Programming-1080576894/plp)

docs/RESOURCES.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Recommended Learning Resources
2+
3+
## Blogs
4+
5+
- Microsoft's official [Visual Basic blog](https://devblogs.microsoft.com/vbteam/) has some interesting VB.NET articles, ranging from beginner to expert level.
6+
7+
## Forums
8+
9+
- [Discord Visual Basic Community](https://discord.gg/dshBTEJB)
10+
- [VBForums](https://www.vbforums.com/forumdisplay.php?25-Visual-Basic-NET)
11+
- [CodeGuru](https://forums.codeguru.com/forumdisplay.php?12-Visual-Basic-NET&s=0e515468cde5bb0fd0d5466a2451d432)
12+
- [VB.Net Forums](https://vbdotnetforums.com/)
13+
- [VB City](http://vbcity.com/forums/default.aspx)
14+
- [Dev Ppl](https://www.devppl.com/forum/visual-basic-forum/)
15+
16+
## Social media
17+
18+
- [StackOverflow](https://stackoverflow.com/questions/tagged/vb.net) can be used to search for your problem and see if it has been answered already. You can also ask and answer questions.
19+
- [/r/visual-basic](https://www.reddit.com/r/visualbasic/) is the VB.NET subreddit.
20+
21+
## Tutorials
22+
- [Tutorialspoint](https://www.tutorialspoint.com/vb.net/index.htm)
23+
- [tutlane](https://www.tutlane.com/tutorial/visual-basic)
24+
- [vbtutor](https://www.vbtutor.net/)
25+
- Microsoft's own [Get started with Visual Basic in Visual Studio](https://docs.microsoft.com/en-us/visualstudio/get-started/visual-basic/tutorial-console?view=vs-2019)
26+
27+

docs/TESTS.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Tests
2+
3+
## Running Tests
4+
5+
To run the tests, execute the following command:
6+
7+
```bash
8+
dotnet test
9+
```
10+
11+
To run the tests automatically as each source file is changed, execute the following command:
12+
13+
```bash
14+
dotnet watch test
15+
```
16+
17+
## Solving the exercise
18+
19+
Solving an exercise means making all its tests pass. By default, only one test (the first one) is executed when you run the tests. This is intentional, as it allows you to focus on just making that one test pass. Once it passes, you can enable the next test by removing `Skip = "Remove this Skip property to run this test"` from the test's `[Fact]` or `[Theory]` attribute. When all tests have been enabled and your implementation makes them all pass, you'll have solved the exercise!
20+
21+
To help you get started, each exercise comes with a stub implementation file. You can use this file as a starting point for building your solution. Feel free to remove or change this file if you think it is the right thing to do.
22+
23+
## Using packages
24+
25+
You should be able to solve most exercises without using any external packages. However, for the exercises where you do want to use an external package, you can add it to your project by running the following command:
26+
27+
```bash
28+
dotnet add package [package-name]
29+
```

0 commit comments

Comments
 (0)