小编Zac*_*ott的帖子

Boss说"我们需要一个iPhone应用程序",哪些框架类似于Firefox,JQuery,模板和iPhone上的数据链接?

我们有一个很好的软件基础,​​基于Microsoft MVC 2,实体框架4,存储库,POCO,服务和控制层,C#视图,JQuery和html.Firefox在250毫秒内提取100条记录,将其放入模板,将数据链接到标记,然后我们坐下来喝玛格丽塔酒.

Boss走进来说他想要一个iPhone应用程序.我打赌我们也需要一个Android应用程序.

我们可以使用哪些框架轻松地从我们的微软舒适区跳到Apple iPhone/iPad的广泛世界,以及后续的Android宝贝.

我想我们可以使用我们的JSON控制器方法进行通信. 是否有某种类型的客户端JavaScript消费应用程序框架,我们可以得到一个合理的网站,如界面重新工作? 他们不喜欢简单地在Safari中运行整个东西的想法,这非常有效.

需求:

  • 发送和接收JSON对象
  • 某种类型的模板引擎,所以我们可以将对象配对到标记,或者至少是某种方式将设计与编程分开
  • 类似于JQuery的东西会很好
  • 一个很好的编辑器,具有自动完成和突出显示功能,与VS2010相比

我们用了两年时间,使用MVC和Javascript整合了设计模式,敏捷方法和Domain Driven概念.我们可能需要两到三个月才能重新生成相同的功能.

c# iphone android asp.net-mvc-2

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

实体框架4:将字符串条件转换为lambda表达式?

我想接受一个字符串数组,其中来自客户端的条件就像field == value.创建一个可以接受构造函数中的字符串并输出lambda表达式来表示Where子句的规范对象真的很不错.例如,我可以执行以下操作:

var myCondition = new Specification<Product>( myStringArrayOfConditions); 
var myProducts = DB.Products.Where( myCondition);
Run Code Online (Sandbox Code Playgroud)

你怎么会"name == Jujyfruits"变成
DB.Products.Where(p => p.name == "JujyFruits")

c# entity-framework-4 c#-4.0

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

在MS C#单元测试中,如何断言发生了ArgumentException?

如果我们做了

throw new ArgumentException("Cannot do that");
Run Code Online (Sandbox Code Playgroud)

你如何断言ArgumentException微软的测试框架发生了这种情况?

unit-testing exception-handling

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

ASP.NET MVC 3 JSONP:这适用于JsonValueProviderFactory吗?

Phil Haack有一篇关于如何使用JSON,数据绑定和数据验证的优秀博客文章.

输入浏览器的"同源策略安全限制".和JSONP,您使用$ .getJSON()来检索内容.

是否有内置的MVC 3方法来做到这一点,还是我需要遵循这样的帖子的建议?你可以发布内容吗?我问,因为我的同事实现了JsonPfilterAttribute以及其他工作.如果MVC 3中已存在某些内容,显然最好避免这种情况.

编辑:

总结:除访问POST变量外,一切都有效,即如何POST在上下文中访问变量?(注释在代码的最后部分标记)

我选择使用这种格式来调用服务器:

$.ajax({
    type: "GET",
    url: "GetMyDataJSONP",
    data: {},
    contentType: "application/json; charset=utf-8",
    dataType: "jsonp",
    jsonpCallback: "randomFunctionName"
});
Run Code Online (Sandbox Code Playgroud)

产生这种反应:

randomFunctionName([{"firstField":"111","secondField":"222"}]);
Run Code Online (Sandbox Code Playgroud)

如果我使用的话,这一切都很有效GET.但是,我仍然无法将其作为一个工作POST.这是Nathan Bridgewater 在这里发布的原始代码.此行找不到POST数据:

context.HttpContext.Request["callback"];
Run Code Online (Sandbox Code Playgroud)

要么我应该Form以某种方式访问,要么MVC数据验证器正在剥离POST变量.

如何context.HttpContext.Request["callback"];编写访问POST变量或MVC是否出于某种原因剥离这些值?

namespace System.Web.Mvc
{   public class JsonpResult : ActionResult
    {   public JsonpResult() {}

        public Encoding ContentEncoding { get; set; }
        public string ContentType { get; set; …
Run Code Online (Sandbox Code Playgroud)

jsonp model-binding asp.net-mvc-3

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

ASP.NET MVC:您在哪里组装视图的视图模型?

从内到外,这些是我们的MVC应用层:

  1. MS SQL /表/视图/存储过程
  2. 实体框架4.1(ORM)与POCO生成
  3. 知识库
  4. 服务(检索)和控制功能(保存)
  5. 路由 - >控制器 - > Razor View
  6. (客户端)使用Knockout.js(MVVM)的JQuery Ajax

一切都很好,直到我需要为第5步创建一个ViewModel来同时提供Razor视图以及JSON/Knockout ViewModel:

  • 包含所有下拉列表选项和下面字段选项的标题
  • Items - 我们发送给客户端的任何内容的数组,成为ViewModel

由于Controller无法直接访问存储库,这是否意味着我为每个允许编辑内容的视图创建服务? 我需要从存储库中获取POCO,并根据需要为每个字段类型添加所有选项.

为每个视图创建单独的服务似乎是多余的.例如,viewModel用于编辑地址,而viewModel用于编辑也具有地址的房地产属性.我们可以有十几种形式来编辑相同的地址POCO.

为了使这个问题更容易回答,是否允许Controller直接访问存储库一个漏洞的抽象?

repository-pattern asp.net-mvc-3

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

如何在Linq where子句中指定动态字段名称?

如果您创建一个Filter对象,其中包含Linq的条件,通常在where子句中,如下所示:

 var myFilterObject = FilterFactory.GetBlank();
 myFilterObject.AddCondition("Salary", "lessThan", "40000");

 var myResult = myRepository.GetEmployees(myFilterObject);
Run Code Online (Sandbox Code Playgroud)

如何在不使用大案例陈述的情况下将Linq字段与字段名称匹配?

 return from e in db.Employee
        where e.Salary < 40000
        select new IList<EmployeeViewModel> { Name= e.name, Salary= e.Salary };
Run Code Online (Sandbox Code Playgroud)

我假设您需要将一个对象发送到指定过滤的存储库,以便您只提取所需的记录.我假设Linq没有预编译(除非您创建自定义委托和函数),因此您应该能够动态指定要筛选的字段.

如果你可以像某些类型的Expando对象那样做e ["Salary"]这样的话会很好.

c# linq where-clause

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

如何将此Linq SQL编写为动态查询(使用字符串)?

根据需要跳到"特定问题".一些背景:

场景: 我有一组产品,其中包含一个填充了DDL的"向下钻取"过滤器(查询对象).每个渐进式DDL选择将进一步限制产品列表以及DDL的剩余选项.例如,从工具中选择锤子会限制产品尺寸仅显示锤子尺寸.

当前设置:我创建了一个查询对象,将其发送到存储库,并将每个选项提供给SQL"表值函数",其中空值表示"获取所有产品".

我认为这是一个很好的努力,但远非DDD可以接受.我想避免SQL中的任何"编程",希望用存储库做所有事情.对此主题的评论将不胜感激.

具体问题:

我如何将此查询重写为动态查询?像101 Linq Examples这样的链接会很棒,但是有一个动态查询范围.我真的想将这个方法传递给引号""中的字段,我想要一个选项列表以及有多少产品具有该选项.

from   p in db.Products
group  p by p.ProductSize into g
select new Category { 
       PropertyType = g.Key,
       Count = g.Count() }
Run Code Online (Sandbox Code Playgroud)

每个DDL选项都有"选择(21)",其中(21)是具有该属性的产品数量.选择一个选项后,所有其他剩余的DDL将使用剩余的选项和计数进行更新.

编辑:附加说明:

.OrderBy("it.City") // "it" refers to the entire record
.GroupBy("City", "new(City)") // This produces a unique list of City
.Select("it.Count()") //This gives a list of counts... getting closer
.Select("key") // Selects a list of unique City
.Select("new (key, count() as string)") // +1 to …
Run Code Online (Sandbox Code Playgroud)

c# linq repository linq-to-sql dynamicquery

6
推荐指数
1
解决办法
4050
查看次数

Javascript:如何将对象的JSON数组重新转换为Object类型共享原型?

如果您有一个从JSON创建的产品对象数组,那么如何将原型方法添加到产品对象中,以便它们都指向相同的方法?如何训练JavaScript识别数组中的所有产品对象是不是重新创建它们的同一个类的实例?

例如,如果我下拉产品的JSON数组,并希望数组中的每个产品都有原型方法,我如何将单个原型方法添加到每个产品副本?

我首先想到的是一个Product构造函数,它将产品JSON数据作为参数,并返回一个带有原型等的新产品,它将取代从服务器发送的数据.我认为这是不切实际的,因为你正在重新创建对象.我们只想添加所有对象共有的函数.

是否可以将$.extend对象的原型属性转换为JSON对象,以便每个JSON对象引用完全相同的函数(而不是副本)?

例如:

var Products = [];
Products[0] = {};
Products[0].ID = 7;
Products[0].prototype.GetID = function() { return this.ID; };
Products[1].ID = 8;
Products[1].prototype = Products[0].prototype;  // ??
Run Code Online (Sandbox Code Playgroud)

我知道这看起来很糟糕,但是如果你$.extend对每个Product对象原型的方法进行JQuery $.extend怎么办?创建一个加载了原型的对象然后在现有的Product对象上创建该对象?你会怎么编码?有什么更好的可能性?

javascript jquery json

6
推荐指数
1
解决办法
1376
查看次数

SQL触发器:在更新主键时,如何确定哪个"已删除"记录与"插入"记录相对应?

假设我知道更新主键是坏的.

还有其他问题暗示insertedupdated记录表的位置匹配(第一个匹配另一个匹配.)这是事实还是巧合?

当主键在更新时发生更改时,是否有任何可以将两个表连接在一起的内容?

sql t-sql triggers sql-server-2005

6
推荐指数
1
解决办法
3081
查看次数

System.Linq.Dynamic:如何保证Parse函数中的参数顺序?

在下面的代码中,我成功地在C#中使用Microsoft的System.Linq.Dynamic来评估类似于Javascript的字符串表达式eval().但是,在调用新函数时 ,我无法弄清楚如何保证参数名称和相应的值匹配."SKU + \" \" + Name"可以像回归1234 Cola一样容易Cola 1234.我有几十个参数.

System.Dynamic.Linq的Parse方法用于Dictionary<string,object>在内部保存参数,这是我的问题,因为Dictionary不保证像数组和列表这样的顺序. 我假设因为Microsoft选择使用Dictionary,必须对下面的代码进行一些简单的修复,以确保参数值匹配. 代码在LinqPad中输入.

命名参数可能像Name: "Cola", SKU: "1234"?是否有一些数据类型或技术可用于保证参数名称和值匹配?这是否需要更改Microsoft的代码才能替换Dictionary?

var symbols = new Dictionary<String, Object>();         // Cannot change symbols datatype
var paramExp = new List<ParameterExpression>();
var paramVal = new List<String>();

var fields = new Dictionary<String,String>();                              // Sample Data
fields["SKU"] = "1234";
fields["Name"] = "Cola";
fields["Type"] = "Drink";
var expression = "SKU + \" \" + …
Run Code Online (Sandbox Code Playgroud)

c# system.linq.dynamic

6
推荐指数
0
解决办法
81
查看次数