【发布时间】:2011-09-27 13:45:12
【问题描述】:
我正在开发名为 A 的应用程序的一部分。我想将我的 DLL 插入的应用程序 B 位于 vb 6 中,而我的代码位于 vb.net 中。 (应用程序 B 将及时转换为 vb.net)我的主要问题是,我组织代码(应用程序 A)的最佳方式是什么?
我想将应用A拆分成层(服务、业务、数据访问),所以当B转换为vb.net时,应用A集成到B中会很容易。我还想了解分层架构、模式、依赖反转、实体框架等所有主题。虽然我的应用程序 (A) 很小,但我想以最好的方式组织我的代码。
我正在使用的应用程序 (A) 正在使用 Web 服务来验证用户身份并将架构发送到组织。应用程序 B 的用户正在选择应用程序 B 中的一个菜单点,然后调用我的应用程序 A 中的一些功能。
在应用程序 A 中,我有一个从 xsd 模式自动生成的模式类。我用数据填充此模式对象并将对象序列化为内存字符串(使用内存字符串是一个很好的解决方案吗,我不必保存数据),将 xml 包装在 CDATA 块中并返回 CDATA 块作为字符串并将 CDATA 块分配给 Web 服务的字符串属性。
我还在使用实体框架进行数据库通信(以了解如何为应用程序 B 的未来工作完成此操作)。我的 .edmx 中有两个实体,用户和付款人。 我还想使用存储库模式(这是一个不错的选择吗?)在 DAL 和 BLL 之间建立一个外观。
我的应用程序具有 GeneratingSchema(用数据填充架构对象)、GetSchemaContent、GetSchemaInformation、GenerateCDATABlock、WriteToTextFile、MemoryStreamToString、EncryptData 和一些使用 Web 服务的函数,如 SendShema、AuthenticateUser、GetAvalibelServises 等。
我不确定我应该把它们放在哪里? 我想我必须有一些接口,如 IRepository、ISchema(自动生成的模式类的合同,我该怎么做?) ICryptoManager、IFileManager 等,以及实现接口的类。
我的 DAL 将是实体框架。我想在我的 BLL(IRepository、UserRepository、PayerRepository)和管理类(如我上面提到的类)中拥有一个存储库外观,并持有 WriteToFile、EncryptData 等函数......
这是一个好的解决方案吗(我是否需要一个服务层,我的所有 GUI 都在应用程序 B 中)以及如何在 Visual Studio 中组织我的层、接口、类和函数?
提前致谢。
【问题讨论】:
-
你的问题很好,但范围很大。它有点要求一个完整的应用程序设计作为答案。我会支持你得到的任何建设性答案:-)
标签: visual-studio architecture interface layer code-organization