如何在 WPF 和 ASP.NET MVC 应用程序之间共享最多的代码?

2024-04-26

我可以使用什么架构和模式在 WPF 和 ASP.NET MVC 应用程序之间共享最多的模型和逻辑代码?

我试图在这里实现更多目标,而不仅仅是将我的数据实体与两个演示项目分开。还有很多共同点,例如关于在什么条件下显示什么、何时需要某些内容等的 UI 逻辑,我希望保留在共享代码中。

ADDED:我刚刚开始真正喜欢独立于驱动演示的实体模型的视图模型的概念。虽然其中使用的一些注释位于特定于 MVC 的程序集中,但提供的元数据实际上都不是特定于 Web 的。我非常想探索使用我的 MVC 视图模型作为绑定到 WPF 视图的数据源。在这方面的任何建议将不胜感激。


我个人最喜欢的配置类似于 Adam King 上面建议的配置,但我喜欢将逻辑 DLL 作为 Web 项目的一部分。我运行一个名为CT终端 https://github.com/chevex-archived/CT-Terminal遵循这种模式。我的 Terminal.Domain 项目包含所有应用程序逻辑,并且仅返回一个CommandResult具有充当指示的属性的对象,告诉 UI 项目要做什么。用户界面完全是愚蠢的,只处理域项目告诉它的内容。

现在,按照 Adam King 的方法,我会将该域 DLL 放入 WPF 应用程序中,然后对 UI 进行编码以遵循我返回的说明CommandResult目的。然而,我更喜欢不同的方法。我编写了 MVC 3 UI 来公开 JSON API。任何应用程序都可以使用此 API。 JSON API 很简单,因为它基本上是我的 Terminal.Domain 项目的包装器CommandResult目的。返回的 JSON 将具有相同的基本属性。通过这种方式,我将编写 WPF 应用程序来使用此 API 而不是 DLL。现在,如果我对内部应用程序逻辑进行微小的更改,我只需将 Web 项目部署到实时服务器即可。所有使用 API 的客户端都会自动获取这个新逻辑。

显然,如果所做的更改会影响从 API 返回的属性,则需要发布新的客户端代码,但至少对于内部逻辑,您不必这样做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 WPF 和 ASP.NET MVC 应用程序之间共享最多的代码? 的相关文章

  • std::map 和二叉搜索树

    我读过 std map 是使用二叉搜索树数据结构实现的 BST 是一种顺序数据结构 类似于数组中的元素 它将元素存储在 BST 节点中并按其顺序维护元素 例如如果元素小于节点 则将其存储在节点的左侧 如果元素大于节点 则将其存储在节点的右侧
  • 获取从属性构造函数内部应用到哪个属性的成员?

    我有一个自定义属性 在自定义属性的构造函数内 我想将属性的属性值设置为属性所应用到的属性的类型 是否有某种方式可以访问该属性所应用到的成员从我的属性类内部 可以从 NET 4 5 using CallerMemberName Somethi
  • VS30063:您无权访问 https://dev.azure.com

    我正在尝试在 asp net core 2 1 mvc 应用程序中使用以下代码连接 Azure DevOps Uri orgUrl new Uri https dev azure com xxxxx String personalAcces
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 组合框项目为空但数据源已满

    将列表绑定到组合框后 其 dataSource Count 为 5 但组合框项目计数为 0 怎么会这样 我习惯了 Web 编程 而且这是在 Windows 窗体中进行的 所以不行combo DataBind 方法存在 这里的问题是 我试图以
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • “MyClass”的类型初始值设定项引发异常

    以下是我的Windows服务代码 当我调试代码时 我收到错误 异常 CSMessageUtility CSDetails 的类型初始值设定项引发异常 using System using System Collections Generic
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • string.Compare 行为

    怎么会这样呢 这是从VS2008中的立即窗口获取的 string Compare 1 string Compare 0 0 1 从言论来看字符串比较 http msdn microsoft com en us library 84787k2
  • WPF ListBox - 如何从数据表中放入值?

    I have ListBox并希望将值放入此列表框中DataTable listBoxVisibleFields DataContext SelectedFields Where SelectedFields is a DataTable充
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • 内核开发和 C++ [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 从我know https stackoverflow com questions 580292 what languages are windo
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 跨项目/dll 访问 Xaml 中的资源

    是否可以从另一个项目引用存储在 ResourceDictionary 构建操作 资源 中的 Xaml 资源 我想将资产合并到主项目的资源字典中或单独访问它们 例如 项目 MyResources 包含一个名为 Assets 的文件夹 其中有一
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • 如何使用 std::array 模拟 C 数组初始化“int arr[] = { e1, e2, e3, ... }”行为?

    注意 这个问题是关于不必指定元素数量并且仍然允许直接初始化嵌套类型 这个问题 https stackoverflow com questions 6111565 now that we have stdarray what uses are

随机推荐

  • 如何禁用浮点单元(FPU)?

    我想在 x86 系统中禁用 FPU MMX SSE 指令 并且我将为设备不可用异常实现一个处理程序 我已经提到过控制寄存器 wiki 页面 http en wikipedia org wiki Control register 看来我必须在
  • Mysql 使用搜索字符串排序

    我有一个 mysql 查询 例如 select from employee where name like ani 我希望我的结果以 ani 开头排序 例如 我的结果应该是 anil anirudha rani 首先以 ani 开头 然后是
  • 服务器传输与服务器传输响应.重定向

    有什么区别Server Transfer and Response Redirect 各自的优点和缺点是什么 什么时候其中一种比另一种更合适 什么时候不合适 Response Redirect只需发送一条消息 HTTP 302 http e
  • Python边缘检测和曲率计算

    我知道边缘检测问题之前已经发布过 在Java中 计算图像中对象的数量 https stackoverflow com questions 2952165 count the number of objects in an image 与语言
  • 如何将 iframe 转换为画布?

    我正在尝试将所有内容作为图像保存到另一个页面中 我已经探索了执行此操作的方法 因此我认为我需要首先将该页面转换为画布 因此 我尝试使用要先将其保存为 iframe 的链接 然后将 iframe 转换为画布 但它不起作用 document r
  • CSS,悬停一个元素,影响另一个元素

    当我将鼠标悬停在 li a 上时 我可以影响普通 CSS 中的另一个元素吗 因为我试图在悬停链接时将一个框作为背景元素滑入 与此网站导航完全相同 只是不是在激活时使用 而是通过悬停来使用 http www zindhai com http
  • Mobile Safari HTML5 视频 - 事件侦听器“结束”不会第二次触发

    我正在尝试添加一个按钮 按下时将播放视频 并且当视频结束时显示图像 问题是 我第二次按下按钮时 视频结束 并且没有任何反应 就好像事件侦听器没有被调用一样 var video document getElementById video fu
  • PHP 删除字符串中最后一次出现某个字符后的字符

    所以测试用例字符串可能是 http example com u ben Or http example com 我试图删除最后一次出现 之后的所有内容 但前提是它不是 http 的一部分 这可能吗 到目前为止我有这个 url substr
  • 如何从数组C++中获取唯一的字符串

    我知道我的问题对某些人来说可能很愚蠢 但我整天用谷歌搜索并尝试制定自己的解决方案 但我失败了 请帮助 我需要从简单的字符串数组中打印所有唯一的字符串 example 输入 嗨 我的 名字 嗨 土豆 文本 名字 嗨 输出 我的 土豆 文本 我
  • 控制换行以使线条等宽

    如果 h1 太长而无法容纳在一行中并换行到下一行 我希望这两行的宽度大致相同 我已经到处寻找 CSS 解决方案 但没有成功 CSS 真的不可能做到这一点吗 这似乎是一个如此简单的事情 在很多情况下都很有用 所以我真的很困惑 这似乎不能用 C
  • Chrome 开发者工具 CSS 文件中的某些样式变灰/不可编辑?

    我发现了很多关于 Chrome 开发者工具中灰色样式的问题 但没有一个问题能够描述我的奇怪行为 我在 CSS 文件中有简单的类样式 由于某种原因 我可以编辑其中一个 但不能编辑另一个 CSS 文件 result background col
  • ng 完成不再存在

    刚刚更新为使用最新版本的 Angular CLI 6 0 如何为 ng 二进制文件设置 bash 补全 它曾经是 lt ng completion bash in the bashrc文件 但现在不再了 这还能实现吗 根据this http
  • I/system_server:单向函数结果将被丢弃,但完成状态为 OK 且包裹大小为 4

    我有时会在 logcat 中看到这个 但不知道这意味着什么 我通过在函数参数中传递视图来解决 My XML
  • 从右侧使用 SlidingPaneLayout?

    是否有可能以某种方式使用Android的SlidingPaneLayout来完成它所做的事情 除了从相反的一侧 IE 我想滑动屏幕的右侧而不是左侧来显示第二个窗格 并且它从右侧而不是左侧滑入 理想情况下 我正在寻找一种方法来使用此布局或对其
  • 如何使用 比较 2 个字符串?

    我正在尝试显示一个
  • 在 EF Core 中编写不区分大小写的搜索查询?

    我想问一个关于 SQL Server 和 EF Core 的问题 数据库中的排序规则是Latin1 CI AS我想编写一个包含土耳其字符的搜索查询 在数据库中 人员 表中有一条名为 SEL M 的记录 当我在 EF Core 中编写这样的查
  • html5视频上的圆角

    有没有办法使用 CSS3 border radius 属性截掉 html5 视频元素的角 查看这个例子 http jsfiddle net inquisitive web developer vDPW2 它不起作用 创建一个带有圆角和溢出
  • 创建 32 位计数器时出现全局变量问题

    我正在尝试做正交解码 using 爱特梅尔 Xmega AVR微控制器 Xmega只有16 bit柜台 另外 我已经用完了所有可用的计时器 现在要做32 bit柜台我用过一个16 bit柜台并在其over under flow interr
  • VB.NET 中的下拉菜单

    我有一个小要求 那就是 表单上有两个组合框 用于填充员工姓名和角色 我按如下方式填充组合框 我创建了一个名为 DbConnect 的类 其中有 02 个函数 Public Function getEmployees As DataTable
  • 如何在 WPF 和 ASP.NET MVC 应用程序之间共享最多的代码?

    我可以使用什么架构和模式在 WPF 和 ASP NET MVC 应用程序之间共享最多的模型和逻辑代码 我试图在这里实现更多目标 而不仅仅是将我的数据实体与两个演示项目分开 还有很多共同点 例如关于在什么条件下显示什么 何时需要某些内容等的