|
||||
Desktop ApplicationsNeumont ORM Architect![]() Background: The Norma project is an open source plug-in used by the Visual Studio development
environment which implements the next generation of ORM (ORM2). It supports DDL generation
for various DBMS (including SQL Server, DB2, Oracle, MySQL, and PostgreSQL), code
generation (in C#, Visual Basic.NET, and PHP), validation via automated verbalization
and sample populations, relational mapping, and user definable extensions.
My initial experience on the NORMA project was to implement additional functionality for code generation provided by PLiX. A few weeks into working with the NORMA tool I identitied a few of if major shortcommings (it was in the early stages of development), one of which were the inefficienies of the Reading Editor. Shortly after speaking with Matt Curland about how it could be imporived I found myself plunging head first into re-engineeriing the Reading Editor. The previous Reading editor required the user to navigate a Tree structure in which each branch represented an Order of Fact Elements, and there was a branch provided for each combination of Fact elements. Therefore a Unary Fact = 1 branch, a Binary Fact = 2 branches, and Ternary Fact = 9 branches. Basically the number of branches grew eponentially. Not to mention that the current editor could only handle up to Ternary facts. An example of the Previous Editor and related fact:
What I was able to contribute was an elegant solution which enabled the user to select from a list all of the combinations of fact ordering as well as supporting re-ordering of the primary reading, or reading group. Also added was the ability to enter readings for Implied Facts. This may sound simple, which was my goal for the end user, but the logic behind the UI is very complicated involving a very large recursive interface containing customized keyed collections and data handlers to work with the dynamic nature of the NORMA tools architecture. Here are examples:
During this project I gained additional experience with getting orientated to a large complex application involving many technologies which are woven together (i.e. XML that generates thousands of lines of C#/VB/PHP code). I was able to find a way to overcome being overwhelmed with such architecture and accomplish what I was assigned. This project was a very good experience for me. I gained more from this project than from any other project to date. The project leaders , Terry Halpin and Matthew Curland, are very knowledgeable about the product, the technology, and the ORM standard. Also, I was able to work well within a team of developers as well as working on my own, and I gained a great deal of knowledge. Technologies Used: C#, XML, XSLT, WINFORMS, Visual Studio SDK, Win32 API, ORM, NORMA Project Documents:
<< Prev Next >>
|