Changelog for ECO5




5.0.0.4754 - 2010-01-10

Process diagrams:

  • Processdefinition screen made a little bigger to show button texts

Extension symbols:

  • TagExtensions can now be associated with a symbol
  • Extensionssymbols now has a EnsureDefaults button that create a State attribute, a trigger method symbol
  • State symbol drawn behind state attributes if the symbol is available
  • Trigger symbol drawn behind trigger methods if the symbol is available
  • Extension symbols now get their size depending on PlacedClass.Size property
  • TagExtensionSymbols are rendered next to Class names, Attributes, Methods, Association ends, VACDefinitions and VACSteps

Asp:

  • Added full assembly identification to the registration of the ECO web prefix in the default web.config
  • Added MaxAnswers and Offset to EcoDataSource for the PS-Expression
  • Fixed incorrect error message in ASP.Net autoform method-builder

ASP Providers:

  • Added threshhold how often to update the "last user acitivity" to avoid excessive database hits when user views pages.
  • Bug in EcoMembershipProvider OclPsQuery overload forgot the last variable giving errors on LookupUserByEmail
  • New static property Eco.Web.AspProviders.EcoMembershipProvider.PasswordHashKeyAsHexString
      Used when PasswordFormat == MembershipPasswordFormat.Hashed.
      If this is not set, machineKey.ValidationKey will be used. machineKey.ValidationKey is often set to "AutoGenerate" and not to a specific value - that will not work for our purposes. Setting PasswordHashKeyAsHexString to a known value makes it easier for you to move the hash passwords to other servers (since it does not change),and also makes the password hashes work in a webfarm set up (that use several machines that may have different machineKeys in machine.config ).

ViewModels:

  • A new setting UsePlacingHints has been added to the ViewModelEditor, if unchecked the viewmodel will not show any placing hints settings.
  • ViewModelContent WPF component added - this allows you to use a ViewModel in xaml and use standard wpf binding to hook up all viewmodel artifacts
  • ViewModel creation methods has been extended with EcoSpaceType and EcoSpaceTypeName to better support creation before access to EcoSpace
  • ViewModels allow for definition of Validation rules that can be associated to columns
  • ViewModel now reads the ViewModelValidation's and makes them accessible in runtime
  • ViewModelContent and ViewModelWPFUserControl now use the new ViewModel validations
  • ViewModelContent now allows for actions
  • ViewModelWPFUserControl now create an Image component when the ViewModelColumn type evaluates to byte[] . It takes the byte-array, turns it into a stream and assigns it to the imageStreamSource via a IValueConverter
  • Winforms: SpacerPanels And DesiredSize updates to correct bugs
  • Winforms: TabOrder did not handle grids
  • Winforms: Added an event on ViewModels that fires when the contextmenu is closed
  • Strange behavior of winforms control Visible property when used with databind - accepted that it does not work as expected and implemented workaround in ViewModel
  • InitDynamicViewModels: When called, the DynamicViewModelPath will be checked and ViewModel will be reloaded if found and if new; - Now you can change view models while your app is running
  • ViewModelDialog Sort columns alphabetical or in taborder
  • ViewModelDialog arrows highlighted when hovered
  • ViewModelDialog Presentation span is copied from template Column
  • ViewModel vCurrent variables bug - ActionLanguage Evaluate did not get access to the Variables.

Examples:

  • Updated to work with latest build
  • Added new sample: "The Hockey sample"

WPF:

  • WPF image converter now handles empty stream
  • ViewModelWPFUserControl now sets image width and height
  • CurrencyManagerHandleWPF has a new property  AutoSelectFirst. When set a view will get the first row automatically selected - this is set when ViewModelContent use handles
  • ViewModelWPFUserControl - new DependcyPropert Rootobject you can bind to

Modlr

  • Modlr tree, now it shows effective name of associationends in searchdialog
  • Modlr tree, doublclick on attributes,methods and associations names brings up AutoClass diagram
  • Modlr tree, Processes and steps are included in search
  • Modlr popup menu re-arranged
  • Print did not look the same as screen rendering due to font family differences.
  • PrintPreview now works in VS. Printout has diagram name and print time at the bottom
  • Diagram printouts and preview has been enhanced
  • Diagram image rendering and cropping updated
  • Publish documentation took forever due to a bug. Now it also crops images.
  • Html documentation, cross references, css extracted to seperate file
  • Found and fixed the Snapping and Squareline bug that sometimes made diagrams dirty just by looking at them.
  • Copy paste in Class-diagrams, StateDiagrams and VACDiagrams
  • Added support for TaggedValues in the ViewModels.
  • ViewModel elements now appear in the PropertiesGrid in VS and in Gaffr.
  • The cardinality labels in diagrams was swapped so that the cardinality always came far away from rooted point. Fixed
  • VACDefinitions now show associated diagrams
  • refactored calculating the effective name for an associationend
  • Simple types in ViewModelVariables had issues
  • Fixed 860: Object inspector use same logic as diagram for setting cardinality on association ends
  • Fixed 862 : Errors for ViewModels where only shown on first check. Fixed.
  • Fixed problem in "Show Model Errors". Some model errors would cause the dialog to crash VS.
  • Several minor glitches in turning modellayer into a umlrt when using Child mapped DefaultSuperclass
  • When Objectinspector changes Default superclass we now set/update the tagged value so that it is set on prototype run.
  • Try catch around ecomdl load to find reported exception in file open
  • Fixed problem with "navigate to code" when the solution contained folders.
  • open package files with readaccess when possible to avoid problems with referenced files located in the "program files" folder
  • If the ecomdl contained file references that was not available the whole loading process was stopped. Now it warns and continues.
  • Found the lingering bug in Modlr with 2 ecospaces that could cause you to lose changes. It was connected to external file update and reload.

Persistence

  • Missed quoting table names when moving data between tables in evolve-operation.
  • Fixed problem with null-reference exception when an abstract class has no discriminator during evolve.
  • Added possibility to force eco to not add a keydefinition to a class by setting tagged value PrimaryKey to "<NONE>"
  • Objects in Xml-files are now stored in a deterministic order (sorted in their key-value).
  • Fixed problem in evolve, when UpperCaseFunctionName in SqlDatabseConfig contains a "{0}"
  • Mapping table now has a primary key so that it can be generated on the azure platform.
  • Added SqlServer attribute mapper StringAsNVarCharMax for Azure compatibility
  • Fixed 875: Versioned classes can inherit from a non-versioned class if it does not have a main-alias (is childmapped).
  • TableTable now has a primary key (required for azure databases)
  • Fixed filenames in wizard for new ECO models
  • Fixed minor bug in SyncHandler.PurgeOldBlocks
  • Prevent commitqueue in Synchandler to grow without control.
  • Added PMP.ReleaseInstance
  • Database create had a bug when using the config.MultiTenantPrefix; wrong tables were dropped.
  • Added new SqlDatabaseConfig property: "MaxAliasNameLength". defaults to 12 for backwards compatibility, but in most databases, this can be set to the same value as the MaxDbIdentifierLength (added higher default values for all databases that has a specific MaxDbIdentifierLength);
  • Fixed problem with duplicate alias names when two mangled names differed only in case.
  • Fixed null-reference problem when querying tables that are parent-mapped with OclPS.

Core:

  • Fixed 879: INotifyPropertyChanged events were not fired if the object did not have any subscribers
  • Fixed 880: Assigning a singlelink with "nil" in EAL caused a null reference exception.
  • Fixed 878. Now IList<ModeledClass> can be used in Query methods in OCL.
  • Publisherevents are now delayed when creating link-objects.
  • Added support for delaying publisherevents
  • Sync-manager on the client side crashed with a null-reference exception if it received an "ObjectCreated" message for an object that has already been loaded in the ecospace.
  • Supress errormessage about invalid ocl-operations when model is not browsable
  • Fixed problem with initializing models where the package-classes doesn't have an "id".
  • Fixed problem with implicit link-objects that inherit from a default root class. Now they will have a dynamically generated .net-type that is a subclass of the dotnet class for the superclass.
  • Added missing resubscription-instructions when creating variablereference-nodes
  • Implemented GetValue<T> for TuplePartImpl
  • LinkOperationCache: Fixed missing events for multilinks when deleting link-objects
  • Primitive types where the .net name differs from the ModelLayer canonical name are now installed in the runtime model with their canonical name as well (Integer, UnsignedInteger, UnsignedInt16, UnsignedInt64 and SignedByte)
  • Fixed problem with implicit link-classes in packages with default superclass where the superclass had codederived attributes.
  • Fixed 869: Fixed problem when passing null-parameters to a trigger. Now the static type of the parameters will be resolved from the trigger method declaration.
  • CanTrigger now handles inherited triggers too.
  • IMethod will now get its Id-property set when building the runtime model
  • ElementCollectionImpl handles nullable values better
  • Fixed issue with inspecting the same assembliy multiple times when trying to resolve a typename
  • Added api to clear the cached expression parsetrees in the OCL evaluator. They are also cleared when the ecospace is deactivated.
  • Fixed problem in linkoperationcache when deleting linkobjects. The notification was sent out too soon.
  • Fixed the bugs in recent optimizations in the ControlPack
  • Initialize the capacity in UpdateItemList. Avoid creating lots of objects when we have already realized the event will be a Reset
  • Fixed 859: ReverseDerived associations didnt work, both codegen and core was incorrect.
  • Methods with parameters of type IList<T> will now be callable in OCL.

IDE:

  • Fixed 0775: Output window Show was called even when it was visible already giving a blinking effect and poor performance
  • Updated mvc template with changes in MVC 1.0 RTM

Winforms:

  • Fixed issue with nullable parameters when building the method-page in Winform autoforms.
  • Nullable enums will not crash autoforms anymore, but will still not display a null-value in the combo

5.0.0.4560 - 2009-10-12

Modlr:

Fixed issue with diagram combobox in modlr toolbar. Would cause modlr to hang VS.

5.0.0.4559 - 2009-10-11

Modlr:

  1. Added "Overview" option in diagram combo
  2. SnapGridSize property added to AbstractDiagram; and snapping implemented in Diagram rendering
  3. inherited derived association ends was incorrectly marked as codederived in the DerivationExpressions editor
  4. Fixed problem overriding with codederived inherited attributes
  5. non-navigable ends of derived associations don't display the label anymore
  6. DerivationExpressions now detect if a member is codederived and doesn't allow editing
  7. DerivationExpressions now use RuntimeName when generating the TaggedValue


Core:

  • Tuples types are now cached in the typeSystem so that accessing the ECO tuple type for the same .net struct type twice will return the same tuple type.
  • Fixed 846: ExternalIdService.ObjectForId now returns null if the id is null or empty string
  • foreach (ITransition Transition in vertex.Outgoing) failed when region had no start state (vertex==null)

Persistence:

  • Added support for attributemappers to intervene in sorting on their columns. Required for for example Sqlserver Text-column.
  • Database updates now handles cyclic dependencies between new objects by first saving the objects, and then in a second pass updating all embedded singlelinks on the objects

Ocl:

  • Ocl operation "EmptyList" was incorrectly returning an element instead of a list

IDE:

  • Eco4 upgrade now also upgrades version number of DroopyEyes assemblies

ViewModels:

  • Small viewmodel Grids did not always fit in the designated TableLayoutCell

ASP

  • WebAutoForm doesn't call EnsureRelatedObjects for derived roles anymore

5.0.0.4539

CodeGen:

  • Added support for having custom names for "innerlinks" and "linkroles"
  • better codegen for assocends (regarding hasUserCode)
  • Added SetterVisibility on AssociationEnds
  • Statemachine constants had region in them and that was wrong
  • Fixed bug in codegen when generating a new user method that is abstract and has return type. Now no body is emitted.
  • More improvements in codegen-performance, now "UpdateProjectFiles" doesn't need to locate each file via the slow COM-interfaces of VS.
  • Improved performance when codegenerating large models.
  • Added more detailed status messages in status bar when codegenerating.
  • The default namespace for sub-packages will now contain a "." between each parent packagename
  • map "(", ")" and "&" to "_" when generating the runtime names for model elements
  • code Derived association partial methods got model name on type instead of RuntimeName - fixed
  • Fixed renaming of the namespace in the sourcefile for the package when the package namspace is changed in the model
  • Fixed codegen issue for image and blob (any attribute type that generates an array-type)
  • Added support for Package.AdditionalNamespaces in codegeneration
  • Added support for array-typed attributes in the codegeneration
  • Added property to Package - GenerateNullableTypes. When set to false (default is true), nullable attributes will be generated as normal attribute types (int instead of int?) and use a tagged value instead to indicate for ECO that it should allow null
  • Every trigger method gets an TriggerName_CanTrigger method that returns null and executes AsIObject().StateMachine.CanTrigger("TriggerName",arguments).
  • fixed bug with how IsQuery-attribute is added to user-methods when codegeranting
  • InvalidOperationException during codegen will now only show the message, and not the whole callstack.
  • Fixed codegen problem when a file in the solution doesn't exist on disk
  • When codegen deletes a file, it renames it to *.deleted and then removes it from the project, now it first deletes any existing file with the name *.deleted.
  • CodeGen now activates the modlr-window with the model that is being codegenerated to make sure that it doesn't accidentally codegen for another model.

Ocl:

  • Added ocl-operations aDecimal.toDouble and aDouble.toDecimal
  • Added new ocl-method: nullValue. example: String.nullValue, Customer.nullValue simply returns a typed null-value.
  • Two new ocl operations: "IsDirty" (for objects) and "IsDirtyMember" (for members). Currently doesn't subscribe to the transition from dirty to clean.

Winform:

  • Winform Autoform control for enums now use a DropDownList.
  • EcoSpacedebugger/Dirtyobjects-panel now shows the object-state (dirty/new/deleted)
  • Added a textbox for the ecospace debugger that can be dragged to and act as a context for the ocl expression
  • Autoforms now show a "*" after the membername for modified members
  • Fixed crash on doubleclick in Multilink tab-pages in winform autoform
  • Added a cell-formatting event for autoforms and ecospacedebugger that handles empty byte[] so that the grid itself doesn't throw an exception when it tries to render the image.

Core:

  • Fixed 853: Setting nullable enums via the Element-interfaces didn't work.
  • Fixed issue with LinkOperationCache. For indirect associations (with link-objects), both SinglelinkCatchers and MultilinkCatchers received the Link-role rather than the main role.
  • Fixed 843: AssociationEnds to Link-objects were not populated if the main role was not already fetched
  • Partial fix for bug 839: Associations with link-objects will now notify all links after both ends are completed.
  • Added a new tagged value for the ecospace: Eco.InitializeNullableStringsToNull.
  • IElement.GetValue<T> now returns null if the cast is invalid.
  • Fixed sortorder for the nullrow when NullRowMode = First or Last.
  • Added extension methods for IEcoObject (GetValue<T>() and ServiceProvider())
  • Fixed bug when trying to do EnsureContentsCurrent on a derived association
  • Fixed bug in how ECO resolves types in references assemblies.
  • Fixed problem with derived members. When the new value was an explicit null-value in ocl (if xxx then yyy else nil endif), the derived member would retain the old value.
  • Fixed problem with triggerqueries ("mytrigger?(parameters)") that takes null-parameters
  • Implicit link classes now also respect the setting "DefaultSuperClass" in the package of the association.
  • Added missing registration of IActionLanguageTypeService in ServiceProvider
  • Fixed bug when creating a tuple-instance where one part is an object instance that is a subclass of the part-declaration
  • Multiplicityconstraints now use the "Presentation" of the associationEnd in the description of the constraint
  • Added AllowPartialTrusted callers to all runtime assemblies
  • Fixed problem in Linq2ocl when an expression refers to a property of a non-eco object
  • Fixed problem when a linq2Ocl query contained a static property like "Environment.MachineName",



Modlr:

  • HasUserCode is not imported from EcoModeler for AssociationEnds anymore
  • Fixed 847 : Anchors were wrong in the Modlr Prototype-dialog
  • Fixed issue with disconnecting events in modlr
  • Added support for "natural" filenames for diagrams, viewmodels and tagextensions in ecomdl-files (not enabled by default for old models yet)
  • ModelErrors-dialog doesn't recreate the TypeSystem for each span-validation, improves performance dramatically!
  • Fixed problem when importing ecopackages failed (file locks were not released properly)
  • Fixed parsing errors when DerivationExpressions contained complex expressions (with line-feeds for example)
  • UMLClassDiagrams and AutoDiagrams now share the same WPFHost to reduce blinking when switching
  • Scrollbars correctly initiated for diagram sizes
  • Current diagram saved to settings and restored on load
  • Forgot to init the toolwindow with the new ecospace when it was recreated before a load.
  • When a model is reloaded inside the IDE, tagged values, constraints and a few other elements were duplicated in the xml-files. This is fixed now.
  • Derived links are still red, but now also dashed.
  • Links in autoclass diagrams are now black.
  • Doubleclick in modlr tree gives auto diagram.
  • Added EditableNotes in flowdocument-rich-text-style
  • Improved performance when importing/loading large models
  • fix 796: Import of "body", "Precondition" and "postcondition" from EcoModeler was broken
  • Fixed EcoModeler import for classes that are placeholders (enum types for example)
  • Added detection of a few unknown nodetypes in EcoModeler files.
  • In certain cases placeallunplaced... functions got an index out of bounds ; fixed
  • Added a button to state diagrams to easily show owning class in autoclassdiagram
  • Added Navigate to code for attribute and class (before only for method)
  • Modlr tree changes; now typing is "navigate to match text in same level" and Start edit is done with double-click or F2.
  • Modlr tree changes; Return and Enter shows AutoClassDiagram for classes, and displays the Diagram when on diagram node.
  • Added validation of OCL-expressions to the error-form in Modlr
  • the property for "HasUserCode" is now defined in the properties window for associationends if (and only if) the tagged value is set to true, so that it can be set to false.
  • Disabled some menuitems for elements in referenced packages
  • GenericTypes handled in CodeGen and in Modlr Signature parsing
  • Bug in EcoModelerImport when having complex Generics as parameters: Parameter types may look like this Dictionary<string,Dictionary<string,double>> so a simple split on "," will not suffice. Fixed.
  • Also bug in EcoModelerImport parameter parse; sensitive to double spaces - fixed.
  • Fixed problem with importing EcoModeler models with relations between classes and interfaces
  • EcoModeller imports. IsAbstract checked for "2" in opts param this is changed to check if bit 2 is set - now it works even when other flags are set in ecomodeller
  • EcoModelerImport issue when importing WeakAssociationSymbol if only one was available of the two stated (now skipped)
  • EcoModelerImport issue when reference to class pointed out interface import gave halting exception (now skipped)
  • Added a dictionary with all modlr editor panes so the correct ecospace can be located for a model
  • Added an event for when the debugger is started so we can check for modified models even if the projects were not compiled.



Persistence:

  • Fixed problem when two parent mapped classes have the same association. It caused duplicate FKs and Indices
  • Fixed bug in OclPs when querying AllInstances for parentmapped classes.
  • Added transaction wrapping when creating triggers/generators for interbase/firebird autoinc columns
  • Fixed support for FileMappingProvider.ResourceName. It now looks in all assemblies in the project.
  • Fixed problem with error detection when a class has multiple aliases with autoinc key implementations for the same key-def
  • Fixed 791: Versioned classes with childmapped superclasses didn't get a stop-time column. caused nullreference exceptions.
  • Fixed problem with custom primary keys and DefaultSingleLinkColumnName
  • DefaultORMappingBuilder.IdColumnName now supports expanding the tablename, so setting the value to "<TableName>ID" will cause the primary key to be called "CustomerID"
  • When a db schema is created, the columns are now sorted in alpha-order.
  • Firebird now sets the TOP-keyword by default to "FIRST"
  • SqlDatabaseConfig.MultiTenantPrefix: If set, created tables will be prefixed, and tables without or with other prefix will be ignored by create and evolve.This will let you effectively have multiple eco-created systems in one database instans; Multi tenant.
  • SQLDatabaseConfig.SqlTopKeyword: The Top keyword as in select Top x field from table.Firebird uses First instead of Top(default)
  • Added new errormessage for invalid class/id-mapping
  • Fixed error message when pmapper fails to load data for a member
  • The implicit "innerlinks" (the association ends on link objects) can now be handled as constrained links (foreign keys in the database) by setting the tagged value IsConstrained=true on the main associationend

ViewModels:

  • Added example for OnColumnUIOverride
  • Added ViewModelWPFUserControlOverride to enable better understanding of ViewModels
  • ViewModelColumns now keep track of AllowNull and renders checkboxes with threestate if applicable
  • DateTimePickers in winform viewmodels now allow any datetime-value (DateTimePicker.MinDate = DateTime.MinValue)
  • grid columns in viewmodels are now also marked as readonly if the data-expression results in a readonly element
  • Setting null element gave exception on ViewModel. Fixed.
  • SelectionChanged in ViewModelGrids (winforms) removed (cleaned)
  • Added event that fires when UI grid cells change readonly or visible state
  • Added preview rects while moving stuff in ViewModel-preview
  • Drag drop in preview window now respects the internal position of the drag of a large control.
  • Added context menus to preview to increase and decrease spans.
  • Subscription on ViewModel that maintains the vCurrent_ variables
  • ViewModel expressionForReadOnly and expressionForVisible has been reworked to act on root context for all columns.
  • New variables available in viewModels; vCurrent_[ViewModelClass]
  • Several bugs for WPF-viewmodels fixed.
  • ReadOnlyExpression and VisibleExpresion now works for all UI-controls including buttons and grid columns, for wpf and for winforms.
  • An owners and building sample in WPF with viewmodels
  • Added property for ViewModelColumns if they have the column name as the presentation.
  • ViewModels Forced readonly was set on derived attributes and if the expression came out as readonly; I have now added the exception for multilinks, they are not set as forced readonly for the reasons above.
  • Bug in ViewModel Currency handling for Master-detail-detail fixed.
  • Styling now tests stylename.TypeName first, then stylename; to enable different styles on control and label
  • DataGrids does not grow, unless they are in an unbounded environment.
  • DataGridColumns added to SpawnedArtifacts.
  • WpfViewModel - we now use styleref to look for a named style resource with this name, and if found it is applied to label and control.
  • Fixed problem with apply mode in ViewModelEditor
  • ViewModel ReadOnlyExpression was wrongfully applied to master-details where the expression was not valid (causing silent expceptions)
  • Fixed problem with initializing the viewmodel combo to the first viewmodel in the list.
  • Spans: Winform preview button now visible regardless of which element is focused in editor
  • Preview is now better anchored and can be fitted to visible area.
  • Added ViewModelUserControl.SetElement in Winform implementation
  • Bug in helper function GetNonNullableResultType gave ViewModel errors if expression did not return a type at all (like in actions)
  • FocusFirst in winform viewmodels doesn't focus readonly textboxes
  • ReadOnlyExpression on COlumn for Grids for WinForms is no bound and updated by ExpressionForReadOnly
  • ExpressionForReadOnly For ViewModel is checked for errors
  • Span.ExpressionForReadOnly now has default value '' so that it is not written to file if not set.
  • ViewModel now has ExpressionForReadOnly that acts on the whole ViewModel and all of the owned controls
  • ViewModel Visible-Expression implemented for WinForm and WPF , simple controla, Combos, Grids and Buttons.
  • ViewModel VisibleExpression now also controls visibility of label (if applicable)
  • You can now drag around already placed columns and drop them on other placed columns.
  • DragStart of placed viewmodelcolumn was shaky before; fixed
  • Lookup picklist now has a relation drawn on the left side of the tree.
  • Preview is now freely zoomable.
  • Insert and delete column and row in the preview with new contextmenu.
  • ViewModel GridColumn Width was not correct in WPF, it set only MinWidth, Now also Width
  • Multiple issues with ViewModelASPNET fixed.
  • Added property to winform viewform to disable doubleclick behaviour
  • Added event on winform ViewModelUserControl to allow creation of gridview subclass.
  • ReadOnlyExpression for Grid columns is now applied by evaluating it against the root object.
  • the new span for a combobox presentation is now named after the singlelink rather than after the class to avoid nameclashes.
  • Added predefined column options for attributes of singlelinks.
  • ColumnForPickList in viewmodel is now decorated with an association arrow in viewmodeleditor
  • Fixed bugs with preview drag drop; it did not work when using negative xpos,ypos

VS templates:

  • Default EcoSpace Template now includes the tagged values that can be defined for models.
  • Added settings for enabling AJAX in the project templates for web.config.


IDE related

  • Fixed 789: AccessViolation when MessageService is not installed for some reason.


Installer:

  • If GAC-installer fails, it now shows which assembly failed, and continues to try the rest.


WPF:

  • EcoObjectDataProvider now has a parameterless constructor so it can be instansiated in xaml. It has a new property Handle.
  • EcoBinding, could not bind to transformations due to bug. Fixed.


DroopyEyes

  • Added events to detect when the undoblock of a DirtyObjectCatcher is gone from the undostack.
    If there is an EcoSpace transaction running ehen the DirtyObjectCatcher is activated, the activation of the Undoblock is delayed (with a timer) until the transaction is committed.

ASP:

  • EcoDataSource new property RootExternalId: Given an external ID this takes precedence over the PsExpression, and the resolved object acts as root for the Expression
  • EcoDataSource new property RootExternalIdClass: If the RootExternalId evals to null a typed null reference (type==RootExternalIdClass) will be used instead
  • EcoDataSourceView - bug that LoadViewState could get null access when LoadingViewState fixed
  • EcoDataSourceView - bug that Update took all new values even if they where same as oldvalue -> unpredictable results and overwrites for slow updates. Fixed.
  • EcoDataSourceView uses RootExternalId if set and RootExternalIdClass if RootExternalId evals to NullRowMode


5.0.0.4334 2009-06-24

CodeGen:

  • When codegen deletes a file, it renames it to *.deleted and then removes it from the project, now it first deletes any existing file with the name *.deleted.
  • CodeGen now activates the modlr-window with the model that is being codegenerated to make sure that it doesn't accidentally codegen for another model.
  • Added a dictionary with all modlr editor panes so the correct ecospace can be located for a model
  • Added an event for when the debugger is started so we can check for modified models even if the projects were not compiled.
  • Added friendly message when the codegen cant find the current ecospace
  • Added a check before codegen that the project only contains one model-file.
  • Added Class.AdditionalNamespaces to inject new using-clauses in the autogenerated code
  • Fixed incorrectly qualified classname when an association class and the association belongs to packages with different namespaces.
  • ModelLayer EcoSpace now keeps a flag for modifications that needs to be codegenned (this flag is reset by codegen). If the IDE tries to build the model project the user is prompted to regenerate the code first.
  • Fixed 784: methods with body (generated in autogenerated code) now automatically handle parameters that are domain classes in other namespaces.
  • Fixed invalid location of seealso tag in codegen
  • Fixed detection of runtimeversion text in generated code so it can be removed before code is saved.

Installer:

  • Toolbox components were not correctly initialized for new users

Core:

  • Fixed problem with undoing link-objects that were modified, but not created in the undoblock.
  • Added LinkOperationCache utility class to intercept operations on single and multilinks
  • Removed AssociationEnd.HasUserCode
  • Added ocloperation "oclSingleton" to retrieve the first and only object of a class.
  • Added parameter to DatablockConverter.ConvertToXml to indicate whether the xml-document should include the model-node.
  • Added a new method on Eco.Support.TypeSupport: StripNullable, converts a nullable type to the corresponding non-nullable type.
  • Fixed 780: Changed implementation of IsEqual for constraints so that they are only equal if they are representing the same constraint on the same element (previous implementation considered two constraint equal if they had the same boolean value)
  • Don't add inherited multiplicityconstraints. Constraints in superclasses are already supposed to be considered
  • Enumerators for ObjectCollectionImpl now calls EnsureFetchedPage before returning the objectinstance to ensure efficient fetching of objects.

AutoForms:

  • Nullable types are now handled more generically in winform autoforms.
  • Winform Autoforms now have the attributes and singlelinks sorted alphabetically

Persistence:

  • Fixed 781: Guids in SqlServer are now written as '22BF77C0-C1B1-4783-9335-38FC95636A77'. Added configuration property in SqlDatabaseConfig.GuidFormat that is "N" by default, but for SqlServer is "D"
  • Added CommandTimeout property to all ADO.net 2.0 compatible persistencemappers
  • Improved algorithm for generating alias-names. truncates the tablename first using ExpandName and then adds "_A"
  • Int64 keys are now treated like int32 keys when it comes to determining if they should be passed as literals or parameters in queries

Modlr:

  • model designer now keeps track of modifications to all sub-files (ecopkg, ecodiag etc) and prompts the user to reload the ecomdl-file if any file changes on disk.
  • Modlr tree; Tooltip on diagram and class to tell file name
  • Added TaggedValueType.Id to make sure the order in the xml-file for tagextensions is stable
  • Added Presentation properties to the ObjectInspector for Class, Attribute, Method and AssociationEnd
  • Added IClass.Presentation, IFeature.Presentation + related Tagged values

EcoSpace designer:

  • Fixed 782: The tooltip with classes in the PackageSelector now displays classes without namespace and packs more than one on each row so that more classes can be displayed. removed the flicker when the mouse is moved too...

Documentr:

  • Tab key doesn't tab to readonly parts of the editor
  • Added "file://" to to EditorDirectory location. Caused problems in IE6

ViewModels:

  • EcoSpace was browsable on ViewModelWinForm. Fixed
  • Added action in span-editor for preconfigured combos/Picklists
  • Added UserData attribute to SpanVariables
  • Alignment of numeric winform grid columns.

SiteSync:

  • Fixed bug in SiteSync with importing data into classes with derived assocs or attributes.

5.0.0.4272 2009-06-12

Modlr:

  • DoubleClick on row in ModelErrors dialog selects TreeView or brings up ModelView editor
  • ModelErrors dialog now also shows errors from ViewModels.
  • NavigateToCode did not respect NationalCharacters
  • Fixed sorting of association ends in modlr-tree
  • non-navigable association ends are not visible in the modlr treeview

ViewModels:

  • Rearranged the readonly/enabled strategy for viewmodels. Now an additional column for ReadOnly/Enabled is added to the handle that can be used with  databinding by the controls.
  • Editboxes for numeric fields will only accept numeric characters now (Winforms)
  • Support in WPF viewmodels to set the whole usercontrol to readonly.
  • Label is shown for IsStatic in ViewModel
  • ViewModelEditor shows better winform preview, also make use of Preview flag so that static labels show in designtime.
  • Prepare for Preview rendering so that static texts will show in design time
  • Added simple styling h1,h2,h3
  • ViewModels did not correctly decide needed size of display grid. Orphaned nestings created controls but with not data.
  • ViewModel event  vm.HandleApplyStyle is called even if the column control creation is overriden
  • ViewModels without columns were completely ignored in runtime
  • Viewmodel colums for readonly values (such as derived attributes, freeze-attributes etc) are now made readonly in the UI
  • Fixed bug in SpanEditor; if you switched ViewModel while viewing details for a column associated to Nesting -> the Association was dropped. (WPF clears selected value from comboBoxes if the selected value is not in selection list (it does this instantaneous so order of tear down is important ))
  • Checkboxes are now rendered with a height of 20px
  • Fixed spacer-panels to ensure minimum-width in grid
  • Update ViewModelForm selected on click and keynav

Ocl:

  • new OCL operation: object.isNew - returns true if the object is not yet saved to the db (does not fire subscription events when the object is saved)

Winforms:

  • Autoforms and EcoSpaceDebugger now close if you press ESC

SiteSync:

  • Fixed bug in SyncHandler for empty object-references

Core:

  • Fixed null-reference exception when converting a string-attribute with the value "<null>" to datablock xml.
  • IObject null-references can now return a proper IEcoServiceProvider
  • TypeSupport.GetMethod now also detects inherited private methods.

Persistence:

  • Added a check for childmapped classes with parentmapped subclasses
  • Fixed null-reference bug when using custom mapping with a model that contains transient classes.
  • Improved parsing of DiscriminatorValue tagged value.
    Supported formats are now:
    "<value>" (if there is only one discriminator)
    "<discriminatorname>=<value>,<discriminatorname>=<value>"
    "Name=<discriminatorname>,Value=<value>"

DroopyEyes:

  • Fixed issue in DirtyObjectCatcher with resetting LastDirtyObjectCount when undoing, and resubscribing to the dirtylist after firing the idle-event.

CodeGen:

  • Fixes for handling renames in Prism more gentle
    New files are now added to the correct folder in the Prism project manager

Project templates:

  • Added an exceptionhandler to the winform program template

5.0.0.4234 2009-06-03

Winforms:

  • Changed caption of the EcoSpaceDebugger button in ContextAgent from "Show Eco debugger" to "Debugger" so that it is not truncated.
  • Autoforms now add a scrollbar to the lisst of attributes/singlelinks if they can't fit on the screen.


Core:

  • Fixed null-reference exception when an implicit link-object is deleted


ViewModels:

  • Rightjust on numbers in ViewModelForms


IDE Integration:

  • Eco and Modlr package now aborts immediately if VS is started with /Setup


Modlr:

  • Fixed 773: DbReverse doesn't rename the package unless it is called "EcoPackage*"


5.0.0.4226 2009-06-02


Modlr:

  • When files are removed from the EcoMdl-file, they are now deleted from disk too.
  • Prototype run can now be peformed against SQLServer database
  • Modlr-tree now has attributes, methods and associationEnds in alphabetic order
  • Classes with no package (broken classes) will now only have one property (the package-property) in the ObjectInspector in the designsurface
  • Improved errorhandling when loading broken models
  • AssociationEnd has their own category in Wrappers and also a prefix to make them stay-together and be easy to find
  • Shortcut keys based on F1-12 supported
  • ctrl-f12 brings up viewmodel editor
  • Dividers in submenus fixed
  • Remember and select last ViewModel when opening dialog
  • PlacedClasses have their own Color, but if this Color is not set, or if the color is the same as Color assigned by diagram or if the color is the default color, then the Class defaultColor is used (if set)
  • AutoClass diagram had several problems with drawing; this is now tuned up a bit.
  • When in edit mode in diagram and pressing TAB, the edit is applied and ended.
  • Prototype form has ability to use xml persistence
  • New Get/SetSetting class ModlrSettings; first thing stored here is the xml-persistence file for Runningmodel.
  • Fixed problem when trying to store empty documentation for a documentable item
  • Added a tagged valud ("Eco.ModeledName") in the codegenerator when the modelled name differs from the codegenerated name

CodeGen:

  • Improved performance for codegeneration for models with multiple packages
  • Added codegeneration of partial derive-methods
  • Added PreDelete as a partial method. All PreDelete method declarations must change to partial methods instead of private methods
  • Generated partial method PreDelete now takes a ref-parameter "canDelete" that can prevent the deletion.
  • Fixed Codegeneration for nullable types that are not in the typedictionary
  • Fixed 769: CodeGen was not able to locate the ecomdl-file correctly in solutions where the projects were located in subfolders.
  • Workarounds for Prism codemodel issues.
  • Fixed regexp to match id-attributes for Prism code
  • INotifyPropertyChanged is now correctly codegenerated for Prism versions of 3.0.18+

Core:

  • Added parameter to BuildBlockForUpdate to export attributes regardless of SaveAction.
  • Fixed MaxLengthSupportFunctions support for TableLayoutGrid
  • Added support for overloaded methods in the mode, ocl and winform autoforms.
  • Fixed index out of bounds in MatchSignature when signatures were of different lengths
  • Added EAL-operation: "setToNull". Sets a nullable attribute to null
  • Fixed 766: Eco LINQ expressions failed when using the constants "true" or "false"
  • "Identity collects" ("xxx->Collect(myVar|myVar)") is now handled in OclPS (they are generated as a consequence of the LINQ-implementation in Prism)
  • Added ElementHandle.AddNewObject event to catch when a bindingnavigator for example calls AddNew on the IBindingList of a handle

Persistence:

  • Implemented support for TOP in OclPS-queries that uses MaxAnswers
  • Fixed 731: Added validation for invalid columnnames in discriminator implementations.
  • Fixed 770: Evolve did not correctly quote names when inserting new instances in a superclass table
  • Avoid adding duplicate columns when loading nonembedded links. causes exceptions in Firebird2.5
  • Added default int64 mapper for Firebird (bigint)
  • Updated firebird assembly to use Firebird connection 2.5.0.0
  • Added DoubleAsNumeric and DateTimeAsSmallDateTime to DefaultAttributeMappers
  • Fixed expected type for new Firebird Int64AsBigInt mapper

Winforms:

  • doubleclick in a DataGridView between two column headers doesn't invoke autoforms but instead autosizes the column as expected.
  • AutoForms get stringrep + : Class.RuntimeName in header
  • AutoForm shows all compliant ViewModels in a TabControl (including the original AutoForm)
  • autoform checkbox in winforms now handles editing nullable booleans nicer.
  • Improved key board navigation in EcoSpace debugger

ContextAgent:

  • Fixed problem with ContextAgent where some drags would select the wrong node.
  • ContextAgent doesn't reset the y-coordinate for new components until it reaches the end of the form.

WPF:

  • EcoObjectDataProvider new class: Use this class to wrap a Eco ElementHandle and make it into a WPF datasource for DataContext or Binding Source property

ViewModels:

  • GetElement for ViewModel
  • WinFormsViewModel control now can give its DesiredSize
  • Added ViewModelUserControl.FocusFirst to force the focus of the upper leftmost control of the viewmodel
  • Size of AutoForms that contain ViewModels adapt
  • Issue with ViewModel Combo resolved
  • Bug that nullrowmode in ViewModels looked at the wrong column.
  • Drag of columns on to preview
  • Drag from preview to new empty position
  • Click on ViewModel errors focus correct column
  • nullable atrtibutes in ViewModel handled
  • OnColumnUIOverride and OnColumnUIApplyStyle added for ViewModel controls WPF and WinForm
  • Mistake in viewModel.FinalizeUI crashed VS
  • Bug in ViewModel WPF, ColCount was used instead of ColWidth
  • Actions are not rendered as grid columns in ViewModelUI
  • new property ViewModel.TabOrder
  • new event ViewModel.OnColumnUIOverride
  • new event ViewModel.OnColumnUIApplyStyle
  • ColWidth RowHeight added to viewmodels
  • ExpressionForReadOnly and ExpressionForVisible in error checking
  • Drag drop to reorder ViewModelColumns
  • IsStatic ExpressionForReadOnly ExpressionForVisible added in RT-model for viewmodels
  • Fixed bugs in WPF and winform viewmodel rendering
  • Error check for spans now also find colliding grids
  • Span dialog has more attributes, IsStatic, Expression for Visible and ReadOnly etc
  • Span Dialog selects columns from click in preview
  • New method to IViewUICreator interface FinalizeUI
  • PresentationString In ViewModelColumn can now be empty
  • Currency, actions, right aligned ints and doubles, labels on grids for ViewModelWPF
  • ViewModelWPF binding now works and master detail
  • Bug In SpansWindow used class.Name instead of Runtime name; gave "no context" when settings expressions
  • Bug In spansWindow made spans loose selected class and other single links when closing form (intermittent)
  • SpanWindow now has a working VariableType-Picker-combo
  • Attributes and Associations are alpha-sorted in Span-submenus
  • If Model was invalid SpanWindow error checking failed and crashed app
  • ViewModel editor is now non modal, so that you can browse model while having ViewModelEditor open
  • ViewModelEditor and Documtr editor now closes when closing model, thus avoiding VS-crash that came from running AutoSubscription on non active EcoSpace
  • SpanModel got new associations ValidatesColumns and EnablesColumns
  • SpanModel got new defaultvalues
  • ViewModelColumns with -1 in X or Y are hidden from display
  • ViewModelColumn for Winform was wrong for MultiLineText?
  • WPF Preview for ViewModels had align issues
  • Cursor handle is now correct so that Action handling is done on the correct (selected) object in ViewModel winform forms
  • Added DefaultDataSourceUpdateMode for winform viewmodels
  • Datetime picker how uses the short-mode.
  • All bindings are now created with "FormattingEnabled" = true
  • ViewModelWinForms renamed to ViewModelImplementorWinForms
  • ViewModelWPF renamed to ViewModelImplementorWPF
  • ViewModelColumn has a SpawnedArtifacts; add your created controls here
  • ViewModelControlWPF has a DesignModeFlag
  • ViewModelForm can show gridlines
  • More on Span Variables; they are now used in expressions and error check
  • SpanVariable added
  • SpanDefError moved to own SpanDefErrorHelper
  • SpanDefError on conflicting positions
  • Splitter in Span win works
  • Span window Gui for Variables
  • New event on ViewModel.OnViewModelActionPopulate; use to populate Actions on ViewModelUsers
  • Currency handled on Actions
  • Combobox fix for "formatting enabled"
  • Winforms Viewmodel now supports to render all components readonly
  • Bug in Spans display caused exceptions when open while new modlr file was created.
  • ContextMenus for ViewModels now also include inherited attributes
  • when the ecomdl-file is saved, new spans-files are automatically set to "EmbeddedResource" and files that have been removed will be renamed to ".deleted".
  • Viewmodels now use the id rather than the name of the class to locate the IClass (since the model-name isn't always the same as the runtime name)
  • Added a virtual method CreateViewModelWinForm in the winform usercontrol to control the concrete class of the component creator should be instantiated.
  • New Event on ViewModel allows for user implementation of Action: OnViewModelActionExecute
  • AutoForms Now fill the window
  • Made a lot virtual in WinForm ViewModel impl.
  • Fixed issues with LayoutGrid and Resizing in winforms and wpf.
  • ViewModel actions are now executed.
  • Splitters for ViewModelWin. Preview is aligned to bottom.
  • Prototyping from inside ECO and Gaffr now use the ViewModels from ModelLayer; so prototyping will show any ViewModelAutoForms.

IDE Integration:

  • Fixed 761: Added question to skip upgrade question next time the project is opened.
  • Fixed Eco4->Eco5 upgrading of persistencemapperprovider.

5.0.0.4096 2009-05-10

IDE templates:

  • Added item templates for C# for EcoSpace and PersistenceMapperProvider
  • Fixed 759: Code didn't compile when the model name contained a "."


Persistence:

  • newid() is now a valid DefaultDbValue for SqlServer GUID attributes.
  • Added Int64AsBigInt as the default int64 mapper for firebird
  • DbReverse now handles columns with Decimal type better. Scale and Precision is preserved to the model and the correct mapper will be used for the attribute.
  • Added new interface INumericAttributeMapping to specify scale/precision for columns.
  • Updated existing mappers for System.Decimal to handle scale/Precision
  • Fixed 763: Added validation that non-saved objects can't be used as parameters for OclPs queries
  • Fixed stackoverflow in an extender-method for IOclPsService
  • PersistenceMapperXml will now always write an empty file when the mapper is activated (if the file doesn't already exist) to make sure the location is valid and writeable)
  • PersistenceMapperXml/Memory now handles optimistic locking on timestamp
  • Fixed 760, retrieving enum values that are null always returned the first enum-value in the set
  • Improved error message for missing discriminators
  • Added component designer to PersistenceMapperNexusDB


Modlr:

  • Added Modlr-properties for Attribute.Scale/Precision when the attribute is a decimal-attribute.
  • Fixed bug with removing referenced packages.
  • Adding new associations will now locate a valid package to put it in, Either the package of one of the ends, or the "MostLikelyIntendedPackage".
  • If a class or state without rootedpoints had keyboardfocus and showed the focus rectangle, and the widget was moved, the focus rectangle stayed in the old location. Fixed.
  • Intermittent Null access issue in Modlr fixed
  • Selection of via point crashed VS - fixed.
  • ToolTip display in modlr is changed; now content set just before display
  • selecting an association line will now always select the association in the ObjectInspector. To select an associationend, click the label at the end.
  • Nested AssociationEnds and Associations in the object inspector don't publish nested properties for associations and other ends.
  • Fixed problem when prototyping a model with derived associations
  • Added more validation of the model before starting the designtime prototype-form
  • #745 Nested states in documentation was rendered wrong. Fixed.
  • Ordered links now handle the case when the ordernumber in the database is null (will be loaded as ordernumber -1)
  • Optimisticlocking can now be specified on the EcoSpace with a tagged value for those classes that don't specify it themselves and don't have a package that specifies it either.
  • Gaffr, saved modlr format even if it opened ecomdlr format.
  • Fixed problem with optimistic locking of singlelinks if the primary key was a guid.

ViewModels:

  • First naive implementation where autoforms find ViewModels named "Class_AutoForm"
  • Added ViewModels to core; Eco.winforms turned 3.5 in the process and uses LinqExtensions

CodeGen:

  • Fixed 762: models that contains reserved C# words would cause exceptions when code was generated the second time since it tried to rename the elements when it was not needed.
  • moved Extenders for association ends refering classes in referenced package. They are now generated in the package-file instead of the file with the "other end"
  • Fixed trimming of autogen warnings in generated code for VB and Prism

Core:

  • Fixed problem with initializing tuple-parts with null-values
  • Fixed 764: MapperTypeNames can now contain assemblynames to make them resolveable even if they are in an assembly that is not referenced.
  • Removed initialization error for non-abstract classes without statemachines that have triggers. Even though it is probably not intended, it is not illegal.
  • replaced "throw e" with "throw" to avoid loosing the callstack after exceptions.
  • Added support for tuples in Custom written ocl-operations
  • Added static method that creates a tupleimpl from an object
  • Added a guard to avoid recursive tuples (tuples that has a property with the same type as itself)
  • TypeSystem.GetClassifierByType now handles collections and tuple-types too
  • Added autosubscriptions for custom ocl operations
  • Fixed nullreference exception when a guard had a null-body
  • ObjectIds don't use Generic classes (except in silverlight) because they can't be streamed easily
  • The value of a VariableHandle is now initialized to a default value if the initial value is empty.
  • IdToString-event on DatablockConverter changed to IdToNode instead and a new event "NodeToIdKey" was added so that backwards conversion can be plugged as well.
  • Fixed null-reference bug when exiting from one state into another region.

Installer:

  • Added WPF toolkit to the installer
  • Added source for Eco.Persistence to the installer

ASP:

  • Fixed problem with derived boolean attributes and ASP autoforms

WPF:

  • Added CurrencyManagerHandleWPF that handles the same thing for WPF CollectionView as CurrencyManagerHandle for WindowsForms does for BindingContext

Winforms:

  • winform Autoforms now uses checkboxes for nullable booleans again

Demos:

  • Added new demo for ASP providers

5.0.0.3999 2009-04-10

Modlr:

  • Added new form that lists all model-errors (under contextmenu "extras")
  • New associations now get valid/unique names for both ends.
  • The (e) indicator is not shown for derived associations
  • #746 Association to self in modlr handled;
  • Fixed focus-issue for object inspector when inplace-editor was active
  • Changed caption of EcoSpaceDebugger to "Open Model Debugger"
  • #747: ecodiag files now write out the "effectivename" of association ends to make it easier to see what an association is.

CodeGen:

  • the versionnumber of the .net framework is no longer a part of the generated code
  • #734: Improved codegen error message when a method has an invalid parameter signature
  • Codegen got confused when multiple ecomdl files were open at the same time. Corrected.
  • Added codegeneration of statemachine constants

Core:

  • Fetchhandler now ignores derived members (prevents a crash if an attribute has been persistent in an XML-file and then made derived)
  • IClass.HasTriggers now also checks superclasses
  • Fixed null-reference issues with creating a tuple via the VariableFactory
  • ReflectionReader: Properties are only recognized as associationends if they are marked with "AssociationEnd" in their UmlElement attribute (scrapped backwards compatibility with pre eco2 sourcecode)
  • Added better error messages for attributes that have a domain class as the type
  • Added support for string.StartsWith and string.Contains in LINQ
  • Fixed support for extension-methods (sqlLike and sqlLikeCaseInsensitive)
  • Added CurrencyManagerHandle.CurrentElement<T>(control) 
  • lightweightnodes also use ArrayList instead of List<T> to be SOAP serializable
  • replaced generic members in datablock with non-generic to support SOAP serialization
  • improved error message when a concrete class has triggers, but no statemachine
  • Fixed memory-evaluation for SqlLike and SqlLikeCaseInsensitive again. now it handles both wildcards and multiline strings.
  • Fixed issue with comparing values in ocl where one value is a null-value. Null will be equal to null and smaller than non-null values
  • LINQ: fixed problem with comparing a single link with an explicit object (such as "this")
    LINQ: Fixed problem when accessing fields of objects.

Web:

  • Improved error message when an EcoSpaceManager can't resolve the type-name
    #719: Improved errormessage when web UI component doesn't define any key fields

Project wizard

  • Added System.Core to the list of references for the ecospace project template

Persistence

  • #748: Fixed missing quoting of alias name when passing a single object in an oclps variable (including self). caused Firebird to not recognize the alias since it is a little more case sensitive than many other databases.
    removed PersistenceMapperFile (was only used for backwards compatibility for reading ECO3 xml file format).
    Made PersistenceMapperXml subclassable and added virtual methods for storing and loading xml-files
    DatablockConverter now has an event to allow custom rendering of objectids (IdToString)
    Fixed update-order when a non-constrained singlelink to a new object with an autoinc id in the same equivalence-group was saved.

Autoforms:

  • Removed the behaviour that autoforms are always "TopMost" since they often obscure the debugger. Also, they tend to obscure each other in ways that are not desirable.

5.0.0.3954 2009-03-31

Modlr

  • Added Exception dialog that shows callstack and asks user to email the info to capableobjects.
  • Added try catch with a call to the ExceptionDialog in most user entry points places
  • Added menu on contextmenu for class named "Placed on:" ; submenu shows the list of diagrams that contains the class - and clicking a diagram displays the diagram.
  • Derived associations now uses red lines instead of black.
  • DerivationExprssions now create the typesystem lazy, handles associations, displays entries for obsolete (renamed or removed) members, uses CommaTextSupport to correctly format the final string.
  • Class-resolution for the context and expectedtype for the OCL editor is now done using the Runtime-name of the class (important if non-ascii characters are mapped to ascii-characters)
  • If user chose ecopkg in Gaffr file open -> exception. Fixed.
  • Orphan state machine could give null access exception when building menu texts
  • Orphan state machines gave null access exception on file ReadDiagram
  • When recreating state diagrams for imported ecopkg state machines we forgot to associate the diagram with the attribute
  • Added "Back to index" hypertext to xsl files for published Documentation
  • Added hyperlink for ending type of associations to jump to type
  • Diagram documentation files are prefix with ClassDiagram_ and StateDiagram_ to not collide with Class files with same name
  • the DerivedExpressions property is now treated as a collection of all ancestor-classes-derived-attributes and this collection can be edited with an OCLEditor that expects the correct type.
  • Shift-arrowkeys moves all selected placed widgets, before we only moved focused widget.
  • Modlr tree now has two root nodes Packages and Diagrams; easier to work with in large models.
  • Search-eco-tree was broken. Fixed. Also changed search from StartsWith to Contains to make finding stuff easier.
  • Sneaky bug found and fixed. Bug had each viapoint 6 units off on first render, squared lines especially suffered from this since they lost their 90 degrees angels everytime a viapoint was off base and this triggered a new SquareLine pass.
  • EcoModeller documentation that is kept in a tagged value after import is now applied to html documentation as long as the html documentation for this item otherwise would be empty.
  • EcoModelerImport now set OneLiner documentation for Class, Attribute and Association to CodeComment for Class, Attribute and both associationends.
  • Import of EcoModeler via points for associations.
  • ShortCircuit association had a problem that could lead to null reference and crash.
  • Delete from diagram of placedclass with associactions to self would give index out of range message on first try.
  • AbstractDiagram has new derived attribute PresentationName that is used in DiagramCombobox. DiagramCombobox shows AbstractDiagrams.allinstances->orderby(PresentationName) (so that alphabetical order is kept in combo).
  • #622 Generate code is now on the context menu and has shortcut key ctrl-G
  • #726 All tool buttons on the diagram surface now applies current edit first.
  • #725 Focus classes and states after DD-operation
  • When using 1 to 1 associations the text "(e)" will be appended to the Cardinality string if the association end is embedded. This will help developers using sql persistance mappers to see the error of a double embed early.
  • Added wrappers for all tagextensions so they are exposed directly in the object inspector.
  • Added full assemblyname for System.Drawing.Color in EcoDatatypes.xml
  • entries in EcoDatatypes.xml with unknown .net types will be ignored

Persistence:

  • Fixed bug in how equivalencegroups are merged when the static update order is determined. When two equivalence groups are merged, all classes that uses the one to be removed must change to the new group.
  • Added error when the number of columns for a singlelink doesn't match the number of columns in the key
  • Fixed problem with inherited autoinc keys that are Attributemapped
  • name of PrimaryKeyColumns are inherited

DbReverse:

  • string columns mapped with the generic attribute mapper will now get the length set correctly.
  • Connectionstrings were added in the inverted order
  • Removed the EcoSpace debugger that was shown at the end of the Reverse-engineering process
  • The properties of the connectionstring is now shown in a listview
  • (un)checking a schema-node in the list of tables will (un)check all tables in the schema
  • Subpackages are also configured for full O/R mapping configuration in the ObjectInspector

Ocl:

  • Fixed type validation for nullable types vs null in ocl
  • Fixed problem with sqlLike and sqlLikeCaseInsensitive when evaluated in memory with strings that contains linefeeds

Core:

  • Multilinks now throw proper exceptions when trying to add/set/insert a null-value
  • Fixed 730: Added validation error for concrete classes with triggers but no statemachine.
  • Added support for adding additional statemachines in subclasses
  • Fixed a validation bug when a state had two transition where one had a trigger but and the other (transitionless) had a guard. This is valid now.
  • Added a private debug-property for multilinks so it is easier to see the contents

Winforms Autoforms:

  • Autoform widget for singlelinks doesn't precalculate CanDelete anymore. This can take along time for objects with big relations.

Eco Linq

  • Added support for Nullable<T>.HasValue and Nullable<T>.Value. Comparison with null works (myClass.Attr == null)

CodeGen:

  • derived singleassociations don't get a property setter anymore (unless they are reverse-derived)

Templates:

  • Added using/uses statements for System.Linq to all templates that already had Eco.Linq

Doc:

  • More documentation on IEcoTypeSystem in EcoServices.pdf

5.0.0.3888 2009-03-12

Modlr:

  • All associations in the diagram-part of the Modlr-model were accidentally ordered (due to an old and fixed bug from the EcoModeler import). They are now unordered so that diagram xml-files uses the automatic ordering based on id/name.
  • Fixed 708: .ecopkg, .ecodiag, .ecotag and .modlrdoc-files can no longer be renamed in the SolutionExplorer, and if they are opened, they are opened with a readonly editor.
  • Referenced packages will not be selected as the "most likely intended package" when creating new classes.
  • Bug made "start edit on type" fail in diagram for letters part of shortcut key. Fixed.
  • Entry and Exit action is displayed in StateDiagram if any of them are set.
  • Changed Focus-fontWeight from UltraBlack to Bold.
  • TaggedValue for default color of Class added to enable persistent coloring of classes in design time and runtime.
  • If a class is placed on a diagram and its DefaultColor taggedvalue is set, this color will be applied. You can override the default color by changing the color of the placed class. DefaultColor is used in the AutoClass diagram if set.
  • Doubleclick on diagram now shows diagram rather than starting edit

Model-documentation:

  • Publish documentation to html format

Persistence:

  • Fixed bad error message when an unknown discriminator is found in the database.
  • Fixed problem when discriminators are space-padded (stored in a char(x)-column rather than varchar(x))
  • Improved error message when a database operation fails, the original error message is now displayed before the SQL and the parameters.
  • Removed invalid validation rule for column and table names
  • Added a default mapper for System.Drawing.Color
  • DiscriminatorValueCollection.FindByValue crashed when asked for a name that was not defined in the collection. now it returns null instead (was a old consequence of changing from Hashtable to Dictionary).
  • Added warning when evolve tries to delete instances that are missing expected discriminator values
  • Fixed problem with invalid sql queries when abstract classes doesn't have a discriminatorvalue

EcoSpaceDebugger:

  • Log-panel delays updating the log-textbox until idle and collects all log-entries in a string builder to improve performance.
  • EcoSpaceDebugger now indicates when an ecospace is transient (and the UpdateDatabase menu option is not visible)

LINQ:

  • Fixed support for operations on datatypes in the LINQ-translation to OCL (such as "ToUpper").
  • EqoQuery with a constant null reference like "where x.package==null" failed. fixed.

IDE:

  • Fixed bug when looking for referenced assemblies in the IDE and a project has a null-path 

Project templates:

  • Fixed invalid assemblynames in project templates (MyProject.Asp.Asp.dll)

Core:

  • StateMachineTransport now uses the RuntimeName of trigger methods so triggers can use mapped characters in the name
  • OclTriggerQuery ("trigger?") will now return false when the object is missing (it is not possible to call a trigger on a null object)

Demos:

  • Fixed assembly reference in silverlight demo

ReverseEngineering of databases:

  • Packages that have names that collide with classes after reverse-engineering a database will be suffixed with "DB".
    Prototyping a reversengineered database is disabled by default.
    Fixed problem with badly initialized firebird persistencemapper when reverse-engineering databases

5.0.0.3854 2009-03-07

Persistence:

  • Primary keys of string-type are now sent as literal strings instead of as parameters, increases performance dramatically in SqlServer.
  • Added function in SqlDatabaseConfig to create a quoted string literal even if it starts and ends with a quote character (ForcedMakeStringLiteral)
  • Fixed issue with quoting table names when adding new columns during evolve
  • Firebird mapper now registers its attribute mappers in the global registry for mappers
  • Changed default mapper for StringAsText to Eco.Persistence.Firebird.StringAsBlob
  • Firebird calculated columns are now reversed as DbAssigned attributes so they are not written to the database on create or update
  • Fixed Dequoting of names that are quoted with the same character in the beginning and the end
  • Mapper for SqlServer spatial types (included as source only)

Modlr:

  • Added support for mapping names in the model to strict ascii or map national characters to simiar ascii characters.
  • Selection of rooted points should update property inspector; bug fixed.
  • CodeComment added to Class, Attribute and AssociationEnd. CodeGen extended to wride CodeComment as a correctly formatted codeComment. Wrappers updated to allow for code comment input.
  • CodeComments shows up in Diagram as ToolTips

EcoSpaceDebugger

  • Added a call to EnsureBindingLists when changing the current class for the AllInstances grid to avoid the non-linear operation to sync two large lists
  • DirtyObjects debugger panel will now only queue one idle event at a time. When many objects were modified at the same time, the panel would process one event for each object.

Core:

  • Added possibility to register any class as a valid attribute type.
  • Fixed bug with SQL logging. it was not possible to turn it of by setting the LogSQL-property to false under certain conditions
  • Eco.Tree, new design time component that enables definition of navigational trees aka Spans
  • Added better error message when a derived multilink returns null

ASP:

  • Updated ECO web providers with ECO5 codegeneration
  • ActionExecutor.CreateObject will not catch and silence exceptions when creating or saving new objects anymore. Errors will surface to the web autoform instead and be displayed to the user.

Installer:

  • Added source in the installer for winforms, wpf and web assemblies
  • Added missing files to QuickStart chapter 7 sample, and added some auto generated demo data to the example

CodeGen:

  • Codegen shouldnt generate elements for non-navigable derived associationends
  • Codegen never tries to modify return parameter for constructors
  • Constructors that change to normal methods will now be called "Method"
  • Codegen never renames constructors (since it renames the class).
  • Fixed codegeneration of constructors
  • Fixed "navigate to code" for constructors
  • Constructors will now always be called "Constructor"
  • Generated code for ModelLayer updated with new partial methods

5.0.0.3811 2009-02-24

WPF:

  • Added IBindingList to EcoObservableCollection
  • Added EcoObservableCollection - a helper class for showing lists in WPF.   
  • EcoBinding did not invalidate on changes of datacontext of owning control

Core:

  • When tuple-types are created, their collection type is also registered in the dictionary with all types.
  • Improved errormessage when failing to evaluate the value for a constraint
  • Fixed initialValue "<NOW>" for nullable datetime attributes
  • Added support to store internal ids when converting a datablock to Xml
  • Added IPersistenceService.EnsureObject
  • Added IObject.EnsureFetched
  • IObject.Deleted will now first ensure that the object is fetches

Installer:

  • Included source for BDP, DBX, Mimer, BlackfishSql and Sybase PersistenceMappers
  • Included two new WPF demos
  • Added missing source for Eco.xxx.Strings.cs

Modlr:

  • Refactored ecomdl read and load so that most of is in ModelEditor
  • Implemented ecomdl save,saveas and load of ecomdl files in Modlr
  • Found and fixed issues when ecomdl files changed on disk -> VS crashed because of missed exception
  • Found and fixed issues when ecomdl files are reloaded after change on disk is discovered; diagrams where doubled due to diagram loader missed the "Id" attribute
  • Before a selection of a class or state could make the model dirty; this was due to persisting the renedered height and widht. This is now fixed.
  • Modlr did not correctly handle switch between models, nor did it handle multiple models very well. This is now fixed and keeping two or more models on seperate tabs in eco is fully supported.
  • Delete of association with association class, left association class connection hanging in modlr diagram and this would bring down VS if clicked. Fixed
  • [707] VS crash when setting superclass in object inspector on placedclass. Fixed
  • Squared lines had a problem in the logic for reducing small z-lines in free air. Fixed.
  • Context menu in diagram now works in VSIntegration
  • Changes to how shortcut keys are handled; now delete and ctrl+delete works
  • Changes to how lines keep their focus state; now the focus is kept when viapoints are deleted
  • Changes to how viapoint focus spills over as line focus. Now the line is always focused when via point in line has key focus
  • Diagrams are now focused correctly in the editor window when they are clicked in the modlr-treeview.

LINQ:

  • Accessing IEnumerable.GetEnumerator on a EcoQuery result gave eternal loop; fixed.
  • LINQ queries with "&" will be treated just like "&&" in Ocl2Ps (->AND)

Templates:

  • Updated project templates to include Eco.LinqExtender
  • Added uses/using-clause to Eco.Linq and Eco.Services where appropriate

Persistence:

  • Fixed incorrect concatenation of alias name for columns when using a aliasprefix (caused invalid syntax for indirect relations with quoted column names: "LinkTBL_[colname]")
  • Attributes/singlelinks can now specify certain columns as readonly (by prefixing the column namne with a "*"). This means that the column will not be included in updates/inserts (it might be included because of other attributes/singlelinks). The purpose of this is if some column is used for more than one member.
  • Added taggedvalue for PrimaryKeyMapper
  • Fixed problem with parameter-names for attributes with quoted column names
  • Added a mechanism to register persistencemapper types to allow generic instantiation of mappers based on provider-names
  • Fixed problem when the same parameter was referenced multiple times in an OclPs query.
  • Improved error message when an unknown discriminator value is found in the db
  • Singlelinks used quoted names when locating fields with FieldByName. fixed
  • Improved errormessage when a fetch-operation fails to load data for a member
  • Added public methods PersistenceMapperDb.GetDatabaseConnection and ReturnDatabaseConnection
  • Added tagged values for DiscriminatorImpl and DiscriminatorValue.
  • Drop-column script for SQLServer now uses table/column name when naming the local variables so multiple dropcolumn scripts can be executed in the same transaction

DbReverse:

  • Added try/catch when testing the connectionstring to avoid brining down VS for invalid connectionstrings.
  • TestConnection is now enabled when the connectionstring is empty
  • Added wait-cursor when testing connectionstring and reverse-engineering databases.

CodeGen

  • Changed name of the partial method that is called in the constructor from "Created" to "ObjectCreated" to reduce the risk of name conflicts with user defined attributes
  • Added progressbar and wait-cursor when generating code.

IDE Integration

  • Fixed null-reference when trying to locate the source code declaration for a method

Winforms:

  • Autoforms will indicate if an object is deleted


5.0.0.3711 2009-02-05

Modlr:

  • Added error message when trying to save an orphan state diagram
  • Added context menu item for deleting statemachines
  • Delete of state attribute left the modellayer in an illegal state with a hanging statemachine. Fixed.
  • Newly created state did not get focus; fixed.
  • Added new property Package.ORMappingConfigMode to control how much of the ORMapping related config properties are visible in the ObjectInspector.
  • AssociationEnd.Ordering is now a derived attribute with a taggedvalue as the backing. Fixes bug with ordering not being respected.
  • "Delete" always removes from the diagram and "CTRL-Delete" always deletes from the model.
  • Registered a fileicon for ecomdl-files
  • When an association end is selected in the modlr-tree, the correct end is now selected in the objectinspector
  • Added correct string-representation for the header in the objectinspector for PlacedClass, PlacedState, AssociatinEndConnection, Diagram and Transition
  • Package.EffectiveNameSpace now strips out invalid characters from the name
  • The dropdown for attribute types is now prepopulated with the types from EcoDatatypes.xml
  • Dragging a transition or an associationEnd will not delete and recreate the underlying objects, but instead just change the connection point. For associations, all other visualizations of the same association will be updated if possible or deleted if the new target class is not available on the diagram

CodeGen:

  • Implemented removing of source for deleted classes/packages from the project, and renaming them ".deleted"
  • Fixed VB codegen bugs for classes with superclasses

Templates:

  • Removed EcoSpaceProvider property from the MVC base controller template.
  • Updated template for new VB model to look like the generated code
  • Fixed markup bugs in asmx-file templates

Core:

  • Introduced tagged value definitions and default values for the new ORMapping related Tagged values: Eco.PrimaryKey, Eco.Discriminator and Eco.DbSignature
  • Added better error messages for invalid results from a derived multilink.
  • Fixed problem with accessing struct fields in OCL

IdeIntegration:

  • Changed how ContextAgent caches the serialized ToolboxItems to speed up changing of selected components in a designer.
  • PersistenceMapperXml and PersistenceMapperMemory are now registered under the Eco Persistence component category again

Project wizard:

  • Fixed problem with adding assembly references in Prism Project wizard
  • Added flyover hints in solution wizard
  • Model, ecospace, pmp and UI modules are now automatically opened in the IDE after creating a new project.

Persistence/Reverse-engineering databases:

  • Fixed trimming of singlelink signatures
  • Fixed index-names for quoted tables/columns
  • Fixed handling of discriminators for reverse-engineered databases.
  • Fixed problem with (non-existing) system tables when evolving a reverse-engineered database
  • Fixed matching of Primarykeycolumns with Attribute/Singlelink
  • Added validation of filename in PersistenceMapperXml (throw an exception if the filename is empty at startup)
  • Added forcing of the column-names for "innerlinks" when reversing databases
  • Added method in SqlDatabaseConfig to dequote database names "[columnname]" -> "columnname"
  • Reverse-engineering databases now set the table/column name by default on all classes/attributes.
  • Dataset.FieldByName is now always called with the unquoted columnname
  • The list of found tables is now sorted alphabetically when reverseengineering a Database
  • Added hints in the DbReverse-form
  • PrimaryKeys are now stored in their quoted form.

Installer:

  • Installer now installs silverlight assemblies in GAC

ASP Autoform:

  • TextBoxBinding now keeps track of the original value and ignores to apply textboxes that hasn't been changed.

5.0.0.3660 2009-01-28

Prism:

  • fixed missing ecospace attribute in Prism template

ASP

  • Added SessionStateMode.HasUnsavedState for the EcoSpaceStrategyHandler to allow ecospaces with transient objects to be automatically stored in the session.

Modlr:

  • Added support for specifying a default superclass for all modeled classes that don't inherit from anywhere else.
  • Methods defined with an OCL body now works in the model prototyper

Core:

  • Fixed problem with "duplicate key in dictionary" for certain statemachine operations

Bold model import

  • Added support for Date and Time datatypes when converting a Bold model to ECO

5.0.0.3551 - 2009-01-27

Core:

  • Members that are recursively derived (depend on themselves recursively) will now throw an exception
  • When an exception is thrown by the derivation of a member, a detailed exception will be thrown that shows which member caused the problem.
  • Added DefaultEcoSpace.PreAllocateGuidID helper method to replace the internal (temporary id) of an object with a guid id before it is saved the first time.
  • Tagged values on packages were not imported into the runtime model
  • Package can now specify a default optimistic locking mode for all classes that have no superclass and specify their lockingmode as "<Default>".
  • Fixed bug in ChangeHandler (fixed in ECO4 already) that caused the list of old versions that were sent to the sync-handler to grow limitless over time.
  • Fixed initialization of initial values for obejcts that were detected as deleted in the database.
  • Minor optimization in MemberCachePolicy.PreChange
  • Changed runtime assemblies to use .net2.0 as the target framework instead of 3.5
  • Moved all extender-methods to Eco.LinqExtender.dll
  • Added events on FrontsidePolicy to override the code that actually creates the frontside objects
  • Added event on EcoSpaceManager to override how the ecospace is created

Ide Integration

  • Eco4 projects are now automatically upgraded to .net3.5 when upgraded to ECO5, but it is possible to downgrade them manually afterwards.
  • If the underlaying Ado connection component like MySql.Data of a specific type is not in the GAC, VS will have problems with the corresponding PersitanceMapper. This would bring down VS. The issue is solved by not allowing for the PersitanceMapper to be created if the connection type is not found.
  • Fixed crash in VS when Smart-tags are invoked for OclPsHandle
  • The Linq extender methods for the EcoSpace class are now extenders of IEcoServicePrivider instead so they can be used in the model-assembly too
  • Adjusted the templates to reduce the number of warnings from MSStyleCop.

Persistence:

  • PersistenceMapperXml doesn't initialize unknown attributes with default values unless they are persistent now.

Modlr:

  • Fixed deleting of tagged values
  • TaggedValue editor now lists the tagged values in alphabetical order
  • Fixed problem with deleting constraints in Modlr
  • New constraints now get unique names
  • Fixed issues with renaming of packages.
  • Fixed 700: Fixed null-reference exception when editing the effect of a triggerless transition
  • Added support for marking methods in the model as "new"

Bld import

  • Fixed problem when importing Bold tagged values that contained a "=" sign
  • Fixed duplicate instance of tagged value "Derived" when importing bld-files
  • Fixed importing of Bold tagged values with newlines

Demos

  • Added new version of ECO4 LazyFetch demo

Silverlight

  • Added Silverlight versions of Eco.Handles.dll and Eco.Interfaces.dll, and a very simple silverlight demo

LINQ

  • Included initial support for executing LINQ-queries directly in the database.

SiteSync

  • Added source for SiteSync to the installer. Sitesync is a tool that allows you to synchronize objects in one direction between separate databases

5.0.0.3596 - 2009-01-19

Modlr:

  • When changing diagram type in diagram combo, the toolbox items was not updated.
  • Fixed stackoverflow when using ECO with ReSharper (was a recursive implementation of IPersist.GetClassId in ModlrEditorPane)
  • Creating relations, generalizations and transistions on modlr diagrams never really kept the points chosen by the user. Instead it came up with a rooted point placement of its own.
  • Added taggedvalue class for Length to specify the default length as a constant rather than an literal in the DefaultTaggedValues.
  • Added a defaultlength attribute to Package so that new attributes can get a default Length
  • Fixed 672: Added importing of DefaultLength from EcoModeler

Persistence:

  • removed MSAccess from mapper configurators for PersistenceMapperSqlServer

CodeGen:

  • Fixed 695: Compiler warning about unreachable code in generated code when subclasses has "HasUserCode" for any of its properties

Core:

  • Refactorings in OCL enging to allow LINQ-parser to build and evaluate OCL parse-trees.


5.0.0.3585 - 2009-01-13

CodeGen:

  • Fixed problem with codegenerating models that originally had duplicate IDs on methods.
  • Fixed problem with updating old code when there was an association with both ends to the same class, and it had an explicit association class
  • Fixed automatic removal of old statemachines when upgrading eco4 code
  • Added a mechanism to mark items as completed to avoid checking the same class/method/file again when updating the code.
  • Fixed a problem when the type of a parameter doesn't match because of namespace vs no namespace.
  • Fixed 680: new methods are now correctly generated the first time you press "GenerateCode".
  • Deleted methods are now marked as obsolete in the code.
  • Fixed 683: Generic methods (MyMethod<T>) in the model are now detected and ignored with a warning message

EcoModeler Import

  • Elements with duplicate ids now retain their ID with a suffix instead of getting a new id (for tracking purposes), and later fix in codegen-phase.
  • Fixed 694: AllowNULL was not correctly imported from EcoModeler
  • Added support for typeconstraints for methods, importing of docs/oneliners
  • Added warning for orphan state diagrams

Core:

  • Fixed problem with ocl.substring when the parameters refer to positions outside of the string.
  • Fixed bug when datetime or time-literals were specified without seconds
  • Fixed threading issue when resolving types.
  • Added RegisterEcoService<T> to the IEcoServiceProvider interface
  • Added automatic ocl-operations for fields on the types in the model (most notably the parts of structs)
  • Fixed problem with CurrenctyManagerHandle in EcoSpaceDebugger when the ocl-expression is attached to the current object in the allInstances-grid

Documentr:

  • Added the licensed PinEdit and Spellchecking.

ContextAgent:

Fixed default tab for ContextAgent
Fixed 689: Resolving types from Eco.Handles.Design in ContextAgent didn't work correctly (sometimes...)
Added a registry key for the ContextAgent so that its location isn't lost all the time.

5.0.0.3560 - 2009-01-08

Wizard:

  • Persistence assemblies (Eco.Persistence.SqlServer for example) are now added with explicit version number.

Modlr:

  • Shift selecting in inplace edit, stopped edit and moved the class. Fixed.
  • Squaring line could fail with accvio. Fixed
  • Transient classes now have a small icon
  • Abstract classes are now rendered with their name in italics
  • Fixed 692: Added AssociationClass property to associations in the object inspector
  • Fixed 671: Configuration for how to "embed" a association was not correctly imported from EcoModeler.
  • Added NavigateToCode for methods
  • Fixed 679: Added Visibility property for methods
  • Tooltips on diagram buttons
  • Keyboard move of Viapoints and DiagramPlaced
  • Enabled for keyboardnav for BaseViaPoint's
  • Drop attribute and method when the inplace edit is left blank
  • Ctrl-tab now switches tabs in VS
  • Boxing undo-checkpoint bug. Gave effect that you had to press undo twice after adding attribute in diagram.
  • Word documentation dropped in favour of html documentation
  • Captures all exceptions from RunningModel window to avoid bringing down VS
  • ViaPoints that after a move ends up inside their nearest placed widget are removed to reduce line clutter
  • PlacedWidget neighbours now also gets a MoveRootedPointsWithLinesThruPlaced check
  • Changed primary model format from .modlr to .ecomdl
  • Added import of .modlr-files in Modlr

CodeGen:

  • Fixed codegen of methods with body. EcoModeler import now moves the method-bodies from the tagged value to the attribute.
  • Fixed 693: Incorrect code generated for "outerlinks" in associations with link-classes.
  • Removed generated property-setter for "innerlinks"
  • Fixed 687: CodeGeneration for AssociationEnds with HasUserCode
  • Fixed 690: Partial method stubs for getters are now generated even for ReverseDerived attributes with "HasUserCode = true"
  • Fixed 685: Namespace of classes didn't change correctly when the package is renamed or the class changes package.
  • Fixed 678: Codegeneration of abstract methods

Core:

  • Fixed 670: When linking objects, if either object is deleted already, an exception will be thrown.
  • Fixed 676: Removed EcoDataSource.Update
  • Added servicemethod IObjectFactoryService.DeleteObjects to safely delete a list of objects.
  • Objectlists that are created as a copy of another list didn't correctly subscribe to deletion of objects
  • Capture the ecospace debugger "GetChanges" click exception that comes if the pmapper does not support sync

Documentation:

  • More persistence service documentation + completed versioning service.
  • Started multi-user concurrency
  • Updated Eco5Readme with new instructions for converting EcoModeler models and running the EcoMacros.vb macro

VS integration:

  • Added New .ecomdl item
  • Removed new Modlr-file

5.0.0.3513 - 2008-12-26

Persistence:

  • Fixed problem with expansion/truncation of index-names when generating/evolving databases

Modlr:

  • html documentation in more consolidated files; work in progress
  • Added check when setting double-attributes in ModelLayer, If the change is very small, the change is ignored, to avoid dirtyfying the ModelLayer model with rounding errors or file storage precision
  • Added alphabetic sorting of the nodes/attributes in the xml-file to make them more stable. Added support for tagged value "ModelLayer.DefaultValue" to reduce the size of the files
  • Added default values for some attributes to reduce the size of the diag-files
  • EcoModeler Import - Added import of of IsAbstract and IsSealed for methods
  • EcoModeler Import - Fixed import of static methods from EcoModeler

Installer:

  • Updated GacInstaller to handle wildcards and version number when uninstalling

Docs:

  • Added the new HowToGuides.pds to the installer

5.0.0.3495 - 2008-12-18

Core:

  • Fixed 630: State attributes for non active regions are now cleared when the state is changed.
  • StateAttributes do not automatically get "AllowNULL = false" anymore.
  • Fixed 544: Added generic versions of RegisterEcoService/GetEcoService
  • Added overloads for IEcoServiceProvider to register/get services with a key so that multiple services can be registered for the same type
  • Fixed 400: Added Extension methods for OclService and OclPsService to take an IEcoObject instead of IElement.

Persistence:

  • Fixed 667: Autoinc keys didn't work when the rootclass was childmapped.
  • Fixed 623: Added validation of PrimaryKey specification. If a class specifies a primary key column that is not used by any attribute or link, a detailed error will be thrown.
  • Validation of ORMapping will only happen if there is no previous error to avoid secondary failures

Modlr:

  • Improved error messages when a new modlr-file was created outside of the project and then added to the project.
  • Fixed problem with codegeneration when a method had a return-parameter with no type.
  • Removed trailing "Package" from package names when importing ecopkg-files
  • Fixed appearance of autocreated associations/transitions that start and end in the same class/state
  • Fixed StackOverflow when trying to find owning Package in invalid models with cycles
  • Modlr: Added menuitem "Show state diagram" to class, lazy-create state-diagrams if there is a state machine.
  • Removed "Show state diagram" for attributes.
  • Fixed 639: removed the "Name and Type" property for attributes in the ObjectInspector (name and type can be modified separately)
  • Fixed some problems with upgrading from eco4 to eco5 format of the generated code.
  • Fixed 637: caption of the GenerateCode button is now "Generate Code"
  • Fixed 624: The diagram is re-focused after codegen.
  • Fixed import of nested regions from EcoModeler.
  • Fixed length of error message when there are many duplicate IDs
  • Fixed problem when modlr-file was not contained in a project (created standalone for example)

IDE integration

  • Fixed 631: VS was not visible in the ALT-TAB list when the ECO project wizard dialog was shown
  • the csproj-files in the template now has the eco version number expanded from a resource
  • Updated Prism templates for ecospace and winform to look like the C# templates.
  • Included wizard files for new Modlr model

5.0.0.3454 - 2008-12-10

Core:

  • Fixed 653: Added IPersistenceService.DiscardChanges that removes modified data from the cache, Added an EcoGlobalAction "DiscardChanges"
  • Fixed 642: Fixed problem with childmapping the rootclass in a versioned database.
  • Added property category (Eco.Persistence) to PersistenceMapper.ConnectionString
  • It is now possible to subclass an eco-class (even an abstract) in code and instantiate the new subclass.

CodeGen:

  • Fixed 645: Namespace for default package and class was wrong in the templates, it should be the name of the package, not the name of the project.
  • CodeGen: Fixed problem with changing parameter types when the type was not fully qualified
  • Added doc-comments for partial methods

Modlr:

  • Added two gravity-based layout engines (experimental)
  • Fixes to EcoMdl-handler for referenced packages
  • Added new html-based documentation tool (experimental)

EcoModeler import:

  • Fixed importing of initialValues for attributes
  • Fixes to EcoModeler import for referenced packages

IDE integration:

  • Removed EcoModeler from the ProjectWizard
  • Removed mmcseco editor and EcoModelerPlugin from ECO ide integration

Installer:

  • Added EcoScripts.vb to the installer
  • Uninstaller doesn't force a reboot anymore

5.0.0.3423 - 2008-12-05

Installer:

  • Installer no longer removes HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Menus on uninstall
  • Removed EcoModeler from installer
  • fixed issue with GacInstall/uninstall
  • Installer: Added detection of if .net 3.5sp1 is missing

Core

  • Fixed 646: Removed traces of bdp from ContextAgent config file

5.0.0.3408 - 2008-12-02

Installer

  • Completely new installer
  • Allows side by side installation with Eco4
  • Fixed 337: Samples are now installed in commondocs

Modlr:

  • fixed 638: Support C# syntax when editing method signatures in Modlr
  • Keyboard navigation for diagram
  • "Start to write - inplace edit mode will follow"
  • Focus correct widget after add
  • Focus correct widget after ESC
  • Jumps between classes and scrolls with key navigation

CodeGen:

  • Fixed issues with renaming of parameters (they are just replaced now, not renamed.
  • Added support for ParameterDirectionKind
  • Codegen detects if the IDE is in debug-mode.

Templates:

  • ECO MVC controller template now has a public writable EcoSpaceType property instead of an abstract method. The EcoSpaceType is initialized in the superclass, but can be replaced before the ecospace is created to suit test-scenarios better

5.0.0.3381 -  2008-11-29

Core:

  • Fixed problem with license check when the typesystem was accessed before the ecospace was created
  • Removed model validation warnings for embedded association ends
  • Fixed validation of quoted sql-names in the model

IDE integration

  • Added "new ECO MVC controller" item

Modlr:

Improved highligting of selected associations
Improved behaviour of zoom in diagram
Setting an attribute name to "/name" now automatically makes the attribute derived
Added property for Method.Body in the ObjectInspector
Fixed context and returntype for ocl-editor for Method.Body and Transition.Trigger

CodeGen:

When renaming of a code element fails, the error message is now a bit more friendly
Dots (".") in element names are now replaced with underscore in the codegenerator (except for datatypes)
Trigger methods and methods with body are no longer generated in the user-part of the code

5.0.0.3369:


Templates + Project Wizard:

Changed the protected field in the PMP that reference the ecospacetype to a class constructor instead.
Item template for new ECO MVC controller
minor typo in Oxygene ASP autoform template
Always uncheck MVC if it is disabled
Fixed issue in MVC template so the ecospace is returned to the pool later.

Modlr:

Improved rendering/editing of the association ends in the ModlrTreeview
Nicer error message if a module fails to load after wizard has generated all files
Improved errormessage when a modlr-file fails to load
Fixed problem with stray parameter-objects when updating the signature of a method
AutoScroll in diagram rewritten with a DispatchTimer
Focus in tree; Ctrl E in diagram selects the class in the tree
FocusInTree extended to handle attributes, methods and AssociationEnds
Multiple move rectangle now also works from bottom to top
Moving a placed so that its own rooted lines cross it, the rooted points are moved to fix it.
Added a try/catch in EndCurrentInplaceEdit to avoid VS crashes
It took two f2 pushes to get into edit mode.
Attribute shows type and Method shows signature
Entering edit on Attributes and methods only selects the name

DbReverse:

NameUniquer doesn't set the old name in the TV if the name was empty
The table dbo.sysdiagrams is now considered a system table
The treeview with schemas and tables are now expanded an extra level to show the tables.
Fixed bugs with restoring the old ids when re-reversing a database
Fixed DbReverse-issue when an identifier starts or ends with "_"

Core:

Fixed bug when adding new publishers with lower index than the current minIndex. Fixed another bug when removing a publisher from a list.
RenderedTupleDescriptor for Nestings assigns the Derive and ReverseDerive events from the root RenderedTupleDescriptor. This what not done before making it impossible to use derived columns in nestings.
improved statemachine initialization errors

CodeGen:

Improved the stable order in which code is generated
Added codegen of method stubs

ModelLayer:

Fixed fixed EcoModelLayerSpace.GetOwner to handle empty singlelinks

5.0.0.3318


Documentation:

Updated QuickStart documentation (up to chapter 6) to use Modlr

CodeGen:

Derived attributes, DbAssigned attributes and state attributes will no longer get a setter
Fixed exceptions when codegenerating and the old selection in the code is no longer valid
Added support for implicit tagged values in EcoDataTypes.xml (autoinc, text, blob uses that)
Partial method XXXChanged now takes three parameters, oldValue, newValue and finalValue.
Fixed problem with nullable attributes and HasUserCode.
Default path for generated code is the folder where the modlr-file is (was project path)
Attributes with a type that is not a ValueType (like string) now get the tagged value "AllowNULL" if they allow null (valuetype attributes are generated as nullable types instead)

Modlr:

Shortcutkeys on diagrams and tree
Default multiplicity for new associations is now 0..1 -- 0..* (was 1 -- 1..*)
Added Constraints property for classes and placedclasses.
Added new descriptors for Region and StateDiagram to set the StateAttribute with a combo
Serious issues with Association class connections. They could not be touched at all. The problem was the Loopreduction being called when tracking the linkconnectionpoint Fixed.
Improved name of state diagrams in dropdown combo
Multiple changes to handle parallel subregions in states. Now logic adds additional subregion attributes when needed.
Logic also handles rename of state attributes (main and subregions).
Fixed bug in Rename that used newname as oldname before.
Cleaned up labels for transitions
Added name-property for regions in statediagrams
Fixed Effect-property for transitions
Add final and start state to region via contextmenu
Substates in regions got their transistions placed in the wrong coordinate system; fixed #597
Added Package-property for associations in the OI

UmlRt/ModelLayer:

Deprecated the tagged value "Eco.StateAttribute", instead the stateattribute is handled by an association in ModelLayer, and set directly by the reflectionreader when reading the model.
Added StateMachine.Id so statemachinediagrams can reference the statemachine correctly
Added default values for StateMachineTransport to get a smaller xml-representation

EcoModeler import

Fixed problem in EcoModeler import when diagram name was empty
Added name to the imported Statemachine from EcoModeler

IdeIntegration:

Fixed invalid cast when solution contains non-source projects such as setup projects
Removed dependencies to Eco.Persistence.Xml from the ConsolePServer and WinServicePServer template projects
Added System.Core as a referenced assembly in the C# project templates

Core:

Fixed initialization of DerivedElement.ServiceProvider
Linkobjects will now have their constructor called when they are created as a part of a link-operation.
Fixed 557: nullable values didn't correctly conform to non-nullable values.

Persistence:

Retrieving the PersistenceMapper in PMClient is now done outside the try/catch that guards the connect-operation.
Compile Blackfish and DBX mappers against the Prism binaries instead of the RadStudio2007 binaries

WPF:

SourceOcl is Renamed Expression in EcoBinding
EcoBinding updated; PathOcl is not needed anymore

Changelog for 5.0.0.3256


Project wizard:

Eco Oxygene project wizard is now located under the Oxygene node in the new project dialog (or Delphi Prism)
updated winservice templates to include ".rem" when registering the service (to match the PMPClient)

EcoModeler:

Fixed bug in naming of the initial package in EcoModeler based projects

Core:

Let EcoListSHimBase implement IList, for backwards compatibility on old generated code. This fixes a problem with invalid cast exceptions for derived associations
Replace QulifiedPublisher with PublisherList (space savings on subscription to members).
Replaced String.Compare with EcoSupport.CaseInsensitiveEqual to avoid requirement for .net3.5 SP1
IPersistenceService.EnsureRange takes an IObjectList again for improved performance (need to call InternalGet to get the objects without ensuring them).

Modlr:

Support for referenced packages (ecopkg-files)
Added codegen for extenders for association ends in referenced packages
Package import is now wrapped in transactions and loose ends detected
Fixed 594: CodeGen - Fully qualified name used when specifying inheritance from classes in another package.
Fixed support for extender-methods in Oxygene
Fixed 581: diagram size and scrollbar on first show: fixed
Fixed 580: fast expanding diagram: fixed
Fixed 587: Delete diagram
Fixed 585: remove rather than delete from diagram

Change log for 5.0.0.3233:


DbReverse:

renamed SqlServer reflector to SqlServer2005 since it doesn't work for SqlServer 2000. trimmed the query used to retrieve index-information from sqlserver

Core:

Added extender method IList.AddRange for backwards compatibility for SqlDatabaseConfig.ReservedWords
Fixed 589: it was not possible to collect over list of tuples in OCL.
Fixed 543: ElementHandle now implements ISupportInitialize to avoid processing property values during InitializeComponents.

Persistence:

Added reserved words for Firebird

Project wizard:

updated eco project templates to .net 3.5

IDE integration:

Added automatic detection of .net2 projects so they are automatically upgraded to .net3.5 since this is required by the eco assemblies.
Also added a context menu for the aboutbox that currently contains code to restore the eco components in the toolbox


Changes in 5.0.0.3217


Modlr:

Added a panel in the Modlr pane with a hint how to open new models, visible only when no .modlr-file is open
Added a button to start the EcoSpaceDebugger directly from the Prototype launcher.
Toolbuttons on the autoclass diagram as well; mantis 0000570
Right click menu did not show in diagram until a drag or some operation was done. Fixed.
Importing EcoModeler failed failed becuase of missing tagged values. Fixed.
Removed Ionic.Utils.zip.dll from the installer

DbReverse:

DbReverse is now only registered for packages
Added support to retain IDs of modelelements when reimporting a database-schema
Added a better progress-indication
Added storing an MRU-list for connectionstrings, prepopulate the connectionstirng combo with the last connectionstring used for the package.

Ocl:

Fixed bug in ocl-operation "Existing". It now returns true for an object until it is deleted (instead of the exact opposite). Added testcase.

Project Wizard:

Fixed output name for C# IIS PServer projects
Oxygene templates for IIS PServer
Oxygene template for WinService PServer
Fixed style-tag in C# template for ASP autoform.
Fixed DefaultNameSpace in C# console PServer project template
Project wizard: Licenses.licx is now only added to the EcoSpace project
ConsolePServer templates for Oxygene.
Oxygene WinformPServer templates
Oxygene ASP templates, first cut

Docs:

Reapplied my changes from last checkin (was lost in Peters checkin)
Added some documentation for TypeService methods, and described how to create custom OCL operations.
Added an overview of how OCL expressions are constructed.

Core:

IElement and IEcoList now have a ServiceProvider property.
Add IObjectInstace.IsNullInstace.
Loosen typing of most services from IObjectList to IEnumerable.
Add IEcoObject as superinterface to IObjectProvider, and replace all internal uses.
Replaced ArrayList with List, Hashtable with Dictionary, StringCollection with IList/List
Changed Queue to Queue and Stack to Stack
ObjectIdList now inherits from List instead of CollectionBase
Start making "convience services", such as the IPErsistenceService overloads that take a single object extension methods rather than methods on the service, mainly to make shims narrower.
Fixed bug in IPersistenceService.EnsureRelatedObjects: Locators.Count was compared with null instead of 0

CodeGeneration

Fixed 577: Potentially invalid code in Oxygene codegen for nullable attributes. now it uses an explicit syntax for Oxygene too.
Added datatypes for Oxygene in EcoDatatypes.xml
Added datatypes for VB
fixed 578, invalid prefix in Oxygene codegen for the Eco_LoopbackIndex constants in association ends
Fixed 568: circular references in definition of EcoLoopbackIndices when a class both inherits and associations another class.

ChangeLog for 5.0.0.3142

Modlr:

Merged Attribute.Persistent/Derived/DerivedSettable into one property
Merged Method.IsAbstract/IsConstructor/IsOverride/IsSealed/IsStatic/IsVirtual into one property
Fixed problem when drawing an association from a class to itself without defining any via-points
Rearranged and renamed the assemblies that make up Modlr

Documentation:

Replaced the old document (pdf) on services with a new one.
Completed OCL operations

DbReverse:

Added check for duplicate ForeignKeys
Singlelinks are now always marked as IsConstrained
Attribute.AllowNull now reflects the setting in the db.

Core:

Added tagged value for IsConstrained (for singlelinks)
Optimization of CanDelete, the list of checked objects is now a Dictionary instead of an arraylist for faster lookups.
Fixed bugs with accessing parts of a tuple in OCL
Tighten typing of ElementCollectionContentImpl et al. Implement IEnumerable on IObjectCollection.
Loosen parameters to ECO services and IObjectList to take IObjectProvider rather than IObject.
Tighten a number of return types and internal variables from IObject to IObjectInstance.

Persistence:

All attribute mappings now handle null the same as DBNull in ColumnToValue (since IField returns null rather than DBNull in Eco5)
ForeignKeysDefinitions now clean their names the same way AliasDefinitions
DefaultORMappingBuilder now handles the taggedValue Eco.IsConstrained
OclPS: AliasReferences now clean the names of the tables before generating the alias-name.
PersistenceMapperXml now writes data to a temp-file to avoid problems if the app crashes while writing the file.

CodeGen:

CodeGen now forces the explicit order that the members are added.
Added regions to generated code to collaps groups of methods nicely
Added codegen support for "int?" for nullable types in C#
Don't emit the AllowNull TaggedValue, it is in the datatype of the attribute...
Codegen now supports nullable types for all valuetypes, not only primitive types.

Installer:

Fixed 560: renamed NDataStore to Blackfish SQL in the installer
removed bdp, vcl, bds-integration, The MatsSoft db-wrapper and Eco.ModelLayer.Design/Debug from the installer

ModelLayer:

Added ModelElement.GetTaggedValueBool for easier access to boolean TVs.

EcoSpaceDebugger:

EcoSpaceDebugger now clears the columns of the handles more thouroughly when changing the OCL-expression in the OCL-debugger
Improved Sync-debugger-panel. replaced the listbox with a listview to get the changes in nice columns
Some cleanup in the Class/Ocl debugger and Sync-debugger
Buttons in autoforms are now smaller so they don't obscure the labels.

MVC:

Updated MVC template for new ASP.NET MVC beta

Project wizard/templates:

Added missing package-include magic for Oxygene project templates
Filename for package-file in an EcoModeler project is now Package again to match the codegen of EcoModeler.
Added a link in ProjectManager to ASP.NET MVC site.
Fixed Oxygene templates for EcoSpace and PMP. They wouldn't display correctly in the component designer because of a missing "self."

IDE integration

Added try/catch-statement in Eco4 detection since VS throws exceptions when reading the name of some assembly references.

Changes in 5.0.0.3069:


Modlr:

Add: Simple diagram Print in Gaffr and Eco5
Fix: Reassign of inhertance, and setting superclass did not update diagram
Change: Moved designer tools to the designsurface instead of the VS toolbar
Change: Reworked the properties in the object inspector for the elements in the designer
Add: Added Combobox to choose active diagram
Change: Improvements to how Undo/Redo works in the designer
Change: Search updated to only find attributes and named relations when explicitly searching for them
Add: "Re-think this side" helps with positioning many link points on one side
Fix: Squaring logic ran all the time even on lines already squared. Made things slow.
Fix: Removed calls to ExpandTaggedValues to avoid unnecessary TVs
Add: Added Attribute.SetterVisibility
Add: Added support for ConstructorVisibility in ModelLayer + codegen
Add: ColorOnNew property on AbstractDiagram, also in wrappers, and usage when adding state or class
Add: Added option for creating new Trigger to list.
Change: Improvements to copy/paste behaviour
Add: Added categories to all properties in Modlr. Made some properties readonly and some properties with comboboxes as "exclusive"
Add: Added a generic catch-clause when executing commands in modeler to avoid that VS crashes (with loss of models as a result).

Statediagrams:

Fix: Prevent transitions going to start-states or from end-states
Fix: Pseudo states does not have entry nor exit

Bld-format import:

Change: Changed how Changeability is imported (stored with the name of the value instead of the integer).
Change: Bld-import: Constraints are not imported if they are empty
Add: Added option to convert a bold-model to ECO format (renames known tagged values to ECO names).

Core:

Add: Let IObject implement IObjectProvider, and IElement implement IElementProvider.
Add: IEcoList can now return an IObjectList,
Add: Added new interface IObjectListProvider
Add: Added IObjectList.GetAsEcoList
Add: Added IExtentService.AllInstances
Add: Added IExtentService.AllLoadedInstances
Change: Moved PrototypeEcoSpace to Eco.Handles (from ModelLayerDesign) to make it easier to use
Change: Make TaggedValueDescriptions for Enum tagged values singletons rather than classes (allows adding virtuals).
Add: FrontsideMultilinkAdapter, FrontsideDerivedMultilinkAdapter and EcoObjectListAdapter now implements IBindingList
Add: DefaultLoopback now implements ICustomTypeDescriptor and INotifyPropertyChanged.
Add: TupleImpl now implements ICustomTypeDescriptor.
Add: Added .net event IElement.ValueChanged. Used to implement FeaturePropertyDescriptor.Add/RemoveValueChanged, and IBindingList.ListChanged.

CodeGen:

Fix: Fixed reversed loopbackindex for innerlinks in codegen
Change: Generated code no longer uses the ObjectListAdapter for multilinks. instead the frontsideadapter is cast directly to IEcoList
Fix: Fixed visibility/finality of generated properties
Change: Codegen now uses the NameSpace defined in the Package class, but only FQN names for classes/assocs if they belong to different namespaces.
Fix: Fixed visibility of package-classes
Change: CodeGen doesn't open files that were not opened before.
Fix: RenameHandler now uses RuntimeName instead of Name when comparing to old elements
Change: Added sorting of properties before codegen to ensure a stable order in the source.
Add: All domain classes now implement INotifyPropertyChanged
Fix: Fixed generation of partial methods for VB
Fix: Fixed ref-parameters in oxygene codegen
Change: CodeGen throws an exception if an attribute doesn't have a type.

WPF:

Add: Added WPFDequeuer
Add: Added ElementHandle.List: IList property for improved WPF support
Add: Added EcoBinding for databinding in WPF

DbReverse:

Add: Support for MsSql, MySql, Firebird and Oracle

ASP:

Add: Added DeriveValue and ReverseDeriveValue events to EcoDataSource.

Persistence:

Add: Added GenericAttributeMapper to the default set of mappers
Add: Added IDefaultReverseMapping to indicate that a mapper is the default for a certain database type
Change: Made EnumMapper.ValueType return null instead of throw an exception
Add: Added DecimalAsMoney and Int32AsInt mapper for SqlServer
Add: Added optimistic locking on nonembedded members (multilinks) for PersistenceMapperXml and PersistenceMapperMemory.
Add: Added DecimalAsSmallMoney, StringAsNVarChar, CharAsNChar, StringAsNChar, StringAsXml for SqlServer
Add: Added MySql mapper for unsignedInt16
Add: Added SqlDatabaseConfig.ForceQuoteName
Change: AliasDefinition now removes [, ] and . from the name (needed if the table name is in the form [schema].[tablename])
Add: Added support in DefaultORMappingBuilder for the following tagged values: Eco.PrimaryKey, Eco.Discriminator to handle reverseengineered databases.
Add: Added ConnectionString property to PersistenceMapperAdo2 (superclass for all database persistencemappers)
Add: Added property editor for PersistenceMapperSqlServer.ConnectionString
Change: refactored PersistenceMapperMySql to inherit from PersistenceMapperAdo2
Add: Added new default byte mapper for MySql
Change: MySql uses ` as qoutechar
Change: ExpandName doesn't substitute characters if there was no replacement
Change: Improved charactermapping for alias-names
Fix: Improved if-assigned checks for Oracle attribute mappers
Internally build PersistenceMapperFirebird with FirebirdClient to 2.1.0
Internally build PersistenceMapperMySql with MySqlClient to 5.2.3.0

EcoSpaceDebugger

Fix: SyncDebuggerPanel - Avoid getting the Sync-messages if the ecospace is not active

Documentation:

More documentation on OCL operations.

MVC:

Updated C# MVC-templates for MVC preview 5