none
Architektur des Datenbankzugriffs für WP7, MVC3, WPF

    常规讨论

  • Hallo,

    ich stehe zur Zeit etwas auf dem Schlauch. Ich versuche eine Architektur zu entwerfen, um aus verschiedenen Clients ( MVC3, WPF,WP7,WCF) auf Daten zuzugreifen. Möchte aber nicht für jeden Client noch einmal ein extra Model erstellen.

    Die Webanwendung verwendet einen SQL Server, EF4.1, MVC3. WP7 verwendet bald ???

    DataAnnotations:

        public class Person
        {
            [Range(1, 9999)]
            [Editable(false)]
    	    [Display(Name = "ID")]
    	    [DisplayFormat(DataFormatString = "#{0}")]
    	    public int Id { get; set; }
    


    Linq.Mapping auf WP7:

        [Table(Name="Person")]
        public class Person : INotifyPropertyChanged, INotifyPropertyChanging
        {
            private int _id;
            [Column(IsPrimaryKey = true,
                IsDbGenerated = true,
                DbType = "INT NOT NULL IDENTITY",
                CanBeNull = false,
                AutoSync = AutoSync.OnInsert)]
            public int ID
            {
                get { return _id; }
                set { _id = value; }
            }
    

     

    EF: (Das ist aus der DB genertier,glaub ich kann da auch DataAnnotations verwenden und die DB anpassen lassen, oder gibt's da Probleme? String Längen, Null,...)

        public partial class Person
        {
            public Person()
            {
                this.Reference = new HashSet<Reference>();
            }
        
            public int ID { get; set; }
    


    Probleme:

    • Technologie für Datenzugriff (Linq, EF,...)
    • Layer für Datenzugriff ( EF: DbContext, WP7: DataContext, ???: ObjectContext keine Ahnung wozu das verwendet wird )
    • Validierung ( DataAnnotations gefällt mir ganz gut, aber es muss auch eine Validierung in der BL erfolgen. Z.B. bei WCF Zugriff, oder? )
    • Datenbinding ( INotifyPropertyChanged, INotifyPropertyChanging find ich gut. )

     

    Ich hoffe ich konnte mein Problem eingermaßen beschreiben. :)

     

    Gruß

    Peter

    2011年12月10日 8:24

全部回复