我正在用C#开发一个客户端 - 服务器桌面应用程序系统.客户端只是一个瘦客户端,可以显示服务器告诉它的任何内容.服务器直接与本地数据库通信,本地数据库用于存储各种系统的元数据.每个系统都有自己的表,其结构对于该系统是唯一的.
我试图理解如何在没有"硬编码"任何内容的情况下告诉桌面应用程序数据库的结构,如果这有意义的话.我相信我需要研究对象关系映射,但我不太清楚从哪里开始,因为我以前从未接受过这种复杂性的项目.我的想法是我的服务器配置以某种方式定义了这个映射,并且它可能是可扩展的,因此我可以在将来为更多系统添加更多映射,或者可能更改映射.
我怎么看这个系统工作是这样的:
客户端上的用户将包含元数据的文件上载到服务器.服务器将确定此文件所针对的系统类型,然后解析该文件以提取元数据,并将其输入数据库.我最初设想这种情况的方式是我将有一个通用的抽象类/接口,需要为每个系统类型派生.然后,派生类将实现特定于该系统类型的解析函数,以便它可以从文件中提取元数据.但问题是我无法将提取的数据输入数据库,因为服务器不知道派生类的底层结构.
谁能指出我正确的方向?我发现了NHibernate,这听起来像我可能需要的,但我不是百分百肯定.正如我先前所说,问题的一部分是我对这些概念中的一些概念没有完全理解.任何人都可以推荐一些可以帮助我理解对象关系映射器(ORM)的在线资源,特别是它与.Net Framework有何关联?