Mt. San Jacinto College Computer Information Systems
Minimize header.

CSIS 111B: Fundamentals of Computer Programming: Lessons

Lesson 13

APIs,
Libraries &
Frameworks

Application Programming Interfaces (APIs)

An API can be defined as "a set of clearly defined methods of communication between various software components." The best way to think of an API is as a building block that can be used to add functionality to your program. Any professionally written API that you use will have a well defined interface with some kind documentation on how to use it. APIs come in all shapes and formats and depending on the type of programming you are building you might even use an API written in a different programming language than the program you are writing in, however you won't care because all you need to know is how to interact with the API using its provided interface.

Images representig the Google, Twitter, and Facebook APIs, Web pages, and mobile apps.
Table of Contents

Amazon Web Services

screenshot of the AWS homepage.
Table of Contents

Facebook for Developers

Image of the facebook for developers toolbar.
Image showing a sample facebook developer's dashboard screen.
Table of Contents

Google Developers

Website

Google Developers
screen capture from google developer's home page.
Table of Contents

Libraries

Libraries come in many different configurations, but generally they are a collection of functions, APIs, Classes, or pre-compiled objects that can be used to provide added functionality to an application without you having to write the code required to accomplish the same task. Libraries are also contained within Frameworks, as you can see in the Frameworks section on this page.

JavaScript Libraries

There are currently numerous JavaScript libraries available for use in enhancing your Web site or application.

jQuery is one of the more popular and well known JavaScript libraries.

React is a JavaScript library developed by Facebook for creating modular user interfaces.

Table of Contents

Frameworks

The best way to think of a software framework is as a comprehensive system for developing applications by utilizing an existing code base provided by an included coding library. Depending on the framework, it may or may not be open-source, it could have supporting tools like a compiler, or a code editor enhanced for the programming language used. The biggest drawback to using a particular framework could be that you can only code for certain platforms, or a change to the existing code library may change and break your program.

Here is a recent article written about software frameworks; the author lists seven reasons why frameworks are the new programming languages.

Javascript Frameworks

Angular is a JavaScript framework developed by Google.

TypeScript is a typed superset of JavaScript that complies to plain JavaScript.

Web Assembly is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-levl languages like C/C++/Rust, enabling deployment on the Web for client and server applications. Developer reference documentation.

The .Net Framework

The .NET (pronounced dot net) framework is a software framework developed by Microsoft that, until recently, ran primarily on computers running the Microsoft Windows operating system. However, Microsoft has made most of its coding libraries available as "open-source" allowing a larger community of developers to contribute to its content, but also with the advent of .NET Core, has now made it so that programs written using the .NET framework can now run on any device running either the Android, OS X, iOS, or Linux operating systems in addition to Windows.

The .NET framework includes a large class library named the Framework Class Library (FCL) and provides language interoperability (each language can use code written in other languages) across several programming languages. Programs written for .NET framework execute in a software environment (in contrast to a hardware environment) named Common Language Runtime (CLR), an application virtual machine that provides services such as security, memory management, and exception handling. (As such, computer code written using .NET framework is called "managed code".) FCL and CLR together constitute the .NET Framework.

The layered architecture of the .NET framework.
Table of Contents

Finding Documentation

C# and Microsoft .NET

In order to learn about the classes that are available in the .NET library, including their properties, methods, and events, check out Microsoft Documents Website by navigating your Web browser to https://docs.microsoft.com/en-us/dotnet/, this is where we'll find the home page for the .NET Documentation.

.NET Documentation screen

On this page we see a menu of topics on the left and links to documentation for the three, standard, core, and framework .NET libraries on the right.

JavaScript

The Mozilla Developer's Network (MDN) is an excellent resource for documentation on the core JavaScript language. For documentation on JavaScript libraries or frameworks like jQuery or React, you need to go to the Website for the specific library or framework you need the documentation for.

C++

The Website cplusplus.com is a good resource for the C++ language.

Python

For information about the python language docs.python.org is a good resource.

Table of Contents

How To Become and What It's Like To Be A Programmer

The following is a series of videos by a gentleman of the name of John Sonmez. I am not endorsing him nor his products here, I just found these videos interesting, provocative, and entertaining and thought you might enjoy viewing them as well.

What Was Your First Programming Job Like?

Table of Contents

What Do You Need To Know For Your First Developer Job?

Table of Contents

Programming Job With No Experience

Table of Contents

How To Become A Software Developer Without A Degree

Table of Contents