小编Sau*_*ory的帖子

如何在洋葱架构上实现服务和存储库?

我一直在研究洋葱建筑学几天.我知道依赖关系应始终走向中心,以及如何使用依赖注入来实现这一目标.但我还有几个问题我仍然无法弄清楚.

  1. 模型(或实体)可以引用存储库接口或服务接口吗?

    例如:Order实体具有DeliveryCity通过Oder.DeliveryZip属性建立的关系,该关系不是外键,而是唯一的.要获得拉链的城市,我必须打电话ICityRepository.FindByZip(zip)

    我的模型中有以下代码

    class Order
    { 
        . . .
    
        [Inject]
        public ICityRepository CityRepository { get; set; }
    
        private City _dCity;
    
        public City DeliveryCity {
            get {
                if (_dCity == null)
                    _dCity = this.CityRepository.FindByZip(this.DeliveryZip);
    
                return _dCity;
            }
        }
        . . .
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 上述代码会出现什么问题?它应该使用域名服务吗?

  3. 域服务实现应该在核心内部还是在基础架构层中定义?

.net domain-driven-design ddd-repositories onion-architecture ddd-service

7
推荐指数
2
解决办法
1837
查看次数

是否有基于规则的访问控制的简单通用实现?

我正在实现内部网站点的访问控制.如果公司没有200多名员工并且几乎每个人都拥有自定义权限,这将很容易.我知道,这很疯狂,但我无法改变它.

所以,我试图找到一个满足我需求的通用实现,但找不到它,所以我自己去做.最后,我提出了一个相当通用的解决方案让我思考:有人必须在此之前完成它!

我称之为STOP(主题任务对象权限)访问控制.我有以下关系:

.-------.     .-----------.     .-------.
| users |1---*| STOPRules |*---1| tasks |
`-------'     '-----------'     '-------'
Run Code Online (Sandbox Code Playgroud)

STOP规则具有以下属性

STOPRule {
    Subject;
    Task;
    ObjectType;
    Permission;
    Relation;
}
Run Code Online (Sandbox Code Playgroud)

对象关系可以是:owner,creator,revisor等.此字段不是必需的,以支持通用任务.当它在那里时,当前用户和对象实例之间的关系由委托计算.然后将当前关系与规则上的所需关系进行比较,以允许或拒绝访问.

如果我不够清楚,请告诉我.

出现两个问题:

  1. 有像这样的开源实现吗?

  2. 你看到我在这条路上会遇到什么问题吗?

编辑:我继续前进,实际上开始实施这个模型.第一个问题是我需要主题和对象之间的关系来支持任何用例.现在,我可以存储以下规则:

John(主题)可以(许可)编辑(任务)订单(对象),如果他是订单创建者(关系).

那么,你们能提供一个无法用这个模型表达的真实用例吗?

architecture web-applications access-control

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

如何配置Visual Studio以将所有TypeScript文件合并到一个JavaScript文件中?

使用tsc命令就像运行一样简单:

tsc --out all.js js/*.ts
Run Code Online (Sandbox Code Playgroud)

在构建项目时,如何配置Visual Studio来执行此操作?

visual-studio-2012 typescript tsc

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

在Yii中保存多个子模型

注意:在SO上还有其他与此相关的问题,但没有一个真正为我解答.我并不担心服务器端,因为有很多方法可以处理保存相关的模型信息(以及如何执行此操作的大量示例).

我需要知道的是:如何在创建父模型时实现视图代码以添加许多子模型?

肯定会出现在本页面上看到的内容:http://www.yiiframework.com/doc/guide/1.1/en/form.table.除了代码处理一堆模型的更新,而不是插入它们.这就是我需要的.

简而言之,我有一个事件表单,用户可以在其中添加许多约会(每个约会都有一天,start_time和end_time).我想使用Yii帮助器在事件表单中呈现约会字段,以便获得验证和其他框架优势.

在创建事件时,用户将能够为同一事件添加多个约会.

php yii

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

PostgreSQL:如何在不延迟插入响应的情况下执行插入触发器?

有谁知道如何设置插入触发器,这样当从我的应用程序执行插入时,数据会被插入并且postgres返回,甚至在触发器完成执行之前?

postgresql triggers

0
推荐指数
1
解决办法
769
查看次数