如何在桌面应用程序和WebAPI之间共享逻辑和DAL代码?

时间:2016-10-12 10:36:27

标签: c# asp.net .net wpf asp.net-web-api

我正在构建一些软件,其中包含一个用C#.NET编写的WPF桌面应用程序,以及一些使用SQLite数据库的本地持久存储。

我还创建了一个托管在Azure中的SQL Server数据库,用于在云中保存数据,我正在开发一个ASP.NETCore Web API,它位于数据库和任何想要在服务器上保存数据的客户端之间

在这个过程中,我意识到一堆代码,比如我的数据库连接和助手(或者至少是他们的接口),以及定义某个对象(例如金融交易)可以共享哪些属性的模型接口并在桌面应用程序和Web API中重复使用。

将来,我计划推出移动应用,毫无疑问他们会再次使用相同的逻辑和DAL代码。所以我的问题是:设计架构的最佳方法是什么,以便现在可以保护自己,避免重复分解我的代码?

我现在的计划是创建一个包含业务逻辑,DAL和数据模型的API(类库),并使桌面应用程序引用此API(然后使用它成为一个轻量级的UI层MVVM)和Web API控制器的引用。我在API中有一个实现,旨在与SQLite交谈,另一个实现与SQL Server交谈。

我看到的问题/困惑是我最终在我的桌面客户端上有一个类库,它在本地持有一些数据,但它也调用Web API来保存数据,然后调用相同的类库,只是存储在服务器上,告诉DAL在服务器的数据库上执行一些操作。

关于此设置,似乎有点......我正在努力简化事情并提供可维护性,但似乎我过于复杂了。我错过了什么吗?

我读的越多,似乎有10种方法可以做任何事情,而且我不太清楚最好的方法是什么。

谢谢!

0 个答案:

没有答案