ObservableCollection(T) vs BindingList(T)?

J'ai développé certaines données en fonction Winforms Demande de ce dernier deux ans, et tout fonctionne très bien. Cette application sont construits sur des calques (DataAccess, la Logique d'Entreprise et de l'INTERFACE utilisateur). Pour le Businness Logique, tous mes objets héritent d'une classe de base appelée BaseEntity avec la définition suivante (il y a quelques objets personnalisés et des interfaces, combinés avec des éléments du cadre) :

Public MustInherit Class BaseEntity
    Inherits SerializableObject
    Implements IEntity
    Implements IComparer,  _
               IEditableObject,  _
               INotifyPropertyChanging, INotifyPropertyChanged,  _
               IApplicationSecurity
  End Class

Dans la même bibliothèque de base, j'ai un générique de base de la collection de BaseEntityCollection. Ces collection me permet de définir, pour chaque objet, sa relative fortement typé collection, ce qui est très interressant, dans les données en fonction des applications. Ici, c'est que c'est la base de la définition :

 Public MustInherit Class BaseEntityCollection(Of T As BaseEntity)
    Inherits BindingList(Of T)
    Implements IEntityCollection
    Implements INotifyPropertyChanged, INotifyPropertyChanging, ICopyable(Of T)
    Implements IDisposable
    Implements ISerializable
  End Class

Comme vous pouvez le voir, je l'utilise tous les trucs qui est nécessaire pour corriger la liaison de données en Winforms :

  • INotifyPropertyChanged,INotifyPropertyChanging, IEditableObject de l'objet.
  • Une collection basée sur BindingList(T) pour ma collection.

Je suis aussi interresse sur les nouvelles technologies, donc, j'ai récemment regardé quelques webcast sur WPF. Dans ces webcast, qu'ils utilisent comme classe de base pour la collecte et la liaison de données de soutien ObservableCollection(T).

Je suis en train de penser sur la migration de certaines de mes applications de Winforms à WPF pour la Couche d'INTERFACE utilisateur.

Ma question est, pour mon entreprise logique, est-il mieux de garder mes collections basées sur BindingList(T) ou dois-je changer ma collection de base de la classe pour faire hériter de ObservableCollection(De T). Je tiens à garder une unique collection de base pour tous mes projets, qui peuvent être aussi bien utilisé dans des Applications Winforms, WPF Application ou ASP.NET.
Je suis aussi à l'aide de Linq to Objects dans mes projets, donc je n'ai pas de restriction en gardant mes projets fondés uniquement sur le framework 2.0.

Merci,

ClaBer

InformationsquelleAutor ClaBer | 2009-01-18