**Framework.** Programs combine parts. VB.NET has many keywords. We learn the meaning of these keywords. We then combine them into higher-level constructs and programs.

**Keywords.** Some keywords (like For and While) map to looping constructs. And others (Class, Dim and Sub) are part of declarations. With keywords we compose programs.#Const#If#RegionAddHandlerAddressOfAndAsAsyncAwaitBooleanByRefByteByValCaseCatchCharClassConstDateDecimalDelegateDimDoDo UntilDo WhileDoubleEndEnumEventExitFinallyForFor EachFriendFunctionGetTypeGoToIfImportsInheritsIntegerInterfaceIsIsNotIteratorLongMidModuleMustInheritMyClassNamespaceNotNothingNotInheritableObjectOfOptionalOverloadsOrParamArrayPartialPrivatePropertyPublicRaiseEventReadOnlyReDimREMReturnSByteSelectShadowsSharedShortSingleStringStructureSubSyncLockThrowTryUIntegerULongUShortUsingWhileWithWriteOnlyYield

**Functions.** The VB.NET language provides built-in functions that convert types. These are often implemented with other .NET Framework constructs.AscChrModVal

**Types.** Here is a list of common types in the .NET Framework. We use these types with VB.NET code. Not all types are included in this list.ArrayArrayListConsoleDataRowDataSetDataTableDateTimeExceptionFileHashSetHashtableHttpClientIEnumerableKeyValuePairListProcessQueueRandomRegexStackStreamReaderStreamWriterStringStringBuilderTaskTimerTimeSpanTuple

**Math.** Many mathematical functions are available in the System namespace. The Math class provides these. With Math, we avoid implementing this logic.Math.AbsMath.Max, Math.MinMath.RoundMath.Sqrt

**Algorithms.** Here we combine data structures and functions to achieve complex tasks. An algorithm is a well-known (or complex) method.**Fibonacci:**We compute the Fibonacci sequence in VB.NET with a simple For-loop. Each number is the sum of the previous two.

Fibonacci Sequence**Levenshtein:**With this algorithm, we compute the "edit distance" between two strings. This tells us string similarity.

Levenshtein**Random:**Algorithms extensively use random numbers. With the Random type, we can develop and test our algorithms.

RandomRandom Lowercase Letter

**Windows.** The Windows Forms platform supports Windows GUI programs. And the VB.NET language can be used to control these programs. We run code as a result of event handlers.BackgroundWorkerButtonDataGridViewMessageBox.ShowOpenFileDialogTextBox

**Syntax.** The VB.NET language is easy to read. It has clear rules. It has predictable logic. But some complexity exists in the language.:= (Named argument)"${x}" (String interpolation)

**Some keywords** are used together (For and Each). They change meaning when used part of a larger construct. And some words (like from LINQ) are contextual and not listed above.

**Many keywords,** like SyncLock, are narrow in their utility. VB.NET retains older language terms like "Mid" and "Date." These have been replaced with newer .NET Framework methods.