CSC/ECE 517 Fall 2010/ch2 2a mw: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
 
mNo edit summary
Line 1: Line 1:
Testing
==Introduction==
In the previous article [final S24 link here], we learn that metaprogramming is where the computer code that interacts with other programs, such as databases,  as data and performs many of these interactions at compile time rather than runtime.  This built-in interaction allows the programmers to take advantage of these capabilities and focus their time on the rest of their program logic instead of the details of some of the lower level coding.  In this article, we will take a closer look at of the styles of metaprogramming referred to as language extensions for [http://en.wikipedia.org/wiki/Object-relational_mapping object-relational mapping (ORM)].
 
==Language Extensions==
 
Language extensions for ORM have often been classified as design patterns or software tools used to perform [http://en.wikipedia.org/wiki/Create,_read,_update_and_delete create, read, update and delete (C.R.U.D.)] operations on relational databases, that is, until recent new approaches such as [http://en.wikipedia.org/wiki/ActiveRecord#Ruby ActiveRecord ].  ActiveRecord is not just a design pattern it is an increase of function to the active record pattern approach.  ActiveRecord is tightly integrated support that is built into the Ruby on Rails framework.  In this article we will examine other language extensions that try to use this same approach and then we will compare the ease of programming using these language extensions with the ease of programming using external tools.
 
==ActiveRecord==
==Other Examples of Language Extensions==
 
* Java - Enterprise Objects Framework, Mac OS X/Java, part of Apple WebObjects
* .NET - ADO.NET Entity Framework, Microsoft's ORM, part of .Net 4.0
* Python - Django, (ORM is included in Django framework) open source
 
==Programming using Language Extensions==
 
==Programming using External Tools==
 
==Conclusion==
 
==References==
 
#[http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks Comparison of web application frameworks]
#[http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software List of object-relational mapping software]

Revision as of 04:57, 15 September 2010

Introduction

In the previous article [final S24 link here], we learn that metaprogramming is where the computer code that interacts with other programs, such as databases, as data and performs many of these interactions at compile time rather than runtime. This built-in interaction allows the programmers to take advantage of these capabilities and focus their time on the rest of their program logic instead of the details of some of the lower level coding. In this article, we will take a closer look at of the styles of metaprogramming referred to as language extensions for object-relational mapping (ORM).

Language Extensions

Language extensions for ORM have often been classified as design patterns or software tools used to perform create, read, update and delete (C.R.U.D.) operations on relational databases, that is, until recent new approaches such as ActiveRecord . ActiveRecord is not just a design pattern it is an increase of function to the active record pattern approach. ActiveRecord is tightly integrated support that is built into the Ruby on Rails framework. In this article we will examine other language extensions that try to use this same approach and then we will compare the ease of programming using these language extensions with the ease of programming using external tools.

ActiveRecord

Other Examples of Language Extensions

  • Java - Enterprise Objects Framework, Mac OS X/Java, part of Apple WebObjects
  • .NET - ADO.NET Entity Framework, Microsoft's ORM, part of .Net 4.0
  • Python - Django, (ORM is included in Django framework) open source

Programming using Language Extensions

Programming using External Tools

Conclusion

References

  1. Comparison of web application frameworks
  2. List of object-relational mapping software