小编Dav*_*New的帖子

UpdatePanel触发器:找不到名为'OnRowCommand'的事件

我希望OnRowCommand事件GridView不会在ErrorLinkButton点击上执行完整的回发.所以我将控件包装在更新面板中并添加了一个AsyncPostBackTriggerfor OnRowCommand:

<asp:GridView ID="DataSourceMappingGridView" runat="server" DataKeyNames="Index" ClientIDMode="Static" OnRowCommand="DataSourceMappingGridView_RowCommand" OnRowDataBound="DataSourceMappingGridView_RowDataBound">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <asp:UpdatePanel ID="ErrorUpdatePanel" runat="server">
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="DataSourceMappingGridView" EventName="OnRowCommand" />
                </Triggers>
                <ContentTemplate>
                    <asp:LinkButton ID="ErrorTextLinkButton" CommandName="Errors" CommandArgument='<%#Bind("Index") %>' runat="server" Text='View Errors' /> 
                </ContentTemplate>
            </asp:UpdatePanel>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

无法在关联控件'DataSourceMappingGridView'上找到名为'OnRowCommand'的事件,用于UpdatePanel'ErrorUpdatePanel'中的触发器.

.net c# asp.net updatepanel

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

在 UML 中表示泛型类继承

这是在 UML 类图中表示以下代码的正确方法吗?

代码:

public class CustomerRepository 
    : EntityFrameworkRepository<Customer>, ICustomerRepository 
{ }
Run Code Online (Sandbox Code Playgroud)

统一建模语言:

在此输入图像描述

generics inheritance uml class-diagram

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

通用存储库和漏洞抽象

我正在实现一个存储库模式.我的主要原因是:

  • 从持久性细节中抽象客户端代码(实体框架)
  • 支持可测试性

通用存储库与否?

我遇到的问题是我是否应该有一个通用的存储库.一种IQueryable<T> Query()方法将为调用代码提供构造特定查询的手段.这里的问题是这是漏洞抽象 - 实体框架细节现在泄漏到我的客户端代码中.

在此输入图像描述

  • 这种影响单元测试怎么样? 我还能ICustomerRepository用这个实现模拟吗?

  • 这种效果如何影响我的持久层?像Azure存储表或NHibernate.

否则我将不得不实现非常具体的查询方法ICustomerRepository,例如GetIsActiveByFirstName()GetIsActiveByDistrict().我不喜欢这个,因为我的存储库类将变得拥挤不同的查询方法.该系统有数百种型号,因此可以有数百甚至数千种这样的方法来编写和维护.

entity-framework leaky-abstraction repository-pattern onion-architecture entity-framework-5

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

JSON响应模型设计问题

我需要帮助设计API的JSON响应模型.

假设一个getUsers调用返回以下响应模型:

{
    "users":
    [
        {
            "userId": "1",
            "name": "Joe Soap",
            "companyId": "3"
        },
        {
            "userId": "2",
            "name": "Bob Jones",
            "companyId": "3"
        },
        {
            "userId": "3",
            "name": "Mary Jane",
            "companyId": "4"
        },
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在我们有另一个电话,让我们说getUsersWithCompany.这包括公司信息.我的问题是:

我应该将这些额外company数据包含在每个中,user还是应该是companies响应模型中的全新列表?

解决方案1:结合用户和公司

{
    "usersWithCompany":
    [
         {
            "userId": "1",
            "name": "Joe Soap",
            "company":
            {
                "companyId": "3",
                "companyName": "Some Company Ltd",
                "contactNumber": "123123123"
            },
        },
         {
            "userId": "2",
            "name": "Mary Jane",
            "company":
            {
                "companyId": "4",
                "companyName": "Another …
Run Code Online (Sandbox Code Playgroud)

rest json web-services json.net asp.net-web-api

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

第三方与System.Net.Mail.SmtpClient

我们必须建立一个通知系统,该系统需要可靠地向客户发送通知电子邮件.

在过去,我们使用.NET的System.Net.Mail.SmtpClient库快速连接并发送各种低优先级的电子邮件.可靠有效的交付并不重要.

现在我们需要能够向客户发送电子邮件 - 这是一个不同的故事.

是否值得使用一些第三方服务(如SendGrid)或常规SmtpClient就好了?

我们不需要任何分析,营销或订阅功能.我们的数量要求也不是很大 - 每天可能达到10k.只需要电子邮件发送功能.

.net c# email-client smtpclient sendgrid

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

当租用时间超过 1 分钟时,Azure Blob 存储获取租用会引发错误

我试图获得一个博客的租约,但它给了我一个400 Bad Request. 如果时间跨度超过 1 分钟。

这是预期的吗?我找不到任何关于它的文档。

azure azure-storage azure-storage-blobs

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

异步处理领域事件

我已经按照Udi Dahan 的领域事件 - 救赎文章中的规定实现了领域事件。

据我了解,域事件可以异步运行到引发它的线程(通常来自域模型或服务)。

不需要任何类型的“共享”工作单元或存储库实现,也不需要事务一致性。

问:为什么 Udi 没有在单独的线程中实现领域事件的处理?

例如,我添加了 a 的创建Task来异步处理事件:

public static void Raise<T>(T domainEvent) where T : IDomainEvent
{
    if (Container != null)
    {
        foreach (var handler in Container.ResolveAll<IDomainEventHandler<T>>())
        {
            Task.Factory.StartNew(() => 
            { 
                handler.Handle(domainEvent); 
            }).ContinueWith(t => {
                // Log exception
            }, TaskContinuationOptions.OnlyOnFaulted);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

由此可能产生任何多线程问题吗?

编辑: 请注意,虽然这些域事件是轻量级的,但它们仍将在 IIS 上运行,因为这是一个 MVC Web 项目。

multithreading domain-driven-design dependency-injection onion-architecture domain-events

5
推荐指数
0
解决办法
1450
查看次数

是否使用子资源?

我们来看下面的例子:

我们希望从RESTful API公开公司和员工信息.

公司数据应该非常简单:

GET api/v1/companies
GET api/v1/companies/{id}
Run Code Online (Sandbox Code Playgroud)

员工属于公司,但我们仍然希望单独检索它们,因此哪种解决方案最好:

解决方案1:使用子资源

获取公司的所有员工:

GET api/v1/companies/{companyId}/employees
Run Code Online (Sandbox Code Playgroud)

获得特定员工:

GET api/v1/companies/{companyId}/employees/{employeeId}
Run Code Online (Sandbox Code Playgroud)

解决方案2:使用独立资源

获取公司的所有员工:

GET api/v1/employees?companyId={companyId}
Run Code Online (Sandbox Code Playgroud)

获得特定员工:

GET api/v1/employees/{employeeId}
Run Code Online (Sandbox Code Playgroud)

两种选择似乎都有其优点和缺点.

  • 对于子资源,当想要检索单个员工时,我可能并不总是拥有CompanyId.

  • 使用独立资源,如果我们想要RESTful,那么让公司的所有员工都应该使用子资源方法.

否则,我们可以使用混合,但这缺乏一致性:

获取公司的所有员工:

GET api/v1/companies/{companyId}/employees
Run Code Online (Sandbox Code Playgroud)

获得特定员工:

GET api/v1/employees/{employeeId}
Run Code Online (Sandbox Code Playgroud)

如果我们想要坚持RESTful标准,那么采取这种情况的最佳方法是什么?

rest restful-url restful-architecture asp.net-web-api asp.net-web-api2

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

NuGet包依赖项

对于包对其他库的每个依赖项,是否需要解析和安装这些库是真的吗?

例如,我创建了一个使用的包NLog,Postsharp并且WindowsAzure.Storage:

NuGet依赖

我的包的客户现在也必须安装这些包吗?为什么不能在包中包含这些依赖DLL?

nuget nuget-package nuget-server

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

在Azure表存储中存储应用程序日志的策略

我将确定一个在Azure表存储中存储日志记录信息的好策略.我有以下内容:

PartitionKey:日志的名称.

RowKey: 反转日期时间刻度,

这里唯一的问题是分区可能会变得非常大(数百万个实体),并且大小会随着时间的推移而增加.

但话虽如此,正在执行的查询类型将始终包括PartitionKey(无扫描)和RowKey过滤器(次要扫描).

例如(以自然语言):

where `PartitionKey` = "MyApiLogs" and
where `RowKey` is between "01-01-15 12:00" and "01-01-15 13:00"
Run Code Online (Sandbox Code Playgroud)

只要在查询上都做了PartitionKeyRowKey,据我所知,该分区的大小并不重要.

azure azure-storage azure-table-storage

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