我们一直在Windows Azure上使用混合体系结构,将大多数实体存储在SQL Azure数据库中,但是将任何可能需要大量存储空间的内容丢入Azure表存储中.
但是,使用这种架构,我们遇到了Azure桌面存储的各种问题,这让我觉得它是一个不成熟且不完整的产品.最大的限制是,出于所有实际目的,它是一个只写数据存储.大家一致认为它的写入功能非常非常好,但它的查询和索引功能是如此惊人地限制(尽管多年来用户抱怨和微软承诺),我得出结论你应该基本上只尝试检索数据在紧急情况下退出ATS.从复杂的实时交易生产应用程序中获取数据比使用它更困难.当然,有一些解决方法,比如维护多个数据副本,为每个副本分配不同的索引策略,或者拆分查询并并行运行它们,但是当云服务的整个要点最小化时,这会增加复杂性.
也就是说,我们现在已经致力于Azure,我希望对替代方案和陷阱有很好的理解,最好是那些实际上已经走上这条道路的人们.
我非常清楚那里有很多NoSQL选项(例如,这个问题中列出的所有选项:针对.NET的NoSQL解决方案是什么?)我可以在VM或其他云上运行.但我特别想知道Azure的PAAS模型是否适合.换句话说,如果我在Azure上,并且不想管理我自己的VM,并希望尽可能接近ATS承诺的几乎自动且几乎无限的可扩展性(尽管从未完全交付),有哪些选择人们发现有价值?是的MongoDB/Azure的包装器的简单和可行的替代方案?或者我应该咬紧牙关并启动我自己的VM?或切换到AWS?还是坚持使用Azure SQL?
(为了让您了解我们的尺寸要求:我们认为我们需要存储超过10亿行.不是很大,但也不可忽略不计.)
我正在尝试使用Angular JS 1.2来运行高度动画.我在这里有一个有关闭项目动画的动画:
http://plnkr.co/edit/YVtnXgjO3Evb6tz5DJOp?p=preview
关键位是这个CSS:
.accordion-body {
height: 100px;
-webkit-transition: 0.5s linear all;
transition: 0.5s linear all;
}
.accordion-body.ng-hide-add,
.animate-show.ng-hide-remove {
display: block !important;
}
.accordion-body.ng-hide-add{
}
.accordion-body.ng-hide-remove{
}
.accordion-body.ng-hide {
height:0;
}
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何让它开启项目.我显然在做脑死亡 - 我错过了什么?
我有一个很多部分的问题:
(1)Silverlight没有公开DataContextChanged事件有充分的理由吗?这似乎是,如果有人在微软刚换能避免一大堆的麻烦internal,以public在FrameworkElement的类(像WPF一样).
(2)通过在一个配置或另一个配置中使用DependencyProperties,我找到了一种或两种不同的方法来攻击DataContextChanged事件.但我不能让他们可靠地工作.到目前为止,我的测试似乎表明他们触发了被攻击的DataContextChanged事件,这对我连接它的第一个类来说很好,但是不要为任何其他类触发.还有其他人遇到过这个问题吗?或者更好的是,他们是否一直在努力?
(3)我之所以想要知道我的DataContext何时发生变化,是因为有些UI操作在XAML中很难实现,但在代码隐藏方面却很简单; 对于其中许多事情,我需要处理由我的ViewModel引发的事件; 因此我需要知道我的ViewModel何时发生了变化,所以我可以连接事件处理程序.这是对世界的准确看法吗?或者事实是我想要在代码中处理这类事情,这是一个非常好的迹象,表明我的想法在某种程度上已经脱离了轨道?我不是MVVM纯粹主义者:我只是想快速从这里获得良好的代码,我并不特别在意我是如何到达那里的.十多年来,代码隐藏已经为我提供了相当好的服务,我完全放弃它.但是我的实用主义在这一点上让自己变得更难吗?
您如何在自托管SignalR集线器中获取远程客户端的IP地址?根据这个问题,您可以在某一时刻使用Context.ServerVariables []来获取它,但最近版本的SignalR似乎缺少这一点.
我有一个固定大小的父元素,可以包含更改数量的子元素,所有子元素都需要以相同的大小和固定的x/y比率显示; 并且所有这些都需要尽可能大地显示,而不会溢出父元素的大小.(了解?)
如果你看一下我创建的jsfiddle行为方式,我会更清楚:
关键位是这里的功能:
function layout(parent, parentHeight, parentWidth, children, ratio) {
var totalArea = parentHeight * parentWidth;
var elements = children.length;
var height = 0, width = 0, area = 0, cols = 0, rows = 0;
for (height = parentHeight; height > 0; height--) {
width = height * ratio;
area = width * height * elements;
cols = Math.floor(parentWidth / width);
rows = Math.ceil(elements / cols);
if (area <= totalArea && cols * width < parentWidth && …Run Code Online (Sandbox Code Playgroud) 我使用colocated缓存在azure中部署了一个Web项目.我有2个这个Web角色的实例.
我正在使用实体框架5并从数据库中获取一些实体,我使用共同缓存来缓存它们.
我的实体在类库中定义,名为Drt.BusinessLayer.Entities
但是,当我访问我的网络应用程序时,我收到错误:
反序列化器无法加载要反序列化的类型,因为在程序集'EntityFrameworkDynamicProxies-Drt.BusinessLayer.Entities,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'中找不到类型'System.Data.Entity.DynamicProxies.Country_4C17F5A60A033813EC420C752F1026C02FA5FC07D491A3190ED09E0B7509DD85' .检查被序列化的类型与要反序列化的类型具有相同的合同,并使用相同的程序集.
有时我也会得到这个:
找不到程序集'EntityFrameworkDynamicProxies-Drt.BusinessLayer.Entities,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'.
似乎将实体输出/反序列化时出错.由于它们是我的Web角色的2个实例,因此instance1可能会将一些实体对象放在缓存中,而instance2可能会将它们取出.我期待这个工作,但我不确定为什么我得到这个错误....
有人可以帮忙/建议吗?
尝试通过"导入数据层应用程序"向导将(已知良好).bacpac文件还原到新的SQL Server 2014(Express)实例时,我收到以下错误消息:
===================================
无法连接到目标服务器.(Microsoft.Data.Tools.Schema.Sql)
课程地点:
位于Microsoft.Data.Tools的Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment..ctor(SqlDeploymentConstructor构造函数)中的Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentEndpointServer.OnInit(ErrorManager错误,String targetDBName) Microsoft.SqlServer.Dac.DeployOperation上的Microsoft.SqlServer.Dac.DacServices.CreatePackageToDatabaseDeployment(String connectionString,IPackageSource packageSource,String targetDatabaseName,DacAzureDatabaseSpecification creationDefaults,DacDeployOptions options,ErrorManager errorManager)中的.Schema.Sql.Deployment.SqlDeploymentConstructor.ConstructServiceImplementation(). <> c__DisplayClass3.<> c__DisplayClass5.b__1(),位于Microsoft.SDataServer.DacloyOperation的Microsoft.Data.Tools.Schema.Sql.Dac.OperationLogger.Capture(Action action).<> c__DisplayClass3.b__0(对象操作,CancellationToken在Microsoft.SqlServer.Dac.ReportMe的Microsoft.SqlServer.Dac.Operation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)处.Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation上的Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)中的ssageOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context). Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)中的Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context)
该错误具体没有意义,因为它成功创建了数据库,如此处所报告(并手动确认).它只是不导入数据.

谷歌搜索没有发现任何东西.还有其他人碰到这个吗?任何解决方法?放弃并回到2012年?
根据这个问题,让Resharper的测试运行器识别茉莉花测试脚本中的脚本依赖性的方法是将它们包含在doc注释中,如下所示:
// include external files like so:
/// <reference path="/path/to/external-file.js" />
// than write your testing suite as usual:
describe('a silly suite', function() {
it('should test something is happening', function() {
expect(something).toBe('happening');
});
});
Run Code Online (Sandbox Code Playgroud)
这很好,但我正在用TypeScript编写我的茉莉花测试,测试看起来有点像:
///<reference path="../../../Scripts/typings/jasmine/jasmine.d.ts"/>
///<reference path="../../../Scripts/typings/sinon/sinon.d.ts"/>
///<reference path="../../../Scripts/Payboard/Models.ts"/>
///<reference path="../EventReferences.ts"/>
describe('Payboard.Events', () => {
var server: SinonFakeServer;
beforeEach(() => {
Payboard.Events.setApiKey('apikey');
server = sinon.fakeServer.create();
});
afterEach(() => {
server.restore();
});
describe('#getAbsoluteUrl', () => {
it('should prepend app.payboard.com to the relative url', () => {
var …Run Code Online (Sandbox Code Playgroud) 随着我们Azure网站的流量增加,我们看到越来越多的"任务被取消"错误.典型的跟踪可能如下所示:
Fatal web api error: Controller: CustomerUserEventsController;
Url: http://app.payboard.com/api/organizations/9ddf55d1-e0c1-4a8f-9327-eef38682e090/addcustomeruserevent?callback=jQuery210035782216349616647_1398442710964&cookieId=05be2755-dc0d-414d-b0d2-ea1986a929c3&customerId=&customerName=&customerUserId=&customerUserFirstName=&customerUserLastName=&eventName=hr-index-GET&_=1398442710965;
Error: A task was canceled. ( at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext())
Run Code Online (Sandbox Code Playgroud)
我们过去常常每天得一个; 它一直在逐渐增加,所以现在我们得到了几十个.
您会注意到堆栈跟踪中只有框架代码 - 我们的代码根本就没有.所以我对如何解决它有点不知所措.关于如何跟踪这些问题的任何建议?
此MSDN文章列出了改善实体框架性能的方法:
https://msdn.microsoft.com/zh-CN/data/hh949853.aspx
其建议(4.3)之一是将未映射对象的属性转换为局部变量,以便EF可以缓存其内部查询计划。
这主意听起来很不错。因此,我通过一个简单的查询对它进行了测试,该查询将查询中的间接属性引用的10,000次迭代与局部变量的性能进行了比较。像这样:
[Fact]
public void TestQueryCaching()
{
const int iterations = 1000;
var quote = new Quote();
using (var ctx = new CoreContext())
{
quote.QuoteId = ctx.Quotes.First().Id;
}
double indirect = 0;
double direct = 0;
10.Times(it =>
{
indirect += PerformCoreDbTest(iterations, "IndirectValue", (ctx, i) =>
{
var dbQuote = ctx.Quotes.First(x => x.Id == quote.QuoteId);
}).TotalSeconds;
direct += PerformCoreDbTest(iterations, "DirectValue", (ctx, i) =>
{
var quoteId = quote.QuoteId;
var dbQuote = ctx.Quotes.First(x => x.Id == quoteId);
}).TotalSeconds;
}); …Run Code Online (Sandbox Code Playgroud) azure ×3
c# ×2
angularjs ×1
async-await ×1
asynchronous ×1
css ×1
jasmine ×1
javascript ×1
jquery ×1
layout ×1
mvvm ×1
nosql ×1
performance ×1
resharper ×1
signalr ×1
silverlight ×1
sql-server ×1
typescript ×1