小编Kyl*_*fin的帖子

Sitecore的"最新"项目

Sitecore 6中的一般架构问题......

假设我们有10,000个项目实施"新闻稿"模板.这些项目存储在Sitecore中/sitecore/content/home/press/*.在我们的主页上,我们想要显示一些有关最近3个新闻稿的信息.

我们正在寻找构建与SQL相当的东西:

SELECT TOP 3 * FROM PressReleases ORDER BY ReleaseDate
Run Code Online (Sandbox Code Playgroud)

通过Sitecore的查询文档阅读,这听起来像多数这个查询必须在我们C#应用程序进行处理.就像是:

public Item[] GetRecentPressReleases()
{
   string query = "/sitecore/content/home/press/*";
   Item[] items = Sitecore.Context.Database.SelectItems(query);
   Array.Sort(items, new PressReleaseDateComparer());
   return items.Take(3).ToArray();
}
Run Code Online (Sandbox Code Playgroud)

这似乎是加载从数据库到内存中万个Sitecore的项目,然后每一个我们的主页被击中是从性能的角度不可接受的时间对它们进行排序.

是否有更有效的方式来表达此查询?或者我应该专注于输出缓存和/或预先计算?

c# asp.net sitecore

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

比较LINQ-to-SQL中的byte []和使用mocking的单元测试

我有以下方法:

User IDataContext.AuthenticateUser(string userName, string password)
{
   byte[] hash = PasswordHasher.HashPassword(userName, password);

   var query =
       from e in mContext.GetTable<User>()
       where e.Email == userName && e.Password == hash
       select e;

   return query.FirstOrDefault();
}
Run Code Online (Sandbox Code Playgroud)

mContextSystem.Data.Linq.DataContext一切伟大工程.但是,如果mContext在我的联合测试期间是内存中的模拟,则之间的比较e.Passwordhash始终返回false.

如果我重写这个比较e.Password.SequenceEqual(hash),那么我的单元测试将通过,但是当我与LinqToSql交谈时我得到一个例外.(System.NotSupportedException:不支持查询运算符'SequenceEqual'.)

有没有办法可以编写这个查询,以满足我的单元测试与内存模拟,以及与LinqToSql生产组件?

c# unit-testing mocking linq-to-sql

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

DataAnnotation验证和自定义ModelBinder

我一直在使用ASP.NET MVC2进行一些实验,并遇到了一个有趣的问题.

我想在MVC应用程序中定义将用作模型的对象周围的接口.另外,我想通过使用验证属性标记此接口的成员来在功能上利用新的DataAnnotation.

所以,如果我的网站有一个"Photo"对象,我将定义以下界面:

public interface IPhoto 
{ 
 [Required]
 string Name { get; set; }

 [Required]
 string Path { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我将定义以下实现:

public class PhotoImpl : IPhoto 
{
 public string Name { get; set; }
 public string Path { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的MVC App控制器可能包含以下方法:

public class PhotoController : Controller
{
 [HttpGet]
 public ActionResult CreatePhoto()
 {
  return View(); 
 }

 [HttpPost]
 public ActionResult CreatePhoto(IPhoto photo)
 {
  if(ModelState.IsValid)
  {
   return View(); 
  }
  else
  {
   return View(photo);
  }

 }
}
Run Code Online (Sandbox Code Playgroud)

最后,为了将PhotoImpls绑定到这些操作方法中的参数,我可能会对DefaultModelBinder实现以下扩展: …

asp.net-mvc asp.net-mvc-2

6
推荐指数
2
解决办法
4100
查看次数

动态PDF或Word Doc生成的最佳库?

我们的ASP.NET应用程序必须能够将Web内容导出为PDF和Word文档.

在过去,我们使用Aspose的库来实现这一目标,但我们发现它们在文档构建方面有点过于低级.例如,我们发现自己需要使用形状基元来编写基于点的函数来创建项目符号列表.

最佳案例场景 - 我们在我们可打印的CSS样式页面上指出一个工具,并自动获取包含以相同方式设置样式的相同内容的PDF或Word文档.

您是否有过使用任何可以实现此目标的工具的良好经验?

.net c# pdf asp.net ms-word

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

Sitecore Droplink字段中的最大结果数量?

在Sitecore 6中,我的一个模板包含一个绑定到特定sitecore查询结果的"Droplink"字段.此查询当前返回大约200个项目.

当我在内容编辑器中查看实现此模板的项目时,我只能看到该字段下拉列表中的前50个项目.

如何在编辑器的下拉列表中显示从此查询返回的所有项目?

asp.net sitecore

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