Visual studio 分层组织应用程序

Visual studio 分层组织应用程序,visual-studio,architecture,interface,layer,code-organization,Visual Studio,Architecture,Interface,Layer,Code Organization,我正在开发一个名为a的应用程序的一部分。我要将DLL插入的应用程序称为应用程序B,它在vb 6中,我的代码在vb.net中。(应用程序B将及时转换为vb.net)我的主要问题i,我组织代码的最佳方式是什么(应用程序A) 我想将应用程序A分为几个层(服务、业务、数据访问),这样,当B转换为vb.net时,将应用程序A集成到B中就很容易了。我还想学习所有的主题,如分层体系结构、模式、依赖关系倒置、实体框架等等。虽然我的应用程序(A)很小,但我希望以最佳方式组织代码 我正在使用的应用程序(A)使用we

我正在开发一个名为a的应用程序的一部分。我要将DLL插入的应用程序称为应用程序B,它在vb 6中,我的代码在vb.net中。(应用程序B将及时转换为vb.net)我的主要问题i,我组织代码的最佳方式是什么(应用程序A)

我想将应用程序A分为几个层(服务、业务、数据访问),这样,当B转换为vb.net时,将应用程序A集成到B中就很容易了。我还想学习所有的主题,如分层体系结构、模式、依赖关系倒置、实体框架等等。虽然我的应用程序(A)很小,但我希望以最佳方式组织代码

我正在使用的应用程序(A)使用web服务对用户进行身份验证,并向组织发送模式。应用程序B的用户在应用程序B中选择一个菜单点,然后调用我的应用程序a中的一些函数

在应用程序A中,我有一个从xsd模式自动生成的模式类。我用数据填充这个schema对象,并将该对象序列化为内存字符串(使用内存字符串是否是一个好的解决方案,我还不必保存数据),将xml包装在CDATA块中,并将CDATA块作为字符串返回,并将CDATA块分配给web服务的字符串属性

我还使用实体框架进行数据库通信(以了解如何在应用程序B的未来工作中做到这一点)。我的.edmx中有两个实体:用户和付款人。 我还想使用repository模式(这是一个好的选择吗?)在DAL和BLL之间做一个外观

我的应用程序具有用于生成schema(用数据填充schema对象)、GetSchemaContent、GetSchemaInformation、GenerateCDATABlock、WriteToTextFile、MemoryStreamToString、EncryptData的函数,以及一些使用web服务的函数,如SendShema、AuthenticateUser、GetAvalibelservices等

我不知道该把它放在哪里? 我想我必须有一些接口,比如IRepository、ISchema(自动生成的模式类的契约,我怎么做?)ICryptoManager、IFileManager等等,以及实现这些接口的类

我的DAL将是实体框架。我希望在我的BLL(IRepository、UserRepository、PayerRepository)和管理类(如我上面提到的类)中有一个存储库外观,包含WriteToFile、EncryptData等功能

这是一个好的解决方案吗(我是否需要一个服务层,我所有的GUI都在应用程序B中)以及如何在VisualStudio中组织我的层、接口、类和函数


提前谢谢。

这是一个很难回答的问题,我想我可以试着为你切掉几个部分,这样下一个家伙回答的话就少了

对于应用程序B(VB6)调用应用程序/程序集A,我将假设您将应用程序A的相关部分公开为COM组件,使用s和类似的方法,如中所述。我只知道另一种方法,但我自己从未尝试过

将您的解决方案分为不同的层次是一个非常主观的/有争议的话题,并且总是归结为个人偏好、业务需求、可用时间等的组合。但是,无论您的层次有多深,最好了解其方式和原因

为了让您开始,这里有几篇文章:

现在也是一个非常好的模式,随着.Net平台的可用资源不断增加(而且非常棒!),这绝对值得花一些时间去学习

虽然我还没有完全了解国际奥委会,但我确实很喜欢(如果我理解正确的话,这是一种国际奥委会,尽管人们似乎对国际奥委会/国际奥委会的术语混淆了很多)。我个人目前对DI的偏好是开源项目,该项目有大量的在线资源,可以合理地向您介绍各个方面

还有很多关于DI和IoC的报道,所以我甚至不想给你提供一个全面的列表,因为我害怕因为错过了某人最喜欢的节目而被激怒。只需搜索一下,看看你喜欢的外观和发挥它。如果你有时间,一定要试一下

同样地,这些经常与之很好地互补的话题也是值得深思几个小时的好话题。我在互联网上看到了很多好的例子,也看到了很多坏的例子。我唯一的建议就是自己尝试一下。。。看看什么适合你,开发一个最适合你的模式版本,并努力保持一致性以便于维护

为了在VS中组织所有这些层和层,我建议尝试将所有独立层/层保留在它们自己的解决方案文件夹中(右键单击解决方案,添加新的解决方案文件夹),或者在某些情况下(较大的项目)有自己的解决方案,最好是自动构建服务,根据需要使用最新的程序集更新相关项目。同样,这是一个广泛的主题,完全取决于个人喜好。在为潜在客户设计应用程序时,请密切注意

所以,我恐怕这甚至不能回答你的问题,但希望能为你提供一些资源,让你检查一下,并阅读几个小时


祝你好运

你的问题很好,但范围很广。它需要一个完整的应用程序设计作为答案。我会投票给你任何建设性的答案:-)非常感谢你花时间回答我!我会调查你提到的事情!