All posts by sajay

The .NET Entity Objects Framework

Neo is a framework for .NET developers who want to write enterprise applications with an object-based domain model. It is well suited for domain-driven design and agile development.

Neo includes tools that create an extensible object-based domain model as well as the database schema from a an abstract description of the model. At runtime, rich schema information is used to dynamically generate all SQL required for object persistence management. Being based on ADO.NET data sets, a Neo domain model is independent of the actual backing store and works equally well with databases and objects in an XML representation.


System. Data integration

  1. Every entity object has a reference to its
    DataRow and to the context it belongs to.
    public class EntityObject {public DataRow Row { get { … }; }
    public ObjectContext Context { get { … }; }
    Data is stored in directly in row:
    public string FirstName {set { Row[" au_ fname"] = value; }get { return Row[" au_ fname"]; }
    Note how property names and column names
    can be mapped.
  2. To- one relation properties take the value from
    the related object and set it as foreign key value
    public class Title {public Publisher Publisher {set {Row[" pub_ id"] = value. Row[" pub_ id"];}
    They use the context to find the object for the
    foreign key value in the related table
    get {return (Publisher) Context.GetObject(” publishers”, Row[" pub_ id"]);}
  3. To- many relations are managed by and exposed
    as typed collections
    public class Publisher {public readonly TitleRelation Titles;
    The relation collection objects have a reference
    to the object that owns the relation and a cache
    for the objects in the relation
  4. Relation objects work much like the relation
    properties. They manipulate the foreign key
    column of the affected object.
    public void Add( Title aTitle) {aTitle. Row[" pub_ id"] = Owner. Row[" pub_ id"];}
    public void Remove( Title aTitle) {aTitle. Row[" pub_ id"] = null;}
    and use the context to find objects
    protected void Load() {innerList = Owner. Context. GetObjects( … );

P# in C#

Prolog being a quite declarative langauge can baffle sometimes. The ease of using declarative logic of truths facts and rules is a fundamental concept that might push you away from tradition thiing procedures..
Anyway is short you can do a lot with langauges like prolog and being able to intergrate them with .NET is one of the coolest things. especially with projects like P# .
I did go about creating a simple file if you want to get started on this you can refer this simple kick start guide to P# in C#
Im not sure if i miss judged something but wasnt able to find many resources or files using the P# assembly.. but hope to do something myself and so just put up this document so that people can get started of.. 
( Note :: i hope i can come across other tools like visual prolog but right now stuck with SWI prolog.. amzi is also a good tool  


Case insensitivity in c#

Idealogically case sensistivity i believe is followed by tradition from the c/c++/java line of programmer. So c# picked up from there.

No offense as I myself don’t mind case sensititity. But while convincing a former developer I had this problem. He asked me and I didn’t have an advantage to quote while trying to convince him about C#.Now assume if the IDE would automatically correct or provide an option. like…. Cause i dont see why would a developer name 2 things alike for no reason. What ever the scope is and if the scope is different the who cares. .. just a thought…:)