小编tom*_*ich的帖子

我如何说服我的团队放弃sourceafe并转移到SVN?

我的开发团队在非常基础的层面上使用源安全.我们正在进入一些更高级和更长的开发周期,我不禁想到,为了管理变更而不使用分支和合并将很快咬住我们.

为了说服你的团队转向像SVN这样的更好的解决方案,你认为哪些论据最有用?

您使用了哪些程序来弥合功能差距,以便团队不会错过ide sources的安全集成?

或者我应该接受sourceafe并尝试将更好的做法纳入其中?

svn version-control visual-sourcesafe visual-studio

64
推荐指数
7
解决办法
6867
查看次数

我们如何在asp.net 5 JSON配置中使用CloudConfigurationManager?

Asp.net 5有一个新的配置系统,它利用json文件进行设置.您必须.AddJsonFile(string fileName)使用新Configuration类的方法手动选择要加载的json文件作为配置.

同时,在Azure土地上,我们有一个漂亮的CloudConfigurationManager类,它应该处理来自Azure网站设置的抓取设置,或者web.config如果找不到Azure设置则处于活动状态.

但这两件事如何协同工作呢?我找不到任何文档.我想在Azure中管理我的设置以进行生产,但是使用config.json本地调试.我在查找任何示例或文档方面遇到了很多麻烦.

azure-web-sites asp.net-core

16
推荐指数
1
解决办法
5088
查看次数

Nhibernate Conformist Mapping"无法确定类型......"

班级:

    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)

nhibernate nhibernate-mapping

13
推荐指数
1
解决办法
4752
查看次数

我应该在数据访问层中保留sqlconnection吗?

似乎快速打开和关闭sqlconnections涉及很多开销.我应该坚持连接(一个,每个客户端,每个数据库),或者在我需要时继续声明一个新的sqlconnection对象,并确保我自己清理?

你做了什么?什么运作良好,效果不佳?

.net sql ado.net

8
推荐指数
2
解决办法
3361
查看次数

NHibernate Eager使用Queryover API加载复杂的对象图

我有一个非常复杂的对象图,我想一举加载.

样本具有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.

有帮助吗?

nhibernate queryover

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

替换WCF消息的内容

我正在尝试设置一个路由服务,该服务将位于我的网络的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)

xml wcf

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

如何使用一个WcfFacility托管多个服务

我正在尝试使用一个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测试客户端来检查时,似乎每个服务下可用的方法都是该服务和我之前所有服务的组合.例: 查看WCF测试客户端中的服务

我做错了吗?你不能WcfFacility多次添加,并在互联网上四处寻找,我似乎无法找到一个人在一个设施中托管多个服务的例子.

有任何想法吗?

wcf castle-windsor wcffacility

3
推荐指数
1
解决办法
2193
查看次数

在.net组合框上显示一个值并存储另一个值的最佳方法是什么?

我似乎找不到一个易于使用的.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)

.net winforms

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

Json.net无法反序列化复杂类型列表

我正在使用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)

wcf json.net wcf-rest

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

等待C#中的后台线程

有什么区别:

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>可以等待?但如果情况并非如此,编译器是否应该提出错误说我们没有返回任何内容?

c# multithreading async-await

0
推荐指数
1
解决办法
564
查看次数