Sunday, March 18, 2007
Download here.

What's new:
  • Generics support (ActiveRecordBase<T> & ActiveRecordValidationBase<T>) (Generics is the default in the designer)
  • VB.NET seems OK (Not tested extensively).
  • Auto-sensing project type (C# or VB.NET) for code generation. You don't have to set that in the model anymore.
  • New ActiveWriter Class Details toolwindow. Can be used for rapidly adding class properties. (Idea: Ayende)
  • AR validators are supported for each property (not for field, key, composite key, timestamp or version) through a designer.
  • Ability to customize the base class. You can substitude your own base class from the editor or generate classes without a base class.
  • Ability to customize the source property name for associations. This is necessary for hierarchical objects, where they point to themselves, and using the class name resulted in un-compilable code in previous build. (Reported By: Ayende)
  • More domain consistency check through validations when opening / saving.
  • Applying pluralizing rules to the table name from the entity name if not specified. (Idea: Ayende)
  • Ability to select a property for optional DebuggerDisplay attribute.
  • Ability to decorate classes with GeneratedCodeAttribute.
  • No more setting Custom Tool property of an .actiw file to ActiveWriterCodeGenerator manually after creating the file. It's done automatically. (Thanks: Bogdan Pietroiu)
  • Key icon decorator on class shapes if a primary or composite key property exists (pure cosmetic).
  • Key icon decorator on class shapes if at least a property has validator(s) set (pure cosmetic).
  • Connector shapes changed to a more-UML-like notation.
  • Extended nullable support. You may choose between nullables through external Nullables library (1.1 style) or native nullables usage of 2.0 framework.
  • Some added properties to support changes (not all) in Castle trunk for ActiveRecordAttribute, PropertyAttribute etc.
  • Built with VS SDK v4. Includes new and improved version of DSL Tools redistributables.
What's crippled:
  • Using Output window less when doing drag-drop from Server Explorer to prevent a bug.
Known bugs / problems:
  • On international versions of VisualStudio, Drag'n drop support from Server Explorer generates entitites but not properties. You may create entities manually as a workaround.
  • Randomly, when you drag tables from Server Explorer, design surface gizes an error and cannot render any entities any more. You may save and re-open your .actiw file and it will catch up.
Screenshot below displays:
  • Validation support
  • Generic code generation
  • Nullables
  • Class details tool window
  • Visual hints on diagram elements
3/18/2007 10:23:25 PM UTC
Wow, this is really awsome man!

Thanks a lot.
Anders
3/19/2007 2:02:35 AM UTC
Gokhan, any idea on how to support type inheritance?
3/19/2007 4:22:34 AM UTC
Fantastic work, I've been messing around with it all evening :)

Is there a way to have a zoom in/out feature on the design interface?
Steve
3/19/2007 10:35:24 AM UTC
Steve,

Thanks. Enable DSL Designer toolbar to zoom.
View / Toolbars / DSL Designer
Gokhan
3/19/2007 10:39:03 AM UTC
Hammet,

I have tried to implement Nested relations between an entity and a specific Nested entity but stuckt to a DSL Bug (or it was my fault, but couldn't get the DSL schema compile). I removed that code. With the release of v4 sdk, I'll try again.

I'll create a specific Nested entity type and a nested relation type. Same goes for discriminators.
Gokhan
6/14/2007 7:01:46 AM UTC
I'm fairly new to nHibernate + ActiveRecord, so correct me if i'm wrong:

I've been messing around with a small tool that generates the embedded hbm.xml files for the ActiveRecord classes and adds them into the original CS project. This allows me to prototype rapidly in activewriter and rebuild the xml files and schemas.

This is a work-in-progress but its here for anyone to test. The source code is a mess but I will improve it and then release it. It currently runs from nHibernate 1.2 instead of 1.0.2 and a modified ActiveRecord library.

http://www.chiefmillso.com/blog/media/common/ActiveWriter.zip
6/14/2007 10:13:22 AM UTC
Hi David,

AW has the same functionality in the trunk. Actually, I just released it today. I'll check your code to see if we can exchange ideas.
Gokhan
6/15/2007 1:38:41 AM UTC
Its always the way - i'll download the latest source at test it out. The only additional change I made with respect to .hbm.xml generation was to exclude generation of classes that featured a "custommapping" attribute on the user created partial class (not the one created by active writer) - assuming you had a custom mapping.

If you want the code, I'll zip it up and send it as well.
6/15/2007 1:00:01 PM UTC
I believe you're using the release version of Castle assemblies (RC2?). AW does not work with them for NHibernate generation (they're a bit outdated), it works with the trunk (or with recently compiled assemblies).

Can you use the latest bits from the build server? They might break some code if you have other piece of classes but it includes NHibernate 1.2 and castle assemblies are mostly good from the trunk.
http://builds.castleproject.org/cruise/index.castle
Gokhan
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):