我一直在研究.NET 4.0代码契约,并查看stackoverflow以及有关此问题.
我仍然没有遇到任何使用代码契约的示例代码,这让我感到疑惑..这真的很有用吗?或者也许它唯一有用的一个代码达到一定的复杂性?那里有人使用代码合同,他们真的很高兴吗?
在我看来,所有的代码契约都是一个断言在发生什么,什么出去与加入能够揣摩的值在编译时进出的方法......但随后这是怎么回事在你的所有方法上需要更多的代码..值得吗?
我注意到一个好处是,在我看来,你可以使用代码的合同类型的单元测试的第一线......然后,当你写单元测试,可以避免写一些比较基本的测试,因为代码契约覆盖它了. . 真的吗 ?
合同是否适用于WCF调用?我猜不是因为代理是自动创建的,你不能改变.
我几个月前检查了MVC并没有真正得到它...但最近我已经成为一个更好的程序员我认为这是有道理的..这是我的理论..告诉我,如果我做对了
在微软Devs的90年代,我们有Classic ASP.这在同一页面上混合了VBscript和HTML.因此,您需要自己创建所有HTML并混合使用HTML和VBScript.这不被认为是理想的.然后.NET出现了,每个人都喜欢它,因为它类似于事件驱动的VB 6风格编程.它创建了绑定数据到ASP Servier控件的抽象.它使得枚举数据很容易在屏幕上显示一行.然后最近Jquery和SOA概念混合在一起.现在人们认为..当我可以直接使用.NET作为数据提供者并使用jquery AJAX调用来获取数据并使用它创建HTML时,为什么要创建这个额外的抽象层直接..不需要Webforms抽象层..
Sowe又像1999年那样直接创建HTML.
因此,MVC就是说停止假装像WEb编程是一个VB6应用程序!直接生成HTML!
我错过了什么吗?
所以我想知道..对于你们那些使用MVC的人们...这种事情一旦你习惯了它你永远不想回到webforms吗?
它并不重要,但我想弄清楚它告诉我什么,这是一个合理的警告吗?有人可以用简单的术语解释这个错误吗?
CA1001拥有一次性领域的类型应该是一次性的
在'MemVoteManager'上实现IDisposable,因为它创建了以下IDisposable类型的成员:'CongressDBEntities'.如果先前发布了"MemVoteManager",则将实现IDisposable的新成员添加到此类型将被视为对现有使用者的重大更改.
public class MemVoteManager : AbstractDataManager, IMemVoteManager
{
private CongressDBEntities context = new CongressDBEntities();
public int AddMemVote(tMemVoteScore mvs)
{
//Insert Model
context.tMemVoteScores.Add(mvs);
context.SaveChanges();
int newPK = mvs.MemVoteScoresID;
//Update funky column ID with PK as well
var memVoteItem = (from m in context.tMemVoteScores
where m.MemVoteScoresID == newPK
select m).SingleOrDefault();
memVoteItem.ID = memVoteItem.MemVoteScoresID;
context.SaveChanges();
return newPK;
}
Run Code Online (Sandbox Code Playgroud) 我什么也不会返回..我可以返回true / false以显示是否存在任何问题..我可以返回一个int作为插入或更新的主键..我可以创建一个自定义对象以返回更多信息..可能包含所有验证错误或可能发生的情况的集合。
因此,这不是我要坚持的事情,但是我似乎只是随机选择不同的方式,因此希望听听这些常见功能的最佳实践。
我正在使用C#/实体/存储库模式。
战争正在酝酿我能感受到它!
旧学校编码器习惯于让每个服务器控件在.cs文件中创建事件..例如..获取数据的初始加载,保存数据,删除数据......然后将数据源绑定到服务器控件..
新的学校编码器希望在Jquery + AJAX中调用.svc文件......这样就不会自动发回帖子,这是一个优势......我认为它是一种不同的思维方式..突然之间的UI相关事件都在Jquery中完成..
什么是最现代,最有效的方式?我如何说服老学校的编码员让我们这个新的范例呢?(假设这是更好的方式)
这是一个基本问题.我已经设置了基本的SL4/RIA项目,我想在域服务中创建一个新方法并从中返回一些数据.我不确定这样做的最简单的方法..我应该把它包装在ToList()中吗?我不清楚如何处理这个创建的匿名类型..什么是返回这些数据最简单的方法?
public IQueryable<ApplicationLog> GetApplicationLogsGrouped()
{
var x = from c in ObjectContext.ApplicationLogs
let dt = c.LogDate
group c by new { y = dt.Value.Year, m = dt.Value.Month, d = dt.Value.Day } into mygroup
select new { aaa = mygroup.Key, ProductCount = mygroup.Count() };
return x;
// return this.ObjectContext.ApplicationLogs.Where(r => r.ApplicationID < 50);
}
Run Code Online (Sandbox Code Playgroud)
无法将类型'System.Linq.IQueryable <AnonymousType#1>'隐式转换为'System.Linq.IQueryable <CapRep4.Web.ApplicationLog>'.存在显式转换(您是否错过了演员?)58 20 CapRep4.Web
我似乎找不到任何关于此的好的参考。我有很多带有日期的 SQL 数据。所以我想制作一个折线图来显示这些数据随时间的变化。如果我想在一段时间内显示它,那么我需要按天分组..但是LOGDATE是完整日期..而不是DAY..
所以我有下面这个,但 LINQ 不知道“DayOfYear”属性是什么......
var q = from x in dc.ApplicationLogs
let dt = x.LogDate
group x by new { dayofyear = dt.Value.DayOfYear } into g
select new
{
iCount = g.Count(),
strDate = g.Key
};
Run Code Online (Sandbox Code Playgroud) 我的意思是因为方向似乎是在客户端上做更多的事情...为什么不在前端只有一个jquery/HTML网站,而后端只有一个.NET Web服务被调用通过jquery ajax命令?
在任何地方都可以吗?我没有看到它被完成..怎么来的?似乎是一个简单的解决方案.无需处理ASP.NET抽象层..
我确认正确的值'2.87'进入服务..并且根据EF图表,'Score'字段的类型是'Decimal'...但是在数据库中它只是'2'
[OperationContract]
public void AddHighScore(string strName, decimal dScore, int iLevel)
{
using (SQL2008R2_789485_punkouterEntities1 dc = new SQL2008R2_789485_punkouterEntities1())
{
HighScore oHighScore = new HighScore();
oHighScore.Level = iLevel;
oHighScore.Name = strName;
//oHighScore.Name = dScore.ToString();
oHighScore.Score = dScore;
dc.AddToHighScores(oHighScore);
dc.SaveChanges();
}
}
-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------
-- Creating table 'HighScores'
CREATE TABLE [dbo].[HighScores] (
[Id] int IDENTITY(1,1) NOT NULL,
[Name] nvarchar(max) NOT NULL,
[Score] decimal(18,0) NOT NULL,
[Level] int NOT NULL
);
GO
Run Code Online (Sandbox Code Playgroud) 我从WEBapi回来的日期就像
2013-01-01T00:00:00
而且我要
{{msa.StartDate | date:'yyyy-MM'}}
Run Code Online (Sandbox Code Playgroud)
成为
2013-01
但是因为它想要考虑我当前的时区(美国东部)
2012-12
是否有一种简单的方法可以告诉它不关心时区?或者是否有其他过滤器我可以运行日期来忽略我的时区?
asp.net ×3
.net ×2
date ×2
jquery ×2
linq ×2
.net-4.0 ×1
ajax ×1
angularjs ×1
asp.net-mvc ×1
c# ×1
crud ×1
decimal ×1
filter ×1
grouping ×1
idisposable ×1
precision ×1
silverlight ×1
soa ×1
sql ×1
t-sql ×1
unit-testing ×1
web-services ×1
webforms ×1