.NET Persistence API: Difference between revisions

Content deleted Content added
Ki2010 (talk | contribs)
m moved NPersistence to .NET Persistence API: More accurate title.
 
(24 intermediate revisions by 20 users not shown)
Line 1:
The '''.NET Persistence API''', also referred to as '''NPA''', is a persistence and [[Object-Relational_Mapping|Objectobject–relational Relational Mappingmapping]] (ORM)]] specification for the [[.NET_FrameworkNET Framework|.NET framework]]. <ref>[http://www.npersistence.org/ NPersistence | JPA for the .NET platform]</ref>
 
NPA is based on the [[Java_Persistence_API|Java Persistence API]] (JPA)]], which is the standard persistence API in the [[Java (programming language)|JAVAJava]] world. NPA follows JPA by providing a complete persistence API and a rich set of ORM features.<ref name=autogenerated1>{{Cite web |url=http://www.npersistence.org/faq |title=FAQ {{!}} NPersistence |access-date=2018-08-24 |archive-url=https://web.archive.org/web/20120426082101/http://www.npersistence.org/faq |archive-date=2012-04-26 |url-status=dead }}</ref><ref>[https://stackoverflow.com/questions/2756307/what-is-the-equivalent-of-jpa-in-net c# – What is the equivalent of JPA in .NET? – Stack Overflow]</ref>
 
== Motivation ==
The main purposes of the .NET Persistence API (NPA) are:<ref>http: name=autogenerated1 //www.npersistence.org/faq</ref>
* To provide a vendor -free persistence API for .NET, making switching from one persistence provider to another easier (avoiding [[Vendor_lock-in|vendor lock-in]]).
* To provide a cross -language persistence API by extending the popular [[Java_Persistence_APIJava Persistence API|Java Persistence API (JPA)]] to all the .NET programming languages.
 
== Technology ==
The main features of NPA include:<ref>{{Cite web |url=http://www.npersistence.org/api-reference |title=API Reference |access-date=2018-08-24 |archive-url=https://web.archive.org/web/20120426082146/http://www.npersistence.org/api-reference |archive-date=2012-04-26 |url-status=dead }}</ref><ref>[http://nugetmusthaves.com/Package/NPersistence NPersistence – NuGet Must Haves]</ref>
* Object -oriented API for working against databases (usually RDBMS).
* Query language, based on SQL, for retrieving data from the database in an object oriented manner.
* Support of persisting [[Plain_Old_CLR_ObjectPlain Old CLR Object|POCO (plain old CLR objects)]] objects (entities).
* Two methods for marking classes as entity classes and for specifying other settings:
** Using attributes - meta data is embedded in class definitions in the source code.
** Using external XML - meta data is specified in external [[XML]] resource files.
 
== Implementations ==
NPA is a persistence specification. To use NPA an implementation of the specification is required.
Persistence and ORM vendors can provide their own implementations of NPA.
 
First implementation, NPA for [[NHibernate]], was released in December 2011.<ref>{{Cite web |url=http://www.npersistence.org/nhibernate |title=NPA for NHibernate |access-date=2011-12-30 |archive-url=https://web.archive.org/web/20120426082225/http://www.npersistence.org/nhibernate |archive-date=2012-04-26 |url-status=dead }}</ref><ref>[https://archive.today/20130928184005/http://forums.anandtech.com/archive/index.php/t-2108535.html What is the equivalent of Java Persistence API for .NET? – AnandTech Forums]</ref>
 
== References ==
{{reflistReflist}}
 
== External links ==
{{Wikibooks|.NET Development Foundation}}
* [http://www.npersistence.org/ www.npersistence.org]
*{{Official website|www.npersistence.org}}
 
{{.NET Framework}}
<!--- Categories --->
 
[[Category:Databases]]
{{DEFAULTSORT:NET Persistence API}}
[[Category:Object-relational mapping]]
[[Category:.NET|Persistence API]]
[[Category:Object-relationalObject–relational mapping]]
[[Category:Cross-platform software]]