问题标签 [data-layers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
945 浏览

javascript - Javascript 数据层架构协助

我正在制作一个相当复杂的 HTML 5 + Javascript 游戏。客户端将不得不根据他们所在的区域在游戏的不同点下载图像和数据。我在解决 Javascript 架构的数据层部分的一些问题时遇到了很大的问题。

我需要用数据层解决的问题:

  1. 每当调用服务器以检索新数据时,应用程序中使用的过时数据都需要自动更新。
  2. 从服务器检索的数据应存储在本地,以减少因两次请求相同数据而产生的任何开销。
  3. 无论数据是否已经在本地可用,任何需要访问数据的代码部分都应该能够以统一的方式轻松地检索它。

我试图做的是构建一个数据层,它有两个主要组成部分:1. 层中提供数据访问权限的部分(通过 get* 方法) 2. 层中存储和将本地数据与来自服务器的数据同步。

工作流程如下:

当游戏需要访问某些数据时,它会在数据层中为该数据调用 get* 方法,并传递一个回调函数。

get* 方法确定数据是否已在本地可用。如果是这样,它要么直接返回数据(如果没有指定回调),要么调用回调函数将数据传递给它。

如果数据不可用,它会在本地存储回调方法(setupListener),并调用通信对象传递最初请求的信息。

然后,通信对象对服务器进行 ajax 调用并等待数据返回。

当数据返回时,再次调用数据层,要求它发布检索到的数据。

然后数据层将所有数据存储在本地对象中,最后调用原始回调函数,将请求的数据传递给它。

这有几个问题一直困扰着我。我会按照最烦人的顺序列出它们:)。

  1. 每当我必须添加一个经过此过程的呼叫时,都需要花费太多时间。(至少一个小时)
  2. 跳转和回调传递的数量变得令人困惑,并且似乎很容易出错。
  3. 我存储数据的分层方式非常难以同步和管理。更多关于下一个。

关于上面的问题 #3,如果我在数据层中存储的对象具有如下结构:

因为我想以一种可以传递 TeamId 来检索数据的方式存储团队(例如return Teams[392];),但我也想存储与他们所在的战斗相关的团队(this.Account.Battles[0].Teams[0]);我有一个噩梦,让同一个团队的每个实例保持新鲜并保持相同的对象身份(所以我实际上并没有将它存储两次,这样我的数据就会在任何使用它的地方自动更新,这是目标#1数据层)。

它只是看起来如此凌乱和混乱。

我真的很感激任何帮助。

谢谢

0 投票
1 回答
1314 浏览

.net - CSLA.NET 框架的性能

我们的系统使用基于实体框架的数据层。最近几个月,我们一直在使用 EF 生成的实体进行数据传输、业务逻辑和 UI。

由于我们的应用程序变得越来越大,我们决定创建一个单独的业务层,并使用 CSLA.NET 框架来帮助我们做到这一点。随着系统负载的增加,这应该有助于我们“扩展”。

我们正在编写新的 BL,我一直在比较应用程序模块在迁移它们以使用新的 BL 之前和之后的性能。我注意到性能降低了近 50 倍!这不是 50%,而是慢了 50 倍。

我知道引入 BL 会因为额外的层等而增加一些延迟,但我没想到延迟会这么大。

这是正常的吗?是否有任何标准可以在可接受的引入延迟(由于添加的层)和“我们失去的比我们所能获得的更多”之间划清界限

谢谢。

0 投票
1 回答
937 浏览

xcode - 使用 DAO 管理器和块实现 DAO 层

基于页面上的 JAVA 教程:http: //tutorials.jenkov.com/java-persistence/dao-manager.html

我试图用 xCode for iOS 实现相同的概念。

目标是提供一个 DAOManager :一个 DAOCommand(定义为协议)+他的 execute 方法的实现。我可以创建一个实现协议的特定接口,但正如上面提到的例子,我想在调用它时实现该方法。如果我是对的,可以使用 BLOCK 在objective-c 中实现这一点。

上述页面上提供的 java 代码示例:

请求 CRUD 服务的代码示例:

我尝试通过以下方式实现它: 1/ DAOCommand:

2/ 我的 PoiCRUDService 接口,带有一个调用 DAOManager 的方法 getListOfPoi :

3/ 我的 DAOManager 有一个方法 executeAndClose :

当我看到我的代码时,我没有看到 DAOEntity (POIDAO) 的创建。实际上,我很难看到如何将示例 Java 代码转换为 xCode。关于步骤和方法的任何想法?

感谢您的任何想法或建议。英石。

0 投票
2 回答
2354 浏览

asp.net-mvc - MVC 4 - 在数据层中使用 WCF

在我的测试项目中,我创建了一个 WCF 服务并让它运行。接下来,我创建了一个 MVC 4 项目。它在一种解决方案下被分成几层。

  • 模型层。
  • UI/视图/控制器层
  • 存储库层。

做一个快速测试:在 UI 层,我添加了一个对我的 WCF 服务的 Web 引用。在控制器中,我通过“使用”在视图中填充下拉列表来联系 WCF 服务。

但是,我正在使用依赖注入进行分离。

在存储库层中,我创建了一个带有填充下拉列表的接口并将其注入。不是问题。

我在这个概念上苦苦挣扎的是:

  1. 我是否在 UI 层使用 WCF 服务并在存储库层引用它?(似乎不对)
  2. 我是否要创建另一个项目 - 数据层 - 并添加对 WCF 服务的 Web 引用,然后从存储库中创建对数据层的引用?

这给我带来了另一个问题 - 如果我在单独的项目(层)中创建对 WCF 服务的 Web 引用,则与 WCF 服务有关的信息不会出现在主 config.sys 文件中......

所以我正在努力掌握这部分......我应该阅读更多内容吗?

0 投票
1 回答
421 浏览

asp.net - 如何使用现有的 3 层 DAL-BL-UI 应用程序并将 DAL 分离到不同的服务器中?

我有一个现有的 3 层应用程序 (DAL-BL-UI),它安装在一台 Web 服务器上。Web 服务器使用 Framework 4 ADO.NET 直接与数据库服务器 (MSSQL) 通信。将现有应用程序更改为不直接与数据库服务器通信的最快方法是什么。我想以最少的代码更改在 Web 和数据库服务器之间添加一个“中间服务器”。

有任何想法吗?

0 投票
2 回答
493 浏览

c# - 对象引用未设置为对象的实例

我正在构建一个具有多个层的 WCF 应用程序,并且在尝试将新对象添加到数据库时出现此异常。我将为您提供代码示例,请尝试在这里帮助我。错误在线scenaristBLL.Insert(s);

这是我尝试在ScenaristController类中创建新的 Scenarist 对象的方法:

此外,这是它的 View 类:

我认为 DateOfBirth 和 DateOfDeath 可能是问题所在,因为它们是 DateTime 格式,我不确定如何从用户输入中获取 DateTime 格式。只是猜测,真的不确定。

此外,这里还有其他层...... BLL:

达尔:

0 投票
1 回答
1334 浏览

javascript - 为什么变量没有被传递到谷歌标签管理器的数据层

我正在尝试将 daysLeft 变量传递给 Google 跟踪代码管理器数据层,但它不起作用。如果我用这个;

它会触发标签,但在报告中显示为 daysLeft。如果我尝试使用

标签不起作用。

0 投票
1 回答
1205 浏览

variables - 使用谷歌标签管理器自定义 HTML 标签在页面上填充数据

我有一个关于 gtm 的问题。

所以目前我创建了一个脚本,可以将我需要的所有数据创建到数据层中,这就是数据层的样子(来自页面源代码):

但所有这些都是从我的商店生成的,但关键是能够通过 GTM 使用这些变量。

所以在 GTM UI 中我创建了一个自定义的 html 标签并添加了:

我还创建了一个名为“visitorLoginState”的自定义宏-> 数据层变量,希望它在响应中显示“NO”而不是 visitorLoginState。但它只显示“visitorLoginState”

0 投票
2 回答
285 浏览

c# - 在单个 CS 文件中处理同名的不同类

我正在使用两个 WCF 服务,每个服务声明一个类Donkey。由于命名空间问题,这些Donkey类虽然结构相同,但类型不同。

到目前为止,我正在使用using (如此所述 fi ),但我觉得我想对其进行更严格的控制。

关于如何(以及在​​哪里)放置将两个Donkey类相互映射的数据合同转换器的任何建议?我知道这是一个有点愚蠢的问题。这与我不确定这是否可能有关。随时纠正我的表述。

欢迎所有建议。我正在考虑编写自己的数据定义层并创建自己的更好的 对象(如果有人敢使用对 Futurama 的 Bender 的引用,可以使用酒和妓女)。

0 投票
0 回答
132 浏览

asp.net-mvc - 当我将 DbContextClass 移动到数据层时,脚手架中断

我的 DbContext 类与模型 ( MvcApplication.Models) 位于同一文件夹和命名空间中。我认为将它放在我的存储库所在的文件夹和命名空间中会更好(MvcApplication.Data)。我这样做了,代码编译并运行,但后来我尝试搭建一个控制器。我收到了这个错误:

Exception calling "GetDirectoryName" with "1" argument(s): "Illegal characters in path." At C::\....\MvcScaffolding.1.0.9\tools\Controller\MvcScaffolding.Controller.ps1:89 char:122

这是第 89 行: $controllerNamespace = [T4Scaffolding.Namespaces]::Normalize($defaultNamespace + "." + [System.IO.Path]::GetDirectoryName($outputPath).Replace([System.IO.Path]::DirectorySeparatorChar, "."))

所以我把它移回来,脚手架又能工作了。我可以修复脚手架让我移动 DbContext 吗?

也许数据层是错误的地方?我在 SaveChanges 覆盖中放置了一些自定义 sql,但也许这违反了一条不成文的规则。也许 sql 应该移动并且 DbContext 应该留在模型中?