Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在其他函数中实例化请求和响应对象是否不好?_Asp.net_Vb.net_Web Services_Backend_Dao - Fatal编程技术网

Asp.net 在其他函数中实例化请求和响应对象是否不好?

Asp.net 在其他函数中实例化请求和响应对象是否不好?,asp.net,vb.net,web-services,backend,dao,Asp.net,Vb.net,Web Services,Backend,Dao,我找不到类似的问题,这可能是一个愚蠢的问题,不确定,我不知道要搜索什么关键字 例如,我们有一些请求/响应对用于访问数据库中的信息(请原谅,我在工作中使用VB.NET,不是我的选择,所以我只是保持一致) 因此,这些用于前端以获取信息显示在前端,但是在代码中的其他地方使用这些信息来获取信息或添加信息是否不好?一般来说,您会希望将其模块化(发明的单词),并使用MyItemObject的方法来实现这一点,但我们已经有大量需要更改的内容,所以我们至少目前没有这样做。例如,我们正在做这样的事情 Public

我找不到类似的问题,这可能是一个愚蠢的问题,不确定,我不知道要搜索什么关键字

例如,我们有一些请求/响应对用于访问数据库中的信息(请原谅,我在工作中使用VB.NET,不是我的选择,所以我只是保持一致)

因此,这些用于前端以获取信息显示在前端,但是在代码中的其他地方使用这些信息来获取信息或添加信息是否不好?一般来说,您会希望将其模块化(发明的单词),并使用MyItemObject的方法来实现这一点,但我们已经有大量需要更改的内容,所以我们至少目前没有这样做。例如,我们正在做这样的事情

Public Class ParentItemAddRequest
    Public param1 As String = ""
    Public param2 As String = ""
End Class

Public Class ParentItemAddResponse
    Public returnParameter As MyParentItemObject = ""

    Public Function Invoke(req As ParentItemAddRequest)
        ' SQL Query goes here to add parent
        ' Now also need to add a regular MyItemObject
        Dim itemReq as new ItemAddRequest()
        Dim itemResp as new ItemAddResponse()
        itemReq.param1 = 'whatever
        itemReq.param2 = 'whatever

        itemResp.Invoke(itemReq)

        me.returnParameter = itemResp.returnParameter

    End Function
End Class

这样做似乎很好,但我们可以避免造成什么样的问题呢?或者这是完全正常的事情?对我们来说似乎很奇怪。感谢您的帮助。

如果此代码正常工作,则错误不大。如果它没有坏,就不要修理它。话虽如此,我认为这段代码唯一的错误是它使用了错误的模式。只是看起来不对。这会造成的唯一问题是,它会把新员工搞糊涂。这种方式的另一个严重含义是,类现在负责两件事(1)声明数据契约(2)定义用于填充数据的算法。根据坚实的原则,这种混搭是不可取的。职责的混合使得进行单元测试和影响分析变得困难

当我找到一个
请求
类和
响应
类时,立即的假设是你们正在使用DTO模式。由于其命名约定,这些类被假定为数据契约。现在,DTO应该是没有任何业务逻辑的简单POCO。这样,您可以将所有此类类放在单独的dll中,不同的客户端可以使用共享数据结构。因此,我不会期望那里有
Invoke
方法。我希望dto在DAL层通过
DAO
类中手工编制的SQL或通过某种类似orm的实体框架来填充


对于手工编制的sqls,我希望有一组类,比如
classparentitemdao
,方法是
Function Add(req作为AddParentItemRequest)作为AddParentItemResponse
。类似地,我希望有一个方法
函数GetParentItemById
返回业务对象或dto。

如果这段代码正常工作,那就大错特错了。如果它没有坏,就不要修理它。话虽如此,我认为这段代码唯一的错误是它使用了错误的模式。只是看起来不对。这会造成的唯一问题是,它会把新员工搞糊涂。这种方式的另一个严重含义是,类现在负责两件事(1)声明数据契约(2)定义用于填充数据的算法。根据坚实的原则,这种混搭是不可取的。职责的混合使得进行单元测试和影响分析变得困难

当我找到一个
请求
类和
响应
类时,立即的假设是你们正在使用DTO模式。由于其命名约定,这些类被假定为数据契约。现在,DTO应该是没有任何业务逻辑的简单POCO。这样,您可以将所有此类类放在单独的dll中,不同的客户端可以使用共享数据结构。因此,我不会期望那里有
Invoke
方法。我希望dto在DAL层通过
DAO
类中手工编制的SQL或通过某种类似orm的实体框架来填充


对于手工编制的sqls,我希望有一组类,比如
classparentitemdao
,方法是
Function Add(req作为AddParentItemRequest)作为AddParentItemResponse
。类似地,我希望有一个方法
函数GetParentItemById
返回业务对象或dto。

我对web服务比较陌生(我是一名大学三年级学生,在一家合作社工作),尤其是对.NET比较陌生(在我之前的实习中使用了Spring MVC),所以我的一些描述肯定不清楚,因为我写的是基于已经存在的大型项目。谢谢你的回答!我对web服务比较陌生(我是一名大学三年级学生,在一家合作社工作),尤其是对.NET(在我之前的实习中使用了Spring MVC),所以我的一些描述肯定不清楚,因为我写的是基于已经存在的大型项目。谢谢你的回答!
Public Class ParentItemAddRequest
    Public param1 As String = ""
    Public param2 As String = ""
End Class

Public Class ParentItemAddResponse
    Public returnParameter As MyParentItemObject = ""

    Public Function Invoke(req As ParentItemAddRequest)
        ' SQL Query goes here to add parent
        ' Now also need to add a regular MyItemObject
        Dim itemReq as new ItemAddRequest()
        Dim itemResp as new ItemAddResponse()
        itemReq.param1 = 'whatever
        itemReq.param2 = 'whatever

        itemResp.Invoke(itemReq)

        me.returnParameter = itemResp.returnParameter

    End Function
End Class