﻿<?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>Wed, 07 Jan 2009 19:07:36 GMT</lastBuildDate><ttl>20</ttl><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>Changelog for ECO</title><link>http://www.capableobjects.com/apps/InstantKB13/Goto50011.aspx</link><description>&lt;h2&gt;Eco 4.0.0.3228 - Fieldtest build: &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: &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: &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: &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: &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: &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 href="http://magpie.sytes.net/mantis/view.php?id=501" target="_blank"&gt;Mantis 501 &lt;/a&gt;, &lt;a href="http://magpie.sytes.net/mantis/view.php?id=504" target="_blank"&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 href="http://magpie.sytes.net/mantis/view.php?id=500" target="_blank"&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;/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: &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: &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: &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 &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 - EcoIV &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;/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;/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;/li&gt;&lt;li&gt;ReflectionReader: Parameters like "a: ICollection &lt;person /&gt;" or "a: IEnumerable &lt;person /&gt;" will now be "EcoCallable". &lt;/li&gt;&lt;li&gt;ElementCollectionImpl.AsObject now returns a typed array (that will implement ICollection &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;/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, 05 Nov 2008 22:46:45 GMT</pubDate><dc:creator>Jonas Högström</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>