﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>CapableObjects Knowledgebase</title><generator>InstantKB.NET v2.0.0 RC2</generator><description>CapableObjects Knowledgebase</description><link>http://www.capableobjects.com/apps/InstantKB13/</link><webMaster>KB@capableobjects.com</webMaster><lastBuildDate>Thu, 29 Jul 2010 16:06:42 GMT</lastBuildDate><ttl>20</ttl><item><title>Changelog for ECO5</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50020.aspx</link><description>&lt;h2&gt;5.0.0.4754 - 2010-01-10&lt;br /&gt;&lt;/h2&gt;&lt;h3&gt;Process diagrams:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Processdefinition screen made a little bigger to show button texts&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Extension symbols:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;TagExtensions can now be associated with a symbol&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Extensionssymbols now has a EnsureDefaults button that create a State attribute, a trigger method symbol&lt;br /&gt;&lt;/li&gt;&lt;li&gt;State symbol drawn behind state attributes if the symbol is available&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Trigger symbol drawn behind trigger methods if the symbol is available&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Extension symbols now get their size depending on PlacedClass.Size property&lt;br /&gt;&lt;/li&gt;&lt;li&gt;TagExtensionSymbols are rendered next to Class names, Attributes, Methods, Association ends, VACDefinitions and VACSteps&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Asp:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added full assembly identification to the registration of the ECO web prefix in the default web.config&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added MaxAnswers and Offset to EcoDataSource for the PS-Expression&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed incorrect error message in ASP.Net autoform method-builder&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP Providers:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added threshhold how often to update the "last user acitivity" to avoid excessive database hits when user views pages.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bug in EcoMembershipProvider OclPsQuery overload forgot the last variable giving errors on LookupUserByEmail&lt;br /&gt;&lt;/li&gt;&lt;li&gt;New static property Eco.Web.AspProviders.EcoMembershipProvider.PasswordHashKeyAsHexString&lt;br /&gt;  Used when PasswordFormat == MembershipPasswordFormat.Hashed.&lt;br /&gt;  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 ).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ViewModels:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;A new setting UsePlacingHints has been added to the ViewModelEditor, if unchecked the viewmodel will not show any placing hints settings.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModelContent WPF component added - this allows you to use a ViewModel in xaml and use standard wpf binding to hook up all viewmodel artifacts&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModel creation methods has been extended with EcoSpaceType and EcoSpaceTypeName to better support creation before access to EcoSpace&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModels allow for definition of Validation rules that can be associated to columns&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModel now reads the ViewModelValidation's and makes them accessible in runtime &lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModelContent and ViewModelWPFUserControl now use the new ViewModel validations&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModelContent now allows for actions &lt;br /&gt;&lt;/li&gt;&lt;li&gt;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&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Winforms: SpacerPanels And DesiredSize updates to correct bugs&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Winforms: TabOrder did not handle grids&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Winforms: Added an event on ViewModels that fires when the contextmenu is closed&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Strange behavior of winforms control Visible property when used with databind - accepted that it does not work as expected and implemented workaround in ViewModel &lt;br /&gt;&lt;/li&gt;&lt;li&gt;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&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModelDialog Sort columns alphabetical or in taborder&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModelDialog arrows highlighted when hovered&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModelDialog Presentation span is copied from template Column&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModel vCurrent variables bug - ActionLanguage Evaluate did not get access to the Variables.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Examples:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updated to work with latest build&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added new sample: "The Hockey sample"&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;WPF:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;WPF image converter now handles empty stream&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModelWPFUserControl now sets image width and height&lt;br /&gt;&lt;/li&gt;&lt;li&gt;CurrencyManagerHandleWPF has a new property  AutoSelectFirst. When set a view will get the first row automatically selected - this is set when ViewModelContent use handles&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModelWPFUserControl - new DependcyPropert Rootobject you can bind to&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Modlr tree, now it shows effective name of associationends in searchdialog&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Modlr tree, doublclick on attributes,methods and associations names brings up AutoClass diagram&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Modlr tree, Processes and steps are included in search&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Modlr popup menu re-arranged&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Print did not look the same as screen rendering due to font family differences.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;PrintPreview now works in VS. Printout has diagram name and print time at the bottom&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Diagram printouts and preview has been enhanced&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Diagram image rendering and cropping updated&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Publish documentation took forever due to a bug. Now it also crops images.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Html documentation, cross references, css extracted to seperate file&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Found and fixed the Snapping and Squareline bug that sometimes made diagrams dirty just by looking at them.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Copy paste in Class-diagrams, StateDiagrams and VACDiagrams&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added support for TaggedValues in the ViewModels. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;ViewModel elements now appear in the PropertiesGrid in VS and in Gaffr. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;The cardinality labels in diagrams was swapped so that the cardinality always came far away from rooted point. Fixed&lt;br /&gt;&lt;/li&gt;&lt;li&gt;VACDefinitions now show associated diagrams&lt;br /&gt;&lt;/li&gt;&lt;li&gt;refactored calculating the effective name for an associationend&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Simple types in ViewModelVariables had issues&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed 860: Object inspector use same logic as diagram for setting cardinality on association ends&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed 862 : Errors for ViewModels where only shown on first check. Fixed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed problem in "Show Model Errors". Some model errors would cause the dialog to crash VS.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Several minor glitches in turning modellayer into a umlrt when using Child mapped DefaultSuperclass &lt;br /&gt;&lt;/li&gt;&lt;li&gt;When Objectinspector changes Default superclass we now set/update the tagged value so that it is set on prototype run.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Try catch around ecomdl load to find reported exception in file open&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed problem with "navigate to code" when the solution contained folders.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;open package files with readaccess when possible to avoid problems with referenced files located in the "program files" folder&lt;br /&gt;&lt;/li&gt;&lt;li&gt;If the ecomdl contained file references that was not available the whole loading process was stopped. Now it warns and continues.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;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.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Missed quoting table names when moving data between tables in evolve-operation.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed problem with null-reference exception when an abstract class has no discriminator during evolve.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added possibility to force eco to not add a keydefinition to a class by setting tagged value PrimaryKey to "&amp;lt;NONE&gt;"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Objects in Xml-files are now stored in a deterministic order (sorted in their key-value).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed problem in evolve, when UpperCaseFunctionName in SqlDatabseConfig contains a "{0}"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Mapping table now has a primary key so that it can be generated on the azure platform.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added SqlServer attribute mapper StringAsNVarCharMax for Azure compatibility&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed 875: Versioned classes can inherit from a non-versioned class if it does not have a main-alias (is childmapped).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;TableTable now has a primary key (required for azure databases)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed filenames in wizard for new ECO models&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed minor bug in SyncHandler.PurgeOldBlocks&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Prevent commitqueue in Synchandler to grow without control.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added PMP.ReleaseInstance&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Database create had a bug when using the config.MultiTenantPrefix; wrong tables were dropped.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;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);&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed problem with duplicate alias names when two mangled names differed only in case.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed null-reference problem when querying tables that are parent-mapped with OclPS.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 879: INotifyPropertyChanged events were not fired if the object did not have any subscribers&lt;/li&gt;&lt;li&gt;Fixed 880: Assigning a singlelink with "nil" in EAL caused a null reference exception.&lt;/li&gt;&lt;li&gt;Fixed 878. Now IList&amp;lt;ModeledClass&gt; can be used in Query methods in OCL.&lt;/li&gt;&lt;li&gt;Publisherevents are now delayed when creating link-objects.&lt;/li&gt;&lt;li&gt;Added support for delaying publisherevents&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Supress errormessage about invalid ocl-operations when model is not browsable&lt;/li&gt;&lt;li&gt;Fixed problem with initializing models where the package-classes doesn't have an "id".&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Added missing resubscription-instructions when creating variablereference-nodes&lt;/li&gt;&lt;li&gt;Implemented GetValue&amp;lt;T&gt; for TuplePartImpl&lt;/li&gt;&lt;li&gt;LinkOperationCache: Fixed missing events for multilinks when deleting link-objects&lt;/li&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;Fixed problem with implicit link-classes in packages with default superclass where the superclass had codederived attributes.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;CanTrigger now handles inherited triggers too.&lt;/li&gt;&lt;li&gt;IMethod will now get its Id-property set when building the runtime model&lt;/li&gt;&lt;li&gt;ElementCollectionImpl handles nullable values better&lt;/li&gt;&lt;li&gt;Fixed issue with inspecting the same assembliy multiple times when trying to resolve a typename&lt;/li&gt;&lt;li&gt;Added api to clear the cached expression parsetrees in the OCL evaluator. They are also cleared when the ecospace is deactivated.&lt;/li&gt;&lt;li&gt;Fixed problem in linkoperationcache when deleting linkobjects. The notification was sent out too soon.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed the bugs in recent optimizations in the ControlPack&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Initialize the capacity in UpdateItemList. Avoid creating lots of objects when we have already realized the event will be a Reset&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed 859: ReverseDerived associations didnt work, both codegen and core was incorrect. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Methods with parameters of type IList&amp;lt;T&gt; will now be callable in OCL.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IDE:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 0775: Output window Show was called even when it was visible already giving a blinking effect and poor performance&lt;/li&gt;&lt;li&gt;Updated mvc template with changes in MVC 1.0 RTM&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winforms:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed issue with nullable parameters when building the method-page in Winform autoforms.&lt;/li&gt;&lt;li&gt;Nullable enums will not crash autoforms anymore, but will still not display a null-value in the combo&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.4560 - 2009-10-12&lt;br /&gt;&lt;/h2&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;Fixed issue with diagram combobox in modlr toolbar. Would cause modlr to hang VS.&lt;h2&gt;5.0.0.4559 - 2009-10-11&lt;br /&gt;&lt;/h2&gt;&lt;h3&gt;Modlr:&lt;br /&gt;&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Added "Overview" option in diagram combo&lt;/li&gt;&lt;li&gt;SnapGridSize property added to AbstractDiagram; and snapping implemented in Diagram rendering&lt;/li&gt;&lt;li&gt;inherited derived association ends was incorrectly marked as codederived in the DerivationExpressions editor&lt;/li&gt;&lt;li&gt;Fixed problem overriding with codederived inherited attributes&lt;/li&gt;&lt;li&gt;non-navigable ends of derived associations don't display the label anymore&lt;/li&gt;&lt;li&gt;DerivationExpressions now detect if a member is codederived and doesn't allow editing&lt;/li&gt;&lt;li&gt;DerivationExpressions now use RuntimeName when generating the TaggedValue&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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. &lt;/li&gt;&lt;li&gt;Fixed 846: ExternalIdService.ObjectForId now returns null if the id is null or empty string&lt;/li&gt;&lt;li&gt;foreach (ITransition Transition in vertex.Outgoing) failed when region had no start state (vertex==null)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for attributemappers to intervene in sorting on their columns. Required for for example Sqlserver Text-column.&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Ocl: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ocl operation "EmptyList" was incorrectly returning an element instead of a list&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IDE:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Eco4 upgrade now also upgrades version number of DroopyEyes assemblies&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ViewModels:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Small viewmodel Grids did not always fit in the designated TableLayoutCell&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;WebAutoForm doesn't call EnsureRelatedObjects for derived roles anymore&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.4539&lt;br /&gt;&lt;/h2&gt;&lt;h3&gt;CodeGen: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for having custom names for "innerlinks" and "linkroles"&lt;/li&gt;&lt;li&gt;better codegen for assocends (regarding hasUserCode)&lt;/li&gt;&lt;li&gt;Added SetterVisibility on AssociationEnds&lt;/li&gt;&lt;li&gt;Statemachine constants had region in them and that was wrong&lt;/li&gt;&lt;li&gt;Fixed bug in codegen when generating a new user method that is abstract and has return type. Now no body is emitted.&lt;/li&gt;&lt;li&gt;More improvements in codegen-performance, now "UpdateProjectFiles" doesn't need to locate each file via the slow COM-interfaces of VS.&lt;/li&gt;&lt;li&gt;Improved performance when codegenerating large models.&lt;/li&gt;&lt;li&gt;Added more detailed status messages in status bar when codegenerating.&lt;/li&gt;&lt;li&gt;The default namespace for sub-packages will now contain a "." between each parent packagename&lt;/li&gt;&lt;li&gt;map "(", ")" and "&amp;amp;" to "_" when generating the runtime names for model elements&lt;/li&gt;&lt;li&gt;code Derived association partial methods got model name on type instead of RuntimeName - fixed&lt;/li&gt;&lt;li&gt;Fixed renaming of the namespace in the sourcefile for the package when the package namspace is changed in the model&lt;/li&gt;&lt;li&gt;Fixed codegen issue for image and blob (any attribute type that generates an array-type)&lt;/li&gt;&lt;li&gt;Added support for Package.AdditionalNamespaces in codegeneration&lt;/li&gt;&lt;li&gt;Added support for array-typed attributes in the codegeneration&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;Every trigger method gets an TriggerName_CanTrigger method that returns null and executes AsIObject().StateMachine.CanTrigger("TriggerName",arguments).&lt;/li&gt;&lt;li&gt;fixed bug with how IsQuery-attribute is added to user-methods when codegeranting&lt;/li&gt;&lt;li&gt;InvalidOperationException during codegen will now only show the message, and not the whole callstack.&lt;/li&gt;&lt;li&gt;Fixed codegen problem when a file in the solution doesn't exist on disk&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Ocl:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added ocl-operations aDecimal.toDouble and aDouble.toDecimal&lt;/li&gt;&lt;li&gt;Added new ocl-method: nullValue. example: String.nullValue, Customer.nullValue simply returns a typed null-value.&lt;/li&gt;&lt;li&gt;Two new ocl operations: "IsDirty" (for objects) and "IsDirtyMember" (for members). Currently doesn't subscribe to the transition from dirty to clean.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winform: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Winform Autoform control for enums now use a DropDownList.&lt;/li&gt;&lt;li&gt;EcoSpacedebugger/Dirtyobjects-panel now shows the object-state (dirty/new/deleted)&lt;/li&gt;&lt;li&gt;Added a textbox for the ecospace debugger that can be dragged to and act as a context for the ocl expression&lt;/li&gt;&lt;li&gt;Autoforms now show a "*" after the membername for modified members&lt;/li&gt;&lt;li&gt;Fixed crash on doubleclick in Multilink tab-pages in winform autoform &lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 853: Setting nullable enums via the Element-interfaces didn't work.&lt;/li&gt;&lt;li&gt;Fixed issue with LinkOperationCache. For indirect associations (with link-objects), both SinglelinkCatchers and MultilinkCatchers received the Link-role rather than the main role.&lt;/li&gt;&lt;li&gt;Fixed 843: AssociationEnds to Link-objects were not populated if the main role was not already fetched&lt;/li&gt;&lt;li&gt;Partial fix for bug 839: Associations with link-objects will now notify all links after both ends are completed.&lt;/li&gt;&lt;li&gt;Added a new tagged value for the ecospace: Eco.InitializeNullableStringsToNull.&lt;/li&gt;&lt;li&gt;IElement.GetValue&amp;lt;T&gt; now returns null if the cast is invalid.&lt;/li&gt;&lt;li&gt;Fixed sortorder for the nullrow when NullRowMode = First or Last.&lt;/li&gt;&lt;li&gt;Added extension methods for IEcoObject (GetValue&amp;lt;T&gt;() and ServiceProvider())&lt;/li&gt;&lt;li&gt;Fixed bug when trying to do EnsureContentsCurrent on a derived association &lt;/li&gt;&lt;li&gt;Fixed bug in how ECO resolves types in references assemblies.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Fixed problem with triggerqueries ("mytrigger?(parameters)") that takes null-parameters&lt;/li&gt;&lt;li&gt;Implicit link classes now also respect the setting "DefaultSuperClass" in the package of the association.&lt;/li&gt;&lt;li&gt;Added missing registration of IActionLanguageTypeService in ServiceProvider&lt;/li&gt;&lt;li&gt;Fixed bug when creating a tuple-instance where one part is an object instance that is a subclass of the part-declaration&lt;/li&gt;&lt;li&gt;Multiplicityconstraints now use the "Presentation" of the associationEnd in the description of the constraint&lt;/li&gt;&lt;li&gt;Added AllowPartialTrusted callers to all runtime assemblies&lt;/li&gt;&lt;li&gt;Fixed problem in Linq2ocl when an expression refers to a property of a non-eco object&lt;/li&gt;&lt;li&gt;Fixed problem when a linq2Ocl query contained a static property like "Environment.MachineName", &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;HasUserCode is not imported from EcoModeler for AssociationEnds anymore&lt;/li&gt;&lt;li&gt;Fixed 847 : Anchors were wrong in the Modlr Prototype-dialog&lt;/li&gt;&lt;li&gt;Fixed issue with disconnecting events in modlr&lt;/li&gt;&lt;li&gt;Added support for "natural" filenames for diagrams, viewmodels and tagextensions in ecomdl-files (not enabled by default for old models yet)&lt;/li&gt;&lt;li&gt;ModelErrors-dialog doesn't recreate the TypeSystem for each span-validation, improves performance dramatically!&lt;/li&gt;&lt;li&gt;Fixed problem when importing ecopackages failed (file locks were not released properly)&lt;/li&gt;&lt;li&gt;Fixed parsing errors when DerivationExpressions contained complex expressions (with line-feeds for example)&lt;/li&gt;&lt;li&gt;UMLClassDiagrams and AutoDiagrams now share the same WPFHost to reduce blinking when switching&lt;/li&gt;&lt;li&gt;Scrollbars correctly initiated for diagram sizes&lt;/li&gt;&lt;li&gt;Current diagram saved to settings and restored on load &lt;/li&gt;&lt;li&gt;Forgot to init the toolwindow with the new ecospace when it was recreated before a load.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Derived links are still red, but now also dashed.&lt;/li&gt;&lt;li&gt;Links in autoclass diagrams are now black.&lt;/li&gt;&lt;li&gt;Doubleclick in modlr tree gives auto diagram.&lt;/li&gt;&lt;li&gt;Added EditableNotes in flowdocument-rich-text-style&lt;/li&gt;&lt;li&gt;Improved performance when importing/loading large models&lt;/li&gt;&lt;li&gt;fix 796: Import of "body", "Precondition" and "postcondition" from EcoModeler was broken&lt;/li&gt;&lt;li&gt;Fixed EcoModeler import for classes that are placeholders (enum types for example)&lt;/li&gt;&lt;li&gt;Added detection of a few unknown nodetypes in EcoModeler files.&lt;/li&gt;&lt;li&gt;In certain cases placeallunplaced... functions got an index out of bounds ; fixed&lt;/li&gt;&lt;li&gt;Added a button to state diagrams to easily show owning class in autoclassdiagram&lt;/li&gt;&lt;li&gt;Added Navigate to code for attribute and class (before only for method)&lt;/li&gt;&lt;li&gt;Modlr tree changes; now typing is "navigate to match text in same level" and Start edit is done with double-click or F2. &lt;/li&gt;&lt;li&gt;Modlr tree changes; Return and Enter shows AutoClassDiagram for classes, and displays the Diagram when on diagram node. &lt;/li&gt;&lt;li&gt;Added validation of OCL-expressions to the error-form in Modlr&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Disabled some menuitems for elements in referenced packages &lt;/li&gt;&lt;li&gt;GenericTypes handled in CodeGen and in Modlr Signature parsing&lt;/li&gt;&lt;li&gt;Bug in EcoModelerImport when having complex Generics as parameters: Parameter types may look like this Dictionary&amp;lt;string,Dictionary&amp;lt;string,double&gt;&gt; so a simple split on "," will not suffice. Fixed.&lt;/li&gt;&lt;li&gt;Also bug in EcoModelerImport parameter parse; sensitive to double spaces - fixed.&lt;/li&gt;&lt;li&gt;Fixed problem with importing EcoModeler models with relations between classes and interfaces &lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;EcoModelerImport issue when importing WeakAssociationSymbol if only one was available of the two stated (now skipped)&lt;/li&gt;&lt;li&gt;EcoModelerImport issue when reference to class pointed out interface import gave halting exception (now skipped)&lt;/li&gt;&lt;li&gt;Added a dictionary with all modlr editor panes so the correct ecospace can be located for a model&lt;/li&gt;&lt;li&gt;Added an event for when the debugger is started so we can check for modified models even if the projects were not compiled.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem when two parent mapped classes have the same association. It caused duplicate FKs and Indices&lt;/li&gt;&lt;li&gt;Fixed bug in OclPs when querying AllInstances for parentmapped classes. &lt;/li&gt;&lt;li&gt;Added transaction wrapping when creating triggers/generators for interbase/firebird autoinc columns&lt;/li&gt;&lt;li&gt;Fixed support for FileMappingProvider.ResourceName. It now looks in all assemblies in the project.&lt;/li&gt;&lt;li&gt;Fixed problem with error detection when a class has multiple aliases with autoinc key implementations for the same key-def&lt;/li&gt;&lt;li&gt;Fixed 791: Versioned classes with childmapped superclasses didn't get a stop-time column. caused nullreference exceptions.&lt;/li&gt;&lt;li&gt;Fixed problem with custom primary keys and DefaultSingleLinkColumnName&lt;/li&gt;&lt;li&gt;DefaultORMappingBuilder.IdColumnName now supports expanding the tablename, so setting the value to "&amp;lt;TableName&gt;ID" will cause the primary key to be called "CustomerID"&lt;/li&gt;&lt;li&gt;When a db schema is created, the columns are now sorted in alpha-order.&lt;/li&gt;&lt;li&gt;Firebird now sets the TOP-keyword by default to "FIRST"&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;SQLDatabaseConfig.SqlTopKeyword: The Top keyword as in select Top x field from table.Firebird uses First instead of Top(default)&lt;/li&gt;&lt;li&gt;Added new errormessage for invalid class/id-mapping&lt;/li&gt;&lt;li&gt;Fixed error message when pmapper fails to load data for a member&lt;/li&gt;&lt;li&gt;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&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ViewModels:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added example for OnColumnUIOverride&lt;/li&gt;&lt;li&gt;Added ViewModelWPFUserControlOverride to enable better understanding of ViewModels&lt;/li&gt;&lt;li&gt;ViewModelColumns now keep track of AllowNull and renders checkboxes with threestate if applicable&lt;/li&gt;&lt;li&gt;DateTimePickers in winform viewmodels now allow any datetime-value (DateTimePicker.MinDate = DateTime.MinValue)&lt;/li&gt;&lt;li&gt;grid columns in viewmodels are now also marked as readonly if the data-expression results in a readonly element&lt;/li&gt;&lt;li&gt;Setting null element gave exception on ViewModel. Fixed.&lt;/li&gt;&lt;li&gt;SelectionChanged in ViewModelGrids (winforms) removed (cleaned)&lt;/li&gt;&lt;li&gt;Added event that fires when UI grid cells change readonly or visible state&lt;/li&gt;&lt;li&gt;Added preview rects while moving stuff in ViewModel-preview&lt;/li&gt;&lt;li&gt;Drag drop in preview window now respects the internal position of the drag of a large control. &lt;/li&gt;&lt;li&gt;Added context menus to preview to increase and decrease spans.&lt;/li&gt;&lt;li&gt;Subscription on ViewModel that maintains the vCurrent_ variables&lt;/li&gt;&lt;li&gt;ViewModel expressionForReadOnly and expressionForVisible has been reworked to act on root context for all columns.&lt;/li&gt;&lt;li&gt;New variables available in viewModels; vCurrent_[ViewModelClass]&lt;/li&gt;&lt;li&gt;Several bugs for WPF-viewmodels fixed.&lt;/li&gt;&lt;li&gt;ReadOnlyExpression and VisibleExpresion now works for all UI-controls including buttons and grid columns, for wpf and for winforms.&lt;/li&gt;&lt;li&gt;An owners and building sample in WPF with viewmodels&lt;/li&gt;&lt;li&gt;Added property for ViewModelColumns if they have the column name as the presentation.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Bug in ViewModel Currency handling for Master-detail-detail fixed.&lt;/li&gt;&lt;li&gt;Styling now tests stylename.TypeName first, then stylename; to enable different styles on control and label&lt;/li&gt;&lt;li&gt;DataGrids does not grow, unless they are in an unbounded environment.&lt;/li&gt;&lt;li&gt;DataGridColumns added to SpawnedArtifacts.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Fixed problem with apply mode in ViewModelEditor&lt;/li&gt;&lt;li&gt;ViewModel ReadOnlyExpression was wrongfully applied to master-details where the expression was not valid (causing silent expceptions)&lt;/li&gt;&lt;li&gt;Fixed problem with initializing the viewmodel combo to the first viewmodel in the list.&lt;/li&gt;&lt;li&gt;Spans: Winform preview button now visible regardless of which element is focused in editor&lt;/li&gt;&lt;li&gt;Preview is now better anchored and can be fitted to visible area.&lt;/li&gt;&lt;li&gt;Added ViewModelUserControl.SetElement in Winform implementation&lt;/li&gt;&lt;li&gt;Bug in helper function GetNonNullableResultType gave ViewModel errors if expression did not return a type at all (like in actions)&lt;/li&gt;&lt;li&gt;FocusFirst in winform viewmodels doesn't focus readonly textboxes&lt;/li&gt;&lt;li&gt;ReadOnlyExpression on COlumn for Grids for WinForms is no bound and updated by ExpressionForReadOnly&lt;/li&gt;&lt;li&gt;ExpressionForReadOnly For ViewModel is checked for errors&lt;/li&gt;&lt;li&gt;Span.ExpressionForReadOnly now has default value '' so that it is not written to file if not set.&lt;/li&gt;&lt;li&gt;ViewModel now has ExpressionForReadOnly that acts on the whole ViewModel and all of the owned controls&lt;/li&gt;&lt;li&gt;ViewModel Visible-Expression implemented for WinForm and WPF , simple controla, Combos, Grids and Buttons.&lt;/li&gt;&lt;li&gt;ViewModel VisibleExpression now also controls visibility of label (if applicable)&lt;/li&gt;&lt;li&gt;You can now drag around already placed columns and drop them on other placed columns. &lt;/li&gt;&lt;li&gt;DragStart of placed viewmodelcolumn was shaky before; fixed &lt;/li&gt;&lt;li&gt;Lookup picklist now has a relation drawn on the left side of the tree. &lt;/li&gt;&lt;li&gt;Preview is now freely zoomable. &lt;/li&gt;&lt;li&gt;Insert and delete column and row in the preview with new contextmenu.&lt;/li&gt;&lt;li&gt;ViewModel GridColumn Width was not correct in WPF, it set only MinWidth, Now also Width&lt;/li&gt;&lt;li&gt;Multiple issues with ViewModelASPNET fixed.&lt;/li&gt;&lt;li&gt;Added property to winform viewform to disable doubleclick behaviour&lt;/li&gt;&lt;li&gt;Added event on winform ViewModelUserControl to allow creation of gridview subclass.&lt;/li&gt;&lt;li&gt;ReadOnlyExpression for Grid columns is now applied by evaluating it against the root object.&lt;/li&gt;&lt;li&gt;the new span for a combobox presentation is now named after the singlelink rather than after the class to avoid nameclashes.&lt;/li&gt;&lt;li&gt;Added predefined column options for attributes of singlelinks.&lt;/li&gt;&lt;li&gt;ColumnForPickList in viewmodel is now decorated with an association arrow in viewmodeleditor&lt;/li&gt;&lt;li&gt;Fixed bugs with preview drag drop; it did not work when using negative xpos,ypos&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;VS templates:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Default EcoSpace Template now includes the tagged values that can be defined for models.&lt;/li&gt;&lt;li&gt;Added settings for enabling AJAX in the project templates for web.config.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;IDE related&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 789: AccessViolation when MessageService is not installed for some reason.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Installer:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;If GAC-installer fails, it now shows which assembly failed, and continues to try the rest.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;WPF:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;EcoObjectDataProvider now has a parameterless constructor so it can be instansiated in xaml. It has a new property Handle.&lt;/li&gt;&lt;li&gt;EcoBinding, could not bind to transformations due to bug. Fixed.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;DroopyEyes&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added events to detect when the undoblock of a DirtyObjectCatcher is gone from the undostack.&lt;br /&gt;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.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;EcoDataSource new property RootExternalId: Given an external ID this takes precedence over the PsExpression, and the resolved object acts as root for the Expression&lt;/li&gt;&lt;li&gt;EcoDataSource new property RootExternalIdClass: If the RootExternalId evals to null a typed null reference (type==RootExternalIdClass) will be used instead&lt;/li&gt;&lt;li&gt;EcoDataSourceView - bug that LoadViewState could get null access when LoadingViewState fixed&lt;/li&gt;&lt;li&gt;EcoDataSourceView - bug that Update took all new values even if they where same as oldvalue -&gt; unpredictable results and overwrites for slow updates. Fixed.&lt;/li&gt;&lt;li&gt;EcoDataSourceView uses RootExternalId if set and RootExternalIdClass if RootExternalId evals to NullRowMode&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;5.0.0.4334 2009-06-24&lt;/h2&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Added a dictionary with all modlr editor panes so the correct ecospace can be located for a model&lt;/li&gt;&lt;li&gt;Added an event for when the debugger is started so we can check for modified models even if the projects were not compiled.&lt;/li&gt;&lt;li&gt;Added friendly message when the codegen cant find the current ecospace&lt;/li&gt;&lt;li&gt;Added a check before codegen that the project only contains one model-file.&lt;/li&gt;&lt;li&gt;Added Class.AdditionalNamespaces to inject new using-clauses in the autogenerated code&lt;/li&gt;&lt;li&gt;Fixed incorrectly qualified classname when an association class and the association belongs to packages with different namespaces.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Fixed 784: methods with body (generated in autogenerated code) now automatically handle parameters that are domain classes in other namespaces.&lt;/li&gt;&lt;li&gt;Fixed invalid location of seealso tag in codegen&lt;/li&gt;&lt;li&gt;Fixed detection of runtimeversion text in generated code so it can be removed before code is saved.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Installer:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Toolbox components were not correctly initialized for new users&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with undoing link-objects that were modified, but not created in the undoblock.&lt;/li&gt;&lt;li&gt;Added LinkOperationCache utility class to intercept operations on single and multilinks&lt;/li&gt;&lt;li&gt;Removed AssociationEnd.HasUserCode&lt;/li&gt;&lt;li&gt;Added ocloperation "oclSingleton" to retrieve the first and only object of a class.&lt;/li&gt;&lt;li&gt;Added parameter to DatablockConverter.ConvertToXml to indicate whether the xml-document should include the model-node.&lt;/li&gt;&lt;li&gt;Added a new method on Eco.Support.TypeSupport: StripNullable, converts a nullable type to the corresponding non-nullable type.&lt;/li&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;Don't add inherited multiplicityconstraints. Constraints in superclasses are already supposed to be considered&lt;/li&gt;&lt;li&gt;Enumerators for ObjectCollectionImpl now calls EnsureFetchedPage before returning the objectinstance to ensure efficient fetching of objects.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;AutoForms:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Nullable types are now handled more generically in winform autoforms.&lt;/li&gt;&lt;li&gt;Winform Autoforms now have the attributes and singlelinks sorted alphabetically&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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"&lt;/li&gt;&lt;li&gt;Added CommandTimeout property to all ADO.net 2.0 compatible persistencemappers&lt;/li&gt;&lt;li&gt;Improved algorithm for generating alias-names. truncates the tablename first using ExpandName and then adds "_A"&lt;/li&gt;&lt;li&gt;Int64 keys are now treated like int32 keys when it comes to determining if they should be passed as literals or parameters in queries&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Modlr tree; Tooltip on diagram and class to tell file name&lt;/li&gt;&lt;li&gt;Added TaggedValueType.Id to make sure the order in the xml-file for tagextensions is stable&lt;/li&gt;&lt;li&gt;Added Presentation properties to the ObjectInspector for Class, Attribute, Method and AssociationEnd&lt;/li&gt;&lt;li&gt;Added IClass.Presentation, IFeature.Presentation + related Tagged values&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoSpace designer:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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...&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Documentr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Tab key doesn't tab to readonly parts of the editor&lt;/li&gt;&lt;li&gt;Added "file://" to to EditorDirectory location. Caused problems in IE6&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ViewModels:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;EcoSpace was browsable on ViewModelWinForm. Fixed&lt;/li&gt;&lt;li&gt;Added action in span-editor for preconfigured combos/Picklists&lt;/li&gt;&lt;li&gt;Added UserData attribute to SpanVariables&lt;/li&gt;&lt;li&gt;Alignment of numeric winform grid columns.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;SiteSync:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed bug in SiteSync with importing data into classes with derived assocs or attributes.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.4272 2009-06-12&lt;/h2&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;DoubleClick on row in ModelErrors dialog selects TreeView or brings up ModelView editor&lt;/li&gt;&lt;li&gt;ModelErrors dialog now also shows errors from ViewModels.&lt;/li&gt;&lt;li&gt;NavigateToCode did not respect NationalCharacters&lt;/li&gt;&lt;li&gt;Fixed sorting of association ends in modlr-tree&lt;/li&gt;&lt;li&gt;non-navigable association ends are not visible in the modlr treeview&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ViewModels:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Editboxes for numeric fields will only accept numeric characters now (Winforms)&lt;/li&gt;&lt;li&gt;Support in WPF viewmodels to set the whole usercontrol to readonly.&lt;/li&gt;&lt;li&gt;Label is shown for IsStatic in ViewModel&lt;/li&gt;&lt;li&gt;ViewModelEditor shows better winform preview, also make use of Preview flag so that static labels show in designtime.&lt;/li&gt;&lt;li&gt;Prepare for Preview rendering so that static texts will show in design time&lt;/li&gt;&lt;li&gt;Added simple styling h1,h2,h3&lt;/li&gt;&lt;li&gt;ViewModels did not correctly decide needed size of display grid. Orphaned nestings created controls but with not data.&lt;/li&gt;&lt;li&gt;ViewModel event  vm.HandleApplyStyle is called even if the column control creation is overriden&lt;/li&gt;&lt;li&gt;ViewModels without columns were completely ignored in runtime&lt;/li&gt;&lt;li&gt;Viewmodel colums for readonly values (such as derived attributes, freeze-attributes etc) are now made readonly in the UI&lt;/li&gt;&lt;li&gt;Fixed bug in SpanEditor; if you switched ViewModel while viewing details for a column associated to Nesting -&gt; 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 ))&lt;/li&gt;&lt;li&gt;Checkboxes are now rendered with a height of 20px&lt;/li&gt;&lt;li&gt;Fixed spacer-panels to ensure minimum-width in grid&lt;/li&gt;&lt;li&gt;Update ViewModelForm selected on click and keynav&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Ocl:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winforms:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Autoforms and EcoSpaceDebugger now close if you press ESC&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;SiteSync:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed bug in SyncHandler for empty object-references&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed null-reference exception when converting a string-attribute with the value "&amp;lt;null&gt;" to datablock xml.&lt;/li&gt;&lt;li&gt;IObject null-references can now return a proper IEcoServiceProvider&lt;/li&gt;&lt;li&gt;TypeSupport.GetMethod now also detects inherited private methods.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added a check for childmapped classes with parentmapped subclasses&lt;/li&gt;&lt;li&gt;Fixed null-reference bug when using custom mapping with a model that contains transient classes.&lt;/li&gt;&lt;li&gt;Improved parsing of DiscriminatorValue tagged value.&lt;br /&gt;Supported formats are now:&lt;br /&gt;"&amp;lt;value&gt;" (if there is only one discriminator)&lt;br /&gt;"&amp;lt;discriminatorname&gt;=&amp;lt;value&gt;,&amp;lt;discriminatorname&gt;=&amp;lt;value&gt;"&lt;br /&gt;"Name=&amp;lt;discriminatorname&gt;,Value=&amp;lt;value&gt;"&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;DroopyEyes:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed issue in DirtyObjectCatcher with resetting LastDirtyObjectCount when undoing, and resubscribing to the dirtylist after firing the idle-event.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixes for handling renames in Prism more gentle&lt;br /&gt;New files are now added to the correct folder in the Prism project manager&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Project templates:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added an exceptionhandler to the winform program template&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.4234 2009-06-03&lt;/h2&gt;&lt;h3&gt;Winforms:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Changed caption of the EcoSpaceDebugger button in ContextAgent from "Show Eco debugger" to "Debugger" so that it is not truncated.&lt;/li&gt;&lt;li&gt;Autoforms now add a scrollbar to the lisst of attributes/singlelinks if they can't fit on the screen.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed null-reference exception when an implicit link-object is deleted&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;ViewModels:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Rightjust on numbers in ViewModelForms&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;IDE Integration:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Eco and Modlr package now aborts immediately if VS is started with /Setup&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 773: DbReverse doesn't rename the package unless it is called "EcoPackage*"&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;5.0.0.4226 2009-06-02&lt;/h2&gt;&lt;h3&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;When files are removed from the EcoMdl-file, they are now deleted from disk too.&lt;/li&gt;&lt;li&gt;Prototype run can now be peformed against SQLServer database &lt;/li&gt;&lt;li&gt;Modlr-tree now has attributes, methods and associationEnds in alphabetic order&lt;/li&gt;&lt;li&gt;Classes with no package (broken classes) will now only have one property (the package-property) in the ObjectInspector in the designsurface&lt;/li&gt;&lt;li&gt;Improved errorhandling when loading broken models&lt;/li&gt;&lt;li&gt;AssociationEnd has their own category in Wrappers and also a prefix to make them stay-together and be easy to find&lt;/li&gt;&lt;li&gt;Shortcut keys based on F1-12 supported&lt;/li&gt;&lt;li&gt;ctrl-f12 brings up viewmodel editor&lt;/li&gt;&lt;li&gt;Dividers in submenus fixed&lt;/li&gt;&lt;li&gt;Remember and select last ViewModel when opening dialog&lt;/li&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;AutoClass diagram had several problems with drawing; this is now tuned up a bit.&lt;/li&gt;&lt;li&gt;When in edit mode in diagram and pressing TAB, the edit is applied and ended.&lt;/li&gt;&lt;li&gt;Prototype form has ability to use xml persistence&lt;/li&gt;&lt;li&gt;New Get/SetSetting class ModlrSettings; first thing stored here is the xml-persistence file for Runningmodel.&lt;/li&gt;&lt;li&gt;Fixed problem when trying to store empty documentation for a documentable item&lt;/li&gt;&lt;li&gt;Added a tagged valud ("Eco.ModeledName") in the codegenerator when the modelled name differs from the codegenerated name&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improved performance for codegeneration for models with multiple packages&lt;/li&gt;&lt;li&gt;Added codegeneration of partial derive-methods&lt;/li&gt;&lt;li&gt;Added PreDelete as a partial method. All PreDelete method declarations must change to partial methods instead of private methods&lt;/li&gt;&lt;li&gt;Generated partial method PreDelete now takes a ref-parameter "canDelete" that can prevent the deletion.&lt;/li&gt;&lt;li&gt;Fixed Codegeneration for nullable types that are not in the typedictionary&lt;/li&gt;&lt;li&gt;Fixed 769: CodeGen was not able to locate the ecomdl-file correctly in solutions where the projects were located in subfolders.&lt;/li&gt;&lt;li&gt;Workarounds for Prism codemodel issues.&lt;/li&gt;&lt;li&gt;Fixed regexp to match id-attributes for Prism code&lt;/li&gt;&lt;li&gt;INotifyPropertyChanged is now correctly codegenerated for Prism versions of 3.0.18+&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added parameter to BuildBlockForUpdate to export attributes regardless of SaveAction.&lt;/li&gt;&lt;li&gt;Fixed MaxLengthSupportFunctions support for TableLayoutGrid&lt;/li&gt;&lt;li&gt;Added support for overloaded methods in the mode, ocl and winform autoforms.&lt;/li&gt;&lt;li&gt;Fixed index out of bounds in MatchSignature when signatures were of different lengths&lt;/li&gt;&lt;li&gt;Added EAL-operation: "setToNull". Sets a nullable attribute to null&lt;/li&gt;&lt;li&gt;Fixed 766: Eco LINQ expressions failed when using the constants "true" or "false"&lt;/li&gt;&lt;li&gt;"Identity collects" ("xxx-&gt;Collect(myVar|myVar)") is now handled in OclPS (they are generated as a consequence of the LINQ-implementation in Prism)&lt;/li&gt;&lt;li&gt;Added ElementHandle.AddNewObject event to catch when a bindingnavigator for example calls AddNew on the IBindingList of a handle&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Implemented support for TOP in OclPS-queries that uses MaxAnswers&lt;/li&gt;&lt;li&gt;Fixed 731: Added validation for invalid columnnames in discriminator implementations.&lt;/li&gt;&lt;li&gt;Fixed 770: Evolve did not correctly quote names when inserting new instances in a superclass table&lt;/li&gt;&lt;li&gt;Avoid adding duplicate columns when loading nonembedded links. causes exceptions in Firebird2.5&lt;/li&gt;&lt;li&gt;Added default int64 mapper for Firebird (bigint)&lt;/li&gt;&lt;li&gt;Updated firebird assembly to use Firebird connection 2.5.0.0&lt;/li&gt;&lt;li&gt;Added DoubleAsNumeric and DateTimeAsSmallDateTime to DefaultAttributeMappers&lt;/li&gt;&lt;li&gt;Fixed expected type for new Firebird Int64AsBigInt mapper&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winforms:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;doubleclick in a DataGridView between two column headers doesn't invoke autoforms but instead autosizes the column as expected.&lt;/li&gt;&lt;li&gt;AutoForms get stringrep + : Class.RuntimeName in header&lt;/li&gt;&lt;li&gt;AutoForm shows all compliant ViewModels in a TabControl (including the original AutoForm)&lt;/li&gt;&lt;li&gt;autoform checkbox in winforms now handles editing nullable booleans nicer.&lt;/li&gt;&lt;li&gt;Improved key board navigation in EcoSpace debugger&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ContextAgent:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with ContextAgent where some drags would select the wrong node.&lt;/li&gt;&lt;li&gt;ContextAgent doesn't reset the y-coordinate for new components until it reaches the end of the form.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;WPF:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;EcoObjectDataProvider new class: Use this class to wrap a Eco ElementHandle and make it into a WPF datasource for DataContext or Binding Source property&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ViewModels:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;GetElement for ViewModel&lt;/li&gt;&lt;li&gt;WinFormsViewModel control now can give its DesiredSize&lt;/li&gt;&lt;li&gt;Added ViewModelUserControl.FocusFirst to force the focus of the upper leftmost control of the viewmodel&lt;/li&gt;&lt;li&gt;Size of AutoForms that contain ViewModels adapt&lt;/li&gt;&lt;li&gt;Issue with ViewModel Combo resolved&lt;/li&gt;&lt;li&gt;Bug that nullrowmode in ViewModels looked at the wrong column.&lt;/li&gt;&lt;li&gt;Drag of columns on to preview &lt;/li&gt;&lt;li&gt;Drag from preview to new empty position&lt;/li&gt;&lt;li&gt;Click on ViewModel errors focus correct column&lt;/li&gt;&lt;li&gt;nullable atrtibutes in ViewModel handled&lt;/li&gt;&lt;li&gt;OnColumnUIOverride and OnColumnUIApplyStyle added for ViewModel controls WPF and WinForm&lt;/li&gt;&lt;li&gt;Mistake in viewModel.FinalizeUI crashed VS&lt;/li&gt;&lt;li&gt;Bug in ViewModel WPF, ColCount was used instead of ColWidth&lt;/li&gt;&lt;li&gt;Actions are not rendered as grid columns in ViewModelUI &lt;/li&gt;&lt;li&gt;new property ViewModel.TabOrder&lt;/li&gt;&lt;li&gt;new event ViewModel.OnColumnUIOverride &lt;/li&gt;&lt;li&gt;new event ViewModel.OnColumnUIApplyStyle&lt;/li&gt;&lt;li&gt;ColWidth RowHeight added to viewmodels&lt;/li&gt;&lt;li&gt;ExpressionForReadOnly and ExpressionForVisible in error checking&lt;/li&gt;&lt;li&gt;Drag drop to reorder ViewModelColumns&lt;/li&gt;&lt;li&gt;IsStatic ExpressionForReadOnly ExpressionForVisible added in RT-model for viewmodels&lt;/li&gt;&lt;li&gt;Fixed bugs in WPF and winform viewmodel rendering&lt;/li&gt;&lt;li&gt;Error check for spans now also find colliding grids&lt;/li&gt;&lt;li&gt;Span dialog has more attributes, IsStatic, Expression for Visible and ReadOnly etc&lt;/li&gt;&lt;li&gt;Span Dialog selects columns from click in preview&lt;/li&gt;&lt;li&gt;New method to IViewUICreator interface FinalizeUI&lt;/li&gt;&lt;li&gt;PresentationString In ViewModelColumn can now be empty&lt;/li&gt;&lt;li&gt;Currency, actions, right aligned ints and doubles, labels on grids for ViewModelWPF &lt;/li&gt;&lt;li&gt;ViewModelWPF binding now works and master detail&lt;/li&gt;&lt;li&gt;Bug In SpansWindow used class.Name instead of Runtime name; gave "no context" when settings expressions&lt;/li&gt;&lt;li&gt;Bug In spansWindow made spans loose selected class and other single links when closing form (intermittent)&lt;/li&gt;&lt;li&gt;SpanWindow now has a working VariableType-Picker-combo&lt;/li&gt;&lt;li&gt;Attributes and Associations are alpha-sorted in Span-submenus&lt;/li&gt;&lt;li&gt;If Model was invalid SpanWindow error checking failed and crashed app&lt;/li&gt;&lt;li&gt;ViewModel editor is now non modal, so that you can browse model while having ViewModelEditor open&lt;/li&gt;&lt;li&gt;ViewModelEditor and Documtr editor now closes when closing model, thus avoiding VS-crash that came from running AutoSubscription on non active EcoSpace&lt;/li&gt;&lt;li&gt;SpanModel got new associations ValidatesColumns and EnablesColumns&lt;/li&gt;&lt;li&gt;SpanModel got new defaultvalues&lt;/li&gt;&lt;li&gt;ViewModelColumns with -1 in X or Y are hidden from display&lt;/li&gt;&lt;li&gt;ViewModelColumn for Winform was wrong for MultiLineText?&lt;/li&gt;&lt;li&gt;WPF Preview for ViewModels had align issues&lt;/li&gt;&lt;li&gt;Cursor handle is now correct so that Action handling is done on the correct (selected) object in ViewModel winform forms&lt;/li&gt;&lt;li&gt;Added DefaultDataSourceUpdateMode for winform viewmodels&lt;/li&gt;&lt;li&gt;Datetime picker how uses the short-mode.&lt;/li&gt;&lt;li&gt;All bindings are now created with "FormattingEnabled" = true&lt;/li&gt;&lt;li&gt;ViewModelWinForms renamed to ViewModelImplementorWinForms&lt;/li&gt;&lt;li&gt;ViewModelWPF renamed to ViewModelImplementorWPF&lt;/li&gt;&lt;li&gt;ViewModelColumn has a SpawnedArtifacts; add your created controls here&lt;/li&gt;&lt;li&gt;ViewModelControlWPF has a DesignModeFlag&lt;/li&gt;&lt;li&gt;ViewModelForm can show gridlines&lt;/li&gt;&lt;li&gt;More on Span Variables; they are now used in expressions and error check&lt;/li&gt;&lt;li&gt;SpanVariable added&lt;/li&gt;&lt;li&gt;SpanDefError moved to own SpanDefErrorHelper&lt;/li&gt;&lt;li&gt;SpanDefError on conflicting positions&lt;/li&gt;&lt;li&gt;Splitter in Span win works&lt;/li&gt;&lt;li&gt;Span window Gui for Variables&lt;/li&gt;&lt;li&gt;New event on ViewModel.OnViewModelActionPopulate; use to populate Actions on ViewModelUsers&lt;/li&gt;&lt;li&gt;Currency handled on Actions&lt;/li&gt;&lt;li&gt;Combobox fix for "formatting enabled"&lt;/li&gt;&lt;li&gt;Winforms Viewmodel now supports to render all components readonly&lt;/li&gt;&lt;li&gt;Bug in Spans display caused exceptions when open while new modlr file was created.&lt;/li&gt;&lt;li&gt;ContextMenus for ViewModels now also include inherited attributes&lt;/li&gt;&lt;li&gt;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".&lt;/li&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;Added a virtual method CreateViewModelWinForm in the winform usercontrol to control the concrete class of the component creator should be instantiated.&lt;/li&gt;&lt;li&gt;New Event on ViewModel allows for user implementation of Action: OnViewModelActionExecute&lt;/li&gt;&lt;li&gt;AutoForms Now fill the window&lt;/li&gt;&lt;li&gt;Made a lot virtual in WinForm ViewModel impl.&lt;/li&gt;&lt;li&gt;Fixed issues with LayoutGrid and Resizing in winforms and wpf.&lt;/li&gt;&lt;li&gt;ViewModel actions are now executed.&lt;/li&gt;&lt;li&gt;Splitters for ViewModelWin. Preview is aligned to bottom.&lt;/li&gt;&lt;li&gt;Prototyping from inside ECO and Gaffr now use the ViewModels from ModelLayer; so prototyping will show any ViewModelAutoForms.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IDE Integration:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 761: Added question to skip upgrade question next time the project is opened.&lt;/li&gt;&lt;li&gt;Fixed Eco4-&gt;Eco5 upgrading of persistencemapperprovider.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.4096 2009-05-10&lt;/h2&gt;&lt;p&gt;IDE templates:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added item templates for C# for EcoSpace and PersistenceMapperProvider&lt;/li&gt;&lt;li&gt;Fixed 759: Code didn't compile when the model name contained a "."&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;Persistence:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;newid() is now a valid DefaultDbValue for SqlServer GUID attributes.&lt;/li&gt;&lt;li&gt;Added Int64AsBigInt as the default int64 mapper for firebird&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Added new interface INumericAttributeMapping to specify scale/precision for columns.&lt;/li&gt;&lt;li&gt;Updated existing mappers for System.Decimal to handle scale/Precision&lt;/li&gt;&lt;li&gt;Fixed 763: Added validation that non-saved objects can't be used as parameters for OclPs queries&lt;/li&gt;&lt;li&gt;Fixed stackoverflow in an extender-method for IOclPsService&lt;/li&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;PersistenceMapperXml/Memory now handles optimistic locking on timestamp&lt;/li&gt;&lt;li&gt;Fixed 760, retrieving enum values that are null always returned the first enum-value in the set&lt;/li&gt;&lt;li&gt;Improved error message for missing discriminators&lt;/li&gt;&lt;li&gt;Added component designer to PersistenceMapperNexusDB&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;Modlr:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added Modlr-properties for Attribute.Scale/Precision when the attribute is a decimal-attribute.&lt;/li&gt;&lt;li&gt;Fixed bug with removing referenced packages.&lt;/li&gt;&lt;li&gt;Adding new associations will now locate a valid package to put it in, Either the package of one of the ends, or the "MostLikelyIntendedPackage".&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Intermittent Null access issue in Modlr fixed&lt;/li&gt;&lt;li&gt;Selection of via point crashed VS - fixed.&lt;/li&gt;&lt;li&gt;ToolTip display in modlr is changed; now content set just before display&lt;/li&gt;&lt;li&gt;selecting an association line will now always select the association in the ObjectInspector. To select an associationend, click the label at the end.&lt;/li&gt;&lt;li&gt;Nested AssociationEnds and Associations in the object inspector don't publish nested properties for associations and other ends.&lt;/li&gt;&lt;li&gt;Fixed problem when prototyping a model with derived associations&lt;/li&gt;&lt;li&gt;Added more validation of the model before starting the designtime prototype-form&lt;/li&gt;&lt;li&gt;#745 Nested states in documentation was rendered wrong. Fixed.&lt;/li&gt;&lt;li&gt;Ordered links now handle the case when the ordernumber in the database is null (will be loaded as ordernumber -1)&lt;/li&gt;&lt;li&gt;Optimisticlocking can now be specified on the EcoSpace with a taggedvalue for those classes that don't specify it themselves and don't havea package that specifies it either.&lt;/li&gt;&lt;li&gt;Gaffr, saved modlr format even if it opened ecomdlr format.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed problem with optimistic locking of singlelinks if the primary key was a guid.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;ViewModels:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;First naive implementation where autoforms find ViewModels named "Class_AutoForm"&lt;/li&gt;&lt;li&gt;Added ViewModels to core; Eco.winforms turned 3.5 in the process and uses LinqExtensions&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;CodeGen:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;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"&lt;/li&gt;&lt;li&gt;Fixed trimming of autogen warnings in generated code for VB and Prism&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Core:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with initializing tuple-parts with null-values&lt;/li&gt;&lt;li&gt;Fixed 764: MapperTypeNames can now contain assemblynames to make them resolveable even if they are in an assembly that is not referenced.&lt;/li&gt;&lt;li&gt;Removed initialization error for non-abstract classes without statemachines that have triggers. Even though it is probably not intended, it is not illegal.&lt;/li&gt;&lt;li&gt;replaced "throw e" with "throw" to avoid loosing the callstack after exceptions.&lt;/li&gt;&lt;li&gt;Added support for tuples in Custom written ocl-operations&lt;/li&gt;&lt;li&gt;Added static method that creates a tupleimpl from an object&lt;/li&gt;&lt;li&gt;Added a guard to avoid recursive tuples (tuples that has a property with the same type as itself)&lt;/li&gt;&lt;li&gt;TypeSystem.GetClassifierByType now handles collections and tuple-types too&lt;/li&gt;&lt;li&gt;Added autosubscriptions for custom ocl operations&lt;/li&gt;&lt;li&gt;Fixed nullreference exception when a guard had a null-body&lt;/li&gt;&lt;li&gt;ObjectIds don't use Generic classes (except in silverlight) because they can't be streamed easily&lt;/li&gt;&lt;li&gt;The value of a VariableHandle is now initialized to a default value if the initial value is empty.&lt;/li&gt;&lt;li&gt;IdToString-event on DatablockConverter changed to IdToNode instead anda new event "NodeToIdKey" was added so that backwards conversion can beplugged as well.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed null-reference bug when exiting from one state into another region.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Installer:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added WPF toolkit to the installer&lt;/li&gt;&lt;li&gt;Added source for Eco.Persistence to the installer&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;ASP:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with derived boolean attributes and ASP autoforms&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;WPF:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added CurrencyManagerHandleWPF that handles the same thing for WPF CollectionView as CurrencyManagerHandle for WindowsForms does for BindingContext&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Winforms:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;winform Autoforms now uses checkboxes for nullable booleans again&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Demos:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Added new demo for ASP providers&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3999 2009-04-10&lt;/h2&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added new form that lists all model-errors (under contextmenu "extras")&lt;/li&gt;&lt;li&gt;New associations now get valid/unique names for both ends.&lt;/li&gt;&lt;li&gt;The (e) indicator is not shown for derived associations&lt;/li&gt;&lt;li&gt;#746 Association to self in modlr handled; &lt;/li&gt;&lt;li&gt;Fixed focus-issue for object inspector when inplace-editor was active&lt;/li&gt;&lt;li&gt;Changed caption of EcoSpaceDebugger to "Open Model Debugger"&lt;/li&gt;&lt;li&gt;#747: ecodiag files now write out the "effectivename" of association ends to make it easier to see what an association is.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;the versionnumber of the .net framework is no longer a part of the generated code&lt;/li&gt;&lt;li&gt;#734: Improved codegen error message when a method has an invalid parameter signature&lt;/li&gt;&lt;li&gt;Codegen got confused when multiple ecomdl files were open at the same time. Corrected.&lt;/li&gt;&lt;li&gt;Added codegeneration of statemachine constants&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fetchhandler now ignores derived members (prevents a crash if an attribute has been persistent in an XML-file and then made derived)&lt;/li&gt;&lt;li&gt;IClass.HasTriggers now also checks superclasses&lt;/li&gt;&lt;li&gt;Fixed null-reference issues with creating a tuple via the VariableFactory&lt;/li&gt;&lt;li&gt;ReflectionReader: Properties are only recognized as associationends if they are marked with "AssociationEnd" in their UmlElement attribute (scrapped backwards compatibility with pre eco2 sourcecode)&lt;/li&gt;&lt;li&gt;Added better error messages for attributes that have a domain class as the type&lt;/li&gt;&lt;li&gt;Added support for string.StartsWith and string.Contains in LINQ&lt;/li&gt;&lt;li&gt;Fixed support for extension-methods (sqlLike and sqlLikeCaseInsensitive)&lt;/li&gt;&lt;li&gt;Added CurrencyManagerHandle.CurrentElement&amp;lt;T&gt;(control) &lt;/li&gt;&lt;li&gt;lightweightnodes also use ArrayList instead of List&amp;lt;T&gt; to be SOAP serializable&lt;/li&gt;&lt;li&gt;replaced generic members in datablock with non-generic to support SOAP serialization&lt;/li&gt;&lt;li&gt;improved error message when a concrete class has triggers, but no statemachine&lt;/li&gt;&lt;li&gt;Fixed memory-evaluation for SqlLike and SqlLikeCaseInsensitive again. now it handles both wildcards and multiline strings.&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;LINQ: fixed problem with comparing a single link with an explicit object (such as "this")&lt;br /&gt;LINQ: Fixed problem when accessing fields of objects.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Web:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improved error message when an EcoSpaceManager can't resolve the type-name&lt;br /&gt;#719: Improved errormessage when web UI component doesn't define any key fields&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Project wizard&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added System.Core to the list of references for the ecospace project template&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;#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.&lt;br /&gt;removed PersistenceMapperFile (was only used for backwards compatibility for reading ECO3 xml file format).&lt;br /&gt;Made PersistenceMapperXml subclassable and added virtual methods for storing and loading xml-files&lt;br /&gt;DatablockConverter now has an event to allow custom rendering of objectids (IdToString)&lt;br /&gt;Fixed update-order when a non-constrained singlelink to a new object with an autoinc id in the same equivalence-group was saved.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Autoforms:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3954 2009-03-31&lt;/h2&gt;&lt;h3&gt;Modlr&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added Exception dialog that shows callstack and asks user to email the info to capableobjects. &lt;/li&gt;&lt;li&gt;Added try catch with a call to the ExceptionDialog in most user entry points places&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Derived associations now uses red lines instead of black.&lt;/li&gt;&lt;li&gt;DerivationExprssions now create the typesystem lazy, handles associations, displays entries for obsolete (renamed or removed) members, uses CommaTextSupport to correctly format the final string.&lt;/li&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;If user chose ecopkg in Gaffr file open -&gt; exception. Fixed.&lt;/li&gt;&lt;li&gt;Orphan state machine could give null access exception when building menu texts&lt;/li&gt;&lt;li&gt;Orphan state machines gave null access exception on file ReadDiagram&lt;/li&gt;&lt;li&gt;When recreating state diagrams for imported ecopkg state machines we forgot to associate the diagram with the attribute &lt;/li&gt;&lt;li&gt;Added "Back to index" hypertext to xsl files for published Documentation&lt;/li&gt;&lt;li&gt;Added hyperlink for ending type of associations to jump to type&lt;/li&gt;&lt;li&gt;Diagram documentation files are prefix with ClassDiagram_ and StateDiagram_ to not collide with Class files with same name&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Shift-arrowkeys moves all selected placed widgets, before we only moved focused widget.&lt;/li&gt;&lt;li&gt;Modlr tree now has two root nodes Packages and Diagrams; easier to work with in large models.&lt;/li&gt;&lt;li&gt;Search-eco-tree was broken. Fixed. Also changed search from StartsWith to Contains to make finding stuff easier.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;EcoModelerImport now set OneLiner documentation for Class, Attribute and Association to CodeComment for Class, Attribute and both associationends.&lt;/li&gt;&lt;li&gt;Import of EcoModeler via points for associations.&lt;/li&gt;&lt;li&gt;ShortCircuit association had a problem that could lead to null reference and crash.&lt;/li&gt;&lt;li&gt;Delete from diagram of placedclass with associactions to self would give index out of range message on first try.&lt;/li&gt;&lt;li&gt;AbstractDiagram has new derived attribute PresentationName that is used in DiagramCombobox. DiagramCombobox shows AbstractDiagrams.allinstances-&gt;orderby(PresentationName) (so that alphabetical order is kept in combo).&lt;/li&gt;&lt;li&gt;#622 Generate code is now on the context menu and has shortcut key ctrl-G&lt;/li&gt;&lt;li&gt;#726 All tool buttons on the diagram surface now applies current edit first.&lt;/li&gt;&lt;li&gt;#725 Focus classes and states after DD-operation&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Added wrappers for all tagextensions so they are exposed directly in the object inspector.&lt;/li&gt;&lt;li&gt;Added full assemblyname for System.Drawing.Color in EcoDatatypes.xml&lt;/li&gt;&lt;li&gt;entries in EcoDatatypes.xml with unknown .net types will be ignored&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Added error when the number of columns for a singlelink doesn't match the number of columns in the key&lt;/li&gt;&lt;li&gt;Fixed problem with inherited autoinc keys that are Attributemapped&lt;/li&gt;&lt;li&gt;name of PrimaryKeyColumns are inherited&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;DbReverse:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;string columns mapped with the generic attribute mapper will now get the length set correctly.&lt;/li&gt;&lt;li&gt;Connectionstrings were added in the inverted order&lt;/li&gt;&lt;li&gt;Removed the EcoSpace debugger that was shown at the end of the Reverse-engineering process &lt;/li&gt;&lt;li&gt;The properties of the connectionstring is now shown in a listview&lt;/li&gt;&lt;li&gt;(un)checking a schema-node in the list of tables will (un)check all tables in the schema&lt;/li&gt;&lt;li&gt;Subpackages are also configured for full O/R mapping configuration in the ObjectInspector&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Ocl:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed type validation for nullable types vs null in ocl&lt;/li&gt;&lt;li&gt;Fixed problem with sqlLike and sqlLikeCaseInsensitive when evaluated in memory with strings that contains linefeeds&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Multilinks now throw proper exceptions when trying to add/set/insert a null-value&lt;/li&gt;&lt;li&gt;Fixed 730: Added validation error for concrete classes with triggers but no statemachine.&lt;/li&gt;&lt;li&gt;Added support for adding additional statemachines in subclasses&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Added a private debug-property for multilinks so it is easier to see the contents&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winforms Autoforms:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Autoform widget for singlelinks doesn't precalculate CanDelete anymore. This can take along time for objects with big relations.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Eco Linq&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for Nullable&amp;lt;T&gt;.HasValue and Nullable&amp;lt;T&gt;.Value. Comparison with null works (myClass.Attr == null)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;derived singleassociations don't get a property setter anymore (unless they are reverse-derived)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Templates:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added using/uses statements for System.Linq to all templates that already had Eco.Linq&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Doc: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;More documentation on IEcoTypeSystem in EcoServices.pdf&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3888 2009-03-12&lt;/h2&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;All associations in the diagram-part of the Modlr-model wereaccidentally ordered (due to an old and fixed bug from the EcoModelerimport). They are now unordered so that diagram xml-files uses theautomatic ordering based on id/name.&lt;/li&gt;&lt;li&gt;Fixed 708: .ecopkg, .ecodiag, .ecotag and .modlrdoc-files can nolonger be renamed in the SolutionExplorer, and if they are opened, theyare opened with a readonly editor.&lt;/li&gt;&lt;li&gt;Referenced packages will not be selected as the "most likely intended package" when creating new classes.&lt;/li&gt;&lt;li&gt;Bug made "start edit on type" fail in diagram for letters part of shortcut key. Fixed.&lt;/li&gt;&lt;li&gt;Entry and Exit action is displayed in StateDiagram if any of them are set.&lt;/li&gt;&lt;li&gt;Changed Focus-fontWeight from UltraBlack to Bold.&lt;/li&gt;&lt;li&gt;TaggedValue for default color of Class added to enable persistent coloring of classes in design time and runtime.&lt;/li&gt;&lt;li&gt;If a class is placed on a diagram and its DefaultColortaggedvalue is set, this color will be applied. You can override thedefault color by changing the color of the placed class. DefaultColoris used in the AutoClass diagram if set.&lt;/li&gt;&lt;li&gt;Doubleclick on diagram now shows diagram rather than starting edit&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Model-documentation:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Publish documentation to html format&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed bad error message when an unknown discriminator is found in the database. &lt;/li&gt;&lt;li&gt;Fixed problem when discriminators are space-padded (stored in a char(x)-column rather than varchar(x))&lt;/li&gt;&lt;li&gt;Improved error message when a database operation fails, the original error message is now displayed before the SQL and the parameters.&lt;/li&gt;&lt;li&gt;Removed invalid validation rule for column and table names&lt;/li&gt;&lt;li&gt;Added a default mapper for System.Drawing.Color&lt;/li&gt;&lt;li&gt;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).&lt;/li&gt;&lt;li&gt;Added warning when evolve tries to delete instances that are missing expected discriminator values&lt;/li&gt;&lt;li&gt;Fixed problem with invalid sql queries when abstract classes doesn't have a discriminatorvalue&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoSpaceDebugger:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Log-panel delays updating the log-textbox until idle and collects all log-entries in a string builder to improve performance.&lt;/li&gt;&lt;li&gt;EcoSpaceDebugger now indicates when an ecospace is transient (and the UpdateDatabase menu option is not visible)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;LINQ:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed support for operations on datatypes in the LINQ-translation to OCL (such as "ToUpper").&lt;/li&gt;&lt;li&gt;EqoQuery with a constant null reference like "where x.package==null" failed. fixed.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IDE:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed bug when looking for referenced assemblies in the IDE and a project has a null-path  &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Project templates:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed invalid assemblynames in project templates (MyProject.Asp.Asp.dll)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;StateMachineTransport now uses the RuntimeName of trigger methods so triggers can use mapped characters in the name&lt;/li&gt;&lt;li&gt;OclTriggerQuery ("trigger?") will now return false when the object is missing (it is not possible to call a trigger on a null object)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Demos:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed assembly reference in silverlight demo&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ReverseEngineering of databases:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Packages that have names that collide with classes after reverse-engineering a database will be suffixed with "DB".&lt;br /&gt;Prototyping a reversengineered database is disabled by default.&lt;br /&gt;Fixed problem with badly initialized firebird persistencemapper when reverse-engineering databases&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3854 2009-03-07&lt;/h2&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Primary keys of string-type are now sent as literal strings instead of as parameters, increases performance dramatically in SqlServer.&lt;/li&gt;&lt;li&gt;Added function in SqlDatabaseConfig to create a quoted string literal even if it starts and ends with a quote character (ForcedMakeStringLiteral)&lt;/li&gt;&lt;li&gt;Fixed issue with quoting table names when adding new columns during evolve&lt;/li&gt;&lt;li&gt;Firebird mapper now registers its attribute mappers in the global registry for mappers&lt;/li&gt;&lt;li&gt;Changed default mapper for StringAsText to Eco.Persistence.Firebird.StringAsBlob&lt;/li&gt;&lt;li&gt;Firebird calculated columns are now reversed as DbAssigned attributes so they are not written to the database on create or update&lt;/li&gt;&lt;li&gt;Fixed Dequoting of names that are quoted with the same character in the beginning and the end&lt;/li&gt;&lt;li&gt;Mapper for SqlServer spatial types (included as source only)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for mapping names in the model to strict ascii or map national characters to simiar ascii characters.&lt;/li&gt;&lt;li&gt;Selection of rooted points should update property inspector; bug fixed.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;CodeComments shows up in Diagram as ToolTips&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoSpaceDebugger&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added possibility to register any class as a valid attribute type.&lt;/li&gt;&lt;li&gt;Fixed bug with SQL logging. it was not possible to turn it of by setting the LogSQL-property to false under certain conditions&lt;/li&gt;&lt;li&gt;Eco.Tree, new design time component that enables definition of navigational trees aka Spans&lt;/li&gt;&lt;li&gt;Added better error message when a derived multilink returns null&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updated ECO web providers with ECO5 codegeneration&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Installer:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added source in the installer for winforms, wpf and web assemblies&lt;/li&gt;&lt;li&gt;Added missing files to QuickStart chapter 7 sample, and added some auto generated demo data to the example&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Codegen shouldnt generate elements for non-navigable derived associationends&lt;/li&gt;&lt;li&gt;Codegen never tries to modify return parameter for constructors&lt;/li&gt;&lt;li&gt;Constructors that change to normal methods will now be called "Method"&lt;/li&gt;&lt;li&gt;Codegen never renames constructors (since it renames the class).&lt;/li&gt;&lt;li&gt;Fixed codegeneration of constructors&lt;/li&gt;&lt;li&gt;Fixed "navigate to code" for constructors&lt;/li&gt;&lt;li&gt;Constructors will now always be called "Constructor"&lt;/li&gt;&lt;li&gt;Generated code for ModelLayer updated with new partial methods&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3811 2009-02-24&lt;/h2&gt;&lt;h3&gt;WPF: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added IBindingList to EcoObservableCollection&lt;/li&gt;&lt;li&gt;Added EcoObservableCollection - a helper class for showing lists in WPF.    &lt;/li&gt;&lt;li&gt;EcoBinding did not invalidate on changes of datacontext of owning control&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;When tuple-types are created, their collection type is also registered in the dictionary with all types.&lt;/li&gt;&lt;li&gt;Improved errormessage when failing to evaluate the value for a constraint&lt;/li&gt;&lt;li&gt;Fixed initialValue "&amp;lt;NOW&gt;" for nullable datetime attributes&lt;/li&gt;&lt;li&gt;Added support to store internal ids when converting a datablock to Xml&lt;/li&gt;&lt;li&gt;Added IPersistenceService.EnsureObject&lt;/li&gt;&lt;li&gt;Added IObject.EnsureFetched&lt;/li&gt;&lt;li&gt;IObject.Deleted will now first ensure that the object is fetches&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Installer:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Included source for BDP, DBX, Mimer, BlackfishSql and Sybase PersistenceMappers&lt;/li&gt;&lt;li&gt;Included two new WPF demos&lt;/li&gt;&lt;li&gt;Added missing source for Eco.xxx.Strings.cs&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Refactored ecomdl read and load so that most of is in ModelEditor&lt;/li&gt;&lt;li&gt;Implemented ecomdl save,saveas and load of ecomdl files in Modlr&lt;/li&gt;&lt;li&gt;Found and fixed issues when ecomdl files changed on disk -&gt; VS crashed because of missed exception&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;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. &lt;/li&gt;&lt;li&gt;Delete of association with association class, left association class connection hanging in modlr diagram and this would bring down VS if clicked. Fixed&lt;/li&gt;&lt;li&gt;[707] VS crash when setting superclass in object inspector on placedclass. Fixed&lt;/li&gt;&lt;li&gt;Squared lines had a problem in the logic for reducing small z-lines in free air. Fixed.&lt;/li&gt;&lt;li&gt;Context menu in diagram now works in VSIntegration&lt;/li&gt;&lt;li&gt;Changes to how shortcut keys are handled; now delete and ctrl+delete works&lt;/li&gt;&lt;li&gt;Changes to how lines keep their focus state; now the focus is kept when viapoints are deleted&lt;/li&gt;&lt;li&gt;Changes to how viapoint focus spills over as line focus. Now the line is always focused when via point in line has key focus&lt;/li&gt;&lt;li&gt;Diagrams are now focused correctly in the editor window when they are clicked in the modlr-treeview.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;LINQ:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Accessing IEnumerable.GetEnumerator on a EcoQuery result gave eternal loop; fixed.&lt;/li&gt;&lt;li&gt;LINQ queries with "&amp;amp;" will be treated just like "&amp;amp;&amp;amp;" in Ocl2Ps (-&gt;AND)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Templates:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updated project templates to include Eco.LinqExtender&lt;/li&gt;&lt;li&gt;Added uses/using-clause to Eco.Linq and Eco.Services where appropriate&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed incorrect concatenation of alias name for columns when using a aliasprefix (caused invalid syntax for indirect relations with quoted column names: "LinkTBL_[colname]")&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Added taggedvalue for PrimaryKeyMapper&lt;/li&gt;&lt;li&gt;Fixed problem with parameter-names for attributes with quoted column names&lt;/li&gt;&lt;li&gt;Added a mechanism to register persistencemapper types to allow generic instantiation of mappers based on provider-names&lt;/li&gt;&lt;li&gt;Fixed problem when the same parameter was referenced multiple times in an OclPs query.&lt;/li&gt;&lt;li&gt;Improved error message when an unknown discriminator value is found in the db&lt;/li&gt;&lt;li&gt;Singlelinks used quoted names when locating fields with FieldByName. fixed&lt;/li&gt;&lt;li&gt;Improved errormessage when a fetch-operation fails to load data for a member&lt;/li&gt;&lt;li&gt;Added public methods PersistenceMapperDb.GetDatabaseConnection and ReturnDatabaseConnection&lt;/li&gt;&lt;li&gt;Added tagged values for DiscriminatorImpl and DiscriminatorValue. &lt;/li&gt;&lt;li&gt;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&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;DbReverse:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added try/catch when testing the connectionstring to avoid brining down VS for invalid connectionstrings.&lt;/li&gt;&lt;li&gt;TestConnection is now enabled when the connectionstring is empty&lt;/li&gt;&lt;li&gt;Added wait-cursor when testing connectionstring and reverse-engineering databases.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;Added progressbar and wait-cursor when generating code.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IDE Integration&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed null-reference when trying to locate the source code declaration for a method&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winforms:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Autoforms will indicate if an object is deleted&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;5.0.0.3711 2009-02-05&lt;/h2&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added error message when trying to save an orphan state diagram&lt;/li&gt;&lt;li&gt;Added context menu item for deleting statemachines&lt;/li&gt;&lt;li&gt;Delete of state attribute left the modellayer in an illegal state with a hanging statemachine. Fixed.&lt;/li&gt;&lt;li&gt;Newly created state did not get focus; fixed.&lt;/li&gt;&lt;li&gt;Added new property Package.ORMappingConfigMode to control how much of the ORMapping related config properties are visible in the ObjectInspector.&lt;/li&gt;&lt;li&gt;AssociationEnd.Ordering is now a derived attribute with a taggedvalue as the backing. Fixes bug with ordering not being respected.&lt;/li&gt;&lt;li&gt;"Delete" always removes from the diagram and "CTRL-Delete" always deletes from the model.&lt;/li&gt;&lt;li&gt;Registered a fileicon for ecomdl-files&lt;/li&gt;&lt;li&gt;When an association end is selected in the modlr-tree, the correct end is now selected in the objectinspector&lt;/li&gt;&lt;li&gt;Added correct string-representation for the header in the objectinspector for PlacedClass, PlacedState, AssociatinEndConnection, Diagram and Transition&lt;/li&gt;&lt;li&gt;Package.EffectiveNameSpace now strips out invalid characters from the name&lt;/li&gt;&lt;li&gt;The dropdown for attribute types is now prepopulated with the types from EcoDatatypes.xml&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Implemented removing of source for deleted classes/packages from the project, and renaming them ".deleted"&lt;/li&gt;&lt;li&gt;Fixed VB codegen bugs for classes with superclasses&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Templates: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Removed EcoSpaceProvider property from the MVC base controller template.&lt;/li&gt;&lt;li&gt;Updated template for new VB model to look like the generated code&lt;/li&gt;&lt;li&gt;Fixed markup bugs in asmx-file templates&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Introduced tagged value definitions and default values for the new ORMapping related Tagged values: Eco.PrimaryKey, Eco.Discriminator and Eco.DbSignature&lt;/li&gt;&lt;li&gt;Added better error messages for invalid results from a derived multilink.&lt;/li&gt;&lt;li&gt;Fixed problem with accessing struct fields in OCL&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IdeIntegration:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Changed how ContextAgent caches the serialized ToolboxItems to speed up changing of selected components in a designer.&lt;/li&gt;&lt;li&gt;PersistenceMapperXml and PersistenceMapperMemory are now registered under the Eco Persistence component category again&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Project wizard:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with adding assembly references in Prism Project wizard&lt;/li&gt;&lt;li&gt;Added flyover hints in solution wizard&lt;/li&gt;&lt;li&gt;Model, ecospace, pmp and UI modules are now automatically opened in the IDE after creating a new project.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence/Reverse-engineering databases:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed trimming of singlelink signatures &lt;/li&gt;&lt;li&gt;Fixed index-names for quoted tables/columns&lt;/li&gt;&lt;li&gt;Fixed handling of discriminators for reverse-engineered databases.&lt;/li&gt;&lt;li&gt;Fixed problem with (non-existing) system tables when evolving a reverse-engineered database&lt;/li&gt;&lt;li&gt;Fixed matching of Primarykeycolumns with Attribute/Singlelink&lt;/li&gt;&lt;li&gt;Added validation of filename in PersistenceMapperXml (throw an exception if the filename is empty at startup)&lt;/li&gt;&lt;li&gt;Added forcing of the column-names for "innerlinks" when reversing databases&lt;/li&gt;&lt;li&gt;Added method in SqlDatabaseConfig to dequote database names "[columnname]" -&gt; "columnname"&lt;/li&gt;&lt;li&gt;Reverse-engineering databases now set the table/column name by default on all classes/attributes.&lt;/li&gt;&lt;li&gt;Dataset.FieldByName is now always called with the unquoted columnname&lt;/li&gt;&lt;li&gt;The list of found tables is now sorted alphabetically when reverseengineering a Database&lt;/li&gt;&lt;li&gt;Added hints in the DbReverse-form&lt;/li&gt;&lt;li&gt;PrimaryKeys are now stored in their quoted form.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Installer:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Installer now installs silverlight assemblies in GAC&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP Autoform: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;TextBoxBinding now keeps track of the original value and ignores to apply textboxes that hasn't been changed.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3660 2009-01-28&lt;/h2&gt;&lt;h3&gt;Prism:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;fixed missing ecospace attribute in Prism template&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added SessionStateMode.HasUnsavedState for the EcoSpaceStrategyHandler to allow ecospaces with transient objects to be automatically stored in the session.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for specifying a default superclass for all modeled classes that don't inherit from anywhere else.&lt;/li&gt;&lt;li&gt;Methods defined with an OCL body now works in the model prototyper&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with "duplicate key in dictionary" for certain statemachine operations&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bold model import&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for Date and Time datatypes when converting a Bold model to ECO&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3551 - 2009-01-27&lt;/h2&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Members that are recursively derived (depend on themselves recursively) will now throw an exception&lt;/li&gt;&lt;li&gt;When an exception is thrown by the derivation of a member, a detailed exception will be thrown that shows which member caused the problem.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Tagged values on packages were not imported into the runtime model&lt;/li&gt;&lt;li&gt;Package can now specify a default optimistic locking mode for all classes that have no superclass and specify their lockingmode as "&amp;lt;Default&gt;".&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Fixed initialization of initial values for obejcts that were detected as deleted in the database.&lt;/li&gt;&lt;li&gt;Minor optimization in MemberCachePolicy.PreChange&lt;/li&gt;&lt;li&gt;Changed runtime assemblies to use .net2.0 as the target framework instead of 3.5&lt;/li&gt;&lt;li&gt;Moved all extender-methods to Eco.LinqExtender.dll &lt;/li&gt;&lt;li&gt;Added events on FrontsidePolicy to override the code that actually creates the frontside objects&lt;/li&gt;&lt;li&gt;Added event on EcoSpaceManager to override how the ecospace is created&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Ide Integration&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Eco4 projects are now automatically upgraded to .net3.5 when upgraded to ECO5, but it is possible to downgrade them manually afterwards.&lt;/li&gt;&lt;li&gt;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. &lt;/li&gt;&lt;li&gt;Fixed crash in VS when Smart-tags are invoked for OclPsHandle&lt;/li&gt;&lt;li&gt;The Linq extender methods for the EcoSpace class are now extenders of IEcoServicePrivider instead so they can be used in the model-assembly too&lt;/li&gt;&lt;li&gt;Adjusted the templates to reduce the number of warnings from MSStyleCop. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;PersistenceMapperXml doesn't initialize unknown attributes with default values unless they are persistent now.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed deleting of tagged values&lt;/li&gt;&lt;li&gt;TaggedValue editor now lists the tagged values in alphabetical order&lt;/li&gt;&lt;li&gt;Fixed problem with deleting constraints in Modlr&lt;/li&gt;&lt;li&gt;New constraints now get unique names&lt;/li&gt;&lt;li&gt;Fixed issues with renaming of packages.&lt;/li&gt;&lt;li&gt;Fixed 700: Fixed null-reference exception when editing the effect of a triggerless transition&lt;/li&gt;&lt;li&gt;Added support for marking methods in the model as "new" &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Bld import&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem when importing Bold tagged values that contained a "=" sign&lt;/li&gt;&lt;li&gt;Fixed duplicate instance of tagged value "Derived" when importing bld-files&lt;/li&gt;&lt;li&gt;Fixed importing of Bold tagged values with newlines&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Demos&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added new version of ECO4 LazyFetch demo &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Silverlight&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added Silverlight versions of Eco.Handles.dll and Eco.Interfaces.dll, and a very simple silverlight demo&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;LINQ&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Included initial support for executing LINQ-queries directly in the database.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;SiteSync&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added source for SiteSync to the installer. Sitesync is a tool that allows you to synchronize objects in one direction between separate databases&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3596 - 2009-01-19&lt;br /&gt;&lt;/h2&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;When changing diagram type in diagram combo, the toolbox items was not updated.&lt;/li&gt;&lt;li&gt;Fixed stackoverflow when using ECO with ReSharper (was a recursive implementation of IPersist.GetClassId in ModlrEditorPane)&lt;/li&gt;&lt;li&gt;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. &lt;/li&gt;&lt;li&gt;Added taggedvalue class for Length to specify the default length as a constant rather than an literal in the DefaultTaggedValues.&lt;/li&gt;&lt;li&gt;Added a defaultlength attribute to Package so that new attributes can get a default Length&lt;/li&gt;&lt;li&gt;Fixed 672: Added importing of DefaultLength from EcoModeler&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;removed MSAccess from mapper configurators for PersistenceMapperSqlServer&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 695: Compiler warning about unreachable code in generated code when subclasses has "HasUserCode" for any of its properties&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Refactorings in OCL enging to allow LINQ-parser to build and evaluate OCL parse-trees.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;&lt;br /&gt;&lt;/h2&gt;&lt;h2&gt;5.0.0.3585 - 2009-01-13&lt;br /&gt;&lt;/h2&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with codegenerating models that originally had duplicate IDs on methods.&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;Fixed automatic removal of old statemachines when upgrading eco4 code&lt;/li&gt;&lt;li&gt;Added a mechanism to mark items as completed to avoid checking the same class/method/file again when updating the code. &lt;/li&gt;&lt;li&gt;Fixed a problem when the type of a parameter doesn't match because of namespace vs no namespace.&lt;/li&gt;&lt;li&gt;Fixed 680: new methods are now correctly generated the first time you press "GenerateCode".&lt;/li&gt;&lt;li&gt;Deleted methods are now marked as obsolete in the code.&lt;/li&gt;&lt;li&gt;Fixed 683: Generic methods (MyMethod&amp;lt;T&gt;) in the model are now detected and ignored with a warning message&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoModeler Import&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Fixed 694: AllowNULL was not correctly imported from EcoModeler&lt;/li&gt;&lt;li&gt;Added support for typeconstraints for methods, importing of docs/oneliners&lt;/li&gt;&lt;li&gt;Added warning for orphan state diagrams&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with ocl.substring when the parameters refer to positions outside of the string.&lt;/li&gt;&lt;li&gt;Fixed bug when datetime or time-literals were specified without seconds&lt;/li&gt;&lt;li&gt;Fixed threading issue when resolving types. &lt;/li&gt;&lt;li&gt;Added RegisterEcoService&amp;lt;T&gt; to the IEcoServiceProvider interface&lt;/li&gt;&lt;li&gt;Added automatic ocl-operations for fields on the types in the model (most notably the parts of structs)&lt;/li&gt;&lt;li&gt;Fixed problem with CurrenctyManagerHandle in EcoSpaceDebugger when the ocl-expression is attached to the current object in the allInstances-grid&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Documentr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added the licensed PinEdit and Spellchecking.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ContextAgent:&lt;/h3&gt;Fixed default tab for ContextAgent&lt;br /&gt;Fixed 689: Resolving types from Eco.Handles.Design in ContextAgent didn't work correctly (sometimes...)&lt;br /&gt;Added a registry key for the ContextAgent so that its location isn't lost all the time.&lt;br /&gt;&lt;h2&gt;5.0.0.3560 - 2009-01-08&lt;/h2&gt;&lt;h3&gt;Wizard:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Persistence assemblies (Eco.Persistence.SqlServer for example) are now added with explicit version number.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Shift selecting in inplace edit, stopped edit and moved the class. Fixed.&lt;/li&gt;&lt;li&gt;Squaring line could fail with accvio. Fixed&lt;/li&gt;&lt;li&gt;Transient classes now have a small icon&lt;/li&gt;&lt;li&gt;Abstract classes are now rendered with their name in italics&lt;/li&gt;&lt;li&gt;Fixed 692: Added AssociationClass property to associations in the object inspector&lt;/li&gt;&lt;li&gt;Fixed 671: Configuration for how to "embed" a association was not correctly imported from EcoModeler.&lt;/li&gt;&lt;li&gt;Added NavigateToCode for methods&lt;/li&gt;&lt;li&gt;Fixed 679: Added Visibility property for methods&lt;/li&gt;&lt;li&gt;Tooltips on diagram buttons&lt;/li&gt;&lt;li&gt;Keyboard move of Viapoints and DiagramPlaced&lt;/li&gt;&lt;li&gt;Enabled for keyboardnav for BaseViaPoint's&lt;/li&gt;&lt;li&gt;Drop attribute and method when the inplace edit is left blank&lt;/li&gt;&lt;li&gt;Ctrl-tab now switches tabs in VS&lt;/li&gt;&lt;li&gt;Boxing undo-checkpoint bug. Gave effect that you had to press undo twice after adding attribute in diagram.&lt;/li&gt;&lt;li&gt;Word documentation dropped in favour of html documentation&lt;/li&gt;&lt;li&gt;Captures all exceptions from RunningModel window to avoid bringing down VS&lt;/li&gt;&lt;li&gt;ViaPoints that after a move ends up inside their nearest placed widget are removed to reduce line clutter&lt;/li&gt;&lt;li&gt;PlacedWidget neighbours now also gets a MoveRootedPointsWithLinesThruPlaced check&lt;/li&gt;&lt;li&gt;Changed primary model format from .modlr to .ecomdl&lt;/li&gt;&lt;li&gt;Added import of .modlr-files in Modlr&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed codegen of methods with body. EcoModeler import now moves the method-bodies from the tagged value to the attribute.&lt;/li&gt;&lt;li&gt;Fixed 693: Incorrect code generated for "outerlinks" in associations with link-classes.&lt;/li&gt;&lt;li&gt;Removed generated property-setter for "innerlinks"&lt;/li&gt;&lt;li&gt;Fixed 687: CodeGeneration for AssociationEnds with HasUserCode&lt;/li&gt;&lt;li&gt;Fixed 690: Partial method stubs for getters are now generated even for ReverseDerived attributes with "HasUserCode = true"&lt;/li&gt;&lt;li&gt;Fixed 685: Namespace of classes didn't change correctly when the package is renamed or the class changes package.&lt;/li&gt;&lt;li&gt;Fixed 678: Codegeneration of abstract methods&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 670: When linking objects, if either object is deleted already, an exception will be thrown.&lt;/li&gt;&lt;li&gt;Fixed 676: Removed EcoDataSource.Update&lt;/li&gt;&lt;li&gt;Added servicemethod IObjectFactoryService.DeleteObjects to safely delete a list of objects.&lt;/li&gt;&lt;li&gt;Objectlists that are created as a copy of another list didn't correctly subscribe to deletion of objects&lt;/li&gt;&lt;li&gt;Capture the ecospace debugger "GetChanges" click exception that comes if the pmapper does not support sync&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Documentation:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;More persistence service documentation + completed versioning service.&lt;/li&gt;&lt;li&gt;Started multi-user concurrency&lt;/li&gt;&lt;li&gt;Updated Eco5Readme with new instructions for converting EcoModeler models and running the EcoMacros.vb macro&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;VS integration:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added New .ecomdl item&lt;/li&gt;&lt;li&gt;Removed new Modlr-file&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3513 - 2008-12-26&lt;/h2&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with expansion/truncation of index-names when generating/evolving databases&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;html documentation in more consolidated files; work in progress&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;Added default values for some attributes to reduce the size of the diag-files&lt;/li&gt;&lt;li&gt;EcoModeler Import - Added import of of IsAbstract and IsSealed for methods&lt;/li&gt;&lt;li&gt;EcoModeler Import - Fixed import of static methods from EcoModeler&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Installer:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updated GacInstaller to handle wildcards and version number when uninstalling&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Docs:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added the new HowToGuides.pds to the installer&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3495 - 2008-12-18&lt;/h2&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 630: State attributes for non active regions are now cleared when the state is changed.&lt;/li&gt;&lt;li&gt;StateAttributes do not automatically get "AllowNULL = false" anymore.&lt;/li&gt;&lt;li&gt;Fixed 544: Added generic versions of RegisterEcoService/GetEcoService&lt;/li&gt;&lt;li&gt;Added overloads for IEcoServiceProvider to register/get services with a key so that multiple services can be registered for the same type&lt;/li&gt;&lt;li&gt;Fixed 400: Added Extension methods for OclService and OclPsService to take an IEcoObject instead of IElement.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 667: Autoinc keys didn't work when the rootclass was childmapped.&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;Validation of ORMapping will only happen if there is no previous error to avoid secondary failures&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improved error messages when a new modlr-file was created outside of the project and then added to the project.&lt;/li&gt;&lt;li&gt;Fixed problem with codegeneration when a method had a return-parameter with no type.&lt;/li&gt;&lt;li&gt;Removed trailing "Package" from package names when importing ecopkg-files&lt;/li&gt;&lt;li&gt;Fixed appearance of autocreated associations/transitions that start and end in the same class/state&lt;/li&gt;&lt;li&gt;Fixed StackOverflow when trying to find owning Package in invalid models with cycles&lt;/li&gt;&lt;li&gt;Modlr: Added menuitem "Show state diagram" to class, lazy-create state-diagrams if there is a state machine.&lt;/li&gt;&lt;li&gt;Removed "Show state diagram" for attributes.&lt;/li&gt;&lt;li&gt;Fixed 639: removed the "Name and Type" property for attributes in the ObjectInspector (name and type can be modified separately)&lt;/li&gt;&lt;li&gt;Fixed some problems with upgrading from eco4 to eco5 format of the generated code.&lt;/li&gt;&lt;li&gt;Fixed 637: caption of the GenerateCode button is now "Generate Code"&lt;/li&gt;&lt;li&gt;Fixed 624: The diagram is re-focused after codegen.&lt;/li&gt;&lt;li&gt;Fixed import of nested regions from EcoModeler.&lt;/li&gt;&lt;li&gt;Fixed length of error message when there are many duplicate IDs&lt;/li&gt;&lt;li&gt;Fixed problem when modlr-file was not contained in a project (created standalone for example)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IDE integration&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 631: VS was not visible in the ALT-TAB list when the ECO project wizard dialog was shown&lt;/li&gt;&lt;li&gt;the csproj-files in the template now has the eco version number expanded from a resource&lt;/li&gt;&lt;li&gt;Updated Prism templates for ecospace and winform to look like the C# templates.&lt;/li&gt;&lt;li&gt;Included wizard files for new Modlr model&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3454 - 2008-12-10&lt;/h2&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 653: Added IPersistenceService.DiscardChanges that removes modified data from the cache, Added an EcoGlobalAction "DiscardChanges"&lt;/li&gt;&lt;li&gt;Fixed 642: Fixed problem with childmapping the rootclass in a versioned database.&lt;/li&gt;&lt;li&gt;Added property category (Eco.Persistence) to PersistenceMapper.ConnectionString&lt;/li&gt;&lt;li&gt;It is now possible to subclass an eco-class (even an abstract) in code and instantiate the new subclass.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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.&lt;/li&gt;&lt;li&gt;CodeGen: Fixed problem with changing parameter types when the type was not fully qualified&lt;/li&gt;&lt;li&gt;Added doc-comments for partial methods&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added two gravity-based layout engines (experimental)&lt;/li&gt;&lt;li&gt;Fixes to EcoMdl-handler for referenced packages&lt;/li&gt;&lt;li&gt;Added new html-based documentation tool (experimental)&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoModeler import:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed importing of initialValues for attributes&lt;/li&gt;&lt;li&gt;Fixes to EcoModeler import for referenced packages&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IDE integration:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Removed EcoModeler from the ProjectWizard&lt;/li&gt;&lt;li&gt;Removed mmcseco editor and EcoModelerPlugin from ECO ide integration&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Installer:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added EcoScripts.vb to the installer&lt;/li&gt;&lt;li&gt;Uninstaller doesn't force a reboot anymore&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3423 - 2008-12-05&lt;/h2&gt;&lt;h3&gt;Installer:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Installer no longer removes HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Menus on uninstall&lt;/li&gt;&lt;li&gt;Removed EcoModeler from installer&lt;/li&gt;&lt;li&gt;fixed issue with GacInstall/uninstall&lt;/li&gt;&lt;li&gt;Installer: Added detection of if .net 3.5sp1 is missing&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed 646: Removed traces of bdp from ContextAgent config file&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3408 - 2008-12-02&lt;/h2&gt;&lt;h3&gt;Installer&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Completely new installer&lt;/li&gt;&lt;li&gt;Allows side by side installation with Eco4&lt;/li&gt;&lt;li&gt;Fixed 337: Samples are now installed in commondocs&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;fixed 638: Support C# syntax when editing method signatures in Modlr&lt;/li&gt;&lt;li&gt;Keyboard navigation for diagram&lt;/li&gt;&lt;li&gt;"Start to write - inplace edit mode will follow"&lt;/li&gt;&lt;li&gt;Focus correct widget after add&lt;/li&gt;&lt;li&gt;Focus correct widget after ESC&lt;/li&gt;&lt;li&gt;Jumps between classes and scrolls with key navigation&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed issues with renaming of parameters (they are just replaced now, not renamed.&lt;/li&gt;&lt;li&gt;Added support for ParameterDirectionKind&lt;/li&gt;&lt;li&gt;Codegen detects if the IDE is in debug-mode.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Templates:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;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&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;5.0.0.3381 -  2008-11-29&lt;/h2&gt;&lt;h3&gt;Core:&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with license check when the typesystem was accessed before the ecospace was created&lt;/li&gt;&lt;li&gt;Removed model validation warnings for embedded association ends&lt;/li&gt;&lt;li&gt;Fixed validation of quoted sql-names in the model&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;IDE integration&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added "new ECO MVC controller" item&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;Improved highligting of selected associations&lt;br /&gt;Improved behaviour of zoom in diagram&lt;br /&gt;Setting an attribute name to "/name" now automatically makes the attribute derived&lt;br /&gt;Added property for Method.Body in the ObjectInspector&lt;br /&gt;Fixed context and returntype for ocl-editor for Method.Body and Transition.Trigger&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;When renaming of a code element fails, the error message is now a bit more friendly&lt;br /&gt;Dots (".") in element names are now replaced with underscore in the codegenerator (except for datatypes)&lt;br /&gt;Trigger methods and methods with body are no longer generated in the user-part of the code&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;5.0.0.3369:&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;Templates + Project Wizard:&lt;/h3&gt;Changed the protected field in the PMP that reference the ecospacetype to a class constructor instead.&lt;br /&gt;Item template for new ECO MVC controller&lt;br /&gt;minor typo in Oxygene ASP autoform template&lt;br /&gt;Always uncheck MVC if it is disabled&lt;br /&gt;Fixed issue in MVC template so the ecospace is returned to the pool later.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;Improved rendering/editing of the association ends in the ModlrTreeview&lt;br /&gt;Nicer error message if a module fails to load after wizard has generated all files&lt;br /&gt;Improved errormessage when a modlr-file fails to load&lt;br /&gt;Fixed problem with stray parameter-objects when updating the signature of a method&lt;br /&gt;AutoScroll in diagram rewritten with a DispatchTimer&lt;br /&gt;Focus in tree; Ctrl E in diagram selects the class in the tree&lt;br /&gt;FocusInTree extended to handle attributes, methods and AssociationEnds&lt;br /&gt;Multiple move rectangle now also works from bottom to top&lt;br /&gt;Moving a placed so that its own rooted lines cross it, the rooted points are moved to fix it.&lt;br /&gt;Added a try/catch in EndCurrentInplaceEdit to avoid VS crashes&lt;br /&gt;It took two f2 pushes to get into edit mode.&lt;br /&gt;Attribute shows type and Method shows signature&lt;br /&gt;Entering edit on Attributes and methods only selects the name&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;DbReverse:&lt;/h3&gt;NameUniquer doesn't set the old name in the TV if the name was empty&lt;br /&gt;The table dbo.sysdiagrams is now considered a system table&lt;br /&gt;The treeview with schemas and tables are now expanded an extra level to show the tables.&lt;br /&gt;Fixed bugs with restoring the old ids when re-reversing a database&lt;br /&gt;Fixed DbReverse-issue when an identifier starts or ends with "_"&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Core:&lt;/h3&gt;Fixed bug when adding new publishers with lower index than the current minIndex. Fixed another bug when removing a publisher from a list.&lt;br /&gt;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.&lt;br /&gt;improved statemachine initialization errors&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;Improved the stable order in which code is generated&lt;br /&gt;Added codegen of method stubs&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;ModelLayer:&lt;/h3&gt;Fixed fixed EcoModelLayerSpace.GetOwner to handle empty singlelinks&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;5.0.0.3318&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;Documentation:&lt;/h3&gt;Updated QuickStart documentation (up to chapter 6) to use Modlr&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;Derived attributes, DbAssigned attributes and state attributes will no longer get a setter&lt;br /&gt;Fixed exceptions when codegenerating and the old selection in the code is no longer valid&lt;br /&gt;Added support for implicit tagged values in EcoDataTypes.xml (autoinc, text, blob uses that)&lt;br /&gt;Partial method XXXChanged now takes three parameters, oldValue, newValue and finalValue.&lt;br /&gt;Fixed problem with nullable attributes and HasUserCode.&lt;br /&gt;Default path for generated code is the folder where the modlr-file is (was project path)&lt;br /&gt;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)&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;Shortcutkeys on diagrams and tree&lt;br /&gt;Default multiplicity for new associations is now 0..1 -- 0..* (was 1 -- 1..*)&lt;br /&gt;Added Constraints property for classes and placedclasses.&lt;br /&gt;Added new descriptors for Region and StateDiagram to set the StateAttribute with a combo&lt;br /&gt;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.&lt;br /&gt;Improved name of state diagrams in dropdown combo&lt;br /&gt;Multiple changes to handle parallel subregions in states. Now logic adds additional subregion attributes when needed.&lt;br /&gt;Logic also handles rename of state attributes (main and subregions).&lt;br /&gt;Fixed bug in Rename that used newname as oldname before.&lt;br /&gt;Cleaned up labels for transitions&lt;br /&gt;Added name-property for regions in statediagrams&lt;br /&gt;Fixed Effect-property for transitions&lt;br /&gt;Add final and start state to region via contextmenu&lt;br /&gt;Substates in regions got their transistions placed in the wrong coordinate system; fixed #597&lt;br /&gt;Added Package-property for associations in the OI&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;UmlRt/ModelLayer:&lt;/h3&gt;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.&lt;br /&gt;Added StateMachine.Id so statemachinediagrams can reference the statemachine correctly&lt;br /&gt;Added default values for StateMachineTransport to get a smaller xml-representation&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;EcoModeler import&lt;/h3&gt;Fixed problem in EcoModeler import when diagram name was empty&lt;br /&gt;Added name to the imported Statemachine from EcoModeler&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;IdeIntegration:&lt;/h3&gt;Fixed invalid cast when solution contains non-source projects such as setup projects&lt;br /&gt;Removed dependencies to Eco.Persistence.Xml from the ConsolePServer and WinServicePServer template projects&lt;br /&gt;Added System.Core as a referenced assembly in the C# project templates&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Core:&lt;/h3&gt;Fixed initialization of DerivedElement.ServiceProvider&lt;br /&gt;Linkobjects will now have their constructor called when they are created as a part of a link-operation.&lt;br /&gt;Fixed 557: nullable values didn't correctly conform to non-nullable values.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;Retrieving the PersistenceMapper in PMClient is now done outside the try/catch that guards the connect-operation.&lt;br /&gt;Compile Blackfish and DBX mappers against the Prism binaries instead of the RadStudio2007 binaries&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;WPF:&lt;/h3&gt;SourceOcl is Renamed Expression in EcoBinding&lt;br /&gt;EcoBinding updated; PathOcl is not needed anymore&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Changelog for 5.0.0.3256&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;Project wizard:&lt;/h3&gt;Eco Oxygene project wizard is now located under the Oxygene node in the new project dialog (or Delphi Prism)&lt;br /&gt;updated winservice templates to include ".rem" when registering the service (to match the PMPClient)&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;EcoModeler:&lt;/h3&gt;Fixed bug in naming of the initial package in EcoModeler based projects&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Core:&lt;/h3&gt;Let EcoListSHimBase implement IList, for backwards compatibility on old generated code. This fixes a problem with invalid cast exceptions for derived associations&lt;br /&gt;Replace QulifiedPublisher with PublisherList (space savings on subscription to members).&lt;br /&gt;Replaced String.Compare with EcoSupport.CaseInsensitiveEqual to avoid requirement for .net3.5 SP1&lt;br /&gt;IPersistenceService.EnsureRange takes an IObjectList again for improved performance (need to call InternalGet to get the objects without ensuring them).&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;Support for referenced packages (ecopkg-files)&lt;br /&gt;Added codegen for extenders for association ends in referenced packages&lt;br /&gt;Package import is now wrapped in transactions and loose ends detected&lt;br /&gt;Fixed 594: CodeGen - Fully qualified name used when specifying inheritance from classes in another package.&lt;br /&gt;Fixed support for extender-methods in Oxygene&lt;br /&gt;Fixed 581: diagram size and scrollbar on first show: fixed&lt;br /&gt;Fixed 580: fast expanding diagram: fixed&lt;br /&gt;Fixed 587: Delete diagram&lt;br /&gt;Fixed 585: remove rather than delete from diagram&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Change log for 5.0.0.3233:&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;DbReverse:&lt;/h3&gt;renamed SqlServer reflector to SqlServer2005 since it doesn't work for SqlServer 2000. trimmed the query used to retrieve index-information from sqlserver&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Core:&lt;/h3&gt;Added extender method IList.AddRange for backwards compatibility for SqlDatabaseConfig.ReservedWords&lt;br /&gt;Fixed 589: it was not possible to collect over list of tuples in OCL.&lt;br /&gt;Fixed 543: ElementHandle now implements ISupportInitialize to avoid processing property values during InitializeComponents.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;Added reserved words for Firebird&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Project wizard:&lt;/h3&gt;updated eco project templates to .net 3.5&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;IDE integration:&lt;/h3&gt;Added automatic detection of .net2 projects so they are automatically upgraded to .net3.5 since this is required by the eco assemblies.&lt;br /&gt;Also added a context menu for the aboutbox that currently contains code to restore the eco components in the toolbox&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Changes in 5.0.0.3217&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;Added a panel in the Modlr pane with a hint how to open new models, visible only when no .modlr-file is open&lt;br /&gt;Added a button to start the EcoSpaceDebugger directly from the Prototype launcher.&lt;br /&gt;Toolbuttons on the autoclass diagram as well; mantis 0000570&lt;br /&gt;Right click menu did not show in diagram until a drag or some operation was done. Fixed.&lt;br /&gt;Importing EcoModeler failed failed becuase of missing tagged values. Fixed.&lt;br /&gt;Removed Ionic.Utils.zip.dll from the installer&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;DbReverse:&lt;/h3&gt;DbReverse is now only registered for packages&lt;br /&gt;Added support to retain IDs of modelelements when reimporting a database-schema&lt;br /&gt;Added a better progress-indication&lt;br /&gt;Added storing an MRU-list for connectionstrings, prepopulate the connectionstirng combo with the last connectionstring used for the package.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Ocl:&lt;/h3&gt;Fixed bug in ocl-operation "Existing". It now returns true for an object until it is deleted (instead of the exact opposite). Added testcase.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Project Wizard:&lt;/h3&gt;Fixed output name for C# IIS PServer projects&lt;br /&gt;Oxygene templates for IIS PServer&lt;br /&gt;Oxygene template for WinService PServer&lt;br /&gt;Fixed style-tag in C# template for ASP autoform.&lt;br /&gt;Fixed DefaultNameSpace in C# console PServer project template&lt;br /&gt;Project wizard: Licenses.licx is now only added to the EcoSpace project&lt;br /&gt;ConsolePServer templates for Oxygene.&lt;br /&gt;Oxygene WinformPServer templates&lt;br /&gt;Oxygene ASP templates, first cut&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Docs:&lt;/h3&gt;Reapplied my changes from last checkin (was lost in Peters checkin)&lt;br /&gt;Added some documentation for TypeService methods, and described how to create custom OCL operations.&lt;br /&gt;Added an overview of how OCL expressions are constructed.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Core:&lt;/h3&gt;IElement and IEcoList now have a ServiceProvider property.&lt;br /&gt;Add IObjectInstace.IsNullInstace.&lt;br /&gt;Loosen typing of most services from IObjectList to IEnumerable.&lt;br /&gt;Add IEcoObject as superinterface to IObjectProvider, and replace all internal uses.&lt;br /&gt;Replaced ArrayList with List, Hashtable with Dictionary, StringCollection with IList/List&lt;br /&gt;Changed Queue to Queue and Stack to Stack&lt;br /&gt;ObjectIdList now inherits from List instead of CollectionBase&lt;br /&gt;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.&lt;br /&gt;Fixed bug in IPersistenceService.EnsureRelatedObjects: Locators.Count was compared with null instead of 0&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;CodeGeneration&lt;/h3&gt;Fixed 577: Potentially invalid code in Oxygene codegen for nullable attributes. now it uses an explicit syntax for Oxygene too.&lt;br /&gt;Added datatypes for Oxygene in EcoDatatypes.xml&lt;br /&gt;Added datatypes for VB&lt;br /&gt;fixed 578, invalid prefix in Oxygene codegen for the Eco_LoopbackIndex constants in association ends&lt;br /&gt;Fixed 568: circular references in definition of EcoLoopbackIndices when a class both inherits and associations another class.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;ChangeLog for 5.0.0.3142&lt;/h2&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;Merged Attribute.Persistent/Derived/DerivedSettable into one property&lt;br /&gt;Merged Method.IsAbstract/IsConstructor/IsOverride/IsSealed/IsStatic/IsVirtual into one property&lt;br /&gt;Fixed problem when drawing an association from a class to itself without defining any via-points&lt;br /&gt;Rearranged and renamed the assemblies that make up Modlr&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Documentation:&lt;/h3&gt;Replaced the old document (pdf) on services with a new one.&lt;br /&gt;Completed OCL operations&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;DbReverse:&lt;/h3&gt;Added check for duplicate ForeignKeys&lt;br /&gt;Singlelinks are now always marked as IsConstrained&lt;br /&gt;Attribute.AllowNull now reflects the setting in the db.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Core:&lt;/h3&gt;Added tagged value for IsConstrained (for singlelinks)&lt;br /&gt;Optimization of CanDelete, the list of checked objects is now a Dictionary instead of an arraylist for faster lookups.&lt;br /&gt;Fixed bugs with accessing parts of a tuple in OCL&lt;br /&gt;Tighten typing of ElementCollectionContentImpl et al. Implement IEnumerable on IObjectCollection.&lt;br /&gt;Loosen parameters to ECO services and IObjectList to take IObjectProvider rather than IObject.&lt;br /&gt;Tighten a number of return types and internal variables from IObject to IObjectInstance.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;All attribute mappings now handle null the same as DBNull in ColumnToValue (since IField returns null rather than DBNull in Eco5)&lt;br /&gt;ForeignKeysDefinitions now clean their names the same way AliasDefinitions&lt;br /&gt;DefaultORMappingBuilder now handles the taggedValue Eco.IsConstrained&lt;br /&gt;OclPS: AliasReferences now clean the names of the tables before generating the alias-name.&lt;br /&gt;PersistenceMapperXml now writes data to a temp-file to avoid problems if the app crashes while writing the file.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;CodeGen now forces the explicit order that the members are added.&lt;br /&gt;Added regions to generated code to collaps groups of methods nicely&lt;br /&gt;Added codegen support for "int?" for nullable types in C#&lt;br /&gt;Don't emit the AllowNull TaggedValue, it is in the datatype of the attribute...&lt;br /&gt;Codegen now supports nullable types for all valuetypes, not only primitive types.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Installer:&lt;/h3&gt;Fixed 560: renamed NDataStore to Blackfish SQL in the installer&lt;br /&gt;removed bdp, vcl, bds-integration, The MatsSoft db-wrapper and Eco.ModelLayer.Design/Debug from the installer&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;ModelLayer:&lt;/h3&gt;Added ModelElement.GetTaggedValueBool for easier access to boolean TVs.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;EcoSpaceDebugger:&lt;/h3&gt;EcoSpaceDebugger now clears the columns of the handles more thouroughly when changing the OCL-expression in the OCL-debugger&lt;br /&gt;Improved Sync-debugger-panel. replaced the listbox with a listview to get the changes in nice columns&lt;br /&gt;Some cleanup in the Class/Ocl debugger and Sync-debugger&lt;br /&gt;Buttons in autoforms are now smaller so they don't obscure the labels.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;MVC:&lt;/h3&gt;Updated MVC template for new ASP.NET MVC beta&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Project wizard/templates:&lt;/h3&gt;Added missing package-include magic for Oxygene project templates&lt;br /&gt;Filename for package-file in an EcoModeler project is now Package again to match the codegen of EcoModeler.&lt;br /&gt;Added a link in ProjectManager to ASP.NET MVC site.&lt;br /&gt;Fixed Oxygene templates for EcoSpace and PMP. They wouldn't display correctly in the component designer because of a missing "self."&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;IDE integration&lt;/h3&gt;Added try/catch-statement in Eco4 detection since VS throws exceptions when reading the name of some assembly references.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Changes in 5.0.0.3069:&lt;/h2&gt;&lt;br /&gt;&lt;h3&gt;Modlr:&lt;/h3&gt;Add: Simple diagram Print in Gaffr and Eco5&lt;br /&gt;Fix: Reassign of inhertance, and setting superclass did not update diagram&lt;br /&gt;Change: Moved designer tools to the designsurface instead of the VS toolbar&lt;br /&gt;Change: Reworked the properties in the object inspector for the elements in the designer&lt;br /&gt;Add: Added Combobox to choose active diagram&lt;br /&gt;Change: Improvements to how Undo/Redo works in the designer&lt;br /&gt;Change: Search updated to only find attributes and named relations when explicitly searching for them&lt;br /&gt;Add: "Re-think this side" helps with positioning many link points on one side&lt;br /&gt;Fix: Squaring logic ran all the time even on lines already squared. Made things slow.&lt;br /&gt;Fix: Removed calls to ExpandTaggedValues to avoid unnecessary TVs&lt;br /&gt;Add: Added Attribute.SetterVisibility&lt;br /&gt;Add: Added support for ConstructorVisibility in ModelLayer + codegen&lt;br /&gt;Add: ColorOnNew property on AbstractDiagram, also in wrappers, and usage when adding state or class&lt;br /&gt;Add: Added option for creating new Trigger to list.&lt;br /&gt;Change: Improvements to copy/paste behaviour&lt;br /&gt;Add: Added categories to all properties in Modlr. Made some properties readonly and some properties with comboboxes as "exclusive"&lt;br /&gt;Add: Added a generic catch-clause when executing commands in modeler to avoid that VS crashes (with loss of models as a result).&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Statediagrams:&lt;/h3&gt;Fix: Prevent transitions going to start-states or from end-states&lt;br /&gt;Fix: Pseudo states does not have entry nor exit&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Bld-format import:&lt;/h3&gt;Change: Changed how Changeability is imported (stored with the name of the value instead of the integer).&lt;br /&gt;Change: Bld-import: Constraints are not imported if they are empty&lt;br /&gt;Add: Added option to convert a bold-model to ECO format (renames known tagged values to ECO names).&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Core:&lt;/h3&gt;Add: Let IObject implement IObjectProvider, and IElement implement IElementProvider.&lt;br /&gt;Add: IEcoList can now return an IObjectList,&lt;br /&gt;Add: Added new interface IObjectListProvider&lt;br /&gt;Add: Added IObjectList.GetAsEcoList&lt;br /&gt;Add: Added IExtentService.AllInstances&lt;br /&gt;Add: Added IExtentService.AllLoadedInstances&lt;br /&gt;Change: Moved PrototypeEcoSpace to Eco.Handles (from ModelLayerDesign) to make it easier to use&lt;br /&gt;Change: Make TaggedValueDescriptions for Enum tagged values singletons rather than classes (allows adding virtuals).&lt;br /&gt;Add: FrontsideMultilinkAdapter, FrontsideDerivedMultilinkAdapter and EcoObjectListAdapter now implements IBindingList&lt;br /&gt;Add: DefaultLoopback now implements ICustomTypeDescriptor and INotifyPropertyChanged.&lt;br /&gt;Add: TupleImpl now implements ICustomTypeDescriptor.&lt;br /&gt;Add: Added .net event IElement.ValueChanged. Used to implement FeaturePropertyDescriptor.Add/RemoveValueChanged, and IBindingList.ListChanged.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;CodeGen:&lt;/h3&gt;Fix: Fixed reversed loopbackindex for innerlinks in codegen&lt;br /&gt;Change: Generated code no longer uses the ObjectListAdapter for multilinks. instead the frontsideadapter is cast directly to IEcoList&lt;br /&gt;Fix: Fixed visibility/finality of generated properties&lt;br /&gt;Change: Codegen now uses the NameSpace defined in the Package class, but only FQN names for classes/assocs if they belong to different namespaces.&lt;br /&gt;Fix: Fixed visibility of package-classes&lt;br /&gt;Change: CodeGen doesn't open files that were not opened before.&lt;br /&gt;Fix: RenameHandler now uses RuntimeName instead of Name when comparing to old elements&lt;br /&gt;Change: Added sorting of properties before codegen to ensure a stable order in the source.&lt;br /&gt;Add: All domain classes now implement INotifyPropertyChanged&lt;br /&gt;Fix: Fixed generation of partial methods for VB&lt;br /&gt;Fix: Fixed ref-parameters in oxygene codegen&lt;br /&gt;Change: CodeGen throws an exception if an attribute doesn't have a type.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;WPF:&lt;/h3&gt;Add: Added WPFDequeuer&lt;br /&gt;Add: Added ElementHandle.List: IList property for improved WPF support&lt;br /&gt;Add: Added EcoBinding for databinding in WPF&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;DbReverse:&lt;/h3&gt;Add: Support for MsSql, MySql, Firebird and Oracle&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;ASP:&lt;/h3&gt;Add: Added DeriveValue and ReverseDeriveValue events to EcoDataSource.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Persistence:&lt;/h3&gt;Add: Added GenericAttributeMapper to the default set of mappers&lt;br /&gt;Add: Added IDefaultReverseMapping to indicate that a mapper is the default for a certain database type&lt;br /&gt;Change: Made EnumMapper.ValueType return null instead of throw an exception&lt;br /&gt;Add: Added DecimalAsMoney and Int32AsInt mapper for SqlServer&lt;br /&gt;Add: Added optimistic locking on nonembedded members (multilinks) for PersistenceMapperXml and PersistenceMapperMemory.&lt;br /&gt;Add: Added DecimalAsSmallMoney, StringAsNVarChar, CharAsNChar, StringAsNChar, StringAsXml for SqlServer&lt;br /&gt;Add: Added MySql mapper for unsignedInt16&lt;br /&gt;Add: Added SqlDatabaseConfig.ForceQuoteName&lt;br /&gt;Change: AliasDefinition now removes [, ] and . from the name (needed if the table name is in the form [schema].[tablename])&lt;br /&gt;Add: Added support in DefaultORMappingBuilder for the following tagged values: Eco.PrimaryKey, Eco.Discriminator to handle reverseengineered databases.&lt;br /&gt;Add: Added ConnectionString property to PersistenceMapperAdo2 (superclass for all database persistencemappers)&lt;br /&gt;Add: Added property editor for PersistenceMapperSqlServer.ConnectionString&lt;br /&gt;Change: refactored PersistenceMapperMySql to inherit from PersistenceMapperAdo2&lt;br /&gt;Add: Added new default byte mapper for MySql&lt;br /&gt;Change: MySql uses ` as qoutechar&lt;br /&gt;Change: ExpandName doesn't substitute characters if there was no replacement&lt;br /&gt;Change: Improved charactermapping for alias-names&lt;br /&gt;Fix: Improved if-assigned checks for Oracle attribute mappers&lt;br /&gt;Internally build PersistenceMapperFirebird with FirebirdClient to 2.1.0&lt;br /&gt;Internally build PersistenceMapperMySql with MySqlClient to 5.2.3.0&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;EcoSpaceDebugger&lt;/h3&gt;Fix: SyncDebuggerPanel - Avoid getting the Sync-messages if the ecospace is not active&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Documentation:&lt;/h3&gt;More documentation on OCL operations.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;MVC:&lt;/h3&gt;Updated C# MVC-templates for MVC preview 5&lt;br /&gt;&lt;br /&gt;</description><pubDate>Sun, 10 Jan 2010 09:52:47 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Microvideos</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50022.aspx</link><description>The feedback from earlier videos said they where too long. So this time we are going with very short videos that shows isolated tasks. The intended audience are new clients that know nothing or very little about ECO and how to use it, and/or established users that want to look up how a particular task is performed.&lt;br /&gt;&lt;br /&gt;Feedback is welcome as always!&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;Microvideos&lt;/h1&gt;&lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;a href="/microvideos/AddClass_proj/AddClass_proj.html"&gt;Add class&lt;/a&gt;&lt;/span&gt; ; using Modlr to add classes&lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;a href="/microvideos/Inhertance/Inhertance.html"&gt;Class inheritance&lt;/a&gt;&lt;/span&gt; ; set up class inheritance&lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;a href="/microvideos/Attributes/Attributes.html"&gt;Add attribute&lt;/a&gt;&lt;/span&gt; ; Add attributes to classes&lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;a href="/microvideos/Association/Association.html"&gt;Add Association&lt;/a&gt;&lt;/span&gt; ; Add associations between classes &lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;a href="/microvideos/Associationclass/Associationclass.html"&gt;Association classes  &lt;/a&gt;; Many to many associations can have explicit association classes with attributes&lt;br /&gt;&lt;/span&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;a href="/microvideos/Generatecode/Generatecode.html"&gt;Generate code&lt;/a&gt;&lt;/span&gt; ; Update the code that is generated from the model&lt;br /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;a href="/microvideos/CreateObjectsInRuntime/CreateObjectsInRuntime.html"&gt;Create objects in runtime&lt;/a&gt;&lt;/span&gt; ; Create new objects of code (c# in the video but works the same in VB.NET and Delphi.NET)&lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;a href="/microvideos/SettingAttributesAndAssociationsInRT/SettingAttributesAndAssociationsInRT.html"&gt;Set attributes and associations in runtime&lt;/a&gt;&lt;/span&gt; ; Access and set attributes and associations in code&lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;span&gt;&lt;a href="/microvideos/NaiveDatabinding/NaiveDatabinding.html"&gt;Naïve Databinding&lt;/a&gt;&lt;/span&gt; ; Shows how you can bind directly to the generated code (naive since you probably want to a layer between to render the information in, like in the next video: Handles)&lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;a href="/microvideos/UsingReferenceExpressionAndCursorHandles/UsingReferenceExpressionAndCursorHandles.html"&gt;Using the ReferenceHandle, ExpressionHandle and CursorHandle&lt;/a&gt;&lt;/span&gt; ; Use of Handles to manage currency and rendering &lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 1; mso-generic-font-family: roman; mso-font-format: other; mso-font-pitch: variable; mso-font-signature: 0 0 0 0 0 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}A:link {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}SPAN.MsoHyperlink {	COLOR: blue; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: hyperlink; text-underline: single}A:visited {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}SPAN.MsoHyperlinkFollowed {	COLOR: purple; TEXT-DECORATION: underline; mso-style-noshow: yes; mso-style-priority: 99; mso-themecolor: followedhyperlink; text-underline: single}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'"&gt;&lt;span&gt;&lt;a href="/microvideos/UsingContextAgent/UsingContextAgent.html"&gt;Using the context agent  &lt;/a&gt;&lt;/span&gt;; Shows the Context agent that accelerates your form building by giving you model based options&lt;br /&gt;&lt;br /&gt;&lt;a href="/microvideos/ViewModelsProj/ViewModelsProj.htm" target="_blank"&gt;ViewModels&lt;/a&gt; (13 minutes); Short talk about why they exists, then a hands on definition, followed up by use in WinForms, WPF and ASP.NET&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Planning more videos; I had these in mind:&lt;/h3&gt;&lt;br /&gt;&lt;meta content="Word.Document" name="ProgId" /&gt;&lt;meta content="Microsoft Word 12" name="Generator" /&gt;&lt;meta content="Microsoft Word 12" name="Originator" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;&lt;link href="file:///C:%5CUsers%5CHASSE%7E1.PEX%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;style&gt;@font-face {	font-family: Calibri;}@page Section1 {size: 612.0pt 792.0pt; margin: 70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin: 36.0pt; mso-footer-margin: 36.0pt; mso-paper-source: 0; }UNKNOWN {	FONT-FAMILY: "Cambria Math"; panose-1: 2 4 5 3 5 4 6 3 2 4; mso-font-charset: 0; mso-generic-font-family: roman; mso-font-pitch: variable; mso-font-signature: -1610611985 1107304683 0 0 159 0}P.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}LI.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}DIV.MsoNormal {	FONT-SIZE: 11pt; MARGIN: 0cm 0cm 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: "Calibri","sans-serif"; mso-style-unhide: no; mso-style-qformat: yes; mso-style-parent: ""; mso-pagination: widow-orphan; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi}.MsoChpDefault {	mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-style-type: export-only; mso-default-props: yes}.MsoPapDefault {	MARGIN-BOTTOM: 10pt; LINE-HEIGHT: 115%; mso-style-type: export-only}DIV.Section1 {	page: Section1}&lt;/style&gt;&lt;p class="MsoNormal"&gt;Adding your own columns in an ExpressionHandle&lt;br /&gt;Persists to xml&lt;br /&gt;Saving data in runtime&lt;br /&gt;Delete an object in runtime&lt;br /&gt;Finding the touched objects in runtime&lt;br /&gt;Using more primitive types in attributes&lt;br /&gt;Add method&lt;br /&gt;Creating a state machine&lt;br /&gt;Prototyping in design time&lt;br /&gt;Using Autoforms in runtime&lt;br /&gt;Persist to a Sql server&lt;br /&gt;Evolve the database schema after model changes&lt;br /&gt;Searching the model&lt;br /&gt;Using colors and sizes in diagrams&lt;br /&gt;Using CodeComment&lt;br /&gt;Documenting the model&lt;br /&gt;Publish the documentation&lt;br /&gt;Segmenting the model in packages&lt;br /&gt;Importing a package&lt;br /&gt;Using optimistic locking&lt;br /&gt;Using the Undo-redo service&lt;br /&gt;Creating Variables and constants that are eco aware&lt;br /&gt;Query the domain layer with ocl&lt;br /&gt;Query the database with ocl&lt;br /&gt;Query the domain layer with linq&lt;br /&gt;Query the database with linq&lt;br /&gt;Using in memory transactions&lt;br /&gt;Using eco with asp.net&lt;br /&gt;Persisting an ecospace to session state&lt;br /&gt;Using eco with WPF and EcoBinding&lt;br /&gt;Using EcoTree to extract data&lt;br /&gt;Accessing meta data in runtime&lt;br /&gt;Reverse engineer an existing database&lt;br /&gt;Parent or child map inheritance&lt;br /&gt;Add a derived attribute&lt;br /&gt;Add a derived association&lt;br /&gt;Using the ecospace debugger&lt;br /&gt;Synchronize multiple clients&lt;br /&gt;Using eco with Silverlight&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</description><pubDate>Fri, 03 Jul 2009 14:16:50 GMT</pubDate><dc:creator>Administrator</dc:creator></item><item><title>User paid for extensions</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50023.aspx</link><description>&lt;p&gt;If you have ideas on what you want the ECO framework to do and you have a business case that requires it NOW you should not just post the idea to the forum and hope for the best. What you should do is this:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Describe the feature to YOUR stakeholders&lt;/li&gt;&lt;li&gt;Ask us for an estimate for adding the feature to the framework - if we think it is a good idea we will provide an estimate. If we do not think it is a good idea we will tell you why.&lt;/li&gt;&lt;li&gt;If your stakeholders accept this price and understand that the resulting work will be part of the framework and not their own (no exclusivity) you order the extension from us.&lt;/li&gt;&lt;li&gt;We make it a priority to create the feature and deliver it (fixed price according to estimate) as a new ECO release &lt;/li&gt;&lt;li&gt;You, as the financee, get the first versions to verify that this is what you ordered and it matches your needs.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Voila a new feature has been added to the ECO framework for everyone to enjoy.&lt;/p&gt;&lt;p&gt;We call this strategy "User paid for extensions". Use it - it works.&lt;/p&gt;&lt;p&gt;/Hans Karlsen&lt;/p&gt;</description><pubDate>Sat, 30 May 2009 10:59:57 GMT</pubDate><dc:creator>Administrator</dc:creator></item><item><title>Changelog for ECO4</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50011.aspx</link><description>&lt;h2&gt;Eco 4.0.0.4035 - Stable build 2009-05-06&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Fixed 760, retrieving enum values that are null always returned the first enum-value in the set&lt;/li&gt;&lt;li&gt;PersistenceMapperXml now checks the validity of the path for the file when it is activated and will throw an exception if the path is invalid.&lt;/li&gt;&lt;li&gt;Fixed problem with derived boolean attributes in asp autoforms&lt;/li&gt;&lt;li&gt;Fixed invalid assembly names in project templates (MyProject.Asp.Asp.dll)&lt;/li&gt;&lt;li&gt;OclTriggerQuery ("trigger?") will now return false when the object is missing (it is not possible to call a trigger on a null object)&lt;/li&gt;&lt;li&gt;Fixed null-reference bug when a deleted object with derived attributes or associations is loaded into the ecospace &lt;/li&gt;&lt;li&gt;Added an event on EcoSpaceManager to allow custom creation of the EcoSpace&lt;/li&gt;&lt;li&gt;Added two events on DefaultFrontsidePolicy to allow custom creation of objects for DependencyInjection.&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.3583 - Stable build 2009-01-13&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Fixed threading issues in EcoSupport.ResolveType&lt;/li&gt;&lt;li&gt;Objectlists that are created as a copy of another list didn't correctly subscribe to deletion of objects&lt;/li&gt;&lt;li&gt;ItemTemplates are now installed with version number in the filename to avoid problems with Eco5 installations&lt;/li&gt;&lt;li&gt;Added Eco.TypeSupport.IsNullable&lt;/li&gt;&lt;li&gt;fixed 557: Fixed typeconformance for nullable types.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.3228 - Fieldtest build 2008-11-05: &lt;/h2&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=543"&gt;Mantis 543 &lt;/a&gt;] : ElementHandle now implements ISupportInitialize to avoid processing property values during InitializeComponents. &lt;/li&gt;&lt;li&gt;Delphi.Net codegen: Nullable types will not be explicitly cast in the attribute-setter anymore. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.3137 - Fieldtest build 2008-10-22: &lt;/h2&gt;&lt;h3&gt;Core &lt;br /&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Optimization for large cascading delete-operations &lt;/li&gt;&lt;li&gt;Fixed issue with subscriptions on trigger queries in OCL &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Add DeriveValue and ReverseDeriveValue events to EcoDataSource. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added optimistic locking of multilinks in PersistenceMapperXml and PersistenceMapperMemory. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2789 - Fieldtest build 2008-08-27: &lt;/h2&gt;&lt;h3&gt;Persistence &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=525"&gt;Mantis 525 &lt;/a&gt;] Ported performance fix when looking up fields in a query. Also helps when a query contains duplicate field names. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2779 - Fieldtest build 2008-08-20: &lt;/h2&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added IStateService.IsInvalid(IProperty prop) &lt;/li&gt;&lt;li&gt;Added support compact representation of Int64-keys in ExternalIdService &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=534"&gt;Mantis 534 &lt;/a&gt;] All registered services that inherits from EcoSpacePart are now (de)activated along with the ecospace. &lt;/li&gt;&lt;li&gt;IElement null-references are now typed, Fixed syntax for comparing with empty id-lists &lt;/li&gt;&lt;li&gt;Fixed bug in Undohandler when sending subscription messages &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winforms: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;ListActionExtended now passes the static type when evaluating EnabledOcl and VisibleOcl to handle the case where the element of the handle is null. &lt;/li&gt;&lt;li&gt;ContextAgent now sets DataSourceUpdateMode to OnPropertyChanged for comboboxes &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=532"&gt;Mantis 532 &lt;/a&gt;] OclPs expressions evaluated with PersistenceMapperXml and PersistenceMapperMemory failed to correctly determine the context of the self-variable when it was an object (and not an object list) &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=519"&gt;Mantis 519 &lt;/a&gt;] Added a dedicated decimal mapper for FireBird. Restricts the precision to 18 places. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Ocl: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Subscriptions failed when a VariableHandle refers to an object, and the object changes. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=535"&gt;Mantis 535 &lt;/a&gt;] Ocl-operation "-&gt;notEmpty" returned the wrong value when the list was null (but the correct when it was just empty) &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Implemented EcoDataSourceDesigner.RefreshSchema to avoid NotImplemented exception in the designer &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Eco 4.0.0.2733 - Fieldtest build 2008-07-14: &lt;/h2&gt;&lt;h3&gt;IDE: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Disabled the PostCompile hook in handle designer since it causes issues in VS when triggering a SetupProperties while the IDE is debugging (and the buffers are readonly). Need to delay the event until the IDE is no longer debugging &lt;/li&gt;&lt;li&gt;Removed trailing whilespace in webconfig templates &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winforms: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=516"&gt;Mantis 516 &lt;/a&gt;]: Column resize doesn't work for DataGridView if EcoDragSource is enabled &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Droopyeyes: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed error where no subscription notifications were sent after CancelAllSubscriptions was called and then new subscriptions were placed &lt;/li&gt;&lt;li&gt;Hooked into DirtyObject.Dispose in order to dispose of this component automatically. Also prevented new subscriptions being placed once disposed &lt;/li&gt;&lt;li&gt;Changed form reference to a WeakReference so that the form can be disposed of when no longer referenced, in turn this will now dispose of the DirtyObjectCatcher. In addition form events and Form.MdiParent events are unhooked when the form is closed and rehooked when it is shown, this prevents a strong reference from a forms MdiParent holding a reference to the DirtyObjectCatcher. &lt;/li&gt;&lt;li&gt;Fixed memory leaks in DirtyObjectCatcher &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;br /&gt;&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Free DerivedMemoryManager when deactivating EcoSpace. &lt;/li&gt;&lt;li&gt;Collect subscribers before growing list. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=513"&gt;Mantis 513 &lt;/a&gt;] Fix error in deactivation frontsidepolisy &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=513"&gt;Mantis 513 &lt;/a&gt;] Detach all events on ExtentServiceImpl.DeActivate. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=512"&gt;Mantis 512 &lt;/a&gt;] Fixed errormessage when invalid rolename is given to "EnsureRelatedObjects" &lt;/li&gt;&lt;li&gt;Preconditions for methods are now exposed as IMethod.Precondition if they are defined as tagged values ("Eco.Precondition") on the method. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed DateTimeFormat for FireBird &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Debugger &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;DirtyObjectsDebuggerPanel now delays its updating of the dirtylist until idle so if many obejcts become dirty (or clean) the list isnt updated until the end... &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2623 - Fieldtest build 2008-06-24: &lt;/h2&gt;&lt;h3&gt;Services: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added generic GetEcoService&amp;lt;T&gt; to EcoServiceHelper &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a target="_blank" href="http://magpie.sytes.net/mantis/view.php?id=501"&gt;Mantis 501 &lt;/a&gt;, &lt;a target="_blank" href="http://magpie.sytes.net/mantis/view.php?id=504"&gt;504 &lt;/a&gt;] Moved fetching of old singlelink values to occur before deleting objects to avoid problems with exactification. &lt;/li&gt;&lt;li&gt;Fixed a problem with Deleted objects not getting correctly refreshed after unload &lt;/li&gt;&lt;li&gt;[ &lt;a target="_blank" href="http://magpie.sytes.net/mantis/view.php?id=500"&gt;Mantis 500 &lt;/a&gt;] the list of the database updates performed by the client was never purged so long lived clients would send longer and longer lists of commits to be excluded. &lt;/li&gt;&lt;/ul&gt;&lt;p /&gt;&lt;h3&gt;Documentation &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed &lt;a href="http://magpie.sytes.net/mantis/view.php?id=371"&gt;371 &lt;/a&gt;, &lt;a href="http://magpie.sytes.net/mantis/view.php?id=401"&gt;401 &lt;/a&gt;, &lt;a href="http://magpie.sytes.net/mantis/view.php?id=418"&gt;418 &lt;/a&gt;, &lt;a href="http://magpie.sytes.net/mantis/view.php?id=482"&gt;482 &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2476 - Fieldtest build 2008-05-22: &lt;br /&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Added an event on the DisplayQueue that signals that the queue goes from empty to non-empty. &lt;/li&gt;&lt;li&gt;Fixed bug in OclPs when external parameters had the value null. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2414 - Fieldtest build 2008-05-16: &lt;br /&gt;&lt;/h2&gt;&lt;h3&gt;IDE and templates: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added button to aboutform: "Copy buildnumber to clipboard" &lt;/li&gt;&lt;li&gt;Improved comment in Winform template about setting the EcoSpace for both ReferenceHandles _AND_ VariableHandles &lt;/li&gt;&lt;li&gt;Activated ContextAgent in VS &lt;/li&gt;&lt;li&gt;Added support for web-forms in ContextAgent &lt;/li&gt;&lt;li&gt;Added support for ProjectClosing event in VS &lt;/li&gt;&lt;li&gt;Added button to About form: "Copy buildnumber to clipboard" &lt;/li&gt;&lt;li&gt;Fixed VS project templates for WinForm/Console PersistenceServers so they compile and register the server with the correct name (ServerName.rem). &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Removed button from VS WinForm server and made it register on startup instead. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Handles: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;RootHandleDesigner now informs the roothandle that the model might have changed after a compile-event in the IDE so that columns are correctly updated. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Added better error message when a variablehandle is not properly configured &lt;/li&gt;&lt;li&gt;Added workaround for .net bug in RootHandle property editor when the list of components is more than 5 components long. The last entry was not shown in the list. &lt;/li&gt;&lt;li&gt;RootHandleDesigner now informs the roothandle that the model might have changed after a compile-event in the IDE &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Optimize creation of multilink adapters. &lt;/li&gt;&lt;li&gt;ExternalIdService now returns a null-token instead of throwing an exception for null-objects &lt;/li&gt;&lt;li&gt;Improved error message when an association refers to a class that is not in the known packages. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with storing nullable types that have locale-dependent string representations (such as Nullable&amp;lt;DateTime&gt;) with the Xml-mapper &lt;/li&gt;&lt;li&gt;Fixed regression bug in OclPs when using "-&gt;size" in an expression, (introduced in build 4.0.0.2200) &lt;/li&gt;&lt;li&gt;Fixed problem with allocated queries not being correctly returned. &lt;/li&gt;&lt;li&gt;Fixed problem with allocated queries not being correctly returned. &lt;/li&gt;&lt;li&gt;Fixed problems with persisting nullable enums to databases. &lt;/li&gt;&lt;li&gt;Added support for parameters with null-values in OclPs-queries &lt;/li&gt;&lt;li&gt;Fixed problem with generating query-parameters for autoinc keys &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fixed bug in ChangePointCondition handler. Now the correct set of DiscriminatorImplementations are passed to the Query-reader to avoid exactification. &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoModeler: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;New build from ModelMakerTools with bugfix for sourcedoc generation and new docking-library &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;EcoMembershipProvider now consistently uses DateTime.UtcNow &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2262 2008-04-25: &lt;br /&gt;&lt;/h2&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=471"&gt;Mantis 471 &lt;/a&gt;] rev 2189 contained a bug that caused autoinc keys to fail to load their new data. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added detection of the case when a class doesn't have an UmlElement attribute &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;IsTrustedPartOfEco now uses only values from Assembly and not from AssemblyName to avoid problems when running in medium trust on a web server &lt;/li&gt;&lt;li&gt;EncryptedLicenseProvider.cs: First tries to locate the license in the assembly of the ecospace to avoid issues with medium trust. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2230 2008-04-22&lt;br /&gt;&lt;/h2&gt;&lt;h3&gt;ASP &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;ECO asp applications should now behave well even on servers restricted to medium trust &lt;/li&gt;&lt;li&gt;Fixed problem with databinding singlelinks with comboboxes in ASP (columns with "AsExternalId" were always readonly) &lt;/li&gt;&lt;li&gt;Fixed problem with setting a singlelink to null in ASP &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed a problem when custom OR mapping refers to a column that is not listed in the schema section &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2200 - EcoIV2008-04-18&lt;/h2&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=466"&gt;Mantis 466 &lt;/a&gt;]: Invalid sql generated when applying an operation like toUpper or length to an attribute of a related object in a query &lt;/li&gt;&lt;li&gt;Added possibility for autoinc-keymappers to generate specialized queries to retrieve the new autoinc value &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;RadStudio Wizard: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with duplicate web.config files in asp-project &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2186 - EcoIV for RadStudio FT &lt;/h2&gt;&lt;h3&gt;RadStudio Wizard: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=034"&gt;Mantis 034 &lt;/a&gt;, &lt;a href="http://magpie.sytes.net/mantis/view.php?id=035"&gt;035 &lt;/a&gt;], Added support for more remote persistenceservers (console, IIS, Service) &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;AspProviders: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with Eco ASP MemberShip Provider (GetAllUsers) when there are no members in the database &lt;/li&gt;&lt;li&gt;Fixed inconsistencies between DateTime.Now and DateTime.UtcNow, the EcoSessionStateStoreProvider now always uses UTC time. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fix bug in CalculateMemberModified. Remove unused code. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added overload to DatablockConverter.ConvertToDatablock to avoid setting the initialvalues of the objects &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2167 - EcoIV for RadStudio FT &lt;/h2&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=456"&gt;Mantis 456 &lt;/a&gt;] "Exactifying" childmapped classes caused nullreference exceptions &lt;/li&gt;&lt;li&gt;Fixed issue with versioned objects in ocl-operation "modifiedSinceTimeStamp" &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Handles &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for NullRowMode in nestings &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2158 - EcoIV for RadStudio FT &lt;/h2&gt;&lt;h3&gt;Persistence &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;oclPsOperation "modifiedSinceTimeStamp" now supports versioned classes correctly &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2151 - EcoIV for RadStudio FT &lt;/h2&gt;&lt;h3&gt;EcoModeler &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Before code gen IDE Modified Buffers are checked. &lt;/li&gt;&lt;li&gt;Code gen replaces only files that are actually different. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=454"&gt;Mantis 454 &lt;/a&gt;]: Custom OR mapping with two classes in the same table with different singlelinks stored in the same column to two different classes with overlapping id-values would load incorrectly. Testcase added &lt;/li&gt;&lt;li&gt;Fixed order in which the timestamp and the cache is initialized in PersistenceMapperXml. Caused Null-reference exceptions when Update was called before the first Fetch-operation &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2133 - EcoIV for RadStudio FT &lt;/h2&gt;&lt;h3&gt;RadStudio project wizard: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=206"&gt;Mantis 206 &lt;/a&gt;] Added possibility to configure the name of the default package in the BDS project wizard &lt;/li&gt;&lt;li&gt;ProjectNames generated by the RadStudio Projectwizard no longer contains "." since RadStudio looses track of project dependencies for such projects. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=213"&gt;Mantis 213 &lt;/a&gt;] Added navigator images to the BDS asp autoform templates &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Ocl: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added new OCL-operation: modifiedSinceTimeStamp &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=450"&gt;Mantis 450 &lt;/a&gt;] Evolve with PersistenceMapperDbx caused "Column 'COLUMN_NAME' does not belong to table" &lt;/li&gt;&lt;li&gt;Fixed optimistic locking for inherited multilinks &lt;/li&gt;&lt;li&gt;Fixed bug in PMapperXml/Memory that would cause updates of old objects to be ignored &lt;/li&gt;&lt;li&gt;Added support for GUID ids in DatablockConverter &lt;/li&gt;&lt;li&gt;Added partial support for timestamps in PersistenceMapperXml &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;SourceCode &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added sourcecode for dbx, added source for designdll for dbx, bdp and sqlserver) &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Demos &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed name of pas demos project group &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2109 - EcoIV for RadStudio FT &lt;/h2&gt;&lt;h3&gt;Installer: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Installer is now an exe-file and not an msi-file. This fixes several issues with the installer under Vista. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;VCL: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=315"&gt;Mantis 315 &lt;/a&gt;]: InitialValues for attributes are applied to new rows in Eco VCL handles &lt;/li&gt;&lt;li&gt;TVariableHandle now performs a call to "First" when the initial value has been set. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=399"&gt;Mantis 399 &lt;/a&gt;] Singlelinks with SaveAction=Freeze can now be "cascadedeleted" by their owning objects. &lt;/li&gt;&lt;li&gt;Add missing begin/end for method calls. caused exceptions for autosubscribed isquery-methods &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoSpace/PMP-Designer: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=347"&gt;Mantis 347 &lt;/a&gt;] Removed the custom label from EcoSpace designer and PersistenceMapperDesigner to allow copy/paste of components &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Handles &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added method ElementHandle.GetRenderedValue to extract the rendered values in a row/column from a handle &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=030"&gt;Mantis 030 &lt;/a&gt;] AutoCreate columns for handles (both winform, VCL and ASP) ignored blob-attributes in designtime, so they could not be databound in the designer. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=440"&gt;Mantis 440 &lt;/a&gt;] XmlMapper assigned new values to autoinc attributes each time the object was updated. &lt;/li&gt;&lt;li&gt;Autoinc attributes are now allocated in chronological order on the new objects with XML-mapper &lt;/li&gt;&lt;li&gt;Improved error message when an autoinc-attribute is used with an AttributeKeyMapper (it will not be assigned when the primary key must get its value). &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;WrapWizard &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=029"&gt;Mantis 029 &lt;/a&gt;] DelayedFetch was not correctly handled in the wrap-wizard &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=028"&gt;Mantis 028 &lt;/a&gt;] The wrapwizard now uses the package name instead of the project name when generating the filename for the ORMapping file &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Doc: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Updates to ASP-documentation, chapter 7 for VS &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.2025 - EcoIV for RadStudio FT &lt;/h2&gt;&lt;h3&gt;Documentation: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=156"&gt;Mantis 156 &lt;/a&gt;] API documentation is now registered in BDS online help &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;ConnectionPool will now verify that all queries have been returned, or else throw an exception &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;BDS CodeGen: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with parameterless constructor being removed from classes with no superclass when code was updated. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Other: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=442"&gt;Mantis 442 &lt;/a&gt;] CTRL-M in ocleditor toggles from default font (Tahoma) to monospaced font (Courier New) &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winforms: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=429"&gt;Mantis 429 &lt;/a&gt;] Default Autoforms are now "TopMost", so they are not hidden behind the main window if the EcoSpaceDebugger is launched as a modal dialog. &lt;/li&gt;&lt;li&gt;Fixed editing Expression when multiple ExpressionHandles are selected on a win/web-form &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=061"&gt;Mantis 061 &lt;/a&gt;] EventDerivedColumn.TypeName editor is too small &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=438"&gt;Mantis 438 &lt;/a&gt;] Undoblocks didn't keep the value for "ContainsChanges" when they were moved between undolist/redolist &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=186"&gt;Mantis 186 &lt;/a&gt;] Improved error message when no initial transition is valid &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Droopyeyes: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added AllowPartiallyTrustedCallers to Droopyeyes assemblies &lt;/li&gt;&lt;li&gt;DirtyObjectCatcher: Changed to use IUndoBlock.Subscribe instead of subscribing to DirtyListService &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.1963 - EcoIV for VS &lt;/h2&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improved the error message when the Server and the client has different &lt;/li&gt;model checksums &lt;/ul&gt;&lt;h3&gt;VS IDE: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed the URI for IIS remoting persistence servers to end with ".rem" &lt;/li&gt;&lt;li&gt;Added contents to the Readme for IIS PersistenceServer &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoModeler: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;When code is generated in EcoModeler, the files that are not open in &lt;/li&gt;VS will be opened and then closed. This is a workaround for the IDE not noticing that a file has changed. &lt;/ul&gt;&lt;h3&gt;Winforms: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Opening an autoform from the multilink tabs in the winform autoform &lt;/li&gt;didn't handle sorting in the grids correctly. &lt;/ul&gt;&lt;h3&gt;Documentation: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added VS Quickstart chapter 7 to the installer &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.1942 - Eco for VS RC2 &lt;/h2&gt;&lt;h3&gt;VCL: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=389"&gt;Mantis 389 &lt;/a&gt;] TReferenceHandle.SetElement will automatically call &lt;/li&gt;"First" so the element is selected. &lt;/ul&gt;&lt;h3&gt;Winform: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Autoform state-tab now shows information if an object has an undefined &lt;/li&gt;state &lt;li&gt;Winform Autoform state-tab now shows information if an object has an &lt;/li&gt;undefined state &lt;/ul&gt;&lt;h3&gt;EcoModeler - prototyper: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added handling of DefaultDbValue for attributes &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Documentation &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Install VS/Chap6 PDF &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;IDE: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added a "Check for updates" button on the about box. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added ExpectedType when editing the PsExpression in EcoDataSource &lt;/li&gt;(must be a collection of objects) &lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=419"&gt;Mantis 419 &lt;/a&gt;] CreateDefaultColumns appears multiple times in the &lt;/li&gt;verb-list for EcoDataSource &lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=431"&gt;Mantis 431 &lt;/a&gt;] AsExternalId column is now readonly. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=410"&gt;Mantis 410 &lt;/a&gt;] Web Autoform filters didn't handle classes with methods &lt;/li&gt;in them. Caused invalid typecast &lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=423"&gt;Mantis 423 &lt;/a&gt;] CollectionType.ObjectType caused a null-reference &lt;/li&gt;exception for collections of classes that don't have a .net type (such as implicit rootclasses or during prototyping) &lt;li&gt;Fixed bug in StateMachine.IsInState when the attribute value is null &lt;/li&gt;&lt;li&gt;State attributes will now automatically get "AllowNull" set to false &lt;/li&gt;in UmlRT. &lt;/ul&gt;&lt;h3&gt;VS templates: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Winform PServer button for registering the server is now disabled &lt;/li&gt;after first click &lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=427"&gt;Mantis 427 &lt;/a&gt;] Text change: Web Service =&gt; IIS remoting &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=426"&gt;Mantis 426 &lt;/a&gt;] Name change: Eco solution =&gt; ECO Solution &lt;/li&gt;Eco WebForm =&gt; ECO Web Form &lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=414"&gt;Mantis 414 &lt;/a&gt;]: Generate evolve-warning for missing DefaultDbValues for &lt;/li&gt;stateattributes and attributes with InitialValue &lt;li&gt;Added evolve-error if a stateattribute has AllowNull &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Installer: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Unregistration of helpfiles is now done before they are deleted from &lt;/li&gt;disk. Fixes crash in uninstaller &lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.1896 - Eco for VS RC2 &lt;/h2&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=390"&gt;Mantis 390 &lt;/a&gt;] Added detection of loops with triggerless transitions. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winform: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=391"&gt;Mantis 391 &lt;/a&gt;] Avoid recreating the TriggerControlsRefresher when &lt;/li&gt;the state has changed. Caused flickering when the state is changed multiple times in the same autoform &lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=387"&gt;Mantis 387.1 &lt;/a&gt;] Added support for BindingSource components in &lt;/li&gt;CurrencyManagerHandle. &lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=387"&gt;Mantis 387.2 &lt;/a&gt;] IBindingList.AllowRemove now returns true if the &lt;/li&gt;underlying elementlist returns true for "SupportsRemoveAt". This is especially true for extent-lists (allInstances). &lt;/ul&gt;&lt;h3&gt;EcoSpace Designer: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;AutoHookup and ShowTaskHints are disabled by default. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;VS IDE: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=412"&gt;Mantis 412 &lt;/a&gt;] Remove extra "EcoSpace" from wizard. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=407"&gt;Mantis 407 &lt;/a&gt;] Readme.html in IIS PersistenceService project got &lt;/li&gt;automatically published and was browsable externally &lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=408"&gt;Mantis 408 &lt;/a&gt;] RemotePersistence WebService now have CopyLocal on all &lt;/li&gt;eco assemblies like standard ASP project &lt;li&gt;Added expansion of the AssemblyVersion and PublicKeyTokenString &lt;/li&gt;variables in WebServicePServer &lt;li&gt;Added sample MachineKey section to the web.config templates. &lt;/li&gt;&lt;li&gt;Added missing variable "ServerName" for ConsolePServer projects &lt;/li&gt;&lt;li&gt;Added field that references the EcoSpaceType to PMP when compiled as &lt;/li&gt;a PServer to avoid the compiler to optimize the reference to the ecospace assembly &lt;/ul&gt;&lt;h3&gt;EcoModeler: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;If an "unsupported" IDE version is defined in the registry - from &lt;/li&gt;an older version, this is rejected -&gt; the problem that EM cannot cannot connect to VS should be fixed in that case too. &lt;li&gt;Diagram editor changes are committed before invoking the Prototyper. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=317"&gt;Mantis 317 &lt;/a&gt;] Added missing script pieces in evolve script to update &lt;/li&gt;the ECO_TYPE with new discriminators. &lt;/ul&gt;&lt;h2&gt;Eco 18.0.0.1872 &lt;/h2&gt;&lt;h3&gt;BDS integration: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed problem with autoform in BDS &lt;/li&gt;&lt;li&gt;Fixed incorrect nested comment in bds webconfig &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;General designtime: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Refactored all PersistenceMapper components so they no &lt;/li&gt;longer require explicit registration in the IDE. All designtime behaviour is managed by a component designer that is loaded automatically by the IDE. &lt;/ul&gt;&lt;h3&gt;VS integration: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;more changes to the server templates &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Keeping track of allocated exec-queries separate from the &lt;/li&gt;other queries to make it a little easier to pinpoint unallocated queries. &lt;li&gt;CreateDatabaseSupport now uses the registered string mapper when writing the names of the tables to the db &lt;/li&gt;&lt;li&gt;DbxMetaData now skips the system tables more explicitly &lt;/li&gt;&lt;li&gt;Fixed problem with Dbx/Interbase and string parameters &lt;/li&gt;&lt;li&gt;Bdp, Dbx and Blackfish assemblies are now installed by default in VS too &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Help/Documentation &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Help registration is now done one namespace at a time to avoid filelocking issued &lt;/li&gt;&lt;li&gt;Added shortcut to launch ECO API help from start menu. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.1840 &lt;/h2&gt;&lt;h3&gt;VS Integration: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=353"&gt;Mantis 353 &lt;/a&gt;] Added explicit disposing of the global ecospace at the end of the winform application. &lt;/li&gt;&lt;li&gt;More template changes. All servers now compile, though the IIS one is untested, and probably doesn't find the EcoSpaceType. &lt;/li&gt;&lt;li&gt;the Windows Service version of remote persistence in the wizard now works. &lt;/li&gt;&lt;li&gt;Put eco item templets in subfolders for VS2008. &lt;/li&gt;&lt;li&gt;Removed the registration of SqlConnection on the eco tool palette &lt;/li&gt;&lt;li&gt;Collapse solution explorer after running wizard. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=383"&gt;Mantis 383 &lt;/a&gt;] Added Guid as a predefined type in UmlRt &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=373"&gt;Mantis 373 &lt;/a&gt;] ocl-operations "if", "and" and "or" now handles boolean values that are null (and treats the value as "false"). &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=352"&gt;Mantis 352 &lt;/a&gt;] The cache did not handle attributes with array type (such as blob, byte[]) that had the value null. &lt;/li&gt;&lt;li&gt;Added Guid as a known type in EcoDatatypes.xml &lt;/li&gt;&lt;li&gt;Added support for " &lt;now&gt;" as a valid initialvalue for datetime attributes &lt;/now&gt;&lt;/li&gt;&lt;li&gt;Improved errormessage when an ocl-operation is applied to values that it is not defined for &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;BDS integration: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Separated EcoModelLayerIntegration installtion into a separate method guarded with a try/except to see if that is enough to let it load in a pro-installation &lt;/li&gt;BDS codegeneration now supports changing the signature from "XXXDeriveAndSubscribe(reevaluateSubscriber: Eco.Subscription.ISubscriber; resubscribeSubscriber: Eco.Subscription.ISubscriber): System.Object;" to "XXXDerive: System.Object;" in order to use the new autosubscribing mechanisms. The change must be made manually in code, but the codegen will recognize this new method and avoid regenerating the original signature. &lt;/ul&gt;&lt;h3&gt;EcoModeler: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Adding a new attribute sets AllowNull = False by default. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoModeler ocleditor: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=372"&gt;Mantis 372 &lt;/a&gt;] EcoModeler/OclEditor: Unknown types are not mapped to string any more but to a type called "Unknown Type". &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=380"&gt;Mantis 380 &lt;/a&gt;] Loosen critera for launching OCL editor in EcoModeleler from IsRunnable it IsBrowsable. &lt;/li&gt;&lt;li&gt;Fixed issue in EM/OclEditor when a trigger parameter was of a type that could not be resolved. Will now ignore the parameter rather than throw an exception &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoModeler prototyper: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=378"&gt;Mantis 378 &lt;/a&gt;] Fixed problem with multiple non-navigable association ends from the same class &lt;/li&gt;&lt;li&gt;Prototyper now supports InitialValue, Derived, AllowNull &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Documentation: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;API help should now be correctly installed in VS help system and work with F1 &lt;/li&gt;&lt;li&gt;Added Quickstart chapter 5 for VS, iuncluding descriptions for MaxLength support, validation and Drag&amp;amp;Drop &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Web: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=247"&gt;Mantis 247 &lt;/a&gt;] Added EcoDataSource.CreateDefaultColumns and a designer verb to make it available in designtime. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.1795 &lt;/h2&gt;&lt;h3&gt;Handles: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=145"&gt;Mantis 145 &lt;/a&gt;] Setting the element of a referenceHandle (VCL and Winforms) now checks that the element comes from the same ecospace as the handle is using &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=045"&gt;Mantis 045 &lt;/a&gt;] Disable delete in ListActionHandler if the is no current element. &lt;/li&gt;&lt;li&gt;CurrencyManagerHandle.CurrentElement now returns null if the control in the parameter is not connected to a handle. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=357"&gt;Mantis 357 &lt;/a&gt;] Setting ElementHandle.AsExternalId actually set the value in ReadOnly instead... fixed. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=232"&gt;Mantis 232 &lt;/a&gt;] ListActionExtender can now be used with handles that are not listhandles. as long as the operation is not directly list-related such as "delete", "executeAction", "showautoform". &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=84"&gt;Mantis 84 &lt;/a&gt;] Undoblocks can now be subscribed to, and the list that is returned from Undoblock.GetChangedObjects is now live and reused for the lifetime of the block. &lt;/li&gt;&lt;li&gt;Don't reflect into mscorlib when looking for EcoSpaceTypeName. &lt;/li&gt;&lt;li&gt;ElementCollectionImpl: If there is no .net type for an object, .AsObject will return an object[] &lt;/li&gt;&lt;li&gt;DerivedMember: Added support to validate the derived values even if there is no clr-type assigned to the member in UmlRt. &lt;/li&gt;&lt;li&gt;Changed to InternalGetByIndex for some ObjectList operations to avoid loading all objects in the list &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;DroopyEyes: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added UTF32 encoding to XmlQueryService &lt;/li&gt;&lt;li&gt;Added AllowMultiple=True on AutoContainerAttribute &lt;/li&gt;&lt;li&gt;Changed the validator so that constraints are returned in the order defined in the model. &lt;/li&gt;&lt;li&gt;Autocontainers: Added optional IsCollection property so that it is possible to provide containers for collections. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Changed default value for SqlScriptStartTransaction for Sql Server to "BEGIN TRANSACTION" &lt;/li&gt;&lt;li&gt;Added source distribution for Firebird mapper &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Docs: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added a section on data binding to a combo box in the grid. &lt;/li&gt;&lt;li&gt;Added a section describing the structure of a new ECO solution &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Vcl: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=345"&gt;Mantis 345 &lt;/a&gt;] The default dfm-value for TOclVariables.Variables.HandleMode did not match the value set in the constructor. This caused the value to be lost all the time, and always set to rmElement. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;EcoSpaceManager does not return EcoSpaces to the pool if an error has occurred (to avoid throwing a new exception if the ecospace is dirty that will hide the first exception) &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=355"&gt;Mantis 355 &lt;/a&gt;] Typo in Webservice templates &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=339"&gt;Mantis 339 &lt;/a&gt;] Let EcoDataSource.IsValidNewValues create a new object if called with a null key. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Winforms: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Statemachine tab in winform autoforms now re-render themselves on idle when the state has changed to reduce flickering. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;VS Integration: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=351"&gt;Mantis 351 &lt;/a&gt;] Add AssemblyInfo to model project. &lt;/li&gt;&lt;li&gt;Add Asseblyinfo to EcoSpace project as well. &lt;/li&gt;&lt;li&gt;Use $UNIQUEGUID$ everywhere in templates. &lt;/li&gt;&lt;li&gt;Add Console version of persistence server to templates. &lt;/li&gt;&lt;li&gt;Open EcoModeler with VS integration on double-click, and "open" in the context menu. &lt;/li&gt;&lt;li&gt;Error messages now show up in the error-tab in VS &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoModeler &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Ocl-editor in EM now shows the model errors nicely if there are any &lt;/li&gt;&lt;li&gt;Errors in the model are now shown nicely when the EM prototyper is run. &lt;/li&gt;&lt;li&gt;Add logging of EcoModeler updating Project file. &lt;/li&gt;&lt;li&gt;Added support in EM prototyper for aggregation and composite associations, &lt;/li&gt;visibility, ColumnName, saveaction, deleteaction, Persistent, Ordered State. &lt;li&gt;EM prototyper now handles effect, entry and exit actions in statemachines &lt;/li&gt;&lt;li&gt;Improved errormessage in EM prototyper when there are duplicate names in states &lt;/li&gt;&lt;li&gt;Visual Style values in Visual tabs in diagram symbol dialogs easier to edit. &lt;/li&gt;&lt;li&gt;Default role names for recurrent (self) association made unique (Target_ClassName, Source_ClassName) &lt;/li&gt;&lt;li&gt;Association dialog checks for duplicate role names for recurrent associations &lt;/li&gt;&lt;li&gt;CodeGen: IList &lt;type&gt;changed to IEcoList &lt;type /&gt;&lt;/type&gt;&lt;/li&gt;&lt;li&gt;CodeGen: HasUserCode: Fixed generation of Attribute and getter/setter &lt;/li&gt;&lt;li&gt;Splash/About image + added link to www.capableobjects.com &lt;/li&gt;&lt;li&gt;Help menu redirected links to support, news etc. &lt;/li&gt;&lt;li&gt;Help menu: customized + new item EcoModeler manual. &lt;/li&gt;&lt;li&gt;EcoModeler prototyper: Added support for constraints, DerivationOcl, Formernames &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.1707 &lt;/h2&gt;&lt;h3&gt;Winforms: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;ExpressionHandle and OclPSHandle now cache their static type to avoid parsing the ocl-expression when the type has not changed. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added Asp Autoforms to the Asp projects &lt;/li&gt;&lt;li&gt;Fixed bug in autoforms that would cause all rendered HTML to occur twice &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=308"&gt;Mantis 308 &lt;/a&gt;] Make ExternalId of non-saved objects stable. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=040"&gt;Mantis 040 &lt;/a&gt;] Changed EcoSpace.LinkFetchStrategy: LinkFetchStrategy -&gt; EcoSpace.DefaultLinkFetchStrategy: FetchStrategy. New enum is in namespace "Eco.Framework" &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=334"&gt;Mantis 334 &lt;/a&gt;] Nullable types now conforms to nonnullable types. Reflected ocl-methods now convert nulls to default values if the operation does not explicitly accept nullable types &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=349"&gt;Mantis 349 &lt;/a&gt;] Fixed order of activation when ecospace is deserialized &lt;/li&gt;&lt;li&gt;DirtylistService can now access the list of dirtyobjects while it is deserializing &lt;/li&gt;&lt;li&gt;The frontsideadapters for both derived and non derived multilinks now implement IEcoList &lt;t&gt;(this is returned when calling aMultiLinkElement.AsObject). &lt;/t&gt;&lt;/li&gt;&lt;li&gt;ReflectionReader: Parameters like "a: ICollection &lt;person&gt;" or "a: IEnumerable &lt;person&gt;" will now be "EcoCallable". &lt;/person&gt;&lt;/person&gt;&lt;/li&gt;&lt;li&gt;ElementCollectionImpl.AsObject now returns a typed array (that will implement ICollection &lt;t&gt;) &lt;/t&gt;&lt;/li&gt;&lt;li&gt;Add EcoListShimBase class, suitable for overriding in own implementations intercepting list operations. &lt;/li&gt;&lt;li&gt;Added ICacheContentService.ApplyDatablock &lt;/li&gt;&lt;li&gt;Better message for members typed as ECO class, but not part of association. &lt;/li&gt;&lt;li&gt;Don't even try to Ecoify models that aren't runnable. &lt;/li&gt;&lt;li&gt;Take best match rather than first match when reflecting for methods in class including superclasses. &lt;/li&gt;&lt;li&gt;Fixed problem in ocl-operation "excluding" and "difference" when the list is immutable. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;VS integration: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=342"&gt;Mantis 342 &lt;/a&gt;] Implement IIdeProject.ContainsFile() and IIdeProject.AddNewTextFile() for VS2005. &lt;/li&gt;&lt;li&gt;No messagebox is shown when the user aborts schema creation. &lt;/li&gt;&lt;li&gt;Added icons and captions to error messageboxes. &lt;/li&gt;&lt;li&gt;Register SqlConnection in the Eco tab since it is not registered by default on the tool palette in VS2005/8 &lt;/li&gt;&lt;li&gt;Create a CLR-safe name for use in namespace and class names in the wizards. &lt;/li&gt;&lt;li&gt;Better message when assembly is not found, mentioning the possibility that the project isn't compiled. &lt;/li&gt;&lt;li&gt;Add "copy local" to all ECO assemblies in Asp.csproj template. &lt;/li&gt;&lt;li&gt;Relinked missing event handlers in project wizard &lt;/li&gt;&lt;li&gt;Template changes: &lt;/li&gt;- Add SyncHandler to PersistenceMapperProvider - Change name of PersistencemPapperClass to e.g. Project2PMP. - Add button for registering winform remote persistence server. - Set url of persistenceMapperClient1 in persistence server case. - Add indirect dependencies to projects, to simplify IIS and XCOPY deployment. &lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=264"&gt;Mantis 264 &lt;/a&gt;] Added support for SqlServer syntax for quoting [names] &lt;/li&gt;&lt;li&gt;Improved errormessage when PMapper has no Connection &lt;/li&gt;&lt;li&gt;PMapper now supports mapping to tables/columns that contains space in the name. Added quoting of names in several places where it was missing &lt;/li&gt;&lt;li&gt;ExpandPrefix doesn't map characters anymore &lt;/li&gt;&lt;li&gt;Added ColumnDefinition.ParamName where space is mapped to "_" &lt;/li&gt;&lt;li&gt;SqlServer mapper now uses a NText field to store the ORMapping data &lt;/li&gt;&lt;li&gt;Improved error message when EcoSpaceTypeName in PersistenceMapperProvider can't be resolved to a type &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Documentation: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Preliminary version av remote persistence &lt;/li&gt;&lt;li&gt;Changed API documentation generator from Sandcastle to Doc-o-Matic &lt;/li&gt;&lt;li&gt;Chapter 2: Added a section illustrating the difference between classes and instances. &lt;/li&gt;&lt;li&gt;updated screenshots &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoModeler - Prototype tool &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added guards, triggers, and fixed an error about duplicate Initial states &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.1648 &lt;/h2&gt;&lt;h3&gt;VS IDE: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Add "using System.Collections.Generic" to a number of templates. &lt;/li&gt;&lt;li&gt;Add menu option to launch EcoModeler integration. &lt;/li&gt;&lt;li&gt;Ensure that Eco tab is visible when messages are written to it. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=290"&gt;Mantis 290 &lt;/a&gt;] When CreateSchema, evolve or other operations from the EcoSpace/PMP designer fails, it will now also show a message box. In addition to that, PersistenceMapperSqlServer now initializes it settings to SqlServer2000/2005 when it is opened in the designer the first time. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=211"&gt;Mantis 211 &lt;/a&gt;] Added support for designtime initial values in VariableHandle &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=123"&gt;Mantis 123 &lt;/a&gt;] Renamed parameter to EcoSpacePart.Serialize from "source" to "target" to better indicate what it is used for... &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=272"&gt;Mantis 272 &lt;/a&gt;] Balanced the ocl parse-tree while building it to avoid getting too deeply nested trees with expressions like (x=1) or (x=2) or (x=3) or (x=4) ... or (x=n). Only applied for commutative operations (where (x op (y op z)) is equivalent to ((x op y) op z), and only if the expression is not explicitly parenthesised. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=230"&gt;Mantis 230 &lt;/a&gt;] PersistenceService now ignores objects that have been created and deleted again before they are sent to UpdateDatabase &lt;/li&gt;&lt;li&gt;OCL-editor now shows non-navigable association ends too. They are allowed in OCL. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Asp: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Add EcoSpaceManager.UsePool. &lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Eco 4.0.0.1620 &lt;/h2&gt;&lt;h3&gt;Documentation: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Improved documentation for EcoModeler &lt;/li&gt;&lt;li&gt;Added Chapter 7 (creating an ASP.NET app) and 8 (Database operations) &lt;/li&gt;&lt;li&gt;Converted BDS/RadStudio documentation to VisualStudio (there are now two sets of documentation) &lt;/li&gt;&lt;li&gt;Added the EcoIIIServices documentation &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;VS wizard: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for styling the readme.html files in the VS project wizard &lt;/li&gt;&lt;li&gt;Fixed incorrect handling of "no persistence" case &lt;/li&gt;&lt;li&gt;GAC Eco.Ide.VS2005 to avoid any permission issues under Vista &lt;/li&gt;&lt;li&gt;Set StartupProjects in ECO solutions. &lt;/li&gt;&lt;li&gt;Change name of ecoxml-file in template to ModelMergeData &lt;/li&gt;&lt;li&gt;No longer put PersistenceMapper in subdirectory of EcoSpace project &lt;/li&gt;&lt;li&gt;Add setting of Package name to Solution Wizard. &lt;/li&gt;&lt;li&gt;Install Eco webform template in right place. &lt;/li&gt;&lt;li&gt;Updated look&amp;amp;feel &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Core: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=276"&gt;Mantis 276 &lt;/a&gt;] Fixed Invoking of methods when there is no method pointer (this happens when running the prototype tool) &lt;/li&gt;&lt;li&gt;Improved errormessage when a trigger is executed, but no valid transition can be found &lt;/li&gt;&lt;li&gt;Added IAutosubscriptionService (still experimental) &lt;/li&gt;&lt;li&gt;Fixed design time null reference exception in IVariableFactoryService when the service is used but not activated &lt;/li&gt;&lt;li&gt;Added "AllowPartiallyTrustedCallers" to all runtime assemblies so they can be used in a hosted IIS environment &lt;/li&gt;&lt;li&gt;Setting "BooleanSwitch.Enabled" requires full trust, so before trying to change the eco log switches, the code checks if it really is changed &lt;/li&gt;&lt;li&gt;Refactored ExternalIdService so that it doesn't call soap serialization unless it really has to to be able to run with partial trust &lt;/li&gt;&lt;li&gt;Removed calls to Assembly.GetAssemblyName (required full trust) &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=221"&gt;Mantis 221 &lt;/a&gt;] Ocl Expressions with associative operations does not render sql-queries with parenthesis around the arguments anymore. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=052"&gt;Mantis 052 &lt;/a&gt;] Added default values for ECO_TIMESTAMP column so it can be added by evolve &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;ASP/EcoDataSource: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;HttpException with descriptive text rather than null reference exception if EcoDataSourceId is not set to a valid value at runtime. &lt;/li&gt;&lt;li&gt;Renamed static method ActionExecutor.Create to CreateObject to make it callable from Delphi.net &lt;/li&gt;&lt;li&gt;Fix for validation logic in ExecuteInsert and ExecuteUpdate. &lt;/li&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=294"&gt;Mantis 294 &lt;/a&gt;] EcoDataSourceView: Added a missing call to "Configure(false)" in IsValidNewValues to setup the properties in the controlpack &lt;/li&gt;&lt;li&gt;Add overload EcoDataSource.Insert(IDictionary values) to allow setting intitial values. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Persistence: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added support for NexusDb &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;EcoModeler: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Fixed modelrun bug with associations. &lt;/li&gt;&lt;li&gt;Package rename now works, and integration locates project containing .mmcseco file rather than the other way around. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;DroopyEyes: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added generic List &lt;iconstraint&gt;overload to IConstraintProvider &lt;/iconstraint&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Delphi codegen: &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;[ &lt;a href="http://magpie.sytes.net/mantis/view.php?id=310"&gt;Mantis 310 &lt;/a&gt;] The parameterless constructor in delphi is now only added if the class does not have a superclass. &lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;VCL &lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Added ReverseDeriveValue and DeriveValue published events on VCL OclPsHandle &lt;/li&gt;&lt;li&gt;Added ReverseDeriveValue as a published property on the VCL handles &lt;/li&gt;&lt;li&gt;Improved exception when VariableHandle.SetElementValue is called when no element is assigned internally &lt;/li&gt;&lt;/ul&gt;</description><pubDate>Wed, 06 May 2009 23:45:59 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>WPF GridView with edit and EcoBinding</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50021.aspx</link><description>This sample has a GridView; I took it more or less from MS and added EcoBinding to it:&lt;br /&gt;&lt;br /&gt;It shows how you can do the rendering stuff i Xaml that you did in the Handle columns before:&lt;br /&gt;&lt;pre&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;GridViewColumn.CellTemplate&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;  &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;DataTemplate&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;    &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;StackPanel&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt; Orientation&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;="Vertical"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;      &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;TextBlock&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt; Text&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;="{&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;eco&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;:&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;EcoBinding&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt; Expression&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;=self.Employees.LastName.asstring+&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt;\&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;' works&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt; at&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt; \&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;'+self.Jobs.Name.asstring+&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt;\&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;' and&lt;/font&gt;&lt;/font&gt;&lt;font color="#ff0000" size="2"&gt;&lt;font color="#ff0000" size="2"&gt; is number&lt;/font&gt;&lt;/font&gt;&lt;font color="#000000" size="2"&gt;  \&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;'+self.Number.asstring}"/&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;     &amp;lt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;TextBlock&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;  &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;StackPanel&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&gt;&lt;p&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt; &amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;DataTemplate&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&amp;lt;/&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt;GridViewColumn.CellTemplate&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2"&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;The attachement function in this KB has issues. Here is a download link for the sample &lt;a href="/apps/InstantKB13/downloads/GridWithEdit.rar"&gt;GridWithEdit.rar&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/pre&gt;</description><pubDate>Sat, 14 Feb 2009 10:11:41 GMT</pubDate><dc:creator>Administrator</dc:creator></item><item><title>Navigating the properties of a struct in ocl</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50019.aspx</link><description>If your model contains structs that you want to be able to navigate in OCL, here is how to install custom OCL operations to make it work:&lt;br /&gt;&lt;br /&gt;First of all, define the struct:&lt;br /&gt;&lt;br /&gt;&lt;font face="Courier New"&gt;    public struct Coord&lt;br /&gt;    {&lt;br /&gt;        public int x;&lt;br /&gt;        public int y;&lt;br /&gt;        public int z;&lt;br /&gt;        public override string ToString()&lt;br /&gt;        {&lt;br /&gt;            return string.Format("{0}:{1}:{2}", x, y, z);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;font face="Arial"&gt;Then add a helper class with a static method for each of the properties:&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;    public struct Coord&lt;br /&gt;    {&lt;br /&gt;        ...&lt;br /&gt;&lt;/font&gt;&lt;font face="Courier New"&gt;        public class CoordOclHelper&lt;br /&gt;        {&lt;br /&gt;            public static int x(Coord coord) { return coord.x; }&lt;br /&gt;            public static int y(Coord coord) { return coord.y; }&lt;br /&gt;            public static int z(Coord coord) { return coord.z; }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;/font&gt;&lt;font face="Arial"&gt;&lt;br /&gt;Finally, install the helper class as an OCL operation in your EcoSpace:&lt;/font&gt;&lt;br /&gt;&lt;font face="Courier New"&gt;&lt;br /&gt;    [Eco.Ocl.Support.EcoOclOperation(typeof(Coord.CoordOclHelper), true)]&lt;br /&gt;    public partial class EcoProject42EcoSpace: Eco.Handles.DefaultEcoSpace&lt;br /&gt;    {&lt;br /&gt;      ...    &lt;br /&gt;    }&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;This will make the parts available in OCL in runtime, but not indesigntime. You can now write OCL expressions like:&lt;br /&gt;&lt;br /&gt;      &lt;font face="Courier New"&gt;aShape.Points-&gt;select(p|p.Coordinate.x &gt; 100)&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;</description><pubDate>Thu, 08 Jan 2009 12:33:31 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Modelling with ECO5</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50018.aspx</link><description>This video is 10 minutes and shows the new modelling tools in ECO5. &lt;br /&gt;This is a list of the features described:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New model&lt;/li&gt;&lt;li&gt;Colors&lt;/li&gt;&lt;li&gt;Sizes&lt;/li&gt;&lt;li&gt;zooming&lt;/li&gt;&lt;li&gt;Keyboard navigation&lt;/li&gt;&lt;li&gt;Keyboard move&lt;/li&gt;&lt;li&gt;TypeToEdit&lt;/li&gt;&lt;li&gt;Rooted points &lt;/li&gt;&lt;li&gt;Via points&lt;/li&gt;&lt;li&gt;Squared lines&lt;/li&gt;&lt;li&gt;Choose what to show&lt;/li&gt;&lt;li&gt;Multiple diagrams&lt;/li&gt;&lt;li&gt;Search&lt;/li&gt;&lt;li&gt;Documentation&lt;/li&gt;&lt;li&gt;Execute&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="/cam/NewsInModlr/thisone.htm"&gt;http://www.capableobjects.com/cam/NewsInModlr/thisone.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The design time abilities of ECO5 is handled by a VisualStudio plugin we call Modlr.&lt;br /&gt;All the functionality available in Modlr will also be available in a standalone application we will call Gaffr.&lt;br /&gt;&lt;br /&gt;The Modlr logic is built with ECO technology on top of two packages; ModelLayer that introduce Class, association etc and the ExtendedModelLayer that introduce things like Diagram and PlacedClass. The multi level undo and redo of Modlr is strictly ECO functionality, currently you can even bring up the EcoSpaceDebugger of Modlr to allow you to search for things like PlacedClass.allinstances-&gt;select(self.Class.Name='SomeName'). Since Modlr is mostly a WPF application it is also a proof that ECO is presentation-tier agnostic.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description><pubDate>Wed, 07 Jan 2009 17:35:34 GMT</pubDate><dc:creator>Administrator</dc:creator></item><item><title>The framework argument</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50017.aspx</link><description>&lt;h2&gt;The framework argument&lt;/h2&gt;&lt;p&gt;&lt;br /&gt;This presentation is 25 minutes of compact talk about what the arguments are for using a framework in the first place. And ECO in particular.&lt;br /&gt;&lt;br /&gt;&lt;a href="/cam/theframeworkargument/camtasia/camtasia.html"&gt;http://www.capableobjects.com/cam/theframeworkargument/camtasia/camtasia.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Maybe you have a gut feeling that ECO will make you and your team more focused and more productive, but you have a hard time explaining it to the people that needs to decide? Listen to this presentation to find your arguments! Or have the decision makers listen to it!&lt;br /&gt;&lt;br /&gt;The talk goes over both the direct boost effects like generated code from the model, but also covers the dynamic effects that are expected once you are not afraid of changes and you feel completly in control.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;!-- google analytics script --&gt;</description><pubDate>Sun, 28 Dec 2008 20:10:50 GMT</pubDate><dc:creator>Administrator</dc:creator></item><item><title>Implementing a derived association in ECO4</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50016.aspx</link><description>Eco4 introduces automatic subscriptions, so when implementing code derived attributes or associations, there is no need to handle the subscriptions manually any more. Once you have marked the attribute or association as derived in the model and updated your generated code, you should implement a method called "MyAttributeDerive" or "MyAssociationEndDerive". Suppose you have a model with two classes, Person and Project, and a derived association BigProjects between them like this:&lt;br /&gt;&lt;br /&gt;&lt;img src="/apps/InstantKB13/uploads/Images/derivedassoc.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The code to derive the BigProjects association end would look like this (add this method to the Person class):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;        private object BigProjectsDerive()&lt;br /&gt;        {&lt;br /&gt;            IList&amp;lt;Project&gt; res = new List&amp;lt;Project&gt;();&lt;br /&gt;            foreach (Project p in Projects)&lt;br /&gt;                if (p.Budget &gt; 10000)&lt;br /&gt;                    res.Add(p);&lt;br /&gt;            return res;&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;</description><pubDate>Tue, 07 Oct 2008 23:35:58 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>How to set up Autoinc keys with ECO</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50013.aspx</link><description>When storing objects in a database ECO will allocate unique IDs to each object. The default mechanism will allocated the IDs using a table called ECO_ID (surprise surprise). If you want to change to database generated IDs (AutoInc), follow these steps:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Open your PersistenceMapperProvider designer&lt;/li&gt;&lt;li&gt;Add a &lt;font face="Courier New"&gt;DefaultORMappingBuilder &lt;/font&gt;component on the designer&lt;/li&gt;&lt;li&gt;Rightclick it and select "Setup AutoIncKeys"&lt;/li&gt;&lt;li&gt;Select your &lt;font face="Courier New"&gt;PersistenceMapperXXX &lt;/font&gt;and set "&lt;font face="Courier New"&gt;RuntimeMappingProvider&lt;/font&gt;" and "&lt;font face="Courier New"&gt;NewMappingProvider&lt;/font&gt;" to the new component (&lt;font face="Courier New"&gt;defaultORMappingBuilder1&lt;/font&gt;)&lt;/li&gt;&lt;/ul&gt;This change is &lt;strong&gt;not&lt;/strong&gt; supported by DbEvolve, so you will need to regenerate the database schema after this change. Any new table added by evolve after this change will have the correct column type, but old tables will not be updated.&lt;br /&gt;</description><pubDate>Tue, 07 Oct 2008 23:34:12 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Introduction videos</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50015.aspx</link><description>We made some instruction videos to show just how easily you can get started with ECO for Visual Studio. &lt;br /&gt;In these videos Hans Karlsen (CapableObjects) starts from scratch and creates a simple model for the domain of project planning. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A simple model is created, then extended in a couple of steps showing the ECO feature of model evolution and automatic db-changescript creation.&lt;/li&gt;&lt;li&gt;The ECO Context Agent that helps you to set up databind components is shown.&lt;/li&gt;&lt;li&gt;The benefits of a domain model, with application wide model-view is shown.&lt;/li&gt;&lt;li&gt;A third-party standard .net visual component, Gantt in GTP.NET from &lt;a href="http://www.plexityhide.com/gtpnet.htm" target="_blank"&gt;plexityHide.com&lt;/a&gt;, is integrated for visualization and editing of the data defined by the model.&lt;/li&gt;&lt;li&gt;Hierarcical databinding in a single component, not just master-detail, is shown.&lt;/li&gt;&lt;li&gt;Derived attributes are shown in a context where you directly can see the benefit of using them.&lt;/li&gt;&lt;/ul&gt;No cuts are made in the first two videos so what you see is what you get - a live project planning Gantt chart with the data stored in a database (SQLExpress) is produced in 1 hour.&lt;br /&gt;&lt;br /&gt;Add up the resources needed (in euros) to produce your very own ERP solution that fits your organisation like a glove:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ECO for Visual Studio: aprox 600 euro&lt;/li&gt;&lt;li&gt;GTP.NET from plexityHide: aprox 600 euro&lt;/li&gt;&lt;li&gt;Your own time and domain knowledge: &amp;lt;add this yourself&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://capableobjects.no-ip.com/cam/EcoFromScratch_Project.html"&gt;http://capableobjects.no-ip.com/cam/EcoFromScratch_Project.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;font color="#800080"&gt;&lt;a href="http://capableobjects.no-ip.com/cam/Eco_FromScratch_Part2.html"&gt;http://capableobjects.no-ip.com/cam/Eco_FromScratch_Part2.html&lt;/a&gt;&lt;/font&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;</description><pubDate>Wed, 25 Jun 2008 10:59:21 GMT</pubDate><dc:creator>Administrator</dc:creator></item><item><title>List all OCL operations in ECO</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50003.aspx</link><description>This archive contains a sample asp webpage that will list all the OCL operations that are installed in an EcoSpace. &lt;br /&gt;It also contains a generated html-page with all the operations listed.&lt;br /&gt;Each operation is listed with its name and parameters and some additional information.&lt;br /&gt;&lt;br /&gt;To run the page, you need to add it to your own ECO ASP project and set the EcoSpace type of the EcoSpaceManager.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://capableobjects.com/downloads/ListOclOperations.zip"&gt;Download&lt;/a&gt;</description><pubDate>Tue, 24 Jun 2008 23:33:45 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Administrator installs and ECO + RadStudio</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50014.aspx</link><description>The ECO installer writes a few things to the registry duringstartup. The build that shipped with RadStudio 2007 (4.0.0.91) onlyinserted the registry entries in HKCU (CurrentUser), but later builds also inserts the values into HKLM (local machine). This meansthat RadStudio will copy the values to the CurrentUser registry thefirst time the user starts RadStudio. &lt;br /&gt;&lt;br /&gt;If you have already started RadStudio without the ECO registry settings in HKLM, you now have a registry key called HKCU\Software\Borland\BDS\5.0 that doesn't contain ECO settings, and it will be solved by installing the newer builds since RadStudio only copies the registry settings from HKLM if HKCU is empty. &lt;br /&gt;&lt;br /&gt;These are your options:&lt;br /&gt;&lt;br /&gt;Alternative 1:&lt;br /&gt;* Remove the registry key HKCU\Software\Borland\BDS\5.0&lt;br /&gt;* Restart RadStudio&lt;br /&gt;&lt;br /&gt;pro: easy&lt;br /&gt;con: you loose lots of other settings in RadStudio&lt;br /&gt;&lt;br /&gt;Alternative 2:&lt;br /&gt;* insert the following keys manually:&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt; Key&lt;/td&gt;&lt;td&gt; HKCU\Software\Borland\BDS\5.0\Known Assemblies&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; Name&lt;/td&gt;&lt;td&gt; C:\Program Files\CapableObjects\ECO\4.0\Design\BDS\Eco.Vcl.Design.dll&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; Value&lt;/td&gt;&lt;td&gt; Eco - VCL designtime support&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="1"&gt; &lt;/td&gt;&lt;td colspan="1"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; Key&lt;/td&gt;&lt;td&gt; HKCU\Software\Borland\BDS\5.0\Known IDE Assemblies&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; Name&lt;/td&gt;&lt;td&gt; C:\Program Files\CapableObjects\ECO\4.0\Design\BDS\Eco.BdsLoader.dll&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; Value&lt;/td&gt;&lt;td&gt; Eco - IDE integration&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;pro: Enables ECO without loosing any settings&lt;br /&gt;con: A tad more work than the first solution&lt;br /&gt;</description><pubDate>Thu, 22 May 2008 11:15:35 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Eco and Licensing</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50012.aspx</link><description>The free version of ECO allows you to use up to 12 classes, no questions asked. You can deploy the application for personal or commercial use. If you need to use more than 12 classes you need to have a license. &lt;br /&gt;&lt;br /&gt;Licenses for Eco for Visual Studio can be purchased at the capableobjects website. A license for Eco for RadStudio is included when you buy RadStudio 2007 Architect.&lt;br /&gt;&lt;br /&gt;To install a new license, open the ECO aboutbox and klick the button "Enter License".&lt;br /&gt;&lt;br /&gt;The license is stored on disk in the following folder:&lt;br /&gt;&lt;br /&gt;Vista: C:\ProgramData\CapableObjects &lt;br /&gt;Windows XP: C:\Documents and Settings\All Users\Application Data\CapableObjects &lt;br /&gt;&lt;br /&gt;In designtime, a license will allow you to use the ECO designtime support with more than 12 classes. The aboutbox will indicate if ECO has detected the presence of a license or not.&lt;br /&gt;&lt;br /&gt;In runtime, the ECO framework will load the license information from an embedded resource in your application. To get the license information embedded in the application, ECO adds a file called "licenses.licx" to your project. Your IDE will call an application called LC.exe (LicenseCompiler) when it tries to compile a project with a licx-file in it. &lt;br /&gt;&lt;br /&gt;This file should contains a single line:&lt;br /&gt;&lt;span class="Code"&gt;Eco.Handles.DefaultEcoSpace, Eco.Handles&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Other third party components that use the same license mechanism will add additional lines to this file.&lt;br /&gt;&lt;br /&gt;In build 4.0.0.2230 and later, the ECO license should be included in the project that contains the EcoSpace. Earlier builds looks for the license in the binary of the application (which means that you must include the licx file in the Winform/ASP/VCL/Server application). It is not enough to have a licx-file in the directory of your project, it must be included in the project.&lt;br /&gt;&lt;br /&gt;To check if your binary really includes a license, you can inspect it with &lt;a href="http://www.aisto.com/roeder/dotnet/" target="_blank"&gt;Reflector&lt;/a&gt;. Check the resource-section of your assembly/executable. It should contain a resource called "&lt;strong&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://EcoProject5.EcoSpace:1.0.0.0/resource:EcoProject5.EcoSpace.dll.licenses" class="bold"&gt;EcoProject5.EcoSpace.dll.licenses&lt;/a&gt;&lt;/strong&gt;" (or something similar) and in the contents of the resource you should be able to see:&lt;br /&gt;&lt;br /&gt;&lt;span class="Code"&gt;000000: 00 01 00 00 00 FF FF FF FF 01 00 00 00 00 00 00  .....????.......&lt;br /&gt;000010: 00 10 01 00 00 00 02 00 00 00 06 02 00 00 00 18  ................&lt;br /&gt;000020: 45 43 4F 50 52 4F 4A 45 43 54 35 2E 45 43 4F 53  ECOPROJECT5.ECOS&lt;br /&gt;000030: 50 41 43 45 2E 44 4C 4C 09 03 00 00 00 04 03 00  PACE.DLL........&lt;br /&gt;000040: 00 00 1C 53 79 73 74 65 6D 2E 43 6F 6C 6C 65 63  ...System.Collec&lt;br /&gt;000050: 74 69 6F 6E 73 2E 48 61 73 68 74 61 62 6C 65 07  tions.Hashtable.&lt;br /&gt;000060: 00 00 00 0A 4C 6F 61 64 46 61 63 74 6F 72 07 56  ....LoadFactor.V&lt;br /&gt;000070: 65 72 73 69 6F 6E 08 43 6F 6D 70 61 72 65 72 10  ersion.Comparer.&lt;br /&gt;000080: 48 61 73 68 43 6F 64 65 50 72 6F 76 69 64 65 72  HashCodeProvider&lt;br /&gt;000090: 08 48 61 73 68 53 69 7A 65 04 4B 65 79 73 06 56  .HashSize.Keys.V&lt;br /&gt;0000A0: 61 6C 75 65 73 00 00 03 03 00 05 05 0B 08 1C 53  alues..........S&lt;br /&gt;0000B0: 79 73 74 65 6D 2E 43 6F 6C 6C 65 63 74 69 6F 6E  ystem.Collection&lt;br /&gt;0000C0: 73 2E 49 43 6F 6D 70 61 72 65 72 24 53 79 73 74  s.IComparer$Syst&lt;br /&gt;0000D0: 65 6D 2E 43 6F 6C 6C 65 63 74 69 6F 6E 73 2E 49  em.Collections.I&lt;br /&gt;0000E0: 48 61 73 68 43 6F 64 65 50 72 6F 76 69 64 65 72  HashCodeProvider&lt;br /&gt;0000F0: 08 EC 51 38 3F 01 00 00 00 0A 0A 0B 00 00 00 09  .?Q8?...........&lt;br /&gt;000100: 04 00 00 00 09 05 00 00 00 10 04 00 00 00 01 00  ................&lt;br /&gt;000110: 00 00 06 06 00 00 00 64 45 63 6F 2E 48 61 6E 64  .......dEco.Hand&lt;br /&gt;000120: 6C 65 73 2E 45 63 6F 53 70 61 63 65 2C 20 45 63  les.EcoSpace, Ec&lt;br /&gt;000130: 6F 2E 48 61 6E 64 6C 65 73 2C 20 56 65 72 73 69  o.Handles, Versi&lt;br /&gt;000140: 6F 6E 3D 35 2E 30 2E 30 2E 30 2C 20 43 75 6C 74  on=4.0.0.0, Cult&lt;br /&gt;000150: 75 72 65 3D 6E 65 75 74 72 61 6C 2C 20 50 75 62  ure=neutral, Pub&lt;br /&gt;000160: 6C 69 63 4B 65 79 54 6F 6B 65 6E 3D 34 36 61 38  licKeyToken=46a8&lt;br /&gt;000170: 33 33 62 65 39 65 39 30 64 65 38 63 10 05 00 00  33be9e90de8c....&lt;br /&gt;000180: 00 01 00 00 00 06 07 00 00 00 27 37 31 45 36 2D  ..........'XXXX-&lt;br /&gt;000190: 30 36 36 35 2D 36 38 35 33 2D 32 45 42 41 2D 45  XXXX-XXXX-XXXX-X&lt;br /&gt;0001A0: 33 30 31 2D 31 36 34 32 2D 32 35 31 33 2D 38 36  XXX-XXXX-XXXX-XX&lt;br /&gt;0001B0: 39 38 0B                                         XX.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note: &lt;br /&gt;Some third party components seems to replace the contents of the licenses.licx-file rather than just append to it, so if you are using other components that use the licenses.licx-file for its license management, you may want to check if it still contains the line &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description><pubDate>Fri, 25 Apr 2008 15:52:13 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>AttributeMappers</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50009.aspx</link><description>&lt;p&gt;When ECO builds the O/R mapping layer, it has to decide how to convert the values of the databasecolumn to the values of the attributes in the ecospace. This isperformed by an attribute mapper, and the O/R mapping layer has todecide which attribute mapper to use for each attribute. To decide this, there is thecollection &lt;code&gt;PersistenceMapper.SqlDatabaseConfig.PersistenceMappers&lt;/code&gt;. Thiscontains of a collection of name/mapper pairs. The name is normally theCLR-name of a type (such as &lt;code&gt;System.String&lt;/code&gt; or &lt;code&gt;System.DateTime&lt;/code&gt;), butcan be anything. The algorithm for deciding the mapper for an attributeis to look for an attribute mapper in the following order:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;the Tagged Value "PMapper" on the attribute&lt;/li&gt;&lt;li&gt;The string "ClassName.AttributeName"&lt;/li&gt;&lt;li&gt;The CLR-name of the type of the attribute&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you want to replace the mapper for all &lt;code&gt;DateTime&lt;/code&gt; attributes, then allyou need to do is to create your new mapper, and fit it into thecollection with the name &lt;code&gt;System.DateTime&lt;/code&gt;. The attribute mappercontrols the following things:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;how to convert from db to memory and back&lt;/li&gt;&lt;li&gt;the sql type of the column if we need to generate or evolve a db&lt;/li&gt;&lt;li&gt;the default db value (practically only used when evolving)&lt;/li&gt;&lt;li&gt;converting a value to a string literal&lt;/li&gt;&lt;/ul&gt;The source for all the attribute mappers in eco is included, and often, the easiest thing is to copy an existing mapper for the same datatype and modify it to suite your needs.&lt;br /&gt;</description><pubDate>Fri, 18 Apr 2008 02:10:54 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Persisting derived attributes</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50008.aspx</link><description>&lt;p&gt;A derived attribute looks like it is always up to date. This is achievedby using subscribers. Whenever you ask for the value the first time, itwill be calculated, and subscriptions placed. If any of the underlyingvalues change, the subscriptions will be triggered, the derivedattribute will be marked out of date, and if you ask for it again, itwill be recalculated. Subscriptions are placed automatically if you useOCL to derive the value, and manually if you have a code-derivedattribute.&lt;/p&gt;&lt;p&gt;Many derived attributes are based on other attributes in the sameobject, and in this case, the derived attribute would always be "inmemory" when the other attributes changed, and could be updatedtogether with the rest of the object. However, in many cases, thederived attribute is based on attributes in related objects (such as anordersum). If one client loads one of the products of an order (but notthe order) and changes the list-price, the subscriptions of theorder-sum will not trigger (as the ordersum has not been calculated).If the product is saved, then a persisted ordersum would simply bewrong.&lt;/p&gt;&lt;p&gt;It would be possible to figure out what ordersums could be affected bya change in a product price, but it requires reverse evaluation ofocl-expressions (unless the derivation is performed in code, then Ithink it is practically impossible).&lt;/p&gt;&lt;p&gt;In order to have persistent derived attributes, you would have to havepersistent subscriptions too.&lt;/p&gt;&lt;p&gt;There are several different approaches to achieve something similarthough. One is to have a derived attribute and a peristent attribute.At certain events (such as shipping an order, or whenever the value ofthe derived attribute is "frozen"), the persistent attribute is set tothe value of the derived attribute. After this point, the persistentattirbute can be used instead of the derived attribute (for reportingdirectly in the db, or simply improved performance).&lt;/p&gt;&lt;p&gt;The above can be amended with more modeled information. Assume youhave the derived attribute DerivedOrderSum and a persisted version ofthe same information called PersistedOrderSum as outlined above.&lt;/p&gt;&lt;p&gt;To avoid having to remember when to use which one, add OrderSum,also a derived attribute. Also add a flag indicating if the order sumhas frozen. call that boolean attribute OrderSumFrozen.&lt;/p&gt;&lt;p&gt;With this, use the following OCL to derive OrderSum:&lt;/p&gt;&lt;div class="sourceblock"&gt;&lt;div&gt;&lt;font face="Courier New"&gt;if OrderSumFrozen&lt;br /&gt;   PersistedOrderSum&lt;br /&gt;else&lt;br /&gt;   DerivedOrderSum&lt;br /&gt;endif&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;That way you can refer to OrderSum in code and UI and always get the"cheapest" calculation allowed by your business rules to retrieve yourdata. OrderSumFrozen would probably be set as a consequence of theorder object changing state to Confirmed or something to that extent.&lt;/p&gt;</description><pubDate>Fri, 18 Apr 2008 02:04:28 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Multiple datasources, PersistenceMapperMultiDb</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50007.aspx</link><description>&lt;p&gt;In ECO, a single ecospace can use multiple databases to load/storethe objects. A few restrictions apply:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;all embedded parts of an object must reside in a singledatabase (this includes attributes and embedded singlelinks, includinginherited such).&lt;/li&gt;&lt;li&gt;all databases must be supported by Eco (either usingPersistenceMapperBdp, PersistenceMapperSql or some other custom madePersistenceMapper that derives from PersistenceMapperDb&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The databases can use either thestandard ECO O/R mapping (using ECO_ID columns etc) or use custommapping (specified using an XML-file).&lt;/p&gt;&lt;p&gt;The key component to tap into this is the PersistenceMapperMultiDb.it acts as a kind of aggregator for all the databases that the ecospaceis going to use. This can be used directly in an ecospace.&lt;/p&gt;&lt;p&gt;Ok, now you have a PersistenceMapperMultiDb, now you have to make itaggregate some databases. The new component has a collection propertycalled "PersistenceMappers". This is a collection ofName/PersistenceMapper pairs. You need to add aPersistenceMapperBdp/Sql/whatever for each database you need toretrieve data from. You can use any combination of persistencemappers,depending on the databases you plan to connect to). Each databaseshould be assigned a unique symbolic name (the name property in thecollection). This can be any name, such as "customerdb". It does nothave to have any relationship with the connectionstring of the database(but it usually makes sense to use something from theconnectionstring).&lt;/p&gt;&lt;p&gt;By now you have a set of databases, each with a unique name. letscall this name the "DatabaseName". Now you have to tell ECO where eachclass comes from (remember, each class must come from exactly onedatabase.You can not have customers in multiple databases - unless you modelthem as different classes of course).&lt;/p&gt;&lt;p&gt;The location of an object can be specified in several differentways. If the class is "default mapped" using standard ECO mapping, yousimply set the tagged value &lt;code&gt;Eco.Database&lt;/code&gt; to theappropriate database name. If you want to use custom mapping (anXML-file), you have two options, either you can specify an XML-file foreach database that you have custom mapping for, and then add aFileMappingProvider to eachPersistenceMapper, and set the correct filenames.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; For each PersistenceMapper that specifies its own custom mapping, you have to set the boolean property &lt;code&gt;ImportConfig&lt;/code&gt; in the collection of the PersistenceMapperMultiDb to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;You can also specify a compound mapping file where you specify thecustom mapping for all databases in your system. If you do this, youmust specify the database name for each class in the mapping file likethis:&lt;/p&gt;&lt;div class="sourceblock"&gt;&lt;div class="xml"&gt;&lt;span class="sc3"&gt;&lt;span class="re1"&gt;&amp;lt;ClassDef&lt;/span&gt; &lt;span class="re0"&gt;Name&lt;/span&gt;=&lt;span class="st0"&gt;"LineItem"&lt;/span&gt; &lt;span class="re0"&gt;Database&lt;/span&gt;=&lt;span class="st0"&gt;"Orders"&lt;/span&gt;&lt;span class="re2"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;        ...&lt;br /&gt;&lt;span class="sc3"&gt;&lt;span class="re1"&gt;&amp;lt;/ClassDef&lt;span class="re2"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;If you have a compound mapping file, then you have to set up aFileMappingProvider for the PersistenceMapperMultiDb (use theRuntimeMappingProvider property).&lt;/p&gt;&lt;p&gt;You can have associations between objects in different databases.The classes can be modelled in separate packages if you want to. If theassociation is 1--1 or 1--n you just have to make sure you set the"embedded" flag correctly on the side that exists on one of thedatabases. If the associaiton is n--m then you have to specify the O/Rmapping for the link-class, but this is just like for any custom mappedmodel. &lt;/p&gt;&lt;p&gt;I'll also mention a few words about transactions. ECO can operate inthree different transaction modes when it uses multiple databases:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;No transactions - no transactions are used what so ever, this is normally not something you want.&lt;/li&gt;&lt;li&gt;Local transactions - ECO uses the local transactions availablein each database. all update operations will be performed first, andthen all databases will be committed (unless an exception has occuredduring the update, then all databases will be rolled back. This cancause an inconsistency if the second commit fails as the first commitcan not be rolled back anymore.&lt;/li&gt;&lt;li&gt;Distributed transactions - ECO uses distributed transactions(also called two-phase commit) to control the behaviour of the update.if any of the datbases fails to commit, all will be rolled back. Thisis currently only supported for PersistenceMapperSql since BDP does notsupport this. The default implementation uses the utility classes ofthe System.EnterpriseServices namespace (this is a wrapper for com+distributed transactions, or MSDTC). It is possible to implementsupport for another distributed transaction manager, but currently Idon't know of any other. If anyone is interested in details, please letme know.&lt;/li&gt;&lt;/ul&gt;</description><pubDate>Fri, 18 Apr 2008 02:00:03 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Nestings in the Winform handles</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50006.aspx</link><description>&lt;p&gt;To start of, the handles render the input list into a number of objects(shown as rows in a grid) with a number of properties (in most casesshown as columns in the grid") BTW the terminology for those propertiesin the .Net docs is very inconsistent, properties, columns, members.&lt;/p&gt;&lt;p&gt;These objects are the object int he &lt;code&gt;IList&lt;/code&gt; implemented by the handles(and alse returned by &lt;code&gt;GetList()&lt;/code&gt; for historical reasons).&lt;/p&gt;&lt;p&gt;The property/column/member:s are defined by the list also implementing&lt;code&gt;ITypedList&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;Each such property/column/member can be either a single value, or a newlist (possibly of a single element). If it is a single value it can bedisplayed in a column.&lt;/p&gt;&lt;p&gt;If it is a list then in will be displayed in the Grid with a '+', whichwill fold out to a new (nested) set of rows.&lt;/p&gt;&lt;p&gt;The &lt;code&gt;Nesting&lt;/code&gt; property is used to define which properties/column/membersthe object in that sublist will have. Some of these may in turn belists, each &lt;code&gt;Nesting&lt;/code&gt; value essentially has the same data-renderingproperties as the handle itself, &lt;code&gt;AddDefaultColumns&lt;/code&gt;, &lt;code&gt;AddDefaultNestings&lt;/code&gt;,&lt;code&gt;Colums&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;A &lt;code&gt;Column&lt;/code&gt; is defined as being a list by setting the &lt;code&gt;Nested&lt;/code&gt; property to&lt;code&gt;true&lt;/code&gt;. In this &lt;code&gt;NestedName&lt;/code&gt; will specify which &lt;code&gt;Nesting&lt;/code&gt; that defines thecolumn for the objects in that list (which is usually and Eco classsuch as &lt;code&gt;Person&lt;/code&gt;). If no name is given, the static type of the object inthe list will be used as &lt;code&gt;NestingName&lt;/code&gt;, and if the is no &lt;code&gt;Nesting&lt;/code&gt; propertyfor that &lt;code&gt;Name&lt;/code&gt;, the default columns for that class will be used.&lt;/p&gt;&lt;p&gt;So, let us say that you are a person, and want to be able to show youparents, and your childen, and you want to show the full informationfor you parents, but only the name of your children.&lt;/p&gt;&lt;p&gt;You would then add a column &lt;em&gt;Parents&lt;/em&gt; with OCL expression &lt;code&gt;´self.Parents&lt;/code&gt;,&lt;code&gt;Nested=True&lt;/code&gt;, an no &lt;code&gt;NestingName&lt;/code&gt;. This will lead to the default &lt;code&gt;Person&lt;/code&gt;information being shown for the parents.&lt;/p&gt;&lt;p&gt;For the children, the expression would be &lt;code&gt;self.Children&lt;/code&gt;, &lt;code&gt;Nested=true&lt;/code&gt;,and &lt;code&gt;NestingName="PersonWithNameOnly"&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;You would then add a nesting with the name &lt;code&gt;PersonWithNameOnly&lt;/code&gt;,&lt;code&gt;AddDefaultColumns&lt;/code&gt; set to &lt;code&gt;false&lt;/code&gt;, and a single column for name in the&lt;code&gt;Columns&lt;/code&gt; collection.&lt;/p&gt;&lt;p&gt;You can control the display of a particular nesting by adding a&lt;code&gt;TableStyle&lt;/code&gt; to the grid with the &lt;code&gt;TableName&lt;/code&gt; set to the name of thenesting.&lt;/p&gt;&lt;p&gt;So, the value of a handle can be a pretty general tree, rather thanjust a rectangle.&lt;/p&gt;</description><pubDate>Fri, 18 Apr 2008 01:55:39 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Immutability</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50005.aspx</link><description>&lt;div id="wikitext"&gt;&lt;p&gt;&lt;span style="font-size: 120%;"&gt;Question:&lt;/span&gt; &lt;em&gt;After`Person.allInstances-&gt;orderBy(name) (ExpressionHandle.Element asIObjectList).AddNew() throw the Exception:System.NotSupportedException. Is this correct behaviour?&lt;/em&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 120%;"&gt;Answer:&lt;/span&gt; Most ocllist-operations will create a new list rather than manipulating theorignal one. The new list is readonly and does not have any connectionto the original list. It does not know how to perform an &lt;code&gt;AddNew&lt;/code&gt; operation. The same would have happened if the original list had been an association end. Imagine for example the expression:&lt;/p&gt;&lt;pre&gt; Person.allInstances-&gt;select(assets &gt; 10000)&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;If you would try to add a new object tothis list, it would have to have the attribute assets set to a valuethat would qualify in the condition.&lt;/p&gt;&lt;p&gt;In the case of ordering, the &lt;code&gt;AddNew&lt;/code&gt; would have to takeinto account that the list is ordered (something that the list itselfis unaware of) in order to add the new object in the correct possition.&lt;/p&gt;&lt;p&gt;The solution is to add the new object to a list that is notfiltered/ordered, and it will appear in the correct position in theordered list in the handle (thanks to subscriptions)&lt;/p&gt;&lt;/div&gt;</description><pubDate>Fri, 18 Apr 2008 01:52:00 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Delayed Fetch</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50004.aspx</link><description>&lt;p&gt;The default behaviour for ECO when fetching an object is to fetchall attributes, and all "embedded" singlelinks (a "singlelink" is anassociationend with multiplicity &lt;code&gt;0..1&lt;/code&gt; or &lt;code&gt;1&lt;/code&gt;, &lt;code&gt;Embedded&lt;/code&gt; is any single link that is stored in the table of the object, an association with the multiplicities &lt;code&gt;0..1--0..1&lt;/code&gt; (two single links) is only allowed to be embedded in one end to avoid the risk of inconsistencies). &lt;/p&gt;&lt;p&gt;When ECO fetches an object, it does not know what it is going to beused for, how it is going to be displayed. If you have attributes thatare very expensive to fetch (normally large text fields or binary data,such as images), you can mark them as "delayed fetch":&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Select the attribute in the class diagram&lt;/li&gt;&lt;li&gt;Set the property &lt;code&gt;Delayed Fetch&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;This attribute will not be fetchedwhen the object is fetched, but if you access it later, it will befetched. You might save some performance/memory consumption upfront,but if you are actually going to use the attribute, it will be moreexpensive to fetch it in a separate call to the database. It is simplya trade off. Normally, ECO is able to perform intelligent fetching of multiple objects in a singlequery, but for &lt;code&gt;DelayedFetch&lt;/code&gt; attributes, they are usually fetched one by one.&lt;/p&gt;</description><pubDate>Fri, 18 Apr 2008 01:50:08 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>Remove EcoIV license dialog from VisualStudio</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50001.aspx</link><description>&lt;p&gt;Due to an oversight from our part, the installer for &lt;strong&gt;ECO that shipswith RAD Studio 2007&lt;/strong&gt; will also install a partly finished version of ECOfor Visual Studio.&lt;/p&gt;&lt;p&gt;It is not usable, but will repeatedly ask for a license each time VSis started, and each time a project is opened. It will also ask for alicense key when Microsoft Update applies a Visual Studio patch, butwill then do so in the background.&lt;/p&gt;&lt;p&gt;The .reg file in this archive will remove the Visual Studio integration of ECO (but not the integration into RAD Studio 2007).&lt;/p&gt;If you want to use ECO in Visual Studio, please visit the &lt;a href="http://www.capableobjects.com/Downloads_FreeVersion.aspx"&gt;main download section&lt;/a&gt; and download an updated version that works with Visual Studio.&lt;br /&gt;</description><pubDate>Fri, 18 Apr 2008 00:58:33 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item><item><title>test</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50002.aspx</link><description>test</description><pubDate>Fri, 18 Apr 2008 00:53:32 GMT</pubDate><dc:creator>Jonas Högström</dc:creator></item></channel></rss>