StrataFrame Team
|
|
Group: StrataFrame Developers
Posts: 3K,
Visits: 2.5K
|
Fixed issue with concurrency detection throwing exceptions when encountering NULL values. DOWNLOAD THE OFFICIAL 1.6.6 RELEASE IN THE MY ACCOUNT AREA.
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
- BrowseDialog may throw error if no search fields are visible
If a BrowseDialog has no search fields visible an error may be thrown when trying to set the control positions since there are no controls to position. A test has been added to prevent the error from being thrown if no search fields are visible. SyntaxEditor now has PauseSyntaxColorization and ResumeSyntaxColorization methods
The ability to prevent the syntax editor from colorizing altogether and then restart the colorization process has now been added through these two methods. SyntaxEditor now supports RichTextToolstrip and can act as an RTF editor
The SyntaxEditor can now be used to both colorize syntax while acting as a full fledged RTF control including support for the RichTextToolstrip control. In order to act as a standard RTF control, the PreventStandardRTFTextFormatting property must be set to False. SyntaxEditor control now has a PreventStandardRTFTextFormatting property
A property called PreventStandardRTFTextFormatting has been added to the SyntaxEditor which will allow the formatting of the text through standard RTF properties such as the SelectionFont, etc. By default, the SyntaxEditor control will strip this type of formatting to ensure that the editor font is consistent. RichTextToolstrip now allows individual buttons to be shown or hidden
The RTF toolstrip now supports the ability to individually show or hide certain action items within the toolstrip. For example, the bold button can be hidden or prevent the end-user from changing the font, etc. Issue with the CurrentRowIndex being incorrectly position after a table refill
When a Fill method was called, the CurrentRowIndex was incorrectly position on the second record (if one existed) instead of the first. This was actually introduced at the end of April 2008 during the 1.6.6 beta as a result of fixing another bug. The _CurrentRowIndex is actually a property and not a private which takes into account Shared DataTable access. A fix was previously introduced (in April) to prevent the _CurrentRowIndex from being an illegal value when the BO actually had records within it which caused other issues in regards to a Save or Undo in certain conditions. The bottom line is that both issues are now correctly fixed.
*(There are several other minor fixes in this build as well)
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
- The MDDeployMain populated the SQL Server combo on the wrong thread
In most environments, the cross-thread exception would not be thrown, however, the MDDeployDialog has been updated to ensure that the combo is populated on the UI thread versus on a background thread to ensure a cross-thread violation does not occur. DDT Database Import Wizard not including indexes
This was the same issue as the tables in a previous fix. This was accidentally introduced when schemas were added as part of the criteria on the import. This issue has now been resolved.
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
- DDT Database Import was failing to bring in selected tables
A bug was accidentally introduced on the import within the 1.6.6 build fixing another bug in regards to schemas. A check was not taking the schema into account which would prevent any selected tables from being imported. This issue has been resolved. Localization export may throw expection during export under certain conditions
Under certain conditions, the Localization Export to XML may fail due to a filter being set. This issue has been resolved.
|
|
|
Dustin Taylor
|
|
Group: StrataFrame Users
Posts: 364,
Visits: 771
|
The latest: - ExtensibilityBasics GetPageType threw NullReference if there was not an active page
When opening a project, a null reference exception would sometimes be thrown if no page was active when the project was first opened (this was found on a web project.) This has been resolved.
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
And yet another - Changed WBBS to properly support 3rd party web grids that support proprietary paging.
The 3rd party grids store off a collection of items rather than rendering the grid as the collection is enumerated. The base business object enumerator returns the same business object reference instead of a separate business object reference per record. I added an overload to the GetEnumerable() method (EditorBrowsable(Never)) that will use a BBS as the enumerable object returned, which returns a separate instance of the business object type with each record pointed to a different record.
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
Here is another installment of the 1.6.6 beta: - Cool Breeze added as a template theme in the ApplicationThemeEditor
When creating a new Application Theme, the Cool Breeze theme can now be selected as a template theme. DatabaseMigrator class now has a 1 hour timeout when moving a table from one file group to another
When a table is being moved from one file group to another a timeout may occur if the table is very large. Since the default timeout of a command is 30 seconds, if a large table were being moved, the timeout could execute causing an error. This has been extended to 1 hours to ensure that there is plenty of time to migrate a table from one file group to another if in fact a table is ever moved in this manner. If the fields of a view could not be evaluated by the DDT, a view index could not be added for a field.
If a view query could not be evaluated by the DDT to determine the fields that will be included in the view, then a view index could not be added for those fields. The field can now be typed into the combobox versus being forced to select from the drop-down. AddBusinessObject and RemoveBusinessObject on the BaseForm are now Overridable
The AddBusinessObject and RemoveBusinessObject methods are now overridable on the BaseForm class. This allows additional add and remove logic to be implemented through inheritance.
There were also some other minor changes to the installation and the embedded localization logic.
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
Getting closer, but there are some big ticket items on this update. Examples will follow within the next few days, but multiple foreign key relationship management is now supported...as well as a surprise item which is a custom Business Binding Source which will wrap a specific BO without the need to manually drop on a BBS. Additionally, there is a new Custom BBS template that can be used to create this custom BBS class as well as a reporting business object that inherits from a particular BO type for adding report specific properties, etc. To try out this new template, click Add a new item and select the SF Customer Business Binding Source template. - Package file import did not properly import table with same name but different schemas
In the event that a package has two table names of the same name but different schemas, the import would not include both tables and would not properly import all of the profile information. This issue has been resolved. Dictionary key not present error may occur when manually adding a DateTime field to the CurrentDataTable and adding a new row
There was an issue when a date time column that was not expected within the CurrentDataTable existed and a new record was added. A 'key was not present in the given dictionary' exception would be thrown. This has been changed to accept a default value so if the key is not found an exception will not be thrown. New localization language added - Dutch
A new pre-plumbed localization language has been added to the framework (Dutch). - Added the RegisterForeignKey and UnregisterForeignKey methods to the BusinessLayer class to allow a business object to have multiple "parents" through foreign key management
StrataFrame has always provided the ability to have a single parent relationship which would then manage the child BO foreign keys automatically. However, for BOs that had more than a single foreign key that needed to be automatically managed, this had to be done manually. A BO can now register a child BO and foreign key which will then automatically manage that foreign key when a new child is added and a parent PK is assigned (i.e. if the parent was a new record). Also, like the standard relationship management, the save order is properly enforced in the event a child is saved before a parent and the parent is a new record. The only difference is that this declaration must happen within code versus a design-time editor, which makes sense because the instances of the objects must be defined versus the types. MyParentBo.RegisterForeignKey(MyChildBO,"MyChildForiegnKeyField") Added test to the DataRow.AcceptChanges() call within the DataLayer.UpdateDataTableThread() method to prevent rows that are inadvertantly Detached from causing the save process to crash
Very, very rare...practically impossible to reproduce, but fixed nonetheless. - New Generic BusinessBindingSource class allows easy creation of BBS wrapper for reports or standard .NET data binding use
Due to the nature of binding to standard .NET reporting tools such as grids and reporting environments, a very easy to implement class has been created which extends a business binding source for a specific business object type. A generic implementation allows the BusinessBindingSource to be inherited and a specific BO type to be assigned to that BBS class. The BBS class will then dynamically create the BO and manage the exposed properties. This creates a very easy way to create data sources that wrap business objects for any type of .NET data binding including reports, grids, 3rd party controls, etc. without having to manually create and attach a business binding source component. Public Class CustomersBBS Inherits MicroFour.StrataFrame.Business.BusinessBindingSource(Of CustomersBO) End Class - New Template Created that supports the new Custom Business Binding Source Class
A new template has been added that allows a custom business binding source for a specific business object to be created. Additionally, this same template has support for reporting and allows a reporting BO to be created which inherits from a source business object. This is generally a good idea for reports so that custom and aggregate properties are added to the report specific BO instead of the original BO. Additionally, a namespace can be assigned to the BO and/or the custom BBS that gets created through this template so each report BO and BBS can appear in a unique namespace. Each of these segments is an option so a BO doesn't have to be created or a namespace assigned if the need doesn't exist. If a custom BBS is the only item that needs to be created then that alone can be selected and added to the project. Within this template dialog, a combo will allow the desired business object to be selected for which the custom BBS and/or reporting BO will represent. In conjunction with the new generic BBS, this feature takes a process that could have taken hours before and turns it into a minute or less implementation.
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
Here is the next set of changes and updates for the 1.6.6 build. - EnterpriseDataSourceItem would not fully support the FillMultipleDataTables method
The EnterpriseDataSourceItem has been changed to fully support the new FillMultipleDataTables method from the BusinessLayer. Enterprise Server may fail if the MicroFour activation server was not available
Under certain conditions, and if the MicroFour activation server were down or inaccessible due to an internet connection on the server side, an error would occur causing the server to throw an exception. This issue has been resolved to no longer fail if the MicroFour activation server is not available or accessible. New localization language added - Czech
A new pre-plumbed localization language has been added to the framework (Czech). DataLayer did not properly respect schema name when using the auto-generated stored procedures
If the stored procedure names were not supplied and expected to be in the standard format, the table schema was not used as part of the INSERT, UPDATE, or DELETE and would throw an exception indicating the sproc could not be found. This has been resolved and now properly supplies the schema name. BusinessLayer now has the ability to take a snapshot of current contents and restore it at a later time
The BusinessLayer now has two new methods: SaveCurrentDataTableToSnapshot and RestoreCurrentDataTableSnapshot. When saving a snapshot, the BO saves the current contents of the CurrentDataTable, including column and row states. The BO can then be changed or modified, but if the scenario arises where the BO should be restore back to the snapshot and ignore any changes since that point, then the RestoreCurrentDataTableSnapshot can be called. This is a good way to deal with child tables and ChildFormDialogs when cancelling out as the Undo will not always give you exactly what you may need (i.e. remove a record with an Added row state, etc.). ListView now has an AutoSnapshotBusinessObject property that saves the contents of the BusinessObject before an Add or Edit
By default, the ListView now has the new AutoSnapshotBusinessObject property set to True, which when handling the Add or Edit actions, will automatically take a snapshot of the business object assigned to the BusinessObject property. This allows the RestoreCurrentDataTableSnapshot if necessary in the ChildFormResults event versus using an Undo. This could be done manually as well, this just saves a few steps in this process. ListView now has a PerformEditActionOnDoubleClick property
If the HandleEditAction property is set to True which indicates that the ListView will manage the edit action and the PerformEditActionOnDoubleClick property is set to True as well, then when a list item is double-clicked, the Edit action will be automatically performed. BusinessLayer SaveCurrentDataTableToSnapshot now supports a key for an unlimited number of snapshots.
The SaveCurrentDataTableToSnapshot now allows as many snapshots as necessary to be created by supplying a key. This allows many different states of the same business object to be saved. ListView now has an AutoSnapshotKey property that allows a key to be specified if using the AutoSnapshotBusinessObject feature
The ListView now supports the new BusinessLayer SaveCurrentDataTableToSnapshot key parameter with the AutoSnapshotKey property. The value supplied here will be passed over to the SaveCurrentDataTableToSnapshot method. Database Deployment Toolkit now supports Triggers
The DDT now has the ability to create and deploy triggers. The triggers can be defined on a per table basis. The DDT packages will need to be rebuilt once the update is loaded with this new feature (1.6.6 beta) as the DatabaseMigrator class now expects the triggers to exists. If this step is omitted, an error will occur (which would be a friendly reminder to rebuild the package file :-) ). Database Deployment Toolkit now shows the schema name along with the table name for relationships
When defining a relationship, the foreign key table drop down now shows the schema name along with the table name so that when two tables of the same name but different schemas exists within a database, they can be easily identified. ListView now has a BeforeChildFormExecuted event
The ListView now has a BeforeChildFormExecuted event that gets raised immediately before the child form dialog is show via an Add or Edit. In the case of an Add, the new record has already been created. In the case of an Edit and the BO is being autonativated via the ListView, the record will be correctly positioned. This event is a good place to load additional business objects with data or perform some type of other logic before the dialog is shown. ListView now has a VerifyRulesBeforeAutoNavigate property
The ListView now has a VerifyRulesBeforeAutoNavigate property that will prevent the selected list view item from changing if there are broken rules on the current row. This works around the edges of the ListView so the SelectedIndexChanged event will fire more than once, but ultimately will land back on the item in question. Additionally, the AutoNavigateToSelectedRecord property must be set to True and the BusinessObject property must have a valid BO instance. SecurityBasics now has the ability to force registry settings to HKEY_CURRENT_USER
Some of the Security dialogs use the standard SF properties to save off the form positions, locations, etc. However, this gets uses at run-time as well and in highly-restricted environments the HKEY_LOCAL_MACHINE key cannot be accessed. To get around this, the SecurityBasics class now has a ForceCurrentUserOnRegistrySettings property which redirects the registry settings to the HKEY_CURRENT_USER key for these security dialogs.
|
|
|
Trent Taylor
|
|
Group: StrataFrame Developers
Posts: 6.6K,
Visits: 6.9K
|
There are only a few changes here. They apply most to the Enterprise Server. There were two bugs that have been resolved (FillMultipleDataTables and checking in with the MicroFour activation server). If you need the ES server files, I have attached the ES server files as well (they will need to be updated as if you are going to load this build and are using an ES server). This build also includes: - Czech language support
- Version has been changed to 1.6.5.2
|
|
|