Categories
Artificial Intelligence AWS Azure Bibliography C# .NET Cloud Data Science - Big Data DevOps DevSecOps-Security-Privacy GCP Go Programming Language Java JavaScript Kotlin Kubernetes Linux Networking Operating Systems PowerShell Python React Software Engineering Spring Framework Swift TypeScript Vue.js Framework

Manning Publications

See also Java Bibliography, JavaScript Bibliography, Python Bibliography

Manning publishes the best quality IT books in the industry.

Manning is an independent publisher, providing computer books for software developers, engineers, architects, system administrators, and managers. Our books also cover topics for young programmers, students, and occasionally children.

summary

Manning is an independent publisher of computer books and video courses for software developers, engineers, architects, system administrators, managers and all who are professionally involved with the computer business. We also publish for students and young programmers, including occasionally for children. We are an entirely virtual organization based on Shelter Island, New York, with many staff working from far-flung places like Manila and Zagreb.

company character

“Independent” means we are not owned by a large corporate entity and are free to make decisions without bureaucratic overhead. That has allowed us to innovate and be flexible and to quickly adjust what we do as we go. We were the first by several years to sell our books as unprotected PDFs, something that later became commonplace. We were the first to start selling books before they were finished, in the Manning Early Access Program. This gave our readers access to our content as soon as it was readable, and this too has become common in the industry. And it means we are thinking every day about new ways to satisfy our customers, some of which we hope you will be pleased to discover in the not-too-distant future.

how we improve

We published our first book in 1993 and have been learning from our successes, and even more from our mistakes, ever since. Every new book teaches us something that helps us improve:

  • How to choose the topics we publish on
  • How to find the right authors for each book
  • How to help authors write the best books they can
  • How to ensure the content is valuable and easy to learn
  • How to let readers know about our content

book series

We publish standalone titles as well as the following book series:

  • Hello!
  • In Action
  • In Practice
  • In Depth
  • In a Month of Lunches

availability

Readers can access our books through the Manning Early Access Program, O’Reilly Learning (formerly Safari Books Online), and iBooks. Print copies, wherever they are bought, come with free electronic versions in PDF, ePub and Kindle formats. With your print copy in hand, register it on the Manning site and you can download the digital versions from your account.

At this time, our eBooks are available only from Manning.com and Apple’s iBookstore.

https://www.manning.com/manning

Sources:

Fair Use Sources:

Categories
Bibliography C# .NET Software Engineering

C# .NET Bibliography

See also C# and .NET Framework and JavaScript Bibliography

Categories
Bibliography C# .NET Software Engineering

C# 9.0 in a Nutshell: The Definitive Reference

See also: C# .NET Bibliography and C# and .NET Framework

See: C# 9.0 in a Nutshell: The Definitive Reference, 1st Edition, by Joseph Albahari, 2021, B08XN578HZ (CSNS9)

Fair Use Source: B08XN578HZ (CSNS9)

About This Book:

When you have questions about C# 9.0 or .NET 5, this best-selling guide has the answers you need. C# is a language of unusual flexibility and breadth, but with its continual growth there’s so much more to learn. In the tradition of O’Reilly’s Nutshell guides, this thoroughly updated edition is simply the best one-volume reference to the C# language available today.

Organized around concepts and use cases, C# 9.0 in a Nutshell provides intermediate and advanced programmers with a concise map of C# and .NET that also plumbs significant depths.

  • Get up to speed on C#, from syntax and variables to advanced topics such as pointers, records, closures, and patterns
  • Dig deep into LINQ with three chapters dedicated to the topic
  • Explore concurrency and asynchrony, advanced threading, and parallel programming
  • Work with .NET features, including regular expressions, networking, spans, reflection, and cryptography

About the Author:

Book Details:

  • ASIN: B08XN578HZ
  • Publisher: O’Reilly Media; 1st edition (February 26, 2021)
  • Publication date: February 26, 2021
  • Language: English
  • Print length: 1884 pages

Table of Contents:

Sources:

Fair Use Sources:

Categories
Android OS Apple iOS Apple macOS C Language C# .NET C++ Django Web Framework Flask Web Framework Go Programming Language Java JavaScript Kotlin Linux Operating Systems PowerShell Python Ruby Software Engineering Spring Framework Swift TypeScript Windows Desktop Windows Server

Operating systems (OS)

An operating system (OS) is system software that manages computer hardwaresoftware resources, and provides common services for computer programs.

Time-sharing operating systems schedule tasks for efficient use of the system and may also include accounting software for cost allocation of processor timemass storage, printing, and other resources.

For hardware functions such as input and output and memory allocation, the operating system acts as an intermediary between programs and the computer hardware,[1][2] although the application code is usually executed directly by the hardware and frequently makes system calls to an OS function or is interrupted by it. Operating systems are found on many devices that contain a computer – from cellular phones and video game consoles to web servers and supercomputers.

The dominant general-purpose[3] desktop operating system is Microsoft Windows with a market share of around 76.45%. macOS by Apple Inc. is in second place (17.72%), and the varieties of Linux are collectively in third place (1.73%).[4] In the mobile sector (including smartphones and tablets), Android’s share is up to 72% in the year 2020.[5] According to third quarter 2016 data, Android’s share on smartphones is dominant with 87.5 percent with also a growth rate of 10.3 percent per year, followed by Apple’s iOS with 12.1 percent with per year decrease in market share of 5.2 percent, while other operating systems amount to just 0.3 percent.[6] Linux distributions are dominant in the server and supercomputing sectors. Other specialized classes of operating systems (special-purpose operating systems)[7][8]), such as embedded and real-time systems, exist for many applications. Security-focused operating systems also exist. Some operating systems have low system requirements (i.e. light-weight Linux distribution). Others may have higher system requirements.

Some operating systems require installation or may come pre-installed with purchased computers (OEM-installation), whereas others may run directly from media (i.e. live cd) or flash memory (i.e. usb stick).

Categories
Artificial Intelligence AWS Azure Bibliography C Language C# .NET C++ Cloud Data Science - Big Data DevOps DevSecOps-Security-Privacy Django Web Framework Flask Web Framework GCP Go Programming Language Java JavaScript Kotlin Kubernetes Linux Networking Operating Systems PowerShell Python Ruby Software Engineering Spring Framework Swift TypeScript Windows Server

Udemy

See Dr. Angela Yu, Udemy’s best instructor: 100 Days of Code – The Complete Python Pro Bootcamp

Udemy, Inc. is an American massive open online course (MOOC) provider aimed at professional adults and students. It was founded in May 2010 by Eren Bali, Gagan Biyani, and Oktay Caglar.

As of February 2021, the platform has more than 40 million students, 155,000 courses and 70,000 instructors teaching courses in over 65 languages. There have been over 480 million course enrollments. Students and instructors come from 180+ countries and 2/3 of the students are located outside of the U.S.[3]

Students take courses largely as a means of improving job-related skills.[4] Some courses generate credit toward technical certification. Udemy has made a special effort to attract corporate trainers seeking to create coursework for employees of their company.[5] As of 2021, there are more than 155,000 courses on the website.[6][3]

The headquarters of Udemy is located in San Francisco, California, with offices in Denver, Colorado; Dublin, Ireland; Ankara, Turkey; Sao Paulo, Brazil; and Gurugram, India.[7]

(WP)

Sources:

Fair Use Sources:

Categories
C Language C# .NET C++ Cloud DevOps Django Web Framework Flask Web Framework Go Programming Language Java JavaScript Kotlin PowerShell Python Ruby Software Engineering Spring Framework Swift TypeScript

Software design pattern

In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved. Patterns that imply mutable state may be unsuited for functional programming languages, some patterns can be rendered unnecessary in languages that have built-in support for solving the problem they are trying to solve, and object-oriented patterns are not necessarily suitable for non-object-oriented languages.

Design patterns may be viewed as a structured approach to computer programming intermediate between the levels of a programming paradigm and a concrete algorithm.

In a recent review study, Wedyan and Abufakher investigate design patterns and software quality and conclude: “Our study has shown that the primary studies provide an empirical evidence on the positive effect of documentation of designs pattern instances on program comprehension, and therefore, maintainability. While this result is not surprising, it has, however, two indications. First, developers should pay more effort to add such documentation, even if in the form of simple comments in the source code. Second, when comparing results of different studies, the effect of documentation has to be considered.”[1]

Categories
C Language C# .NET C++ Cloud Data Science - Big Data DevOps Django Web Framework Flask Web Framework Go Programming Language Java JavaScript Kotlin PowerShell Python Ruby Software Engineering Spring Framework Swift TypeScript

Integrated Development Environment (IDE)

“An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editorbuild automation tools and a debugger. Some IDEs, such as Visual Studio, NetBeans and Eclipse, contain the necessary compilerinterpreter, or both; others, such as SharpDevelop and Lazarus, do not.” (WP)

“The boundary between an IDE and other parts of the broader software development environment is not well-defined; sometimes a version control system or various tools to simplify the construction of a graphical user interface (GUI) are integrated. Many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram for use in object-oriented software development.” (WP)

Categories
Bibliography C# .NET Software Engineering

C# 8 Quick Syntax Reference: A Pocket Guide to the Language, APIs, and Library

See also: C# and .NET Framework, C# Bibliography

C# 8 Quick Syntax Reference: A Pocket Guide to the Language, APIs, and Library by Mikael Olsson, 2020, B08313LS19 (CS8QSR)

Fair Use Source: B08313LS19 (CS8QSR)

This quick C# 8 guide is a condensed code and syntax reference to the C# programming language, updated with the latest features of C# 8 for .NET and Windows 10. This book presents the essential C# 8 syntax in a well-organized format that can be used as a handy reference.  Specifically, it covers nullable reference types, async streams, ranges and indices, default implementations of interface members, recursive patterns, switch expressions, target-typed new-expressions, platform dependencies and more.
In the C# 8 Quick Syntax Reference, you will find a concise reference to the C# language syntax: short, simple, and focused code examples; a well laid out table of contents; and a comprehensive index allowing easy review. You won’t find any technical jargon, bloated samples, drawn-out history lessons, or witty stories. What you will find is a language reference that is to the point and highly accessible. The book is packed with useful information and is a must-have for any C# programmer.

What You Will Learn

  • Discover what’s new in C# 8 and .NET for Windows 10 programming
  • Employ nullable reference types 
  • Explore the advanced async streams now available in C# 8
  • Work with ranges and indices 
  • Apply recursive patterns to your applications
  • Use switch expressions 

Who This Book Is For

Those with some experience in programming, looking for a quick, handy reference. Some C# or .NET recommended but not necessary.

Book Details

  • ASIN: B08313LS19
  • Publisher: Apress; 3rd edition (December 20, 2019)
  • Publication date: December 20, 2019
  • Print length: 175 pages
Categories
C# .NET Software Engineering

Computer Programming

Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task. Programming involves tasks such as: analysis, generating algorithmsprofiling algorithms’ accuracy and resource consumption, and the implementation of algorithms in a chosen programming language (commonly referred to as coding).[1][2] The source code of a program is written in one or more languages that are intelligible to programmers, rather than machine code, which is directly executed by the central processing unit. The purpose of programming is to find a sequence of instructions that will automate the performance of a task (which can be as complex as an operating system) on a computer, often for solving a given problem. Proficient programming thus often requires expertise in several different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.” (WP)

“Tasks accompanying and related to programming include: testingdebuggingsource code maintenance, implementation of build systems, and management of derived artifacts, such as the machine code of computer programs. These might be considered part of the programming process, but often the term software development is used for this larger process with the term programmingimplementation, or coding reserved for the actual writing of code. Software engineering combines engineering techniques with software development practices. Reverse engineering is a related process used by designers, analysts and programmers to understand and re-create/re-implement.[3]:3” (WP)

History

Ada Lovelace, whose notes added to the end of Luigi Menabrea‘s paper included the first algorithm designed for processing by an Analytical Engine. She is often recognized as history’s first computer programmer.” (WP)

See also: Computer program § HistoryProgrammer § History, and History of programming languages

Programmable devices have existed for centuries. As early as the 9th century, a programmable music sequencer was invented by the Persian Banu Musa brothers, who described an automated mechanical flute player in the Book of Ingenious Devices.[4][5] In 1206, the Arab engineer Al-Jazari invented a programmable drum machine where a musical mechanical automaton could be made to play different rhythms and drum patterns, via pegs and cams.[6][7] In 1801, the Jacquard loom could produce entirely different weaves by changing the “program” – a series of pasteboard cards with holes punched in them.” (WP)

Code-breaking algorithms have also existed for centuries. In the 9th century, the Arab mathematician Al-Kindi described a cryptographic algorithm for deciphering encrypted code, in A Manuscript on Deciphering Cryptographic Messages. He gave the first description of cryptanalysis by frequency analysis, the earliest code-breaking algorithm.[8]

The first computer program is generally dated to 1843, when mathematician Ada Lovelace published an algorithm to calculate a sequence of Bernoulli numbers, intended to be carried out by Charles Babbage‘s Analytical Engine.[9]Data and instructions were once stored on external punched cards, which were kept in order and arranged in program decks.

In the 1880s Herman Hollerith invented the concept of storing data in machine-readable form.[10] Later a control panel (plugboard) added to his 1906 Type I Tabulator allowed it to be programmed for different jobs, and by the late 1940s, unit record equipment such as the IBM 602 and IBM 604, were programmed by control panels in a similar way, as were the first electronic computers. However, with the concept of the stored-program computer introduced in 1949, both programs and data were stored and manipulated in the same way in computer memory.[citation needed]

Machine language

Machine code was the language of early programs, written in the instruction set of the particular machine, often in binary notation. Assembly languages were soon developed that let the programmer specify instruction in a text format, (e.g., ADD X, TOTAL), with abbreviations for each operation code and meaningful names for specifying addresses. However, because an assembly language is little more than a different notation for a machine language, any two machines with different instruction sets also have different assembly languages.Wired control panel for an IBM 402 Accounting Machine.

Compiler languages

High-level languages made the process of developing a program simpler and more understandable, and less bound to the underlying hardware. FORTRAN, the first widely used high-level language to have a functional implementation, came out in 1957[11] and many other languages were soon developed—in particular, COBOL aimed at commercial data processing, and Lisp for computer research.

These compiled languages allow the programmer to write programs in terms that are syntactically richer, and more capable of abstracting the code, making it targetable to varying machine instruction sets via compilation declarations and heuristics. The first compiler for a programming language was developed by Grace Hopper.[12] When Hopper went to work on UNIVAC in 1949, she brought the idea of using compilers with her.[13][14] Compilers harness the power of computers to make programming easier[11] by allowing programmers to specify calculations by entering a formula using infix notation (e.g., Y = X*2 + 5*X + 9) for example. FORTRAN, the first widely used high-level language to have a functional implementation which permitted the abstraction of reusable blocks of code, came out in 1957[11] and many other languages were soon developed—in particular, COBOL aimed at commercial data processing, and Lisp for computer research. In 1951 Frances E. Holberton developed the first sort-merge generator, which ran on the UNIVAC I.[15] Another woman working at UNIVAC, Adele Mildred Koss, developed a program that was a precursor to report generators.[15] The idea for the creation of COBOL started in 1959 when Mary K. Hawes, who worked for the Burroughs Corporation, set up a meeting to discuss creating a common business language.[16] She invited six people, including Grace Hopper.[16] Hopper was involved in developing COBOL as a business language and creating “self-documenting” programming.[17][18] Hopper’s contribution to COBOL was based on her programming language, called FLOW-MATIC.[14] In 1961, Jean E. Sammet developed FORMAC and also published Programming Languages: History and Fundamentals, which went on to be a standard work on programming languages.[16][19]

Source code entry

Programs were mostly still entered using punched cards or paper tape. See Computer programming in the punch card era. By the late 1960s, data storage devices and computer terminals became inexpensive enough that programs could be created by typing directly into the computers. Frances Holberton created a code to allow keyboard inputs while she worked at UNIVAC.[20]

Text editors were developed that allowed changes and corrections to be made much more easily than with punched cards. Sister Mary Kenneth Keller worked on developing the programming language BASIC while she was a graduate student at Dartmouth in the 1960s.[21] One of the first object-oriented programming languages, Smalltalk, was developed by seven programmers, including Adele Goldberg, in the 1970s.[22]

Modern programming

Quality requirements

Whatever the approach to development may be, the final program must satisfy some fundamental properties. The following properties are among the most important:[23] [24]

  • Reliability: how often the results of a program are correct. This depends on conceptual correctness of algorithms, and minimization of programming mistakes, such as mistakes in resource management (e.g., buffer overflows and race conditions) and logic errors (such as division by zero or off-by-one errors).
  • Robustness: how well a program anticipates problems due to errors (not bugs). This includes situations such as incorrect, inappropriate or corrupt data, unavailability of needed resources such as memory, operating system services, and network connections, user error, and unexpected power outages.
  • Usability: the ergonomics of a program: the ease with which a person can use the program for its intended purpose or in some cases even unanticipated purposes. Such issues can make or break its success even regardless of other issues. This involves a wide range of textual, graphical, and sometimes hardware elements that improve the clarity, intuitiveness, cohesiveness and completeness of a program’s user interface.
  • Portability: the range of computer hardware and operating system platforms on which the source code of a program can be compiled/interpreted and run. This depends on differences in the programming facilities provided by the different platforms, including hardware and operating system resources, expected behavior of the hardware and operating system, and availability of platform-specific compilers (and sometimes libraries) for the language of the source code.
  • Maintainability: the ease with which a program can be modified by its present or future developers in order to make improvements or customizations, fix bugs and security holes, or adapt it to new environments. Good practices[25] during initial development make the difference in this regard. This quality may not be directly apparent to the end user but it can significantly affect the fate of a program over the long term.
  • Efficiency/performance: Measure of system resources a program consumes (processor time, memory space, slow devices such as disks, network bandwidth and to some extent even user interaction): the less, the better. This also includes careful management of resources, for example cleaning up temporary files and eliminating memory leaks. This is often discussed under the shadow of a chosen programming language. Although the language certainly affects performance, even slower languages, such as Python, can execute programs instantly from a human perspective. Speed, resource usage, and performance are important for programs that bottleneck the system, but efficient use of programmer time is also important and is related to cost: more hardware may be cheaper.

Readability of source code

In computer programming, readability refers to the ease with which a human reader can comprehend the purpose, control flow, and operation of source code. It affects the aspects of quality above, including portability, usability and most importantly maintainability.

Readability is important because programmers spend the majority of their time reading, trying to understand and modifying existing source code, rather than writing new source code. Unreadable code often leads to bugs, inefficiencies, and duplicated code. A study[26] found that a few simple readability transformations made code shorter and drastically reduced the time to understand it.

Following a consistent programming style often helps readability. However, readability is more than just programming style. Many factors, having little or nothing to do with the ability of the computer to efficiently compile and execute the code, contribute to readability.[27] Some of these factors include:

The presentation aspects of this (such as indents, line breaks, color highlighting, and so on) are often handled by the source code editor, but the content aspects reflect the programmer’s talent and skills.

Various visual programming languages have also been developed with the intent to resolve readability concerns by adopting non-traditional approaches to code structure and display. Integrated development environments (IDEs) aim to integrate all such help. Techniques like Code refactoring can enhance readability.

Algorithmic complexity

The academic field and the engineering practice of computer programming are both largely concerned with discovering and implementing the most efficient algorithms for a given class of problem. For this purpose, algorithms are classified into orders using so-called Big O notation, which expresses resource use, such as execution time or memory consumption, in terms of the size of an input. Expert programmers are familiar with a variety of well-established algorithms and their respective complexities and use this knowledge to choose algorithms that are best suited to the circumstances.

Chess algorithms as an example

“Programming a Computer for Playing Chess” was a 1950 paper that evaluated a “minimax” algorithm that is part of the history of algorithmic complexity; a course on IBM’s Deep Blue (chess computer) is part of the computer science curriculum at Stanford University.[28]

Methodologies

The first step in most formal software development processes is requirements analysis, followed by testing to determine value modeling, implementation, and failure elimination (debugging). There exist a lot of differing approaches for each of those tasks. One approach popular for requirements analysis is Use Case analysis. Many programmers use forms of Agile software development where the various stages of formal software development are more integrated together into short cycles that take a few weeks rather than years. There are many approaches to the Software development process.

Popular modeling techniques include Object-Oriented Analysis and Design (OOAD) and Model-Driven Architecture (MDA). The Unified Modeling Language (UML) is a notation used for both the OOAD and MDA.

A similar technique used for database design is Entity-Relationship Modeling (ER Modeling).

Implementation techniques include imperative languages (object-oriented or procedural), functional languages, and logic languages.

Measuring language usage

Main article: Measuring programming language popularity

It is very difficult to determine what are the most popular modern programming languages. Methods of measuring programming language popularity include: counting the number of job advertisements that mention the language,[29] the number of books sold and courses teaching the language (this overestimates the importance of newer languages), and estimates of the number of existing lines of code written in the language (this underestimates the number of users of business languages such as COBOL).

Some languages are very popular for particular kinds of applications, while some languages are regularly used to write many different kinds of applications. For example, COBOL is still strong in corporate data centers[30] often on large mainframe computersFortran in engineering applications, scripting languages in Web development, and C in embedded software. Many applications use a mix of several languages in their construction and use. New languages are generally designed around the syntax of a prior language with new functionality added, (for example C++ adds object-orientation to C, and Java adds memory management and bytecode to C++, but as a result, loses efficiency and the ability for low-level manipulation).

Debugging

The first known actual bug causing a problem in a computer was a moth, trapped inside a Harvard mainframe, recorded in a log book entry dated September 9, 1947.[31] “Bug” was already a common term for a software defect when this bug was found.

Main article: Debugging

Debugging is a very important task in the software development process since having defects in a program can have significant consequences for its users. Some languages are more prone to some kinds of faults because their specification does not require compilers to perform as much checking as other languages. Use of a static code analysis tool can help detect some possible problems. Normally the first step in debugging is to attempt to reproduce the problem. This can be a non-trivial task, for example as with parallel processes or some unusual software bugs. Also, specific user environment and usage history can make it difficult to reproduce the problem.

After the bug is reproduced, the input of the program may need to be simplified to make it easier to debug. For example, when a bug in a compiler can make it crash when parsing some large source file, a simplification of the test case that results in only few lines from the original source file can be sufficient to reproduce the same crash. Trial-and-error/divide-and-conquer is needed: the programmer will try to remove some parts of the original test case and check if the problem still exists. When debugging the problem in a GUI, the programmer can try to skip some user interaction from the original problem description and check if remaining actions are sufficient for bugs to appear. Scripting and breakpointing is also part of this process.

Debugging is often done with IDEs like EclipseVisual StudioXcodeKdevelopNetBeans and Code::Blocks. Standalone debuggers like GDB are also used, and these often provide less of a visual environment, usually using a command line. Some text editors such as Emacs allow GDB to be invoked through them, to provide a visual environment.

Programming languages

Main articles: Programming language and List of programming languages

Different programming languages support different styles of programming (called programming paradigms). The choice of language used is subject to many considerations, such as company policy, suitability to task, availability of third-party packages, or individual preference. Ideally, the programming language best suited for the task at hand will be selected. Trade-offs from this ideal involve finding enough programmers who know the language to build a team, the availability of compilers for that language, and the efficiency with which programs written in a given language execute. Languages form an approximate spectrum from “low-level” to “high-level”; “low-level” languages are typically more machine-oriented and faster to execute, whereas “high-level” languages are more abstract and easier to use but execute less quickly. It is usually easier to code in “high-level” languages than in “low-level” ones.

Allen Downey, in his book How To Think Like A Computer Scientist, writes:The details look different in different languages, but a few basic instructions appear in just about every language:

  • Input: Gather data from the keyboard, a file, or some other device.
  • Output: Display data on the screen or send data to a file or other device.
  • Arithmetic: Perform basic arithmetical operations like addition and multiplication.
  • Conditional Execution: Check for certain conditions and execute the appropriate sequence of statements.
  • Repetition: Perform some action repeatedly, usually with some variation.

Many computer languages provide a mechanism to call functions provided by shared libraries. Provided the functions in a library follow the appropriate run-time conventions (e.g., method of passing arguments), then these functions may be written in any other language.” (WP)

Programmers

Main article: Programmer

See also: Software developer and Software engineer

Computer programmers are those who write computer software. Their jobs usually involve:” (WP)

See also

Main article: Outline of computer programming

“” (TcPd)

Fair Use Source: TcPd

Sources:

Fair Use Sources:

Categories
C# .NET Cloud Data Science - Big Data History Software Engineering

Microsoft SQL Server

“” (CS9PR)

Previous: — Next:

Sources:

Fair Use Sources:

Categories
C# .NET Software Engineering

C Sharp Template

See also: C# and .NET Framework, C# Bibliography

“” (CS9PR)

Previous: — Next: C#

Sources:

Fair Use Sources:

Categories
C# .NET Software Engineering

C# 9.0 Pocket Reference: Instant Help for C# 9.0 Programmers, 1st Edition

See also: C# and .NET Framework, C# Bibliography and C# 9.0 in a Nutshell

C# 9.0 Pocket Reference: Instant Help for C# 9.0 Programmers 1st Edition, by Joseph Albahari and Ben Albahari, 2021, B08SYWWDTX (CS9PR)

Fair Use Source: B08SYWWDTX (CS9PR)

When you have questions about C# 9.0 or .NET 5, this best-selling guide has the answers you need. C# is a language of unusual flexibility and breadth, but with its continual growth there’s so much more to learn. In the tradition of O’Reilly’s Nutshell guides, this thoroughly updated edition is simply the best one-volume reference to the C# language available today.

Organized around concepts and use cases, C# 9.0 in a Nutshell provides intermediate and advanced programmers with a concise map of C# and .NET that also plumbs significant depths.

  • Get up to speed on C#, from syntax and variables to advanced topics such as pointers, records, closures, and patterns
  • Dig deep into LINQ with three chapters dedicated to the topic
  • Explore concurrency and asynchrony, advanced threading, and parallel programming
  • Work with .NET features, including regular expressions, networking, spans, reflection, and cryptography

Joseph Albahari is author of C# 8.0 in a NutshellC# 8.0 Pocket Reference, and LINQ Pocket Reference (all from O’Reilly). He also wrote LINQPad, the popular code scratchpad and LINQ querying utility.

Book Details

  • ASIN: B08SYWWDTX
  • Publisher: O’Reilly Media; 1st edition (January 13, 2021)
  • Publication date: January 13, 2021
  • Print length: 362 pages

Table of Contents:

A First C# Program Compilation

Syntax Identifiers and Keywords

Literals, Punctuators, and Operators

Comments

Type Basics Predefined Type Examples

Custom Type Examples

Types and Conversions

Value Types Versus Reference Types

Predefined Type Taxonomy

Numeric Types Numeric Literals

Numeric Conversions

Arithmetic Operators

Increment and Decrement Operators

Specialized Integral Operations

8- and 16-Bit Integral Types

Special Float and Double Values

double Versus decimal

Real Number Rounding Errors

Boolean Type and Operators Equality and Comparison Operators

Conditional Operators

Strings and Characters String Type

Arrays Default Element Initialization

Indices and Ranges

Multidimensional Arrays

Simplified Array Initialization Expressions

Variables and Parameters The Stack and the Heap

Definite Assignment

Default Values

Parameters

var — Implicitly Typed Local Variables

Target-Typed new Expressions (C# 9)

Expressions and Operators Assignment Expressions

Operator Precedence and Associativity

Operator Table

Null Operators Null-Coalescing Operator

Null-Coalescing Assignment Operator

Null-Conditional Operator

Statements Declaration Statements

Expression Statements

Selection Statements

Iteration Statements

Jump Statements

Namespaces The using Directive

using static

Rules Within a Namespace

Aliasing Types and Namespaces

Classes Fields

Constants

Methods

Instance Constructors

Deconstructors

Object Initializers

The this Reference

Properties

Indexers

Static Constructors

Static Classes

Finalizers

Partial Types and Methods

The nameof Operator

Inheritance Polymorphism

Casting and Reference Conversions

Virtual Function Members

Abstract Classes and Abstract Members

Hiding Inherited Members

Sealing Functions and Classes

The base Keyword

Constructors and Inheritance

Overloading and Resolution

The object Type Boxing and Unboxing

Static and Runtime Type Checking

The GetType Method and typeof Operator

Object Member Listing

Equals, ReferenceEquals, and GetHashCode

The ToString Method

Structs Struct Construction Semantics

readonly Structs and Functions

Access Modifiers Friend Assemblies

Accessibility Capping

Interfaces Extending an Interface

Explicit Interface Implementation

Implementing Interface Members Virtually

Reimplementing an Interface in a Subclass

Default Interface Members

Enums Enum Conversions

Flags Enums

Enum Operators

Nested Types

Generics Generic Types

Generic Methods

Declaring Type Parameters

typeof and Unbound Generic Types

The default Generic Value

Generic Constraints

Subclassing Generic Types

Self-Referencing Generic Declarations

Static Data

Covariance

Contravariance

Delegates Writing Plug-In Methods with Delegates

Instance and Static Method Targets

Multicast Delegates

Generic Delegate Types

The Func and Action Delegates

Delegate Compatibility

Events Standard Event Pattern

Event Accessors

Lambda Expressions Capturing Outer Variables

Lambda Expressions Versus Local Methods

Anonymous Methods

try Statements and Exceptions The catch Clause

The finally Block

Throwing Exceptions

Key Properties of System.Exception

Enumeration and Iterators Enumeration

Collection Initializers

Iterators

Iterator Semantics

Composing Sequences

Nullable Value Types Nullable Struct

Nullable Conversions

Boxing/Unboxing Nullable Values

Operator Lifting

bool? with & and | Operators

Nullable Types and Null Operators

Nullable Reference Types

Extension Methods Extension Method Chaining

Ambiguity and Resolution

Anonymous Types

Tuples Naming Tuple Elements

Deconstructing Tuples

Records (C# 9) Defining a Record

Nondestructive Mutation

Primary Constructors

Records and Equality Comparison

Patterns var Pattern

Constant Pattern

Relational Patterns (C# 9)

Pattern Combinators (C# 9)

Tuple and Positional Patterns

Property Patterns

LINQ LINQ Fundamentals

Deferred Execution

Standard Query Operators

Chaining Query Operators

Query Expressions

The let Keyword

Query Continuations

Multiple Generators

Joining

Ordering

Grouping

OfType and Cast

Dynamic Binding Static Binding Versus Dynamic Binding

Custom Binding

Language Binding

RuntimeBinderException

Runtime Representation of dynamic

Dynamic Conversions

var Versus dynamic

Dynamic Expressions

Dynamic Member Overload Resolution

Uncallable Functions

Operator Overloading Operator Functions

Overloading Equality and Comparison Operators

Custom Implicit and Explicit Conversions

Attributes Attribute Classes

Named and Positional Attribute Parameters

Attribute Targets

Specifying Multiple Attributes

Writing Custom Attributes

Retrieving Attributes at Runtime

Caller Info Attributes

Asynchronous Functions The await and async Keywords

Capturing Local State

Writing Asynchronous Functions

Parallelism

Asynchronous Lambda Expressions

Asynchronous Streams

Unsafe Code and Pointers Pointer Basics

Unsafe Code

The fixed Statement

The Pointer-to-Member Operator

The stackalloc Keyword

Fixed-Size Buffers

void*

Function Pointers (C# 9)

Preprocessor Directives Pragma Warning

XML Documentation Standard XML Documentation Tags

Index

Sources:

Fair Use Source: B08SYWWDTX (CS9PR)

Categories
C# .NET Software Engineering

! C# C Sharp Template

“” (EC8MM)

Sources:

Fair Use Sources:

Categories
Bibliography C# .NET Software Engineering

Essential C# 8.0 by Mark Michaelis

See also: C# and .NET Framework, C# Bibliography

Essential C# 8.0 by Mark Michaelis, 2020, B08Q84TH84 (EC8MM)

Fair Use Source: B08Q84TH84 (EC8MM)

The Comprehensive, Expert Guide to C# 8.0 for Programmers at All Levels
“Welcome to one of the most venerable and trusted franchises you could dream of in the world of C# books—and probably far beyond! . . . Mark is super smart, insists on understanding everything to the core, and has phenomenal insight into how things affect real developers. . . . He goes right to the essence and communicates with great integrity—no sugarcoating—and has a keen eye for practical value and real-world problems.”
— From the Foreword by Mads Torgersen, C# Lead Designer, Microsoft
Essential C# 8.0 is a well-organized, no-fluff guide to C# 8.0 for programmers at all levels of experience. This edition retains all the valuable content of prior editions and adds discussions of null reference types, indices and ranges, enhanced pattern matching, asynchronous stream, and more.

World-class C# expert Mark Michaelis presents a comprehensive tutorial and reference for the entire language, providing an accelerated learning opportunity to achieve expert C# programming skills. He includes key C# 8.0 enhancements, succinct examples to illustrate central constructs, and updated coding guidelines for minimizing bugs and writing code that’s easier to evolve. To help you quickly fi nd what you need, there are version-specific indexes of C# 6.0, 7.0, and 8.0 topics and visual icons that identify when each language innovation was introduced.

  • Use structured programming constructs to write functioning code immediately
  • Learn both the complexities and solutions to nullable reference types
  • Thoroughly master C# object constructs, including classes, inheritance, and interfaces
  • Reduce code redundancy with generics, delegates, lambda expressions, and events
  • Take full advantage of collections, including the new standard query operator collection API
  • Make the most of reflection, attributes, and the declarative programming paradigm
  • Improve multithreading with the task-based async pattern and C# 8.0 asynchronous streams
  • Enhance performance through the parallel processing of data and multithreading tasks
  • Program complex types with enhanced pattern matching syntax
  • Interoperate with unmanaged code written in other languages, including C-based APIs
  • Explore the relationship between C# programs and the underlying CLI runtime

Biography:

Mark Michaelis (itl.tc/Mark) is the founder of IntelliTect and serves as the Chief Technical Architect and Trainer. A premier authority in Microsoft development technologies with recognized coding expertise and proven training methods, IntelliTect’s CEO delivers customized strategic technology consulting to CIOs, technology executives, and industry leaders. Recognized by Microsoft as a Regional Director since 2007 and distinguished Microsoft MVP for C# and Visual Studio Team System since 1996, this CEO has honed his engineering skills by serving on several Microsoft software design review teams, including C#, Azure and Visual Studio Team System ALM.

Book Details

  • ASIN: B08Q84TH84
  • Publisher: Addison-Wesley Professional; 7th edition (October 14, 2020)
  • Publication date: October 14, 2020
  • Print length: 2350 pages

Preface

“Throughout the history of software engineering, the methodology used to write computer programs has undergone several paradigm shifts, each building on the foundation of the former by increasing code organization and decreasing complexity. This book takes you through these same paradigm shifts.

The beginning chapters take you through sequential programming structure in which statements are executed in the order in which they are written. The problem with this model is that complexity increases exponentially as the requirements increase. To reduce this complexity, code blocks are moved into methods, creating a structured programming model. This allows you to call the same code block from multiple locations within a program, without duplicating code. Even with this construct, however, programs quickly become unwieldy and require further abstraction. Object-oriented programming, introduced in Chapter 6, was the response. In subsequent chapters, you will learn about additional methodologies, such as interface-based programming, LINQ (and the transformation it makes to the collection API), and eventually rudimentary forms of declarative programming (in Chapter 18) via attributes.

This book has three main functions.

It provides comprehensive coverage of the C# language, going beyond a tutorial and offering a foundation upon which you can begin effective software development projects.

For readers already familiar with C#, this book provides insight into some of the more complex programming paradigms and provides in-depth coverage of the features introduced in the latest version of the language, C# 7.0 and .NET Framework 4.7/.NET Core 2.0.

It serves as a timeless reference even after you gain proficiency with the language.

The key to successfully learning C# is to start coding as soon as possible. Don’t wait until you are an “expert” in theory; start writing software immediately. As a believer in iterative development, I hope this book enables even a novice programmer to begin writing basic C# code by the end of Chapter 2.

Many topics are not covered in this book. You won’t find coverage of topics such as ASP.NET, ADO.NET, Xamarin, smart client development, distributed programming, and so on. Although these topics are relevant to .NET, to do them justice requires books of their own. Fortunately, Addison-Wesley’s Microsoft Windows Development Series provides a wealth of writing on these topics. Essential C# 7.0 focuses on C# and the types within the Base Class Library. Reading this book will prepare you to focus on and develop expertise in any of the areas covered by the rest of the series.

Target Audience for This Book

My challenge with this book was to keep advanced developers awake while not abandoning beginners by using words such as assembly, link, chain, thread, and fusion as though the topic was more appropriate for blacksmiths than for programmers. This book’s primary audience is experienced developers looking to add another language to their quiver. However, I have carefully assembled this book to provide significant value to developers at all levels.

Beginners: If you are new to programming, this book serves as a resource to help transition you from an entry-level programmer to a C# developer, comfortable with any C# programming task that’s thrown your way. This book not only teaches you syntax but also trains you in good programming practices that will serve you throughout your programming career.

Structured programmers: Just as it’s best to learn a foreign language through immersion, learning a computer language is most effective when you begin using it before you know all the intricacies. In this vein, this book begins with a tutorial that will be comfortable for those familiar with structured programming, and by the end of Chapter 5, developers in this category should feel at home writing basic control flow programs. However, the key to excellence for C# developers is not memorizing syntax. To transition from simple programs to enterprise development, the C# developer must think natively in terms of objects and their relationships. To this end, Chapter 6’s Beginner Topics introduce classes and object-oriented development. The role of historically structured programming languages such as C, COBOL, and FORTRAN is still significant but shrinking, so it behooves software engineers to become familiar with object-oriented development. C# is an ideal language for making this transition because it was designed with object-oriented development as one of its core tenets.

Object-based and object-oriented developers: C++, Java, Python, TypeScript, Visual Basic, and Java programmers fall into this category. Many of you are already completely comfortable with semicolons and curly braces. A brief glance at the code in Chapter 1 reveals that, at its core, C# is like other C- and C++-style languages that you already know.

C# professionals: For those already versed in C#, this book provides a convenient reference for less frequently encountered syntax. Furthermore, it provides answers to language details and subtleties that are seldom addressed. Most important, it presents the guidelines and patterns for programming robust and maintainable code. This book also aids in the task of teaching C# to others. With the emergence of C# 3.0 through 7.0, some of the most prominent enhancements are

– String interpolation (see Chapter 2)

– Implicitly typed variables (see Chapter 3)

– Tuples (see Chapter 3)

– Pattern matching (see Chapter 4)

– Extension methods (see Chapter 6)

– Partial methods (see Chapter 6)

– Anonymous types (see Chapter 12)

– Generics (see Chapter 12)

– Lambda statements and expressions (see Chapter 13)

– Expression trees (see Chapter 13)

– Standard query operators (see Chapter 15)

– Query expressions (see Chapter 16)

– Dynamic programming (Chapter 18)

– Multithreaded programming with the Task Programming Library and async (Chapter 19)

– Parallel query processing with PLINQ (Chapter 19)

– Concurrent collections (Chapter 20)

These topics are covered in detail for those not already familiar with them. Also pertinent to advanced C# development is the subject of pointers, in Chapter 21. Even experienced C# developers often do not understand this topic well.

Features of This Book

Essential C# 7.0 is a language book that adheres to the core C# Language 7.0 Specification. To help you understand the various C# constructs, it provides numerous examples demonstrating each feature. Accompanying each concept are guidelines and best practices, ensuring that code compiles, avoids likely pitfalls, and achieves maximum maintainability.

To improve readability, code is specially formatted and chapters are outlined using mind maps.

C# Coding Guidelines

One of the more significant enhancements included in Essential C# 7.0 is C# coding guidelines, as shown in the following example taken from Chapter 17:

Guidelines

DO ensure that equal objects have equal hash codes.

DO ensure that the hash code of an object never changes while it is in a hash table.

DO ensure that the hashing algorithm quickly produces a well-distributed hash.

DO ensure that the hashing algorithm is robust in any possible object state.

These guidelines are the key to differentiating a programmer who knows the syntax from an expert who can discern the most effective code to write based on the circumstances. Such an expert not only gets the code to compile but does so while following best practices that minimize bugs and enable maintenance well into the future. The coding guidelines highlight some of the key principles that readers will want to be sure to incorporate into their development.

Code Samples

The code snippets in most of this text can run on most implementations of the Common Language Infrastructure (CLI), but the focus is on the Microsoft .NET Framework and the .NET Core implementation. Platform- or vendor-specific libraries are seldom used except when communicating important concepts relevant only to those platforms (e.g., appropriately handling the single-threaded user interface of Windows). Any code that specifically relates to C# 5.0, 6.0, or 7.0 is called out in the C# version indexes at the end of the book.

Here is a sample code listing.

Begin 2.0

LISTING 1.19: Commenting Your Code

Click here to view code image


class Comment Samples { static void Main() { string firstName; //Variable for storing the first name string lastName; //Variable for storing the last name System.Console.WriteLine(“Hey you!”); System.Console.Write /* No new line / ( “Enter your first name: “); firstName = System.Console.ReadLine(); System.Console.Write / No new line / ( “Enter your last name: “); lastName = System.Console.ReadLine(); / Display a greeting to the console using composite formatting. */ System.Console.WriteLine(“Your full name is {0} {1}.”, firstName, lastName); // This is the end // of the program listing } }


The formatting is as follows.

Comments are shown in italics.

Click here to view code image

/* Display a greeting to the console using composite formatting */

Keywords are shown in bold.

static void Main()

Highlighted code calls out specific code snippets that may have changed from an earlier listing, or demonstrates the concept described in the text.

Click here to view code image

System.Console.WriteLine(valerie); miracleMax = “It would take a miracle.”; System.Console.WriteLine(miracleMax);

Highlighting can appear on an entire line or on just a few characters within a line.

Click here to view code image

System.Console.WriteLine( “Your full name is {0} {1}.”, firstName, lastName);

Incomplete listings contain an ellipsis to denote irrelevant code that has been omitted.

// …

Console output is the output from a particular listing that appears following the listing. User input for the program appears in boldface.

OUTPUT 1.7

Click here to view code image

Hey you! Enter your first name: Inigo Enter your last name: Montoya Your full name is Inigo Montoya.

Although it might have been convenient to provide full code samples that you could copy into your own programs, doing so would detract from your learning a particular topic. Therefore, you need to modify the code samples before you can incorporate them into your programs. The core omission is error checking, such as exception handling. Also, code samples do not explicitly include using System statements. You need to assume the statement throughout all samples.

You can find sample code at https://IntelliTect.com/EssentialCSharp.

Mind Maps

Each chapter’s introduction includes a mind map, which serves as an outline that provides an at-a-glance reference to each chapter’s content. Here is an example (taken from Chapter 6).

The theme of each chapter appears in the mind map’s center. High-level topics spread out from the core. Mind maps allow you to absorb the flow from high-level to more detailed concepts easily, with less chance of encountering very specific knowledge that you might not be looking for.

Helpful Notes

Depending on your level of experience, special features will help you navigate through the text.

Beginner Topics provide definitions or explanations targeted specifically toward entry-level programmers.

Advanced Topics enable experienced developers to focus on the material that is most relevant to them.

Callout notes highlight key principles in callout boxes so that readers easily recognize their significance.

Language Contrast sidebars identify key differences between C# and its predecessors to aid those familiar with other languages.

How This Book Is Organized

At a high level, software engineering is about managing complexity, and it is toward this end that I have organized Essential C# 7.0. Chapters 1–5 introduce structured programming, which enable you to start writing simple functioning code immediately. Chapters 6–10 present the object-oriented constructs of C#. Novice readers should focus on fully understanding this section before they proceed to the more advanced topics found in the remainder of this book. Chapters 12–14 introduce additional complexity-reducing constructs, handling common patterns needed by virtually all modern programs. This leads to dynamic programming with reflection and attributes, which is used extensively for threading and interoperability in the chapters that follow.

The book ends with a chapter on the Common Language Infrastructure, which describes C# within the context of the development platform in which it operates. This chapter appears at the end because it is not C# specific and it departs from the syntax and programming style in the rest of the book. However, this chapter is suitable for reading at any time, perhaps most appropriately immediately following Chapter 1.

Here is a description of each chapter (in this list, chapter numbers shown in bold indicate the presence of C# 6.0–7.0 material).

Chapter 1—Introducing C#: After presenting the C# HelloWorld program, this chapter proceeds to dissect it. This should familiarize readers with the look and feel of a C# program and provide details on how to compile and debug their own programs. It also touches on the context of a C# program’s execution and its intermediate language.

Chapter 2—Data Types: Functioning programs manipulate data, and this chapter introduces the primitive data types of C#.

Chapter 3—More with Data Types: This chapter includes coverage of two type categories, value types and reference types. From there, it delves into the nullable modifier and a C# 7.0-introduced feature, tuples. It concludes with an in-depth look at a primitive array structure.

Chapter 4—Operators and Control Flow: To take advantage of the iterative capabilities in a computer, you need to know how to include loops and conditional logic within your program. This chapter also covers the C# operators, data conversion, and preprocessor directives.

Chapter 5—Methods and Parameters: This chapter investigates the details of methods and their parameters. It includes passing by value, passing by reference, and returning data via an out parameter. In C# 4.0, default parameter support was added, and this chapter explains how to use default parameters.

Chapter 6—Classes: Given the basic building blocks of a class, this chapter combines these constructs to form fully functional types. Classes form the core of object-oriented technology by defining the template for an object.

Chapter 7—Inheritance: Although inheritance is a programming fundamental to many developers, C# provides some unique constructs, such as the new modifier. This chapter discusses the details of the inheritance syntax, including overriding.

Chapter 8—Interfaces: This chapter demonstrates how interfaces are used to define the versionable interaction contract between classes. C# includes both explicit and implicit interface member implementation, enabling an additional encapsulation level not supported by most other languages.

Chapter 9—Value Types: Although not as prevalent as defining reference types, it is sometimes necessary to define value types that behave in a fashion similar to the primitive types built into C#. This chapter describes how to define structures while exposing the idiosyncrasies they may introduce.

Chapter 10—Well-Formed Types: This chapter discusses more advanced type definition. It explains how to implement operators, such as + and casts, and describes how to encapsulate multiple classes into a single library. In addition, the chapter demonstrates defining namespaces and XML comments and discusses how to design classes for garbage collection.

Chapter 11—Exception Handling: This chapter expands on the exception-handling introduction from Chapter 5 and describes how exceptions follow a hierarchy that enables creating custom exceptions. It also includes some best practices on exception handling.

Chapter 12—Generics: Generics is perhaps the core feature missing from C# 1.0. This chapter fully covers this 2.0 feature. In addition, C# 4.0 added support for covariance and contravariance—something covered in the context of generics in this chapter.

Chapter 13—Delegates and Lambda Expressions: Delegates begin clearly distinguishing C# from its predecessors by defining patterns for handling events within code. This virtually eliminates the need for writing routines that poll. Lambda expressions are the key concept that make C# 3.0’s LINQ possible. This chapter explains how lambda expressions build on the delegate construct by providing a more elegant and succinct syntax. This chapter forms the foundation for the new collection API discussed next.

Chapter 14—Events: Encapsulated delegates, known as events, are a core construct of the Common Language Runtime. Anonymous methods, another C# 2.0 feature, are also presented here.

Chapter 15—Collection Interfaces with Standard Query Operators: The simple and yet elegantly powerful changes introduced in C# 3.0 begin to shine in this chapter as we take a look at the extension methods of the new Enumerable class. This class makes available an entirely new collection API known as the standard query operators and discussed in detail here.

Chapter 16—LINQ with Query Expressions: Using standard query operators alone results in some long statements that are hard to decipher. However, query expressions provide an alternative syntax that matches closely with SQL, as described in this chapter.

Chapter 17—Building Custom Collections: In building custom APIs that work against business objects, it is sometimes necessary to create custom collections. This chapter details how to do this and in the process introduces contextual keywords that make custom collection building easier.

Chapter 18—Reflection, Attributes, and Dynamic Programming: Object-oriented programming formed the basis for a paradigm shift in program structure in the late 1980s. In a similar way, attributes facilitate declarative programming and embedded metadata, ushering in a new paradigm. This chapter looks at attributes and discusses how to retrieve them via reflection. It also covers file input and output via the serialization framework within the Base Class Library. In C# 4.0, a new keyword, dynamic, was added to the language. This removed all type checking until runtime, a significant expansion of what can be done with C#.

Chapter 19—Multithreading: Most modern programs require the use of threads to execute long-running tasks while ensuring active response to simultaneous events. As programs become more sophisticated, they must take additional precautions to protect data in these advanced environments. Programming multithreaded applications is complex. This chapter discusses how to work with threads and provides best practices to avoid the problems that plague multithreaded applications.

Chapter 20—Thread Synchronization: Building on the preceding chapter, this one demonstrates some of the built-in threading pattern support that can simplify the explicit control of multithreaded code.

Chapter 21—Platform Interoperability and Unsafe Code: Given that C# is a relatively young language, far more code is written in other languages than in C#. To take advantage of this preexisting code, C# supports interoperability—the calling of unmanaged code—through P/Invoke. In addition, C# provides for the use of pointers and direct memory manipulation. Although code with pointers requires special privileges to run, it provides the power to interoperate fully with traditional C-based application programming interfaces.

Chapter 22—The Common Language Infrastructure: Fundamentally, C# is the syntax that was designed as the most effective programming language on top of the underlying Common Language Infrastructure. This chapter delves into how C# programs relate to the underlying runtime and its specifications.

Indexes of C# 5.0, 6.0, and 7.0 Topics: These indexes provide quick references for the features added in C# 4.0 through 7.0. They are specifically designed to help programmers quickly update their language skills to a more recent version.” (EC8MM)

Sources:

Fair Use Source: B08Q84TH84 (EC8MM)

Categories
Azure C# .NET Cloud DevOps History Networking Operating Systems PowerShell Software Engineering TypeScript Windows Desktop Windows Server

Microsoft Glossary of Terms – Windows – Azure – Office365 – PowerShell – C# .NET

Microsoft Glossary of Terms – Windows – Azure – Office365 – PowerShell – C# .NET

Fair Use Source: TTG

Microsoft Windows This glossary contains terms related to Microsoft software for operating systems, e-mail, collaboration, backup and recovery, server hardware, storage management, infrastructure security and server virtualization.” (TTG)

  • Active Directory – “Active Directory (AD) is Microsoft’s proprietary directory service.” (TTG)
  • Active Directory functional levels – “Active Directory functional levels are controls that specify which advanced Active Directory domain features can be used in an enterprise domain.” (TTG)
  • ActiveX – “ActiveX is a set of object-oriented programming technologies Microsoft developed for Internet Explorer to facilitate rich media playback.” (TTG)
  • ActiveX control – “An ActiveX control is a component program object that can be re-used by many application programs within a computer or among computers in a network.” (TTG)
  • Azure Container Instances – “Azure Container Instances is a service that enables a developer to deploy containers on the Microsoft Azure public cloud without having to provision or manage any underlying infrastructure.” (TTG)
  • Azure HDInsight – “Azure HDInsight is a cloud-based service from Microsoft for big data analytics that helps organizations process large amounts of streaming or historical data.” (TTG)
  • Azure Kubernetes Service (AKS) – “Azure Kubernetes Service (AKS) is a managed container orchestration service, based on the open source Kubernetes system, which is available on the Microsoft Azure public cloud.” (TTG)
  • Azure Migrate – “Azure Migrate is a Microsoft service that helps an enterprise assess how its on-premises workloads will perform, and how much they will cost to host, in the Azure public cloud.” (TTG)
  • Azure Notification Hubs – “Azure Notification Hubs are push notification engines designed to update users with alerts about new content for a given site, service or app.” (TTG)
  • Azure Quantum – “Azure Quantum is a full-stack cloud service designed to allow users remote access to quantum computers.” (TTG)
  • Azure Reserved Virtual Machine Instances – “Azure Reserved Virtual Machine Instances (RIs) are a type of virtual machine (VM) on the Azure public cloud that a development or IT team can reserve to use in advance.” (TTG)
  • Azure SQL Data Warehouse – “Azure SQL Data Warehouse is a managed Data Warehouse-as-a Service (DWaaS) offering provided by Microsoft Azure.” (TTG)

  • chief storyteller – “A chief storyteller is an employee of an organization tasked with wording the company’s mission, history and messages about their brand, also known as their story, as they want it to be heard internally and externally.” (TTG)

  • clean architecture – “Clean architecture is a software design philosophy that separates the elements of the design into ringed levels.” (TTG)
  • compliance as a service (CaaS) – “Compliance as a Service (CaaS) is a cloud service service level agreement (SLA) that specified how a managed service provider (MSP) will help an organization meet its regulatory compliance mandates.” (TTG)
  • data discovery platform – “A data discovery platform is a complete set of tools for the purpose of detecting patterns, and those outlier results outside of patterns, in data.” (TTG)
  • Exchange Online – “Exchange Online is the hosted version of Microsoft’s Exchange Server messaging platform that organizations can obtain as a stand-alone service or via an Office 365 (Microsoft 365) subscription.” (TTG)
  • Exchange Server 2013 Service Pack 1 (SP1) – “Exchange Server 2013 SP1 is a service pack for Exchange Server 2013 that includes a number of new and updated Exchange Server 2013 features and capabilities.” (TTG)
  • Exchange staged migration – “The staged Exchange migration process transfers data and mailboxes from one Exchange server to another, either on-premises or in the cloud.” (TTG)
  • Exchange transaction log – “In Microsoft Exchange, a transaction log is a file that contains a record of the changes that were made to an Exchange database.” (TTG)
  • Group Policy Object (GPO) – “Microsoft’s Group Policy Object (GPO) is a collection of Group Policy settings that defines what a system will look like and how it will behave for a defined group of users.” (TTG)
  • GWX (Get Windows 10) – “GWX (get Windows 10) is a Windows upgrade app that was initially installed after Windows update KB3035583; the app has been the subject of consumer complaints for manipulative design.” (TTG)
  • In-Memory OLTP – “In-Memory OLTP is a Microsoft in-memory technology built into SQL Server and optimized for transaction processing applications.” (TTG)
  • Internet Explorer (IE) – “Internet Explorer (IE) is a World Wide Web browser made by Microsoft for use on its Windows operating system.” (TTG)
  • MAPI over HTTP (Messaging Application Programming Interface over HTTP) – “MAPI over HTTP is the default transport protocol to connect clients to Microsoft Exchange and Exchange Online.” (TTG)
  • MCITP (Microsoft Certified IT Professional) – “An MCITP (Microsoft Certified IT Professional) is a credential that proves that an individual has a complete set of skills required to perform a particular IT job role, such as enterprise or virtualization administrator.” (TTG)
  • MCSA (Microsoft Certified Solutions Associate) – “MCSA (Microsoft Certified Solutions Associate) is a certification program intended for people who seek entry-level jobs in an information technology (IT) environment.” (TTG)
  • MCSE Private Cloud (Microsoft Certified Solutions Expert Private Cloud) – “Microsoft Certified Solutions Expert (MCSE) Private Cloud is a new Microsoft certification covering Windows 2012 Hyper-V and System Center 2012, as well as applications such as SharePoint and Exchange.” (TTG)
  • Microsoft – “Microsoft is a leading global vendor of computer software; hardware for computer, mobile and gaming systems; and cloud services.” (TTG)
  • Microsoft Active Directory Migration Tool (ADMT) – “The Microsoft Active Directory Migration Tool (ADMT) is a tool used to move Active Directory objects from one Windows Server Active Directory domain or forest to another.” (TTG)
  • Microsoft Active Directory Rights Management Services (AD Rights Management Services) – “Active Directory Rights Management Services (AD RMS) is a security tool that provides a safeguard to prevent unauthorized access to data.” (TTG)
  • Microsoft Antigen – “Microsoft Antigen is a set of programs that provides security and e-mail filtering for network servers.” (TTG)
  • Microsoft Antimalware for Azure – “Microsoft Antimalware for Azure is a security extension in Microsoft Azure that extends antimalware protection to virtual machines and to cloud services.” (TTG)
  • Microsoft App-V (Microsoft Application Virtualization) – “Microsoft App-V is a tool IT administrators can use to virtualize and stream applications to users from a centrally managed location.” (TTG)
  • Microsoft AppSource – “Microsoft AppSource is an app store for business applications such as Office 365 (Microsoft 365), Dynamics 365, Power BI or separate Azure web apps.” (TTG)
  • Microsoft Assessment and Planning (MAP) Toolkit – “Microsoft Assessment and Planning (MAP) Toolkit is a free utility IT can use to determine whether or not its infrastructure is prepared for a migration to a new operating system, server version or cloud-based deployment.” (TTG)
  • Microsoft AzMan (Microsoft Authorization Manager) – “Microsoft AzMan (Authorization Manager) is a role-based access and security framework.” (TTG)
  • Microsoft Azure – “Microsoft Azure, formerly known as Windows Azure, is Microsoft’s public cloud computing platform.” (TTG)
  • Microsoft Azure Active Directory Authentication Library (ADAL) for Microsoft SQL Server – “Microsoft Azure Active Directory Authentication Library (ADAL) enables applications to authenticate to Microsoft Azure SQL Database using Azure Active Directory.” (https://microsoft.com/en-us/download/details.aspx?id=48742)
  • Microsoft Azure Active Directory Connect (Microsoft Azure AD Connect) – “Microsoft Azure Active Directory Connect (Microsoft Azure AD Connect) is a tool for connecting on-premises identity infrastructure to Microsoft Azure Active Directory.” (TTG)
  • Microsoft Azure Cosmos DB – “Azure Cosmos DB is a Microsoft cloud database that supports multiple ways of storing and processing data.” (TTG)
  • Microsoft Azure Data Lake – “Microsoft Azure Data Lake is a highly scalable public cloud service that allows developers, scientists, business professionals and other Microsoft customers to gain insight from large, complex data sets.” (TTG)
  • Microsoft Azure File Service – “Microsoft Azure File Service is a service that allows Windows Server admins to access SMB shares in the Azure cloud by setting up file shares in the Azure management console.” (TTG)
  • Microsoft Azure Functions – “Azure Functions is the serverless computing service hosted on the Microsoft Azure public cloud.” (TTG)
  • Microsoft Azure Key Vault – “Microsoft Azure Key Vault is a cloud-hosted management service that allows users to encrypt keys and small secrets like passwords or answers to security questions that are used in their cloud applications and services.” (TTG)
  • Microsoft Azure Marketplace – “Microsoft Azure Marketplace is an online store that provides tools and applications that are compatible with the Azure public cloud.” (TTG)
  • Microsoft Azure Operational Insights – “Microsoft Azure Operational Insights (AOI) is a cloud-hosted Software as a Service tool that allows an IT operations staff to collect and search data from multiple machines for analysis.” (TTG)
  • Microsoft Azure Premium Storage – “Microsoft Azure Premium Storage is solid-state drive storage for Azure virtual machines for workloads that require low latency and high throughput.” (TTG)
  • Microsoft Azure RemoteApp (Remote Application Services) – “Microsoft Azure RemoteApp (Remote Application Services) is a program that allows organizations to make remotely accessed programs or applications in Microsoft Azure, known as RemoteApp programs, appear as if they are native to end users’ local computers.” (TTG)
  • Microsoft Azure Resource Manager – “Microsoft Azure Resource Manager (ARM) is a management framework that allows administrators to deploy, manage and monitor Azure resources.” (TTG)
  • Microsoft Azure Security Center – “Microsoft Azure Security Center is a set of tools and services for securing virtual machines that run on the Azure public cloud.” (TTG)
  • Microsoft Azure Site Recovery – “Microsoft Azure Site Recovery is a new service in Microsoft Azure primarily used for disaster recovery purposes.” (TTG)
  • Microsoft Azure Stack – “Microsoft Azure Stack is an integrated platform of hardware and software that delivers Microsoft Azure public cloud services in a local data center to let organizations construct hybrid clouds.” (TTG)
  • Microsoft Azure VM Scale Sets – “A Microsoft Azure VM Scale Set is a group of individual virtual machines (VMs) within the Microsoft Azure public cloud that IT administrators can configure and manage as a single unit.” (TTG)
  • Microsoft Certified Solution Developer (MCSD) – “An MCSD (Microsoft Certified Solution Developer) is someone who has passed exams that test their ability to design and develop custom business applications with Microsoft development tools, technologies, and platform.” (TTG)
  • Microsoft Click-To-Run – “Microsoft Click-to-Run is a way to quickly install Microsoft products, including versions of Office 2010 and Office 2013.” (TTG)
  • Microsoft Client Hyper-V – “Microsoft Client Hyper-V is a type-1 hypervisor for the Windows 8.” (TTG)
  • Microsoft Cloud Hybrid Search Service Application – “Microsoft Cloud Hybrid Search Service Application is a hybrid enterprise search capability that enables organizations to search both on-premises and cloud-based data repositories without generated siloed results.” (TTG)
  • Microsoft Cloud Security Readiness Tool (CSRT) – “The Microsoft Cloud Security Readiness Tool (CSRT) is a survey that assesses the systems, processes and productivity of an IT environment in preparation for the adoption and secure use of cloud computing services.” (TTG)
  • Microsoft Cloud Witness – “Microsoft Cloud Witness is a high availability feature for failover clusters that uses storage in the Microsoft Azure cloud platform to ensure clusters continue to function if there is a site outage.” (TTG)
  • Microsoft Cluster Operating System (OS) Rolling Upgrade – “Microsoft Cluster Operating System (OS) Rolling Upgrade is a feature that keeps Hyper-V virtual machines (VMs) or Scale-Out File Server workloads running during an upgrade from a Windows Server 2012 R2 cluster to a Windows Server 2016 cluster.” (TTG)
  • Microsoft Cluster Server (MSCS) Generic Application – “Generic Application is a Microsoft Cluster Server (MSCS) resource type responsible for managing cluster-unaware applications.” (TTG)
  • Microsoft Cluster Server (MSCS) Generic Script – “Generic Script is a Microsoft Cluster Server (MSCS) resource type in a server cluster or failover cluster that supports an application controlled by a script that runs in Windows Script Host (WSH).” (TTG)
  • Microsoft Cluster Service (MSCS) – “Microsoft Cluster Service (MSCS) is a service that provides high availability (HA) for applications such as databases, messaging and file and print services.” (TTG)
  • Microsoft Connectivity Analyzer (MCA) – “The Microsoft Connectivity Analyzer (MCA) is a diagnostics tool for troubleshooting and testing connectivity to several Microsoft messaging products from a client machine on an organization’s network.” (TTG)
  • Microsoft Cortana – “Cortana, Microsoft’s virtual assistant, debuted in Windows Phone 8.” (TTG)
  • Microsoft CPS (Microsoft Cloud Platform System) – “Microsoft CPS (Microsoft Cloud Platform System) is a software stack of Window Server 2012 R2, System Center 2012 R2, and Windows Azure Pack that runs on Dell servers.” (TTG)
  • Microsoft DirectAccess Connectivity Assistant (Microsoft DCA) – “Microsoft DirectAccess Connectivity Assistant (Microsoft DCA) is a tool administrators use to improve an enterprise’s DirectAccess connection.” (TTG)
  • Microsoft Dynamic Access Control (DAC) – “Microsoft Dynamic Access Control (DAC) is a data governance tool in Windows Server 2012 that lets admins control the permission of access settings in an organization.” (TTG)
  • Microsoft Dynamics 365 – “Microsoft Dynamics 365 is a cloud-based business applications platform that combines components of customer relationship management (CRM) and enterprise resource planning (ERP), along with productivity applications and artificial intelligence tools.” (TTG)
  • Microsoft Dynamics AX (Microsoft Axapta) – “Microsoft Dynamics AX is a multi-language, multi-currency, industry-specific global enterprise resource planning (ERP) software product.” (TTG)
  • Microsoft Edge – “Microsoft Edge is the browser for Windows 10; Edge replaces Internet Explorer, the browser that debuted with Windows 95 and was a part of Windows operating systems for the following two decades.” (TTG)
  • Microsoft Edge Web Notes – “Microsoft Edge Web Notes is a feature in Microsoft’s Edge browser that lets users draw, highlight or type directly on webpages and web apps.” (TTG)
  • Microsoft Enhanced Mitigation Experience Toolkit (EMET) – “Microsoft’s Enhanced Mitigation Experience Toolkit (EMET) is a free Windows-based security tool that adds supplemental security defenses to defend potentially vulnerable legacy and third-party applications.” (TTG)
  • Microsoft Exchange 2010 Mailbox Server Role Requirements Calculator – “The Microsoft Exchange 2010 Mailbox Server Role Requirements Calculator is a free, downloadable tool from Microsoft that helps Exchange 2010 administrators design their mailbox server role so that it is optimized for their specific deployment.” (TTG)
  • Microsoft Exchange 2013 Managed Store – “The Microsoft Exchange 2013 Managed Store is a mechanism used in Exchange Server 2013 to isolate failures at the database level.” (TTG)
  • Microsoft Exchange 2013 Poison Message Queue – “Microsoft Exchange 2013 Poison Message Queue is a queue that exists specifically to hold messages deemed harmful to the deployment after a transport server or service failure.” (TTG)
  • Microsoft Exchange 2013 Safety Net – “The Microsoft Exchange 2013 Safety Net is a feature new in Exchange Server 2013 that helps reduce data loss through delivery of copied email messages.” (TTG)
  • Microsoft Exchange 2013 site mailbox – “A Microsoft Exchange 2013 site mailbox is an Exchange 2013 feature that helps facilitate collaboration between SharePoint 2013 users.” (TTG)
  • Microsoft Exchange ActiveSync – “Microsoft Exchange ActiveSync is a synchronization protocol that enables users of mobile devices to access email, calendar, contacts, and tasks from their organization’s Microsoft Exchange server.” (TTG)
  • Microsoft Exchange Address Book Policy (ABP) – “A Microsoft Exchange Address Book Policy is a feature that allows administrators to segment Exchange Global Address Lists in order to give users specified views of other users’ email addresses in their Exchange organization.” (TTG)
  • Microsoft Exchange Fast Access – “Microsoft Exchange Fast Access is a new feature in Microsoft Outlook 2013 that helps improve the email client’s startup synchronization time.” (TTG)
  • Microsoft Exchange Global Address List (GAL) – “The Microsoft Exchange Global Address List is a list of all users and their respective email addresses within an Exchange Server organization that uses Microsoft Outlook for email.” (TTG)
  • Microsoft Exchange In-Place eDiscovery – “Microsoft Exchange In-Place eDiscovery is an administrative feature to perform legal discovery searches for relevant content in mailboxes.” (TTG)
  • Microsoft Exchange Information Store – “Microsoft Exchange Information Store is a storage platform that is used to manage numerous types of information within an Exchange Server deployment.” (TTG)
  • Microsoft Exchange Mailbox Replication Service (MRS) – “The Microsoft Exchange Mailbox Replication Service (MRS) is a feature that handles mailbox import, export, migration and restoration requests on Exchange Server.” (TTG)
  • Microsoft Exchange Management Shell (EMS) – “Microsoft Exchange Management Shell (EMS) is a scripting platform that enables administrators to manage Exchange Server.” (TTG)
  • Microsoft Exchange Online Protection (EOP) – “Microsoft Exchange Online Protection (EOP) is an email cloud service that provides end users with protection against spam and malware.” (TTG)
  • Microsoft Exchange RBAC (Role Based Access Control) – “Microsoft Exchange RBAC is a permissions model used in Exchange Server 2010 and Exchange Server 2013.” (TTG)
  • Microsoft Exchange Server – “Microsoft Exchange Server is Microsoft’s email, calendaring, contact, scheduling and collaboration platform.” (TTG)
  • Microsoft Exchange Server 2010 – “Exchange Server 2010 is the version of Microsoft’s messaging platform that replaced Exchange Server 2007.” (TTG)
  • Microsoft Exchange Server 2013 – “Exchange Server 2013 is an iteration of Microsoft’s Exchange server.” (TTG)
  • Microsoft Exchange Server 2013 Managed Availability – “Microsoft Exchange Server 2013 Managed Availability is a built-in monitoring and recovery platform in Exchange 2013.” (TTG)
  • Microsoft Exchange Server 2016 – “Microsoft Exchange Server 2016 is the latest iteration of the Exchange Server messaging platform.” (TTG)
  • Microsoft Exchange Server ActiveSync Web Administration Tool – “The Microsoft Exchange Server ActiveSync Web Administration Tool is a software application that provides a network administrator with a Web interface for mobile device management.” (TTG)
  • Microsoft Exchange Server Jetstress – “Microsoft Exchange Server Jetstress is a tool that administrators can use to validate their Exchange Server storage configuration.” (TTG)
  • Microsoft Exchange Server Profile Analyzer (EPA) – “The Microsoft Exchange Server Profile Analyzer (EPA) is a Web-based tool that allows an administrator to gather data about a specific Exchange mailbox store or entire Exchange Server organization.” (TTG)
  • Microsoft Exchange System Attendant (SA) – “Microsoft Exchange System Attendant service is software that proxies Active Directory requests and regulates internal Exchange Server functions.” (TTG)
  • Microsoft Failover Cluster Manager (MSFCM) – “Microsoft Failover Cluster Manager (MSFCM) is a specific management function within the Windows Server operating system which is used to create, validate, and manage failover server clusters running Windows Server.” (TTG)
  • Microsoft FAST Search – “Microsoft FAST Search is the search engine for Microsoft’s SharePoint collaboration platform.” (TTG)
  • Microsoft FIM (Microsoft Forefront Identity Manager) – “Microsoft Forefront Identity Manager (FIM) is a self-service identity management software suite.” (TTG)
  • Microsoft Flow – “Microsoft Flow, now called Power Automate, is cloud-based software that allows employees to create and automate workflows and tasks across multiple applications and services without help from developers.” (TTG)
  • Microsoft Forefront Unified Access Gateway (Microsoft Forefront UAG) – “Microsoft Forefront Unified Access Gateway (Forefront UAG) is a tool that can provide a secure remote access option for remote end users who want to access corporate resources on PCs as well as on mobile devices.” (TTG)
  • Microsoft Group Policy administrative template – “A Microsoft Group Policy administrative template is a file that supports the implementation of Microsoft Windows Group Policy and centralized user and machine management in Active Directory environments.” (TTG)
  • Microsoft HealthVault – “Microsoft HealthVault, which launched in October 2007, is a free personal health record (PHR) service offered by Microsoft that allows individuals to store personal health and fitness information in a central location.” (TTG)
  • Microsoft HoloLens – “Microsoft HoloLens is a virtual reality (VR) headset with transparent lenses for an augmented reality experience.” (TTG)
  • Microsoft Hybrid Configuration Wizard – “The Microsoft Hybrid Configuration wizard is a tool in Exchange Server 2013 that provides a method for admins to create and configure hybrid deployments.” (TTG)
  • Microsoft Hyper-V Best Practices Analyzer – “Microsoft Hyper-V Best Practices Analyzer is a server management tool that scans server configurations and generates a report that identifies best practice violations.” (TTG)
  • Microsoft Hyper-V Shielded VM – “A Microsoft Hyper-V Shielded VM is a security feature of Windows Server 2016 that protects a Hyper-V second-generation virtual machine (VM) from access or tampering by using a combination of Secure Boot, BitLocker encryption, virtual Trusted Platform Module (TPM) and the Host Guardian Service.” (TTG)
  • Microsoft Hyper-V version 1.0 – “Hyper-V is Microsoft’s server virtualization software for Microsoft Server 2008.” (TTG)
  • Microsoft Identity Manager 2016 – “Microsoft Identity Manager 2016 is a tool that allows organizations to manage access, users, policies and credentials.” (TTG)
  • Microsoft Intune – “Microsoft Intune is a cloud-based enterprise mobility management tool that aims to help organizations manage the mobile devices employees use to access corporate data and applications, such as email.” (TTG)
  • Microsoft iSCSI Initiator – “Microsoft iSCSI Initiator is a tool that connects external iSCSI-based storage to host computers with an Ethernet network adapter.” (TTG)
  • Microsoft Log Parser Studio – “Microsoft Log Parser Studio is a front-end utility that features a graphical user interface, report builder and query repository for Microsoft’s Log Parser application.”
  • Microsoft Managed Desktop (MMD) – “Microsoft Managed Desktop (MMD) is a subscription-based desktop as a service (DaaS) cloud platform that includes Windows 10 Enterprise, Office 365 (Microsoft 365), Enterprise Mobility and Security on select Windows PCs and Windows 10-enabled devices.” (TTG)
  • Microsoft Management Console (MMC) – “The Microsoft Management Console (MMC) is an application that provides a graphical-user interface (GUI) and a programming framework in which consoles (collections of administrative tools) can be created, saved, and opened.” (TTG)
  • Microsoft Nano Server – “Microsoft Nano Server is a lightweight operating system based on Microsoft Windows Server 2016 that is tailored for use as an OS layer for virtualized container instances.” (TTG)
  • Microsoft Network Access Protection (NAP) – “Network access protection (NAP), introduced with Windows Server 2008, is Microsoft’s approach to controlling access to a network based on a determination of each device’s health.” (TTG)
  • Microsoft Network Device Enrollment Service (NDES) – “Microsoft Network Device Enrollment Service (NDES) is a security feature in Windows Server 2008 R2 and later Windows Server operating versions.” (TTG)
  • Microsoft Network Policy and Access Services (Microsoft NPAS) – “Microsoft Network Policy and Access Services (Microsoft NPAS) is a server role in Windows 2008 and Windows Server 2012 that allows administrators to provide local and remote network access.” (TTG)
  • Microsoft Office 2013 (MS Office 2013) – Microsoft Office 2013 is a suite of office productivity applications used in homes and businesses of all sizes.” (TTG)
  • Microsoft Office 365 Admin Center – “The Microsoft Office 365 Admin Center is the web-based portal administrators use to manage user accounts and configuration settings for the Office 365 subscription services, including Exchange Online and SharePoint Online.” (TTG)
  • Microsoft Office 365 admin roles – “Microsoft Office 365 admin roles give users authorization to perform certain tasks in the Office 365 admin center.” (TTG)
  • Microsoft Office 365 Advanced Threat Protection – “Microsoft Office 365 Advanced Threat Protection (ATP) is Microsoft’s optional cloud-based service that scans and filters email to protect subscribers from malware in attachments and hyperlinks to malicious websites.” (TTG)
  • Microsoft Office 365 Groups – “Microsoft Office 365 Groups is a cloud collaboration feature for communication, coordinating group efforts and exchanging information.” (TTG)
  • Microsoft Office 365 suite – “Microsoft Office 365 suite (now called Microsoft 365) is a hosted, online version of Microsoft Office software.” (TTG)
  • Microsoft Office Delve – “Microsoft Delve is a discovery and collaboration tool within Office 365 (Microsoft 365) that uses machine learning to help users work more efficiently.” (TTG)
  • Microsoft Office for iPad – “Microsoft Office for iPad is an app that allows users to use Microsoft Office on an Apple iPad.” (TTG)

” (B087XCZ77Y, WS19IO)

” (WS19IO)

Sources:

Fair Use Sources: