问题列表 - 第13255页

数据或域层的规则验证?

我一直在阅读Pro ASP.NET MVC框架,Steven Sanderson,在第11章中讨论了数据验证.

在页390,我们看到将验证逻辑移动到您的模型层一节.在本节中,我们将在第392页中看到一些代码,说明如何实现验证.

代码实现了一个GetRuleViolations()方法,并且该Save()方法使用它来抛出一个RuleException不合适的东西.

但是,在我看来,域层和数据访问层之间没有区别,这里是代码:

public void Save() {
    var errors = GetRuleViolations();
    if (errors.Count > 0)
        throw new RuleException(errors);

    // Todo: Now actually save to the database or whatever
}
private NameValueCollection GetRuleViolations() {
    // validations...
}
Run Code Online (Sandbox Code Playgroud)

在我正在工作的项目中,我有一个Domain层,尽可能使用持久性,以及数据访问层,通过NHibernate实现数据访问,并实现在Domain层中定义接口的存储库.

如果我按照作者在这里提出的那样实现验证规则,那么在" Save()"方法中,它们会进入我的数据访问层,但至少我认为它们应该驻留在域模型上!

所以,我的问题是:在创建分层应用程序时,使用域层实现域实体并将接口暴露给存储库(持久性无知),数据访问层从域层实现存储库并实现所有数据访问代码,其中验证规则应该存在吗?

我的主要(或至少是第一个)接口将是ASP.NET MVC应用程序,如果这可能会改变任何东西.

谢谢.

dns validation asp.net-mvc data-access-layer

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

SQL注入保护 - 从字符串转换为int

我们都知道参数化SQL是处理用户输入和动态SQL时的方法,但是如果您要搜索的输入是数字,则从字符串转换为int(或double,或long,或其他)是有效的?

我想我要问的是,如果单独使用这种技术在SQL注入方面是绝对可靠的吗?

sql-injection

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

c#的免费报告

我正在用c#编写桌面应用程序,我需要一些免费的报告系统.
有什么建议?

编辑:
我使用SQLite作为DB.

c# sqlite report

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

python:组合sort-key-functions itemgetter和str.lower

我想按字典键对字典列表进行排序,我不想区分大写和小写字符.

dict1 = {'name':'peter','phone':'12355'}
dict2 = {'name':'Paul','phone':'545435'}
dict3 = {'name':'klaus','phone':'55345'}
dict4 = {'name':'Krishna','phone':'12345'}
dict5 = {'name':'Ali','phone':'53453'}
dict6 = {'name':'Hans','phone':'765756'}
list_of_dicts = [dict1,dict2,dict3,dict4,dict5,dict6]

key_field = 'name'
list_of_dicts.sort(key=itemgetter(key_field))
# how to combine key=itemgetter(key_field) and key=str.lower? 
for list_field in list_of_dicts:
    print list_field[key_field]
Run Code Online (Sandbox Code Playgroud)

应该提供

Ali, Hans, klaus, Krishna, Paul, peter
Run Code Online (Sandbox Code Playgroud)

并不是

klaus, peter, Ali, Hans, Krishna, Paul
Run Code Online (Sandbox Code Playgroud)

python sorting key function

7
推荐指数
3
解决办法
4673
查看次数

php echo vs open&close标签

只是为了澄清:"echo vs print"和"双引号与单引号"这两个问题是完全可以理解的,这是另一回事:

有没有理由为什么人们会更喜欢:

echo '<table>';   
foreach($lotsofrows as $row)
{
    echo '<tr><td>',$row['id'],'</td></tr>';   
}
echo '<table>';
Run Code Online (Sandbox Code Playgroud)

过度:

<table><?php
       foreach($lotsofrows as $row)
       { ?>
           <tr>
              <td><?php echo $row['id']; ?></td>
           </tr><?php
       } ?>
</table>
Run Code Online (Sandbox Code Playgroud)

会更快地执行/解析吗?更优雅?(等等.)

我倾向于使用第二种选择,但我担心我可能会忽略一些明显/必要的东西.

php tags echo

15
推荐指数
3
解决办法
3382
查看次数

如何在SWIG包装器库中将C++异常传播到Python?

我正在围绕定制C++库编写一个SWIG包装器,该库定义了自己的C++异常类型.库的异常类型比标准异常更丰富,更具体.(例如,一个类表示解析错误并且具有行号集合.)如何在保留异常类型的同时将这些异常传播回Python?

python swig exception

28
推荐指数
3
解决办法
8994
查看次数

jQuery treeview with sortable

我只是想知道是否有人知道有什么办法让bassistance treeview插件与jQuery UI的可排序插件一起使用?特别是在能够将元素从它的嵌套ul拖放到父ul或反之亦然方面.另外两个要求是我能够防止掉到指定的元素上(例如:带有class ="no-drop"的元素),以及在drop事件之后引用函数的能力.

如果用这些插件没有真正可行的方法,有没有人碰巧知道另一个插件?

亲切的问候,雷米

treeview tree jquery jquery-ui-sortable

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

如何动态生成Web服务客户端

我遇到了问题.

假设另一方面,WSDL将始终改变,

例如,在WSDL文件中描述的其他Web服务只有方法,但方法的名称可能总是改变,今天调用methodABC(),明天将更改为methodDEFO()..

假设在JAVA中,无论如何,我可以动态生成Web服务客户端,而无需手动手动执行??? 我的意思是当我的应用程序仍在运行时动态生成客户端..

或者我应该去看什么样的文章,因为我从互联网上做了很多搜索,找不到办法去做..我想我可能需要创建自己的框架来处理它..但是不要不知道从哪里开始.

java client web-services dynamic

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

必填字段验证器中的数字验证

是否可以将数字验证放在asp.net文本框中的必填字段验证器中?

asp.net validation

18
推荐指数
3
解决办法
9万
查看次数

如何使用jquery选择下拉列表中的第一个元素?

我想知道如何使用jquery在我的页面上的所有选择标签中选择第一个选项.

试过这个:

$('select option:nth(0)').attr("selected", "selected"); 
Run Code Online (Sandbox Code Playgroud)

但没有奏效

html javascript jquery

103
推荐指数
4
解决办法
21万
查看次数