小编Jim*_* G.的帖子

使用事务处理业务流程和存储库模式

我有一种情况(我猜是非常标准的)我需要执行一些业务计算并在数据库中创建一堆记录.如果在任何时候出现任何问题,我需要从数据库中回滚所有内容.显然,我需要某种交易.我的问题是我在哪里实现事务支持.这是我的例子

//BillingServices - This is my billing service layer. called from the UI
public Result GenerateBill(BillData obj)
{
     //Validate BillData

     //Create a receivable line item in the receivables ledger 
     BillingRepository.Save(receivableItem);

     //Update account record to reflect new billing information
     BillingRepository.Save(accountRecord);

     //...do a some other stuff
     BillingRepository.Save(moreStuffInTheDatabase);
}
Run Code Online (Sandbox Code Playgroud)

如果对数据库的任何更新失败,我需要将其他更新回滚并退出.我只是通过我可以调用的存储库公开Connection对象

Connection.BeginTransaction()

或者,我只是在服务层验证,只是在存储库中调用一个保存所有对象并处理事务的方法?这对我来说似乎并不合适.看起来它会迫使我在数据层中投入很多业务逻辑.

什么是正确的方法?如果我需要跨越存储库(或者那是不好的设计)怎么办?

.net transactions repository-pattern

7
推荐指数
1
解决办法
1521
查看次数

jCarousel:你可以删除所有项目并重新绑定到新的集合吗?

jCarousel文档说明以下内容:

  • 通过将回调函数itemLoadCallback作为配置选项传递,您可以动态创建(li)内容的项目.
    {...}
  • jCarousel包含一个方便的方法add(),可以传递要创建的项的索引和要创建的项的innerHTML字符串.

我的问题:

是否可以删除所有项目并重新绑定到新集合?

顺便说一句:我不一定需要一种"便利方法"来做到这一点.我非常乐于解决问题.
仅供参考:这个策略似乎不起作用.

jquery jquery-plugins jcarousel

7
推荐指数
1
解决办法
1万
查看次数

AngularJS:我应该如何更新监视器侦听器内已解析的promise的属性?

考虑一下这个Plunkr.

在我的监听器内部,我想根据已解决的承诺更新属性.

  • 修改属性上的值是否正确$$v
  • 如果没有,那我该怎么办?

这是HTML:

<!DOCTYPE html>
<html id="ng-app" ng-app="myAngularApp">

  <head>
    <script data-require="angular.js@*" data-semver="1.2.0-rc2" src="http://code.angularjs.org/1.2.0-rc.2/angular.js"></script>
    <script src="script.js"></script>
  </head>

  <body ng-controller="MyController">
    <input ng-model="myDto.Weight" />{{myDto.Status}}
  </body>

</html>
Run Code Online (Sandbox Code Playgroud)

这是JavaScript:

var myDto = {Weight: 200, Status: 'Acceptable'};

var myAngularApp = angular.module('myAngularApp', []);

myAngularApp.factory('myService', function($q){
  return {
    getMyDto: function(){
      var deferred = $q.defer();
      deferred.resolve(myDto);
      return deferred.promise;
    }
  };
});

myAngularApp.controller('MyController', function MyController($scope, myService){
  $scope.myDto = myService.getMyDto();
  $scope.$watch('myDto.Weight', function(newVal, oldVal){
    if (newVal < 150) {
      $scope.myDto.$$v.Status = 'Too Light!'; // Is this …
Run Code Online (Sandbox Code Playgroud)

promise angularjs

7
推荐指数
1
解决办法
7361
查看次数

开发人员在任务之间切换的最有效方法是什么?

我正在寻找您从一个软件开发任务切换到另一个软件开发任务所执行的一系列步骤的工作流程类型描述.如果某个步骤涉及工具,请指定使用哪种工具及其使用方法.工作流的目标是实现从任务#1到任务#2并返回到任务#1的最平滑过渡.

考虑这种情况......

  • 你正在实现一个新的用户故事,虽然你今天到目前为止取得了进展,但还没有完成,你还没有实现你的测试.
  • 你的领导是一个高优先级的错误,阻止你的测试团队.您需要停止正在进行的操作并修复错误.该错误是在三天前构建的,这是测试团队最近获得的构建.

您可以在新版本的源中修复该错误,但它必须是稳定版本,并且不能包含您当前正在处理的不完整功能.

survey

6
推荐指数
3
解决办法
423
查看次数

我可以遵循任何CSS填充启发式吗?

我有一个简单的问题:

  • 我在div里面有一个图像.
  • 为了使页面更美观,我将为图像添加一些额外的填充.

我不想注意它,而是想知道:

我可以遵循任何CSS填充启发式吗?

我认为雅各布尼尔森的一些人可能已经建立了一些关于页面布局和填充的最佳实践(即最小像素填充或比例).

  • 我并不是说这是一个特别难以解决的问题.
  • 但这可能会再次出现问题.
  • 我想要一些启发式方法来指导我未来的填充选择.

任何帮助,将不胜感激.

css heuristics padding

6
推荐指数
1
解决办法
253
查看次数

需要:从数据库中的作业队列执行作业的Windows服务; 通缉:示例代码

需要:

  • 从数据库中的作业队列执行作业的Windows服务

通缉:

  • 此类应用程序的示例代码,指南或最佳实践

背景:

  • 用户将单击将向行中插入行的ashx链接.
  • 我需要我的Windows服务定期轮询此表中的行,它应该为每一行执行一个工作单元.

重点:

  • 这对我来说并不是一个全新的领域.
    • 编辑:您可以假设我知道如何创建Windows服务和基本数据访问.
  • 但我需要从头开始编写这项服务.
  • 而且我只想提前知道我需要考虑的事项.
  • 编辑:我最担心失败的工作,争夺工作,以及保持服务运行.

.net c# windows-services sample

6
推荐指数
2
解决办法
8504
查看次数

电子邮件标题:MIME版本:1.0 - 何时应该使用?

这可以理所当然地被解释为初学者的问题.

请考虑以下电子邮件标题:

MIME版本:1.0

我的问题:

  • 什么时候应该用这个标题标记一封电子邮件?
  • 什么时候应该省略这个电子邮件标题?

编辑:无论何时指定"内容类型"标题,无论内容类型是什么,您都应该指定"MIME版本"吗?[ 这个链接让我想到了可能性.]

email mime email-headers

6
推荐指数
1
解决办法
2万
查看次数

HTML电子邮件:您是否必须发送备用纯文本视图?

发送HTML电子邮件时,我知道发送纯文本版本也是最佳做法.

但我的问题是:你必须发送纯文本版本吗?

有什么影响?

c# email spam html-email alternateview

6
推荐指数
1
解决办法
1595
查看次数

“Microsoft.ACE.OLEDB.12.0”提供程序未在本地计算机上注册

我已经按照博客条目中的描述安装了“Microsoft Access Database Engine 2010 Redistributable”

http://danilcai.blogspot.com/2011/02/solution-run-jet-database-engine-on-64.html

它适用于我的 Windows 窗体应用程序。我现在想添加一些单元测试,并且在运行单元测试时出现上述错误。我已经检查了我的参考资料,但似乎无法弄清楚为什么它在应用程序中而不是在单元测试中有效。

我正在 VS2010 上进行 Windows 7 Ultimate x64 安装。

有人可以帮帮我吗 ?

c# oledb oledbconnection vs-unit-testing-framework

6
推荐指数
1
解决办法
4173
查看次数

Opencv:霍夫线没有显示

所以我试图在棋盘上获得hough线,但算法只能检测到一条线.我正在使用python 2.7和opencv 3.0.这是代码:

def applyHoughLineTransform():
    image1 = cv2.imread('pictures/board1.png',0)
    image2 = cv2.imread('pictures/board2.png',0)
    image3 = cv2.imread('pictures/board3.png')
    image4 = cv2.imread('pictures/board4.png')

    lines1 = cv2.HoughLines(image1,1,math.pi/180.0,5)
    lines2 = cv2.HoughLines(image2,1,math.pi/180.0,5)

    lines1 = lines1[0]
    lines2 = lines2[0]

    for rho,theta in lines1:
        print ('Rho and theta:',rho,theta)
        a = np.cos(theta)
        b = np.sin(theta)
        x0 = a*rho
        y0 = b*rho
        x1 = int(x0 + 1000*(-b))
        y1 = int(y0 + 1000*(a))
        x2 = int(x0 - 1000*(-b))
        y2 = int(y0 - 1000*(a))

        print (x1,y1)
        print (x2,y2)

        cv2.line(image3,(x1,y1),(x2,y2),(0,0,255),2)

    for rho,theta in lines2:
        a = …
Run Code Online (Sandbox Code Playgroud)

python opencv hough-transform opencv3.0

6
推荐指数
2
解决办法
3786
查看次数