我的开发团队在非常基础的层面上使用源安全.我们正在进入一些更高级和更长的开发周期,我不禁想到,为了管理变更而不使用分支和合并将很快咬住我们.
为了说服你的团队转向像SVN这样的更好的解决方案,你认为哪些论据最有用?
您使用了哪些程序来弥合功能差距,以便团队不会错过ide sources的安全集成?
或者我应该接受sourceafe并尝试将更好的做法纳入其中?
Asp.net 5有一个新的配置系统,它利用json文件进行设置.您必须.AddJsonFile(string fileName)
使用新Configuration
类的方法手动选择要加载的json文件作为配置.
同时,在Azure土地上,我们有一个漂亮的CloudConfigurationManager
类,它应该处理来自Azure网站设置的抓取设置,或者web.config
如果找不到Azure设置则处于活动状态.
但这两件事如何协同工作呢?我找不到任何文档.我想在Azure中管理我的设置以进行生产,但是使用config.json
本地调试.我在查找任何示例或文档方面遇到了很多麻烦.
班级:
public class SOPProcess : ISOPProcess
{
public virtual Guid Id { get; set; }
public virtual SOP SOP { get; set; }
public virtual ProcessType Type { get; set; }
public virtual SOPProcessInput Input { get; set; }
public virtual SOPProcessOutput Output { get; set; }
public virtual SOPProcessMeasures Measures { get; set; }
public virtual decimal YieldFactor { get; set; }
public virtual SOPProcess PreviousProcess { get; set; }
public virtual SOPProcess NextProcess { get; set; }
} …
Run Code Online (Sandbox Code Playgroud) 似乎快速打开和关闭sqlconnections涉及很多开销.我应该坚持连接(一个,每个客户端,每个数据库),或者在我需要时继续声明一个新的sqlconnection对象,并确保我自己清理?
你做了什么?什么运作良好,效果不佳?
我有一个非常复杂的对象图,我想一举加载.
样本具有Daylog,其具有Daylog测试,其具有Daylog结果
Daylog测试具有Testkeys,Daylog结果具有Resultkeys,TestKeys具有Resultkeys.
我正在使用QueryOver API和Future将这些全部作为一个查询运行,NHibernate应该需要实例化整个图形IS所需的所有数据,并由NHProf进行验证.
public static IList<Daylog> DatablockLoad(Isession sess,
ICollection<int> ids)
{
var daylogQuery = sess.QueryOver<Daylog>()
.WhereRestrictionOn(dl => dl.DaylogID).IsIn(ids.ToArray())
.Fetch(dl => dl.Tests).Eager
.TransformUsing(Transformers.DistinctRootEntity)
.Future<Daylog>();
sess.QueryOver<DaylogTest>()
.WhereRestrictionOn(dlt =>
dlt.Daylog.DaylogID).IsIn(ids.ToArray())
.Fetch(dlt => dlt.Results).Eager
.Inner.JoinQueryOver<TestKey>(dlt => dlt.TestKey)
.Fetch(dlt => dlt.TestKey).Eager
.Inner.JoinQueryOver<ResultKey>(tk => tk.Results)
.Fetch(dlt => dlt.TestKey.Results).Eager
.Future<DaylogTest>();
sess.QueryOver<DaylogResult>()
.Inner.JoinQueryOver(dlr => dlr.DaylogTest)
.WhereRestrictionOn(dlt =>
dlt.Daylog.DaylogID).IsIn(ids.ToArray())
.Fetch(dlr => dlr.ResultKey).Eager
.Fetch(dlr => dlr.History).Eager
.Future<DaylogResult>();
var daylogs = daylogQuery.ToList();
return daylogs;
}
Run Code Online (Sandbox Code Playgroud)
但是,我仍然最终使用代理来表示Testkey和ResultKey之间的关系,即使我特意加载了这种关系.
我认为整个查询可能代表对QueryOver API的理解不足,所以我想要任何和所有建议,但主要是,我想了解为什么我得到一个代理而不是后面的结果列表我试着得到daylogresult.resultkey.testkey.results.
有帮助吗?
我正在尝试设置一个路由服务,该服务将位于我的网络的DMZ中,并允许外部人员访问一些内部托管的WCF服务.我已经设置好所有工作,但是当我转发MEX服务时,它会将我们的外部客户端指向我们的内部地址,这显然是他们无法访问的.
微软似乎建议制作wsdl的副本,这可能会起作用,但是每次服务定义发生变化时都需要我制作wsdl的新副本,而这些副本经常发生,而且看起来有些过分.唯一需要改变的是mex消息中的地址.
<endpoint address="http://appsrv1:8781/ProcessManagementService/"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IProcessManagementService"
contract="IProcessManagementService" name="WSHttpBinding_IProcessManagementService" />
Run Code Online (Sandbox Code Playgroud)
好像使用了一个IDispatchMessageInspector
,我应该能够拦截mex消息并用外部服务器名称替换内部服务器名称,然后我只需要在需要添加或删除服务时触摸路由服务,而不是比每次我做出任何改变.
我对XML阅读器,编写器等没有太多经验,所以我正在寻找有关如何继续的一些指导.如果我可以将xml内容读入字符串,我可以执行替换操作来替换内部地址的外部地址,然后用我的修改版本替换回复的消息内容.我该如何去做,或者有更好的方法来修改WCF消息的内容?
编辑:所以这就是我到目前为止拼凑的东西.
public class EndpointReplacementInspector : IDispatchMessageInspector
{
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
return null;
}
public void BeforeSendReply(ref Message reply, object correlationState)
{
var ms = new MemoryStream();
var w = XmlWriter.Create(ms, new XmlWriterSettings { Indent = true, IndentChars = " ", OmitXmlDeclaration = true });
var bodyReader = reply.GetReaderAtBodyContents();
w.WriteStartElement("s", "Body", "http://schemas.xmlsoap.org/soap/envelope/");
while (bodyReader.NodeType != XmlNodeType.EndElement && bodyReader.LocalName != "Body" …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用一个WcfFacility
和IIS 来托管多个服务,我看到一些令人困惑的结果.
这是我的配置:
var baseUri = new Uri(HttpContext.Current.Request.Url.GetComponents(UriComponents.SchemeAndServer, UriFormat.Unescaped));
container.AddFacility<WcfFacility>(f => { f.CloseTimeout = TimeSpan.Zero; }).Register(
Component.For<IAttributeService>()
.ImplementedBy<AttributeService>()
.AsWcfService(
new DefaultServiceModel()
.Hosted()
.AddEndpoints(
WcfEndpoint.ForContract<IAttributeService>().BoundTo(new BasicHttpBinding()).At("Soap11"),
WcfEndpoint.ForContract<IAttributeService>().BoundTo(new WSHttpBinding()).At("Soap12")
)
.AddBaseAddresses(new Uri(baseUri, "AttributeService.svc"))
),
Component.For<ISessionService>()
.ImplementedBy<SessionService>()
.AsWcfService(
new DefaultServiceModel()
.Hosted()
.AddEndpoints(
WcfEndpoint.ForContract<ISessionService>().BoundTo(new BasicHttpBinding()).At("Soap11"),
WcfEndpoint.ForContract<ISessionService>().BoundTo(new WSHttpBinding()).At("Soap12")
)
.AddBaseAddresses(new Uri(baseUri, "SessionService.svc"))
),
Component.For<ISampleService>()
.ImplementedBy<SampleService>()
.AsWcfService(
new DefaultServiceModel()
.Hosted()
.AddEndpoints(
WcfEndpoint.ForContract<ISampleService>().BoundTo(new BasicHttpBinding()).At("Soap11"),
WcfEndpoint.ForContract<ISampleService>().BoundTo(new WSHttpBinding()).At("Soap12")
)
.AddBaseAddresses(new Uri(baseUri, "SampleService.svc"))
)
);
Run Code Online (Sandbox Code Playgroud)
当我去使用WCF测试客户端来检查时,似乎每个服务下可用的方法都是该服务和我之前所有服务的组合.例:
我做错了吗?你不能WcfFacility
多次添加,并在互联网上四处寻找,我似乎无法找到一个人在一个设施中托管多个服务的例子.
有任何想法吗?
我似乎找不到一个易于使用的.net本地方式来获取.net winforms上的Comboboxes来显示一个值并根据选择返回另一个值而不创建我自己的帮助类,知道winforms将要显示放在其中的对象上的ToString方法.
这就是我现在正在做的事情,非常一般.首先,创建辅助类.
Public Class ListItem
Public Value As Object
Public DisplayString As String
Public Sub New(ByVal NewValue As Object, ByVal NewDisplayString As String)
Value = NewValue
DisplayString = NewDisplayString
End Sub
Public Overrides Function ToString() As String
Return DisplayString
End Function
End Class
Run Code Online (Sandbox Code Playgroud)
然后,从集合或其他任何东西加载组合框.
For Each o as WhateverObject In CollectionIwantToaddItemsFrom
li = New ListItem(o.ValueToReturn, o.ValueToDisplay)
Me.ComboBox1.Items.Add(li)
Next
Run Code Online (Sandbox Code Playgroud)
最后,使用该对象
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.SelectedIndexChanged
if me.combobox1.selecteditem is nothing then exit sub
Dim …
Run Code Online (Sandbox Code Playgroud) 我正在使用json.net在IIS托管的restful服务中执行处理我的json反序列化.
首先,这是我正在尝试使用的对象.
[DataContract]
public class CreateSamplesRequest
{
[DataMember] public Guid SessionId { get; set; }
[DataMember] public SampleTemplateDTO Template { get; set; }
}
[DataContract]
public class SampleTemplateDTO
{
[DataMember] public int NumberOfSamples { get; set; }
[DataMember] public int CompanyId { get; set; }
[DataMember] public int SampleTypeId { get; set; }
[DataMember] public HmisDTO Hmis { get; set; }
[DataMember] public List<AttributeValueDTO> AttributeValues { get; set; }
}
[DataContract]
public class AttributeValueDTO
{
[DataMember] public int AttributeId { …
Run Code Online (Sandbox Code Playgroud) 有什么区别:
public class Worker
{
public static void Execute()
{
ExecuteInBackgroundThread().Wait();
}
private static Task ExecuteInBackgroundThread()
{
return Task.Run(() =>
{
// do some long running operation
});
}
}
Run Code Online (Sandbox Code Playgroud)
和
public class Worker
{
public static void Execute()
{
ExecuteInBackgroundThread().Wait();
}
private static async Task ExecuteInBackgroundThread()
{
await Task.Run(() =>
{
// do some long running operation
});
}
}
Run Code Online (Sandbox Code Playgroud)
我注意到Worker.Execute()
从UI线程调用我的Windows Phone应用程序的第二个版本被卡住了.
相反,使用第一个版本似乎一切正常.
ExecuteInBackgroundThread
实际返回的第二个版本是否Task<T>
可以等待?但如果情况并非如此,编译器是否应该提出错误说我们没有返回任何内容?
wcf ×3
.net ×2
nhibernate ×2
ado.net ×1
asp.net-core ×1
async-await ×1
c# ×1
json.net ×1
queryover ×1
sql ×1
svn ×1
wcf-rest ×1
wcffacility ×1
winforms ×1
xml ×1