The Entity Framework is a set of technologies in ADO.NET that support the development of data-oriented software applications. Architects and developers of data-oriented applications have typically struggled with the need to achieve two very different objectives. They must model the entities, relationships, and logic of the business problems they are solving, and they must also work with the data engines used to store and retrieve the data. The data may span multiple storage systems, each with its own protocols; even applications that work with a single storage system must balance the requirements of the storage system against the requirements of writing efficient and maintainable application code.

The Entity Framework enables developers to work with data in the form of domain-specific objects and properties, such as customers and customer addresses, without having to concern themselves with the underlying database tables and columns where this data is stored. With the Entity Framework, developers can work at a higher level of abstraction when they deal with data, and can create and maintain data-oriented applications with less code than in traditional applications.

The first version of Entity Framework (EFv1) was included with .NET Framework 3.5 Service Pack 1 and Visual Studio 2008 Service Pack 1, released on 11 August 2008. This version was widely criticized, even attracting a 'vote of no confidence' signed by approximately one thousand developers.[3]

The second version of Entity Framework, named Entity Framework 4.0 (EFv4), was released as part of .NET 4.0 on 12 April 2010 and addressed many of the criticisms made of version 1.[4]

A third version of Entity Framework, version 4.1, was released on April 12, 2011, with Code First support.

A refresh of version 4.1, named Entity Framework 4.1 Update 1, was released on July 25, 2011. It includes bug fixes and new supported types.

The version 4.3.1 was released on February 29, 2012.[5] There were a few updates, like support for migration.

Version 5.0.0 was released on August 11, 2012[6] and is targeted at .NET framework 4.5.
Also, this version is available for .Net framework 4, but without any runtime advantages over version 4.

Version 6.0 was released on October 17, 2013[7] and is now an open source project licensed under Apache License v2. Like ASP.NET MVC, its source code is hosted at GitHub using Git.[8] This version has a number of improvements for code-first support.[9]

Microsoft then decided to modernize, componentize and bring .NET cross-platform to Linux, OSX and elsewhere, meaning the next version of Entity Framework would be a complete rewrite.[10] On 27 June 2016 this was released as Entity Framework Core 1.0, alongside ASP.Net Core 1.0 and .Net Core 1.0.[11] It was originally named Entity Framework 7, but was renamed to highlight that it was a complete rewrite rather than an incremental upgrade and it doesn't replace EF6.[12]

EF Core 1.0 is licensed under Apache License v2, and is being built entirely in the open on GitHub. While EF Core 1.0 shares some conceptual similarities with prior versions of Entity Framework, it is a completely new codebase designed to be more efficient, powerful, flexible, and extensible, will run on Windows, Linux and OSX, and will support a new range of relational and NOSQL data stores.[10]

EF Core 2.0 was released on 14 August 2017 along with Visual Studio 2017 15.3 and ASP.NET Core 2.0 [13]

The architecture of the ADO.NET Entity Framework, from the bottom up, consists of the following:

Data source specific providers, which abstract the ADO.NET interfaces to connect to the database when programming against the conceptual schema.

Map provider, a database-specific provider that translates the Entity SQL command tree into a query in the native SQL flavor of the database. It includes the Store-specific bridge, which is the component responsible for translating the generic command tree into a store-specific command tree.

EDM parser and view mapping, which takes the SDL specification of the data model and how it maps onto the underlying relational model and enables programming against the conceptual model. From the relational schema, it creates views of the data corresponding to the conceptual model. It aggregates information from multiple tables in order to aggregate them into an entity, and splits an update to an entity into multiple updates to whichever table(s) contributed to that entity.

Query and update pipeline, processes queries, filters and updates requests to convert them into canonical command trees which are then converted into store-specific queries by the map provider.

Metadata services, which handle all metadata related to entities, relationships and mappings.

Transactions, to integrate with transactional capabilities of the underlying store. If the underlying store does not support transactions, support for it needs to be implemented at this layer.

Conceptual layer API, the runtime that exposes the programming model for coding against the conceptual schema. It follows the ADO.NET pattern of using Connection objects to refer to the map provider, using Command objects to send the query, and returning EntityResultSets or EntitySets containing the result.

Disconnected components, which locally cache datasets and entity sets for using the ADO.NET Entity Framework in an occasionally connected environment.

Design tools, such as Mapping Designer, are also included with ADO.NET Entity Framework, which simplifies the job of mapping a conceptual schema to the relational schema and specifying which properties of an entity type correspond to which table in the database.

Programming layer, which exposes the EDM as programming constructs which can be consumed by programming languages.

Object services, automatically generate code for CLR classes that expose the same properties as an entity, thus enabling instantiation of entities as .NET objects.

Web services, which expose entities as web services.

High-level services, such as reporting services which work on entities rather than relational data.

The entity data model (EDM) specifies the conceptual model (CSDL) of the data, using a modelling technique that is itself called Entity Data Model, an extended version of the Entity-Relationship model.[14]
The data model primarily describes the Entities and the Associations they participate in. The EDM schema is expressed in the Schema Definition Language (SDL), which is an application of XML (Extended markup language). In addition, the mapping (MSL) of the elements of the conceptual schema (CSDL) to the storage schema (SSDL) must also be specified. The mapping specification is also expressed in XML.[15]

Visual Studio also provides the Entity Designer for visual creation of the EDM and the mapping specification. The output of the tool is the XML file (*.edmx) specifying the schema and the mapping. Edmx file contains EF metadata artifacts (CSDL/MSL/SSDL content). These three files (csdl, msl, ssdl) can also be created or edited by hand.

Entity Data Model Wizard[16] in Visual Studio initially generates a one-to-one (1:1) mapping between the database schema and the conceptual schema in most of the cases. In the relational schema, the elements are composed of the tables, with the primary and foreign keys gluing the related tables together. In contrast, the Entity Types define the conceptual schema of the data.

The entity types are an aggregation of multiple typed fields – each field maps to a certain column in the database – and can contain information from multiple physical tables. The entity types can be related to each other, independent of the relationships in the physical schema. Related entities are also exposed similarly – via a field whose name denotes the relation they are participating in and accessing which, instead of retrieving the value from some column in the database, traverses the relationship and returns the entity (or a collection of entities) it is related with.

Entity Types form the class of objects entities conform to, with the Entities being instances of the entity types. Entities represent individual objects that form a part of the problem being solved by the application and are indexed by a key. For example, converting the physical schema described above, we will have two entity types:

CustomerEntity, which contains the customer's name from the Customers table, and the customer's address from the Contacts table.

OrderEntity, which encapsulates the orders of a certain customer, retrieving it from the Orders table.

The logical schema and its mapping with the physical schema is represented as an Entity Data Model (EDM), specified as an XML file. ADO.NET Entity Framework uses the EDM to actually perform the mapping letting the application work with the entities, while internally abstracting the use of ADO.NET constructs like DataSet and RecordSet. ADO.NET Entity Framework performs the joins necessary to have entity reference information from multiple tables, or when a relationship is traversed. When an entity is updated, it traces back which table the information came from and issues SQL update statements to update the tables in which some data has been updated. ADO.NET Entity Framework uses eSQL, a derivative of SQL, to perform queries, set-theoretic operations, and updates on entities and their relationships. Queries in eSQL, if required, are then translated to the native SQL flavor of the underlying database.

Entity11 types and entity sets just form the logical EDM schema, and can be exposed as anything. ADO.NET Entity Framework includes Object Service that presents these entities as Objects with the elements and relationships exposed as properties. Thus Entity objects are just front-end to the instances of the EDM entity types, which lets Object Oriented languages access and use them. Similarly, other front-ends can be created, which expose the entities via web services (e.g., WCF Data Services) or XML that is used when entities are serialized for persistence storage or over-the-wire transfer.[17]

Entities** are instances of EntityTypes; they represent the individual instances of the objects (such as customer, orders) to which the information pertains. The identity of an entity is defined by the entity type it is an instance of; in that sense an entity type defines the class an entity belongs to and also defines what properties an entity will have. Properties describe some aspect of the entity by giving it a name and a type. The properties of an entity type in ADO.NET Entity Framework are fully typed, and are fully compatible with the type system used in a DBMS system, as well as the Common Type System of the .NET Framework. A property can be SimpleType, or ComplexType, and can be multi-valued as well. All EntityTypes belong to some namespace, and have an EntityKey property that uniquely identifies each instance of the entity type. The different property types are distinguished as follows:

SimpleType, corresponds to primitive data types such as Integer, Characters and Floating Point numbers.[18]

ComplexType, is an aggregate of multiple properties of type SimpleType, or ComplexType. Unlike EntityTypes, however, ComplexTypes cannot have an EntityKey. In Entity Framework v1 ComplexTypes cannot be inherited.[19]

All entity instances are housed in EntityContainers, which are per-project containers for entities. Each project has one or more named EntityContainers, which can reference entities across multiple namespaces and entity types. Multiple instances of one entity type can be stored in collections called EntitySets. One entity type can have multiple EntitySets.

Any two entity types can be related, by either an Association relation or a Containment relation. For example, a shipment is billed to a customer is an association whereas an order contains order details is a containment relation. A containment relation can also be used to model inheritance between entities. The relation between two entity types is specified by a Relationship Type, instances of which, called Relationships, relate entity instances. In future releases, other kinds of relationship types such as Composition, or Identification, may be introduced.
Relationship types are characterized by their degree (arity) or the count of entity types they relate and their multiplicity. However, in the initial release of ADO.NET Entity Framework, relationships are limited to a binary (of degree two) bi-directional relationship. Multiplicity defines how many entity instances can be related together. Based on multiplicity, relationships can be either one-to-one, one-to-many, or many-to-many. Relationships between entities are named; the name is called a Role. It defines the purpose of the relationship.

A relationship type can also have an Operation or Action associated with it, which allows some action to be performed on an entity in the event of an action being performed on a related entity. A relationship can be specified to take an Action when some Operation is done on a related entity. For example, on deleting an entity that forms the part of a relation (the OnDelete operation) the actions that can be taken are:[21]

Cascade, which instructs to delete the relationship instance and all associated entity instances.

None.

For association relationships, which can have different semantics at either ends, different actions can be specified for either end.

ADO.NET Entity Framework uses an XML based Data Definition Language called Schema Definition Language (SDL) to define the EDM Schema. The SDL defines the SimpleTypes similar to the CTS primitive types, including String, Int32, Double, Decimal, Guid, and DateTime, among others. An Enumeration, which defines a map of primitive values and names, is also considered a simple type. Enumerations are supported from framework version 5.0 onwards only. ComplexTypes are created from an aggregation of other types. A collection of properties of these types define an Entity Type. This definition can be written in EBNF grammar as:

Facets[22] are used to describe metadata of a property, such as whether it is nullable or has a default value, as also the cardinality of the property, i.e., whether the property is single valued or multi valued. A multiplicity of “1” denotes a single valued property; a “*” means it is a multi-valued property. As an example, an entity can be denoted in SDL as:

ADO.NET Entity Framework uses a variant of the Structured Query Language, named Entity SQL, which is aimed at writing declarative queries and updates over entities and entity relationships – at the conceptual level. It differs from SQL in that it does not have explicit constructs for joins because the EDM is designed to abstract partitioning data across tables.
Querying against the conceptual model is facilitated by EntityClient classes, which accepts an Entity SQL query. The query pipeline parses the Entity SQL query into a command tree, segregating the query across multiple tables, which is handed over to the EntityClient provider. Like ADO.NET data providers, an EntityClient provider is also initialized using a Connection object, which in addition to the usual parameters of data store and authentication info, requires the SDL schema and the mapping information. The EntityClient provider in turn then turns the Entity SQL command tree into an SQL query in the native flavor of the database. The execution of the query then returns an Entity SQL ResultSet, which is not limited to a tabular structure, unlike ADO.NET ResultSets.

Entity SQL enhances SQL by adding intrinsic support for:

Types, as ADO.NET entities are fully typed.

EntitySets, which are treated as collections of entities.

Composability, which removes restrictions on where subqueries can be used.

Canonical functions are supported by all Entity Framework compliant data providers. They can be used in an Entity SQL query. Also, most of the extension methods in LINQ to Entities are translated to canonical functions. They are independent of any specific database. When ADO.NET data provider receives a function, it translates it to the desired SQL statement.[23]

But not all DBMSs have equivalent functionality and a set of standard embedded functions. There are also differences in the accuracy of calculations. Therefore, not all canonical functions are supported for all databases, and not all canonical functions return the same results.

Visual Studio has a feature called Visualizer. A LINQ query written in Visual Studio can be viewed as Native SQL using a Visualizer during debug session. A Visualizer for LINQ to Entities (Object Query) targeting all RDBMS is available via VisualStudioGallery.

1.
Microsoft
–
Its best known software products are the Microsoft Windows line of operating systems, Microsoft Office office suite, and Internet Explorer and Edge web browsers. Its flagship hardware products are the Xbox video game consoles and the Microsoft Surface tablet lineup, as of 2016, it was the worlds largest software maker by revenue, and one of the worlds most valuable companies. Microsoft was founded by Paul Allen and Bill Gates on April 4,1975, to develop and it rose to dominate the personal computer operating system market with MS-DOS in the mid-1980s, followed by Microsoft Windows. The companys 1986 initial public offering, and subsequent rise in its share price, since the 1990s, it has increasingly diversified from the operating system market and has made a number of corporate acquisitions. In May 2011, Microsoft acquired Skype Technologies for $8.5 billion, in June 2012, Microsoft entered the personal computer production market for the first time, with the launch of the Microsoft Surface, a line of tablet computers. The word Microsoft is a portmanteau of microcomputer and software, Paul Allen and Bill Gates, childhood friends with a passion for computer programming, sought to make a successful business utilizing their shared skills. In 1972 they founded their first company, named Traf-O-Data, which offered a computer that tracked and analyzed automobile traffic data. Allen went on to pursue a degree in science at Washington State University. The January 1975 issue of Popular Electronics featured Micro Instrumentation and Telemetry Systemss Altair 8800 microcomputer, Allen suggested that they could program a BASIC interpreter for the device, after a call from Gates claiming to have a working interpreter, MITS requested a demonstration. Since they didnt actually have one, Allen worked on a simulator for the Altair while Gates developed the interpreter and they officially established Microsoft on April 4,1975, with Gates as the CEO. Allen came up with the name of Micro-Soft, as recounted in a 1995 Fortune magazine article. In August 1977 the company formed an agreement with ASCII Magazine in Japan, resulting in its first international office, the company moved to a new home in Bellevue, Washington in January 1979. Microsoft entered the OS business in 1980 with its own version of Unix, however, it was MS-DOS that solidified the companys dominance. For this deal, Microsoft purchased a CP/M clone called 86-DOS from Seattle Computer Products, branding it as MS-DOS, following the release of the IBM PC in August 1981, Microsoft retained ownership of MS-DOS. Since IBM copyrighted the IBM PC BIOS, other companies had to engineer it in order for non-IBM hardware to run as IBM PC compatibles. Due to various factors, such as MS-DOSs available software selection, the company expanded into new markets with the release of the Microsoft Mouse in 1983, as well as with a publishing division named Microsoft Press. Paul Allen resigned from Microsoft in 1983 after developing Hodgkins disease, while jointly developing a new OS with IBM in 1984, OS/2, Microsoft released Microsoft Windows, a graphical extension for MS-DOS, on November 20,1985. Once Microsoft informed IBM of NT, the OS/2 partnership deteriorated, in 1990, Microsoft introduced its office suite, Microsoft Office

2.
O'Reilly Media
–
OReilly Media is an American media company established by Tim OReilly that publishes books and Web sites and produces conferences on computer technology topics. Their distinctive brand features a woodcut of an animal on many of their book covers, the company began in 1978 as a private consulting firm doing technical writing, based in the Cambridge, Massachusetts area. In 1984, it began to retain publishing rights on manuals created for Unix vendors, a few 70-page Nutshell Handbooks were well-received, but the focus remained on the consulting business until 1988. After a conference displaying OReillys preliminary Xlib manuals attracted significant attention, in 1992, OReilly Media published one of the first popular books about the Internet, Ed Krols Whole Internet Users Guide and Catalog. OReilly Media also created the first web portal, the Global Network Navigator in 1993, it was sold to AOL in 1995, GNN was the first site on the World Wide Web to feature paid advertising. The firm is now recognized for the conferences and summits it organizes. In 1997, OReilly launched The Perl Conference to raise the profile of the Perl programming language, many of the companys other software bestsellers were also on topics that were off the radar of the commercial software industry. In 1998, OReilly invited many of the leaders of projects to a meeting. Originally called the summit, the meeting became known as the Open Source Summit. The OReilly Open Source Convention is now one of OReillys flagship events, other key events include the Strata Conference on big data, the Velocity Conference on Web Performance and Operations, and FOO Camp. Past events of note include the OReilly Emerging Technology Conference and the Web 2.0 Summit, overall, OReilly describes its business not as publishing or conferences, but as changing the world by spreading the knowledge of innovators. In 2001, O’Reilly launched Safari Books Online, a subscription based service providing access to ebooks as a joint venture with the Pearson Technology Group. In 2013, O’Reilly acquired Pearson’s interest in the joint venture, in 2003, after the dot com bust, O’Reilly’s corporate goal was to reignite enthusiasm in the computer industry. Dale Dougherty, an executive at O’Reilly, coined the phrase Web 2.0 during a brainstorming session and this then became the name for the Web 2.0 Summit run by OReilly Media and TechWeb. In May 2006 CMP Media learned of an event called the Web 2.0 Half day conference. Concerned over their obligation to take reasonable means to enforce their trade and service marks CMP sent a cease and this attempt to restrict through legal mechanisms the use of the term was criticized by some. In 2004, the named the Maker Movement with the launch of Make. Today, the flagship Maker Faire in San Mateo, CA, other Faires around the world collectively draw millions

3.
.NET Framework
–
. NET Framework is a software framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a class library named Framework Class Library and provides language interoperability across several programming languages. FCL and CLR together constitute. NET Framework, FCL provides user interface, data access, database connectivity, cryptography, web application development, numeric algorithms, and network communications. Programmers produce software by combining their source code with. NET Framework, the framework is intended to be used by most new applications created for the Windows platform. Silverlight was available as a web browser plugin, Microsoft began developing. NET Framework in the late 1990s, originally under the name of Next Generation Windows Services. By late 2000, the first beta versions of. NET1.0 were released, in August 2000, Microsoft, Hewlett-Packard, and Intel worked to standardize Common Language Infrastructure and C#. By December 2001, both were ratified Ecma International standards, International Organisation for Standardisation followed in April 2003. The current version of ISO standards are ISO-IEC23271,2012, while Microsoft and their partners hold patents for CLI and C#, ECMA and ISO require that all patents essential to implementation be made available under reasonable and non-discriminatory terms. The firms agreed to meet these terms, and to make the patents available royalty-free, however, this did not apply for the part of. NET Framework not covered by ECMA-ISO standards, which included Windows Forms, ADO. NET, and ASP. NET. Patents that Microsoft holds in these areas may have deterred non-Microsoft implementations of the full framework, on 3 October 2007, Microsoft announced that the source code for. NET Framework 3.5 libraries was to become available under the Microsoft Reference Source License. The source code became available online on 16 January 2008 and included BCL, ASP. NET, ADO. NET, Windows Forms, WPF. Scott Guthrie of Microsoft promised that LINQ, WCF, and WF libraries were being added, in November 2014, Microsoft also produced an update to its patent grants, which further extends the scope beyond its prior pledges. The new grant does maintain the restriction that any implementation must maintain compliance with the mandatory parts of the CLI specification. On 31 March 2016, Microsoft announced at Microsoft Build that they will completely relicense Mono under an MIT License even in scenarios where formerly a commercial license was needed and it was announced that the Mono Project was contributed to the. NET Foundation. These developments followed the acquisition of Xamarin, which began in February 2016 and was finished on 18 March 2016. Microsofts press release highlights that the cross-platform commitment now allows for a fully open-source, however, Microsoft does not plan to release the source for WPF or Windows Forms. By implementing the core aspects of. NET Framework within the scope of CLI, microsofts implementation of CLI is Common Language Runtime. It serves as the engine of. NET Framework

4.
Software release life cycle
–
Usage of the alpha/beta test terminology originated at IBM. As long ago as the 1950s, IBM used similar terminology for their hardware development, a test was the verification of a new product before public announcement. B test was the verification before releasing the product to be manufactured, C test was the final test before general availability of the product. Martin Belsky, a manager on some of IBMs earlier software projects claimed to have invented the terminology, IBM dropped the alpha/beta terminology during the 1960s, but by then it had received fairly wide notice. The usage of beta test to refer to testing done by customers was not done in IBM, rather, IBM used the term field test. Pre-alpha refers to all activities performed during the project before formal testing. These activities can include requirements analysis, software design, software development, in typical open source development, there are several types of pre-alpha versions. Milestone versions include specific sets of functions and are released as soon as the functionality is complete, the alpha phase of the release life cycle is the first phase to begin software testing. In this phase, developers generally test the software using white-box techniques, additional validation is then performed using black-box or gray-box techniques, by another testing team. Moving to black-box testing inside the organization is known as alpha release, alpha software can be unstable and could cause crashes or data loss. Alpha software may not contain all of the features that are planned for the final version, in general, external availability of alpha software is uncommon in proprietary software, while open source software often has publicly available alpha versions. The alpha phase usually ends with a freeze, indicating that no more features will be added to the software. At this time, the software is said to be feature complete, Beta, named after the second letter of the Greek alphabet, is the software development phase following alpha. Software in the stage is also known as betaware. Beta phase generally begins when the software is complete but likely to contain a number of known or unknown bugs. Software in the phase will generally have many more bugs in it than completed software, as well as speed/performance issues. The focus of beta testing is reducing impacts to users, often incorporating usability testing, the process of delivering a beta version to the users is called beta release and this is typically the first time that the software is available outside of the organization that developed it. Beta version software is useful for demonstrations and previews within an organization

5.
GitHub
–
GitHub is a web-based Git or version control repository and Internet hosting service. It offers all of the version control and source code management functionality of Git as well as adding its own features. It provides access control and several features such as bug tracking, feature requests, task management. GitHub offers both plans for private and free repositories on the account which are commonly used to host open-source software projects. As of April 2016, GitHub reports having more than 14 million users and more than 85.5 million repositories, the trademark mascot of GitHub is Octocat, an anthropomorphized cat with cephalopod limbs. Development of the GitHub platform began on 1 October 2007, the site was launched in April 2008 by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett after it had been made available for a few months prior as a beta release. Projects on GitHub can be accessed and manipulated using the standard Git command-line interface, GitHub also allows registered and non-registered users to browse public repositories on the site. Multiple desktop clients and Git plugins have also created by GitHub. The site provides social networking-like functions such as feeds, followers, wikis, a user must create an account in order to contribute content to the site, but public repositories can be browsed and downloaded by anyone. With a registered account, users are able to discuss, manage, create repositories, submit contributions to others repositories. The software that runs GitHub was written using Ruby on Rails and Erlang by GitHub, Inc. developers Chris Wanstrath, PJ Hyett, GitHub is mostly used for code. Emojis GitHub Pages, small websites can be hosted from public repositories on GitHub, nested task-lists within files Visualization of geospatial data 3D render files that can be previewed using a new integrated STL file viewer that displays the files on a 3D canvas. The viewer is powered by WebGL and Three. js, photoshops native PSD format can be previewed and compared to previous versions of the same file. GitHubs Terms of Service do not require public software projects hosted on GitHub to meet the Open Source Definition. For that reason, it is advisable for users and developers intending to use a piece of software found on GitHub to read the license in the repository to determine if it meets their needs. The Terms of Service state, By setting your repositories to be viewed publicly, you agree to allow others to view, GitHub also operates other services, a pastebin-style site called Gist that is for hosting code snippets, and a slide hosting service called Speaker Deck. Tom Preston-Werner presented the then-new Gist feature at a punk rock Ruby conference in 2008, Gist builds on the traditional simple concept of a pastebin by adding version control for code snippets, easy forking, and SSL encryption for private pastes. Because each gist has its own Git repository, multiple code snippets can be contained in a single paste, further, forked code can be pushed back to the original author in the form of a patch, so gists can become more like mini-projects

6.
Computing platform
–
Computing platform means in general sense, where any piece of software is executed. It may be the hardware or the system, even a web browser or other application. The term computing platform can refer to different abstraction levels, including a hardware architecture, an operating system. In total it can be said to be the stage on which programs can run. For example, an OS may be a platform that abstracts the underlying differences in hardware, platforms may also include, Hardware alone, in the case of small embedded systems. Embedded systems can access hardware directly, without an OS, this is referred to as running on bare metal, a browser in the case of web-based software. The browser itself runs on a platform, but this is not relevant to software running within the browser. An application, such as a spreadsheet or word processor, which hosts software written in a scripting language. This can be extended to writing fully-fledged applications with the Microsoft Office suite as a platform, software frameworks that provide ready-made functionality. Cloud computing and Platform as a Service, the social networking sites Twitter and facebook are also considered development platforms. A virtual machine such as the Java virtual machine, applications are compiled into a format similar to machine code, known as bytecode, which is then executed by the VM. A virtualized version of a system, including virtualized hardware, OS, software. These allow, for instance, a typical Windows program to run on what is physically a Mac, some architectures have multiple layers, with each layer acting as a platform to the one above it. In general, a component only has to be adapted to the layer immediately beneath it, however, the JVM, the layer beneath the application, does have to be built separately for each OS

7.
Microsoft Visual Studio
–
Microsoft Visual Studio is an integrated development environment from Microsoft. It is used to computer programs for Microsoft Windows, as well as web sites, web apps, web services. Visual Studio uses Microsoft software development platforms such as Windows API, Windows Forms, Windows Presentation Foundation, Windows Store and it can produce both native code and managed code. Visual Studio includes a code editor supporting IntelliSense as well as code refactoring, the integrated debugger works both as a source-level debugger and a machine-level debugger. Other built-in tools include a code profiler, forms designer for building GUI applications, web designer, class designer, Visual Studio supports different programming languages and allows the code editor and debugger to support nearly any programming language, provided a language-specific service exists. Built-in languages include C, C++ and C++/CLI, VB. NET, C#, F#, support for other languages such as Python, Ruby, Node. js, and M among others is available via language services installed separately. It also supports XML/XSLT, HTML/XHTML, JavaScript and CSS, Java were supported in the past. Microsoft provides a version of Visual Studio called the Community edition that supports plugins and is available at no cost. Visual Studio does not support any programming language, solution or tool intrinsically, instead, when installed, the functionality is available as a Service. In addition, the IDE is also responsible for coordinating and enabling communication between services, all editors, designers, project types and other tools are implemented as VSPackages. Visual Studio uses COM to access the VSPackages, the Visual Studio SDK also includes the Managed Package Framework, which is a set of managed wrappers around the COM-interfaces that allow the Packages to be written in any CLI compliant language. However, MPF does not provide all the functionality exposed by the Visual Studio COM interfaces, the services can then be consumed for creation of other packages, which add functionality to the Visual Studio IDE. Support for programming languages is added by using a specific VSPackage called a Language Service, a language service defines various interfaces which the VSPackage implementation can implement to add support for various functionalities. Functionalities that can be added this way include syntax coloring, statement completion, brace matching, parameter information tooltips, member lists, if the interface is implemented, the functionality will be available for the language. Language services are implemented on a per-language basis, the implementations can reuse code from the parser or the compiler for the language. Language services can be implemented either in code or managed code. For native code, either the native COM interfaces or the Babel Framework can be used, for managed code, the MPF includes wrappers for writing managed language services. Visual Studio does not include any source control support built in, a Source Control VSPackage can provide its own customised user interface

8.
Relational database management system
–
A relational database management system is a database management system that is based on the relational model as invented by E. F. Codd, of IBMs San Jose Research Laboratory. In 2017, many of the databases in widespread use are based on the database model. Relational databases have often replaced legacy hierarchical databases and network databases because they are easier to understand, however, relational databases have received unsuccessful challenge attempts by object database management systems in the 1980s and 1990s and also by XML database management systems in the 1990s. Despite such attempts, RDBMSs keep most of the market share, according to DB-Engines, in 2016, the most widely used systems are Oracle, MySQL, Microsoft SQL Server, PostgreSQL, IBM DB2, Microsoft Access, and SQLite. According to research company Gartner, in 2011, the five leading commercial relational database vendors by revenue were Oracle, IBM, Microsoft, SAP including Sybase, however, the first commercially available RDBMS was Oracle, released in 1979 by Relational Software, now Oracle Corporation. Other examples of an RDBMS include DB2, SAP Sybase ASE, in 1984, the first RDBMS for Macintosh began being developed, code-named Silver Surfer, it was later released in 1987 as 4th Dimension and known today as 4D. The term relational database was invented by E. F. Codd at IBM in 1970, Codd introduced the term in his seminal paper A Relational Model of Data for Large Shared Data Banks. In this paper and later papers, he defined what he meant by relational, one well-known definition of what constitutes a relational database system is composed of Codds 12 rules. The first system sold as an RDBMS was Multics Relational Data Store, others have been Ingres and IBM BS12. The most common definition of an RDBMS is a product that presents a view of data as a collection of rows and columns, by this definition, RDBMS products typically implement some but not all of Codds 12 rules. A second school of thought argues that if a database does not implement all of Codds rules and this view, shared by many theorists and other strict adherents to Codds principles, would disqualify most DBMSs as not relational. For clarification, they refer to some RDBMSs as truly-relational database management systems. As of 2009, most commercial relational DBMSes employ SQL as their query language, alternative query languages have been proposed and implemented, notably the pre-1996 implementation of Ingres QUEL. SQL Object database Wikibook SQL Online analytical processing and ROLAP Data warehouse Star schema Snowflake schema

Various methods of representing the same one to many relationship. In each case, the diagram shows the relationship between a person and a place of birth: each person must have been born at one, and only one, location, but each location may have had zero or more people born at it.

GitHub is a web-based Git version control repository hosting service. It is mostly used for computer code. It offers …

The shading of the map illustrates the number of users as a proportion of each country’s Internet population. The circular charts surrounding the two hemispheres depict the total number of GitHub users (left) and commits (right) per country.