我有使用Telerik的大量不同工具的长期经验,我不得不说,我喜欢它们.
但我需要另一种选择.为什么?好吧,我想开始一个开源项目.该项目将包含许多元素,包括MVC前端.遗憾的是,Telerik的许可证明确禁止在开源项目中使用其组件.
我将需要许多组件,但最值得一提的是Grid.任何人都可以建议一个可用且有价值的组件集,我可以在开源项目中使用它.
接受任何建议.
我有一套简单的3表,EF知道这些表是相关的......
在我的存储库中,我执行以下操作...
var result = localContext.LexiconTerms.Include(i=>i.Locale).Include(i=>i.Lexicon)
Run Code Online (Sandbox Code Playgroud)
当我检查结果时,总是填充Lexicon并且Locale始终是 null
现在,如果我看看生成的SQL,我看到了......
SELECT
[Extent1].[Id] AS [Id],
[Extent1].[LexiconId] AS [LexiconId],
[Extent1].[ResourceId] AS [ResourceId],
[Extent1].[Value] AS [Value],
[Extent1].[LocaleId] AS [LocaleId],
[Extent1].[ResourceSet] AS [ResourceSet],
[Extent1].[Type] AS [Type],
[Extent1].[BinFile] AS [BinFile],
[Extent1].[TextFile] AS [TextFile],
[Extent1].[Filename] AS [Filename],
[Extent1].[Comment] AS [Comment],
[Extent1].[ValueType] AS [ValueType],
[Extent1].[Updated] AS [Updated],
[Extent2].[Name] AS [Name],
[Extent2].[LocaleCode] AS [LocaleCode],
[Extent3].[Id] AS [Id1],
[Extent3].[Name] AS [Name1],
[Extent3].[Description] AS [Description],
[Extent3].[DeletedOn] AS [DeletedOn]
FROM [Locale].[LexiconTerms] AS [Extent1]
INNER JOIN [Locale].[Locale] AS [Extent2] ON [Extent1].[LocaleId] …Run Code Online (Sandbox Code Playgroud) 首先让我说我是ReSharper和dotCover的新手,我使用的是v10.0.2.
附带的屏幕截图显示了VS中的解决方案资源管理器和一组测试的覆盖树.
每当我运行coverage时,它总是在coverage树中显示相同的程序集子集.重要的是,显示的所有测试都是针对服务或基础结构程序集中的代码,两者都不显示在覆盖树中.
很明显,产品没有做正确的事情,或者我不是.
编辑 如果它有任何区别,我正在使用xUnit并在ReSharper中安装了xUnit运行扩展,并且测试本身运行正常.
我有网络应用程序,列出存储在其中的文件.
每个项目都有一个超链接,单击该链接时,会强制显示"打开/保存"对话框.
现在,如果我点击一个指向Word文档的链接并选择"打开",它会在它自己的窗口中打开,正如您所期望的那样.但是,如果文件是HTML文件,我选择"打开"选项,它会打开浏览器中的页面[正确],但它会在我用来选择文档[bad]的窗口中打开.
因此,问题是:是否可以强制打开/保存对话框的"打开"选项在新窗口中打开文档?
编辑: 强制打开文档的超链接不仅仅是指向文件的指针(由于多种原因)..NavigateUrl属性包含对JavaScript函数的调用.此函数向应用程序发出Ajax请求,该文档从安全存储中提取文档并将其作为附件呈现给用户的浏览器(Content-Disposition:attachment)
进一步编辑: JavaScript函数只是将Ajax调用回页面.此操作的结果是使页面显示在IFrame中.此页面直接写入响应对象,如下所示:
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", String.Format("attachment;filename=\"{0}\"", FileName));
Response.AddHeader("Content-Length", String.Format("{0}", length));
Response.Flush();
Response.Close();
Run Code Online (Sandbox Code Playgroud)
我想,如果它是可以改变的产生的打开/保存对话框的"打开"按钮的动作,这将是我的东西在做这样的代码,这将迫使它.
如果它有所不同,这是一个用C#编写的.Net v4.0应用程序.
我知道打开新窗口的好坏,但这是一个私人应用程序,这是客户想要的.
我有一堆方法都返回bool.
如果一个方法返回false,则调用以下方法没有任何价值,特别是因为其中一些方法是"昂贵的"操作.
哪个更有效率?
bool result = method1();
if (result) result = method2();
if (result) result = method3();
return result;
Run Code Online (Sandbox Code Playgroud)
要么
return method1() && method2() && method3();
Run Code Online (Sandbox Code Playgroud)
据我所知,第二种形式应该在其中一种方法返回false时停止评估,对吧?
如果我Comparer<T>为了排序一组对象而创建一个对象,是否有一种简单的方法可以"反转"它以便我可以向另一个方向排序?或者我需要Comparer<T>在比较方法中交换测试来定义第二个?
我在测试中有以下内容(我的第一次JustMock测试,我可能会添加)...
var template = Mock.Create<MessageType>();
Mock.Arrange(() => template.Subject)
.Returns("This template has Zero tokens.");
Mock.Arrange(() => template.Body)
.Returns("This template has {{number}} of {{tokens}}.");
Run Code Online (Sandbox Code Playgroud)
被Mocked这个班看起来像这样......
public class MessageType : BaseBusinessEntity
{
public string Body { get; set; }
public int DigestsToBeIncludedOn { get; set; }
public Guid MessageReference { get; set; }
public int MessageTypeId { get; set; }
public string Name { get; set; }
public int PredefinedRecipients { get; set; }
public string Subject { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我试图运行测试时,我得到... …
我从文档中知道我可以做到这一点......
result.Should().BeOfType<MyClass>().Which.Property1.Should().Be("String")
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以以类似的方式测试多个属性
result.Should().BeOfType<MyClass>().Which.Property1.Should().Be("String").And.Property2.Should().Be(99);
Run Code Online (Sandbox Code Playgroud)
如果可以执行上述任一测试而不必断言它们是“OfType”,那也很好,但我怀疑代码没有其他方法可以知道哪些属性可用。
我有一个具有许多属性的对象.
我想在调用构造函数时能够分配一些这些属性.
显而易见的解决方案是要么有一个构造函数,它为每个属性提供一个参数,但是当有很多属性时这是很讨厌的.另一个解决方案是创建重载,每个重载都取一个属性值的子集,但最终我可能会遇到几十个重载.
所以我想,如果我能说,那不是很好吗
MyObject x = new MyObject(o => o.Property1 = "ABC", o.PropertyN = xx, ...);
问题是,我太蠢了,无法弄清楚如何做到这一点.
你知道吗?
给定MVC示例的UI,如何在客户端模板中引用数据源中的详细模板项?
例如,示例中的详细信息模板如下所示....
<script id="template" type="text/kendo-tmpl">
@(Html.Kendo().TabStrip()
.Name("tabStrip_#=EmployeeID#")
.SelectedIndex(0)
.Animation(animation => animation.Open(open => open.Fade(FadeDirection.In)))
.Items(items =>
{
items.Add().Text("Orders").Content(@<text>
@(Html.Kendo().Grid<Kendo.Mvc.Examples.Models.OrderViewModel>()
.Name("grid_#=EmployeeID#")
.Columns(columns =>
{
columns.Bound(o => o.OrderID).Title("ID").Width(56);
columns.Bound(o => o.ShipCountry).Width(110);
columns.Bound(o => o.ShipAddress);
columns.Bound(o => o.ShipName).Width(190);
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.Read(read => read.Action("HierarchyBinding_Orders", "Grid", new { employeeID = "#=EmployeeID#" }))
)
.Pageable()
.Sortable()
.ToClientTemplate())
</text>
);
items.Add().Text("Contact Information").Content(
"<div class='employee-details'>" +
"<ul>" +
"<li><label>Country:</label>#= Country #</li>" +
"<li><label>City:</label>#= City #</li>" +
"<li><label>Address:</label>#= Address #</li>" +
"<li><label>Home …Run Code Online (Sandbox Code Playgroud) c# ×4
telerik ×2
.net ×1
.net-4.0 ×1
asp.net ×1
c#-3.0 ×1
dotcover ×1
justmock ×1
kendo-grid ×1
lambda ×1
object ×1
open-source ×1
resharper ×1
sorting ×1
sql-server ×1
telerik-mvc ×1
unit-testing ×1
webforms ×1