Wow! 9 Months yet. With almost no update in Signum Framework. Is the project dead?? Not at all!!.
Unfortunately, it's hard to use two Team Foundation Servers at the same time in one solution, Codeplex for the framework and our own TFS for everything else. That's why we are doing our daily check-ins in our own TFS. However, our compromise is to, once in a while, check-in a major update of the Signum Framework with all the new features that we have added.
Here it is, SF 2.0 with lots of new features:
- General improvements in almost every area, following the same principles: No-ceremonial Compile-time-checked C# code with lambda expressions all around :)
- Fixes to some bugs found by us or the community.
- A better model to create vertical modules (DB, Entities, Logic, and UI) that compose nicely.
Most changes have been expansions of the API, but there are some small breaking changes. The most dramatic one is that Lazy has been renamed to Lite with forecast of the
incoming Lazy in .Net 4.0.
A comprehensive Changelog for Signum Framework 2.0.
Signum.Entities
Entities
MList
- Small bug in MList
- MList support for List methods like FindIndex, FindLastIndex, LastIndexOf....
- Remove GetHashCode in MList
Lite (Lazy renamed)
- Lazy -> Lite (because 4.0)
- Entity (throws) and EntityOrNull (returns null)
- Is and RefersTo extensions methods (Linq enabled)
- Fix in Lazy PreSaving
Attributes
Validators
- IntegrityCheck not virtual
- this -> PropertyValidation
- StateValidator (allowed to be null depending on the state, in a table fashion)
- New Validators
- Url
- Telephone
- FileName
- Decimals
- NoRepeat
- NumberBetween
- Refactoring Integrity
- Refactoring Corruption (ICorrupt removed, Corrupt is a pattern and CorruptEntity an example)
- GraphExplorer.Integrity checks for CLONE ATACK
Integrity and Graphs¶
- CommonProperties moved to Reflector
- InstancePropertiesInOrder in Reflector
- GraphExplorer.SuperGraphviz
- PreSaving calling ToStr instead of toStr
- Duplicate Graph on saving to enable PreSaving modifying it
- Support for formatting strings in Reflector
Signum.Services (merged with Signum.Entities)
- ServerTypes
- INotesServer
- ServerNow
- Meta in Column
Signum.Engine
- New Transaction System
- Real, Faked, Named, MockReal and MockNamed
- RealCommit event in Transaction
- Transaction Commit(value)
- ObjectCache -> EntityCache
- SqlPrecomand OpenSqlFile
- Add handling in SqlExceptions
- ServerBasic (basic implementation of all the interfaces of Signum.Service for you to inherit)
- Misspelling in TypesLogic
- TypesLogic
Database
- UnsafeUpdates
- UnsafeDelete
- Many overloasings use IIdentifiable instead of IdentifiableEntity to avoid castings in clientCode
- Database RetrieveFromListOfLite
- Retriever (ProcessAll now is responsibility of Database)
- RetrieveAll and RetrieveAllLite use the Linq provider now.
Administrator
- ExistTable UnsafeRetrieve, TryRetriveAll and other methods for Sync scenarios
- ShrinkDataBase for generation scenarios
- DisableIdentity, SetId, SetNew & SaveListDisableIdentity for loading scenarios
- SetSnapshotIsolation and MakeSnapshotIsolationDefault
- Some things moved to TypesLogic
Schema
- Schema Refactorings (KindOfField.Lazy removed, Field and EntityField split, XXXField to FieldXXX)
- New Infrastructure for ModuleLogic
- Generating event
- Synchronize event
- Initialize event
- Events on Schema for authorization
- OnDeleted / OnDeleting
- OnRetrieved / OnRetrieving
- OnSaved / OnSaving
- EntityEvents (with isRoot)
- SchemaBuilderSettings
- OverrideFieldAttributes
- OverrideTypeAttributes
- Change default CLR Type -> SQL Type mapping.
- Bug UniqueMultiNull
SchemaBuilder
- Remove IncludeAll and IncludeSimilar to avoid maintainability problems, IgnoreAttribute no longer applicable to types.
- Add NotDefined method to allow a #ifdef/#def
- tl/tltr prefix are removed from table names by default.
- MList BackReference name is 'idParent' instead of 'idXXX' in order to allow MList to the same type.
- Small internal changes in the way Saver deal with graphs
- TypeDN logic goes from Administrator to TypeLogic
Synchronization
- Synchronizer utility class
- Support for Renaming (Synchronization & SqlBuilder)
- More improvements in Synchronizer (Table Renamings, Updates without lastId, Error handling)
- delete sync
- insert sync
- DeleteSync & UpdateSync with ToStr
- 'use' in Syncronization Script
- InsertSqlSync / UpdateSqlSync with PreSaving
Linq Provider
- InSql extension methid
- Support to navigate though interfaces
- Extensibility (now in Signum.Utilities)
- fieldExpression
- expression.Invoke()
- MethodExpanderAttribute
- Bugs and refactorings
- GroupByReorderer -> GroupByAsserter
- Small bugs dealing with MList
- EnumExpression removed (Convert is enough)
- FieldInitExpression Id -> ExternalId
- fixes in the Linq provider due to Group By moved to Utilities now
- Changes in TranslateResult, Query, QueryProvider
- Improvements in paratemers in Linq to SQL
- Changes in GroupBy and Aggregates
- Changes in Join
- Exist/Subquery/In/Scalar
- Changes in IsNull / IsNotNull
- SqlConstant
- ProjctionToken changes
- Outer apply problem -> TypeLogic mandatory
- Expression's NiceToString
DynamicQueryManager
- MetadataVisitor
- DynamiqQuery (authorization, Meta, PropertyInfo)
- ManualDynamicQuery
- ExpressionNominator, DbExpressonNominator y MetadataEvaluator (avoid executing on Initializing)
- DynamicQueryManager Unification
- DynamicQueryManager external authorization
Signum.Windows
Route
- Extensibility model for Common.Route
- Reorder Common.Tasks
- PseudoRoute
- CollapseIfNull
- Fix in CollapseIfNull
- Common.DelayRoutes()
Controls
- Improved Design Time Support and Default Property Name
- Better design time support for ErrorSummary
- EntityList autoselect and blue when selected & !Activated
- Autorefresh ComboBox
- AutoCompleteElements in EntityLine
- NumericTextBox Border in Classic Theme
- Fixes in EntityBase
- Bug fixed in EntityType en EntiyBase
- HighPrecisionNumber
- ShyPanel
- LightEntityLine: Shadow -> Red, disable when no EntitySettings
- AutoControl
- Some fixes in EntityCombo
- ValueLine format and ValueLineTypes reduction
- Description in Enum ValueLines
- DataBorder AutoChild using EntitySettings
MarkupExtensions and Converters¶
- Better design time support for LocExtensions
- New Lazy Markup Extension for Lazy types
- Some cleaning in Converters
Server
- New Server.Service and Server.Implements
- RetrieveLazyThin RetrieveLazyFat
Windows
- New Toolbar
- ToolBar buttons
- NormalToolBar -> ButtonBar
- ButtonBar fixes
- AdminWindows
- AllowCorruption en NormalWindow.Save
- EntitySettings Collectionview
- EntityChangedEvent
- NormalWindow margin
- ErrorSummary with ShyPanel
- Scroll in NormalWindow
- HasChanges, AssertErrors and LooseChangesIfAny from NormalWindow to Common
- AutoCompleteTextBox up/down
- AdminBase, Common duplicate graph on saving
Search
- WhiteSmoke background before search in SearchControl
- SearchControl extension event with EntityType
- SearchControl column templates infrastructure
Widgets
- New Widget system
- Changes GetCustomMenuItems
- NotesProvider --> NotesWidget
- ExpandedCollapse event in WidgetPanel
- Small bugs in LinksWidget and NotesWidget
- Easy Start for NotesWidget, LinksWidget
- NotesWidget.Start -> Notes.Start
Navigator
- NavigatorManager starting up changes
- ViewButtons (OkCancelSaving remove, SaveClose -> Save)
- View -> (View, Navigate)
- Find -> (Find, FindUnique, FindMany, Explore)
- QuickLinks
- Strict TypeContext para Embedded
- Changes in EntitySetting(EntityType in, GetIcon to navigator)
- Changes in QuerySettings (Title out, Icon in)
Fluent
Signum.Windows.Fluent
- Sync.InvokeAction
- Child & Children
- Bind
- Set
- NotSet
Others
- MenuManager
- ShortcutHelper
- Constructor GeneralConstructor
Signum.Web
Signum.Utilities
Extensions
- DictionaryExtensions (TryGetC/S returns null even when the dictionary is null)
- EnumerableExtensions
- Single overload with different messages for zero and many.
- SingleOrMany and Only
- JoinStrict
- ForeEach removed
- Comma, CommaAnd and CommaOr
- MinMaxPair returns Interval.
- Extensions (NotFoundToNull and TryToString added)
- StringExtensions (RemoveDiacritics, EtcLines, NiceName, Combine and ContinuesWith added)
- ArrayExtensions (New Overloads in ToArray)
- ReflectionExtensions (MemberInfo -> ICustomAttributeProvider, IsReadOnly added and bug fixes)
- DateTimeExtensions (IsInInterval Linq enabled, nice ToString for DateSpan)
- CSV (Small implementation changes)
- GroupExtensions (Overloadings using IQuerable removed for simplicity)
- JsonExtensions
DataStructures
Synchronization
ExpressionTrees
Signum.Test
- Unit test for linq provider
- UnitTest for Distinct, Fixes in ternary operators MakeValue)