我希望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'中的触发器.
这是在 UML 类图中表示以下代码的正确方法吗?
代码:
public class CustomerRepository
: EntityFrameworkRepository<Customer>, ICustomerRepository
{ }
Run Code Online (Sandbox Code Playgroud)
统一建模语言:

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

这种影响单元测试怎么样? 我还能ICustomerRepository用这个实现模拟吗?
这种效果如何影响我的持久层?像Azure存储表或NHibernate.
否则我将不得不实现非常具体的查询方法ICustomerRepository,例如GetIsActiveByFirstName()和GetIsActiveByDistrict().我不喜欢这个,因为我的存储库类将变得拥挤不同的查询方法.该系统有数百种型号,因此可以有数百甚至数千种这样的方法来编写和维护.
entity-framework leaky-abstraction repository-pattern onion-architecture entity-framework-5
我需要帮助设计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响应模型中的全新列表?
{
"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) 我们必须建立一个通知系统,该系统需要可靠地向客户发送通知电子邮件.
在过去,我们使用.NET的System.Net.Mail.SmtpClient库快速连接并发送各种低优先级的电子邮件.可靠有效的交付并不重要.
现在我们需要能够向客户发送电子邮件 - 这是一个不同的故事.
是否值得使用一些第三方服务(如SendGrid)或常规SmtpClient就好了?
我们不需要任何分析,营销或订阅功能.我们的数量要求也不是很大 - 每天可能达到10k.只需要电子邮件发送功能.
我试图获得一个博客的租约,但它给了我一个400 Bad Request. 如果时间跨度超过 1 分钟。
这是预期的吗?我找不到任何关于它的文档。
我已经按照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
我们来看下面的例子:
我们希望从RESTful API公开公司和员工信息.
公司数据应该非常简单:
GET api/v1/companies
GET api/v1/companies/{id}
Run Code Online (Sandbox Code Playgroud)
员工属于公司,但我们仍然希望单独检索它们,因此哪种解决方案最好:
获取公司的所有员工:
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)
获取公司的所有员工:
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
对于包对其他库的每个依赖项,是否需要解析和安装这些库是真的吗?
例如,我创建了一个使用的包NLog,Postsharp并且WindowsAzure.Storage:

我的包的客户现在也必须安装这些包吗?为什么不能在包中包含这些依赖DLL?
我将确定一个在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)
只要在查询上都做了PartitionKey和RowKey,据我所知,该分区的大小并不重要.
.net ×2
azure ×2
c# ×2
rest ×2
asp.net ×1
email-client ×1
generics ×1
inheritance ×1
json ×1
json.net ×1
nuget ×1
nuget-server ×1
restful-url ×1
sendgrid ×1
smtpclient ×1
uml ×1
updatepanel ×1
web-services ×1