构建无服务层的企业应用

2024-02-01

有很多教程教我们直接使用数据库来使用一些 ORM,但在现实生活中,我不记得有一个直接使用数据库而不是服务的大项目,所以这些教程的数量对我来说似乎很奇怪。
直接连接的应用程序在数据库和应用程序之间的数据传输速度方面具有真正的优势,并且它们没有由于服务层而出现的功能限制(例如,让我们采用实体框架和 WCF 数据服务(本身使用相同的实体数据模型) ))。另一方面,服务解决方案更加安全和灵活,这就是为什么我(我认为许多其他程序员)通常选择它来构建具有某种常见业务逻辑的大型应用程序......但是!有时速度损失高达10倍!遗憾的是,应用程序的响应速度低于应有的水平。
所以我想问的问题是:你能分享一下你自己构建没有Web/服务层的企业应用程序的经验吗?什么时候它是一个好的选择?


企业应用程序!= n 层应用程序。这意味着您可以编写企业应用程序而无需创建单独的物理中间层(业务逻辑)。创建单独的中间层必须始终是需求的一部分,因为它会增加很多额外的复杂性=很多额外的成本。

单独的中间层的通常要求是:

  1. 安全性 - 有时 Web 服务器位于 DMZ 中,中间层必须位于安全网络中
  2. 可重用性 - 您希望在多个应用程序中使用中间层,这也会导致 SOA 需求
  3. 可扩展性 - 中间层可能要复杂得多,因此在前端层上独立扩展它会很有用。如果您想在多个应用程序中使用中间层,您还必须能够独立扩展它。可扩展性要求通常基于性能和可用性要求。

如果您没有任何此类要求,您可以创建多层应用程序,其中前端和业务逻辑位于同一服务器上的同一进程中。

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

构建无服务层的企业应用 的相关文章

  • asp.net 文本框文本模式数字,仅允许数字

    我只是想知道 ASP NET 中是否有一种方法只允许文本框中的数字textmode number 当我使用这个时
  • 迭代变量并查找特定类型实例的技术

    我想迭代进程中内存中的变量 通过插件动态加载 并查找特定类型的实例 以前我可以找到特定类型 或内存中的所有类型 我可以创建类型的实例 我可以获取作为不同类型的字段包含的实例 但我无论如何都不知道只是 搜索 特定类型的实例 一种方法是使用 W
  • C#动态支持吗?

    看完之后这个帖子 https stackoverflow com questions 2674906 when should one use dynamic keyword in c sharp 4 0k和链接 我还有 2 个问题 问题 1
  • Clang 编译器 (x86):80 位长双精度

    我正在尝试在 x86 Windows 平台上使用本机 80 位长双精度 海湾合作委员会选项 mlong double 80 https gcc gnu org onlinedocs gcc x86 Options html似乎不适用于 cl
  • 在 2D 中将一个点旋转另一个点

    我想知道当一个点相对于另一个点旋转一定角度时如何计算出新的坐标 我有一个块箭头 想要将其相对于箭头底部中间的点旋转角度 theta 这是允许我在两个屏幕控件之间绘制多边形所必需的 我无法使用和旋转图像 从我到目前为止所考虑的情况来看 使问题
  • 在非活动联合成员上使用“std::addressof”是否定义明确[重复]

    这个问题在这里已经有答案了 下面的代码是尝试实现constexpr的版本offsetof在 C 11 中 它可以在 gcc 7 2 0 和 clang 5 0 0 中编译 这取决于申请std addressof工会非活跃成员的成员 这是明确
  • 为什么我不应该对不是由 malloc() 分配的变量调用 free() ?

    我在某处读到 使用它是灾难性的free删除不是通过调用创建的对象malloc 这是真的 为什么 这是未定义的行为 永远不要尝试它 让我们看看当您尝试时会发生什么free 自动变量 堆管理器必须推断出如何获取内存块的所有权 为此 它要么必须使
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 获取 2 个数据集 c# 中的差异

    我正在编写一个简短的算法 它必须比较两个数据集 以便可以进一步处理两者之间的差异 我尝试通过合并这两个数据集并将结果更改放入新的数据集来实现此目标 我的方法如下所示 private DataSet ComputateDiff DataSet
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 尚未处理时调用 Form 的 Invoke 时出现 ObjectDisposeException

    我们得到一个ObjectDisposedException从一个电话到Invoke在尚未处理的表格上 这是一些演示该问题的示例代码 public partial class Form2 Form void Form2 Load object
  • 将代码拆分为标头/源文件

    我从 Asio 的示例页面中获取了以下代码 class tcp connection public boost enable shared from this
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 剪贴板在 .NET 3.5 和 4 中的行为有所不同,但为什么呢?

    我们最近将一个非常大的项目从 NET Framework 3 5 升级到 4 最初一切似乎都工作正常 但现在复制粘贴操作开始出现错误 我已经成功制作了一个小型的可复制应用程序 它显示了 NET 3 5 和 4 中的不同行为 我还找到了一种解
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网
  • WinRT 定时注销

    我正在开发一个 WinRT 应用程序 要求之一是应用程序应具有 定时注销 功能 这意味着在任何屏幕上 如果应用程序空闲了 10 分钟 应用程序应该注销并导航回主屏幕 显然 执行此操作的强力方法是在每个页面的每个网格上连接指针按下事件 并在触
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检

随机推荐

  • 打开 AVD 管理器时出错

    在模拟器上运行代码时 我遇到了常见问题 控制台消息是 2013 01 05 19 39 15 Doodlz Android Launch 2013 01 05 19 39 15 Doodlz adb is running normally
  • 如何将动画 GIF 写入 iOS 相机胶卷?

    如何将动画 GIF 写入 iOS 相机胶卷 我知道照片库应用程序无法播放动画 但例如我应该能够在发送电子邮件等时导入它 我试过了 UIImageWriteToSavedPhotosAlbum UIImage imageWithData se
  • 更改列表项选择的视图属性

    我有一个包含自定义行的 ListView 此自定义行具有以下 UI 元素 图像视图图像视图1 图像视图2 文本视图文本视图1 文本视图2 文本视图3 要求是每当选择列表行时都会发生以下更改 imageView1背景 颜色改变 imageVi
  • 重置到 Git 中的第一个提交?

    有没有什么相当于 root标志在rebase命令为reset命令 git reset root 假设我想重置到当前分支中的第一个提交 我是否必须手动挖掘历史记录并找到该提交的哈希值 或者是否有一种简单的方法来重置到第一个可用的提交 根提交
  • Xcode 是否有更好的更新系统?

    Xcode 4 0 1 几天前发布了 这意味着我再次下载 4 5 GB 的野兽来更新 有谁知道苹果是否计划推出更好的更新系统 这些天我在等待洪流 不像下载到 80 却失去连接那么令人沮丧
  • Laravel Composer 安装出现错误“您的锁定文件不包含兼容的软件包集,请运行 Composer update”

    我编写 Laravel 代码已经有一段时间了 目前 我尝试从 github 克隆一个项目并在本地进行编辑 我在项目目录中安装了 Composer 但未包含供应商文件夹 我尝试运行composer install但我给了我这个错误 Your
  • gitlab - 使用 access_token 推送到存储库

    我实现了 oauth2 Web 流程 以便从我的应用程序的用户获取 access token 使用 access token 我想执行以下操作 获取用户信息 为该用户创建一个存储库 将代码推送到此存储库 使用 git push 我已经成功获
  • 变量中缀到前缀到后缀

    我在互联网上搜索了一个很好的实现 将变量表达式从中缀表示法转换为前缀和后缀 而不是数字表达式 我所做的所有搜索都没有成功 基本上我想看看 PHP 中是否有任何实现 这样我可以修改它以支持更多运算符 而不仅仅是 例如转换 a b c p c
  • java泛型通配符

    我对 Java 泛型类型中通配符的使用有疑问 它们之间的基本区别是什么 List
  • openCV 滤波器图像 - 用局部最大值替换内核

    关于我的问题的一些详细信息 我正在尝试在 openCV 中实现角点检测器 另一种内置算法 Canny Harris 等 我有一个充满响应值的矩阵 最大响应值为 检测到角点的最大概率为 我有一个问题 在一个点的附近检测到很少的角 但只有一个
  • 将所有列表值合并到地图中[重复]

    这个问题在这里已经有答案了 我想将地图转换为 Map
  • 注册表部分的脚本功能

    我们的软件支持一系列 70 文件关联 用户可以选择与我们的应用程序关联 直接在Registry安装程序部分并使用标志来控制卸载期间的行为以及Check标志来控制是否应将其写入注册表 用户可以通过自定义页面控制要设置的关联CheckListB
  • 如何解决Python中稀疏矩阵的“NaN或无穷大”问题?

    我对 python 完全陌生 我使用了一些在网上找到的代码 并尝试对其进行处理 因此 我正在创建一个文本文档矩阵 并且想在训练逻辑回归模型之前添加一些额外的功能 虽然我已经用 R 检查了我的数据并且没有收到错误 但是当我运行逻辑回归时 我收
  • Gstreamer 不会下沉到命名管道

    当 gst launch 管道的接收器是命名管道与普通文件时 我会得到不同的行为 我有一个 gst launch 管道 它在 OMAP 嵌入式 linux 板上显示来自摄像机的视频 并通过 Tee 以 avi 形式提供视频 gst laun
  • 如何在当前命名空间中获取Python交互式控制台?

    我想让我的 Python 代码在运行代码的过程中使用 code interact 之类的东西启动一个 Python 交互式控制台 REPL 但是 code interact 启动的控制台看不到当前命名空间中的变量 我该怎么做 mystrin
  • Python 中 case/switch 语句的等效项是什么? [复制]

    这个问题在这里已经有答案了 Python 是否有等效的switch陈述 Python 3 10 及以上版本 在 Python 3 10 中 他们引入了模式匹配 示例来自Python 文档 https docs python org 3 10
  • avro 类型的 createDataFrame 中的无限递归

    在此示例中 我从 createDataFrame 调用内部收到 StackOverflowError 它起源于涉及 java 类型推断的 scala 代码 该代码在无限循环中调用自身 final EventParser parser new
  • ggplot日期刻度向前移动一个月

    我确信这是一个简单的问题 但我无法从其他帖子中找到解决方案 如果我运行这个 test lt data frame dates as Date c 2016 10 31 2016 11 30 2016 12 31 2017 01 31 val
  • Maven忽略maven-frontend-plugin,没有错误

  • 构建无服务层的企业应用

    有很多教程教我们直接使用数据库来使用一些 ORM 但在现实生活中 我不记得有一个直接使用数据库而不是服务的大项目 所以这些教程的数量对我来说似乎很奇怪 直接连接的应用程序在数据库和应用程序之间的数据传输速度方面具有真正的优势 并且它们没有由