问题列表 - 第4084页

使用protobuf-net的C#项目中的协议缓冲区 - 代码生成的最佳实践

我正在尝试使用protobuf-net在C#项目中使用protobuf,并且想知道将这个组织到Visual Studio项目结构中的最佳方法是什么.

当手动使用protogen工具生成C#代码时,生活似乎很容易,但感觉不对.

我希望.proto文件被认为是主要的源代码文件,生成C#文件作为副产品,但在C#编译器参与之前.

选项似乎是:

  1. 原型工具的自定义工具(虽然我看不到从哪里开始)
  2. 预构建步骤(调用protogen或批处理文件)

我一直在努力与2)上面,因为它一直给我"系统找不到指定的文件",除非我使用绝对路径(我不喜欢强制项目明确定位).

还有一个约定吗?


编辑: 基于@ jon的评论,我重新尝试了预构建步骤方法,并使用Google的地址簿示例使用了这个(protogen的位置现在硬编码):

c:\bin\protobuf\protogen "-i:$(ProjectDir)AddressBook.proto" 
       "-o:$(ProjectDir)AddressBook.cs" -t:c:\bin\protobuf\csharp.xslt
Run Code Online (Sandbox Code Playgroud)

编辑2: 考虑到@ jon的建议,如果它们没有改变就不通过处理.proto文件来最小化构建时间,我已经敲了一个基本工具来检查我(这可能会扩展到一个完整的自定义构建工具):

using System;
using System.Diagnostics;
using System.IO;

namespace PreBuildChecker
{
    public class Checker
    {
        static int Main(string[] args)
        {
            try
            {
                Check(args);
                return 0;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return 1;
            }
        }

        public static void Check(string[] args)
        {
            if (args.Length < 3)
            {
                throw new ArgumentException(
                    "Command line must be supplied with source, target and command-line [plus options]");
            }

            string …
Run Code Online (Sandbox Code Playgroud)

c# protocol-buffers protobuf-net visual-studio

16
推荐指数
5
解决办法
2万
查看次数

Web服务器如何工作?

我是一名.NET开发人员,我在C#工作了将近3.5年.我想了解网络服务器的工作原理,我不是指65,000英尺的概述.我想了解Web服务器的内部工作原理.

有哪些好资源可以学习Web服务器的工作原理?

webserver

16
推荐指数
2
解决办法
9148
查看次数

SQL Server日志文件混淆

我正在寻找SQL Server日志文件的一些清晰度.我有一个较大的数据库(2GB),最近没有因任何原因备份.数据库的日志文件增长到大约11GB,根据我的理解,这是数据库中发生的所有事务和语句.

我的问题:

是什么原因导致数据库日志文件被刷新?"冲洗"究竟意味着什么?在大型日志文件上执行文件收缩或数据库收缩会产生什么后果?

sql sql-server flush

4
推荐指数
1
解决办法
6512
查看次数

在TFS(Team Foundation Server)中进行分支的任何好的推荐/资源?

分支似乎总是很复杂.技术上不是,但是有一些真正的决策/计划可以提出适当的分支策略.

我知道这个 TFS分支指南

您推荐或用于分支和合并的任何其他资源或指南.

分享您在这方面的经验非常感谢.

tfs branch

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

编写编程语言的建议?

您可以为想要编写编程或脚本语言的人提供哪些提示?我并不担心如何编程或设计编译器,而是如何使用工具和代码生成器快速开发编译器.

上次我尝试用c ++编写它,状态和语法几乎和写实际逻辑一样长.我知道以下工具会有所帮助.

我以为我可以生成c ++代码并使用gcc编译.使用上面的工具,您估计编写程序或脚本语言需要多长时间?


早在学习编写编译器时就已反复询问过这个问题的变化.以下是该主题的SO资源的不完整列表.

compiler-construction interpreter programming-languages scripting-language

16
推荐指数
2
解决办法
4702
查看次数

你如何设计一个继承类?

我听说它说"设计继承"是"困难的",但我从来没有发现过这种情况.任何人(以及任何人,我的意思是Jon Skeet)都可以解释为什么这可能是困难的,陷阱/障碍/问题是什么,为什么凡人的程序员不应该尝试它,只是让他们的课程密封以保护无辜者?

好吧,我嘲笑后者 - 但我很想知道是否有人(包括Jon)真的遇到"继承设计"的困难.我真的从来没有把它视为一个问题,但也许我忽略了一些我认为理所当然的东西 - 或者在没有意识到的情况下搞砸了什么!

编辑:感谢到目前为止所有优秀的答案.我相信共识是​​,对于典型的应用程序类(WinForm子类,一次性实用程序类等),不需要考虑任何类型的重用,更不用说通过继承重用了,而对于库类,考虑重用是至关重要的.通过设计中的继承.

我并没有真的想到一个WinForm类来实现一个GUI对话框,作为一个有人可能会重用的类 - 我有点认为它是一个一次性的对象.但从技术上讲,它是一个类,有人可能会继承它 - 但它不太可能.

很多大规模的发展,我所做的一直是基础库和框架类库,因此设计为通过继承的重用是至关重要的-我只是从来没有认为这是"难",它只是.;-)

但我也从未考虑过与WinForms等常见应用任务的"一次性"类别相比.

当然,欢迎设计继承的更多提示和陷阱; 我也试着投入一些.

language-agnostic inheritance

12
推荐指数
2
解决办法
2099
查看次数

Win Form Calculator:按钮0 - 9执行重复任务的事件处理程序

我有一个win表单UI,看起来像一个典型的计算器.当然,我不想为每个数字按钮(0-9)重写相同的逻辑.我希望能够知道单击了哪个按钮,因此我可以根据它的文本属性执行计算.我应该只创建一个接受按钮对象作为参数的方法来促进代码重用吗?有没有更好的办法?我想听听Win Form应用程序开发人员如何处理这个问题.我试图让我的逻辑脱离UI.

谢谢!

c# calculator winforms

4
推荐指数
1
解决办法
3313
查看次数

.NET中的序列号(注册密钥)算法

有一些关于IP安全等的及时帖子,但我找不到专门针对算法的帖子.在我目前的一个项目中,我们决定采用离线注册密钥系统的路线.

我想我们最终的用户群大部分都是诚实的,所以我认为我们没有太多担心.另一方面,如果没有大量的汗水和眼泪,我宁愿不让休闲饼干获得访问权限.

那么,如何生成(和验证)密钥有哪些选择?硬件键控很可能是因为安装模型是从Intranet服务器上的samba共享运行的.此外,密钥应该多长时间?

其次,验证算法被反射出来的危险有多大,即使它被混淆了?改为在非托管代码中编写算法会更好吗?

.net security algorithm licensing software-distribution

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

如何确定使用Spring Security访问URL所需的角色?

我正在使用Spring Security来保护webapp.URL的安全性如下:

<security:http entry-point-ref="authenticationEntryPoint">
  <security:intercept-url pattern="/" access="ROLE_ANONYMOUS" />
  <security:intercept-url pattern="/assets/**/*" access="ROLE_ANONYMOUS" />
  ...
  <security:intercept-url pattern="/**" access="ROLE_USER" />
  <security:anonymous granted-authority="ROLE_ANONYMOUS" />
</security:http>
Run Code Online (Sandbox Code Playgroud)

我有一个过滤器,在某些情况下需要将用户重定向到特殊页面.但是,该页面需要资产目录中的图像和CSS文件,遗憾的是,这些文件也会被重定向到该特殊页面.我不希望过滤器手动检查每个URL模式,因为我的实际URL配置要长得多,而且我还想允许其他页面.

有没有办法从过滤器中确定给定页面需要哪些角色?如果不需要ROLE_ANONYMOUS,我可以选择不重定向.

java spring spring-mvc spring-security

5
推荐指数
1
解决办法
3058
查看次数

Hibernate就像C++层一样

使用带有C++的数据库是一个真正的混乱,当我转移到Java时能够使用统一的系统来抽象整个层(也就是Hibernate),这是令人耳目一新的.

DB有几个C++抽象层,但它们通常是特定于供应商的,只有一个包含真实C API的薄层.有没有人遇到过类似于hibernate for C++的东西,或者知道正在查看这个问题域的组或开源项目.

c++ persistence hibernate freeze-thaw

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