Typescript ASP.net内核中的Aurelia和模型

Typescript ASP.net内核中的Aurelia和模型,typescript,asp.net-core,aurelia,Typescript,Asp.net Core,Aurelia,我最近一直在探索不同的javascript框架,并决定开始使用Aurelia重写ASP.Net核心MVC前端。 我用这个方法重新开始 一切正常,我已经加载了我的DAL、BLL项目,使用EF core建立了与数据库的连接,并将数据提取到Aurelia前端 然而,目前,在我的ts文件中,我使用的接口与我在BLL中设置的模型几乎相同 我的模型: public class staff { [Key] public short StaffId { g

我最近一直在探索不同的javascript框架,并决定开始使用Aurelia重写ASP.Net核心MVC前端。 我用这个方法重新开始

一切正常,我已经加载了我的DAL、BLL项目,使用EF core建立了与数据库的连接,并将数据提取到Aurelia前端

然而,目前,在我的ts文件中,我使用的接口与我在BLL中设置的模型几乎相同

我的模型:

public class staff
    {        
        [Key]
        public short StaffId { get; set; }

        [DisplayName("First name *")]
        public string FirstName { get; set; }

        [DisplayName("Family name *")]
        public string FamilyName { get; set; }

        [DisplayName("Phone")]
        public string PhoneNumber { get; set; }

        [DisplayName("Birth Date"), DisplayFormat(DataFormatString = "{0:dd MMM yyyy}", ApplyFormatInEditMode = true)]
        public DateTime? BirthDate { get; set; }  
    }
我的ts文件中的Aurelia接口

interface staff{
    firstname: string;   
    familyname: string;
    phone: string;
    date: date;
}
我希望避免冗余,而是希望直接使用模型。 有没有办法将模型导入/注入到我的ts文件中? 我可以更好地使用注释在html中设置表的标题,或者进行一些格式化/验证吗

多谢各位


Sylvain

虽然最初,从后端模型生成aurelia模型似乎是个好主意,但它消除了使用SPA的一大好处

您应该将后端和aurelia前端都视为不同的应用程序。您的视图模型永远不会与您的域完全相同,将它们分开意味着对其中任何一个的全部重写都不会影响另一个

在通过网络发送域模型之前,应该实现一种映射机制,将域模型映射到aurelia模型。(如果您不想自己实现,我建议使用automapper)

根据经验,随着功能的增加,您的aurelia模型将慢慢偏离您的领域。您将开始在视图中拥有在映射过程中动态生成的属性,通常作为其他属性的聚合。如果您试图将这些属性放入您的域中(不应该是这样的!),这可能会造成很大的痛苦。我知道复制看起来像是开销,但是让前端直接依赖后端会带来更大的开销