小编jth*_*h41的帖子

根据参数使用不同来源的Gulp任务

我想用gulp完成一些简单的事情.我想编写一个通用方法,将文件从特定的源目录移动到输出目录.

假装我们有类似的东西

var args = require('yargs');
function transform-move-jsx-Development() 
{
  gulp.src(config.sourceJSX)
  .pipe(react, browserify, etc....)
  .pipe(gulp.dest(config.output_development));
};

function transform-move-jsx-Production() 
{
  gulp.src(config.sourceJSX)
  .pipe(react, browserify, etc....)
  .pipe(gulp.dest(config.output_production));
};

gulp.task('transform-move-jsx-Development', transform-move-jsx-Development);
gulp.task('transform-move-jsx-Production', transform-move-jsx-Production);

gulp.task('prod', [transform-move-jsx-Production]);
gulp.task('dev', ['transform-move-jsx-Development']);
Run Code Online (Sandbox Code Playgroud)

这两个任务:transform-move-jsx-Production和transform-move-jsx-Development除了输出目录外是相同的.我想让它更干(不要重复自己).我应该能够制作一个可以使用yarg参数的方法吗?在下一个例子中,我假装我可以将路径作为arg传递

所以我尝试使用yargs这样的东西

var args = require('yargs');

function transform-move-jsx() 
{ 
    return gulp.src(config.sourceJSX)
    .pipe(gulp.dest(args.outputDirectory));
};

gulp.task('dev', ['transform-move-jsx']);
Run Code Online (Sandbox Code Playgroud)

但是现在这需要我在命令行中为gulp调用添加参数

gulp dev --"path to output, etc."
Run Code Online (Sandbox Code Playgroud)

这显然不太可维护,因为我们从dev gulp任务中调用越来越多的gulp任务.反之亦然,因为我们不需要知道实现细节,比如运行时输出目录结构gulp dev

我可以做这样的事情:

function transform-move-jsx(destination) 
{ 
    return gulp.src(config.sourceJSX)
    .pipe(gulp.dest(destination));
};

function transform-move-jsx-Development() 
{
    transform-move-jsx("./output/development/");
};

function transform-move-jsx-Production() 
{
    transform-move-jsx("./output/production/");
};

gulp.task('transform-move-jsx-Development',transform-move-jsx-Development);
gulp.task('transform-move-jsx-Production', transform-move-jsx-Production);

gulp.task('prod', …
Run Code Online (Sandbox Code Playgroud)

javascript dry gulp yargs

29
推荐指数
1
解决办法
5883
查看次数

如何禁用Quartz更新尝试?

我在用:

    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>1.8.0</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

当应用程序出现时,我一直得到:

2013-01-03 15:25:34 UpdateChecker [DEBUG] Checking for available updated 
                        version of Quartz...
2013-01-03 15:25:43 UpdateChecker [DEBUG] Quartz version update check failed:
                        java.io.IOException: Server returned HTTP response 
                        code: 503 for URL: long url here
Run Code Online (Sandbox Code Playgroud)

我怎样才能消除这些?(消息和尝试更新)

java quartz-scheduler

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

为什么我的解决方案中的一个项目大胆

在我的解决方案中,我有一个名称为粗体的项目.

在此输入图像描述

为什么ErrorHandlerLibrary大胆?

solution visual-studio-2013

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

使用字符串转换防止Null失败的最佳方法

_callReportCode = reader["Call Report Code"].ToString();
Run Code Online (Sandbox Code Playgroud)

我试图处理我调用ToString的对象为NULL的可能性.我将使用上面的语句与几个变量,我不想为每个变量做一个单独的try/catch ...什么是对字符串进行空检查的最佳方法.

其他数据类型我一直这样做:

int.TryParse(reader["Account Number"].ToString(), out _accountNumber);
Run Code Online (Sandbox Code Playgroud)

在这段代码中,"reader"指的是一个SqlDataReader,但对于这个问题并不重要.

c# sql string null parsing

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

几何对象的可视调试器

在处理代表几何对象的库时,Debugging目前看起来像这样:

在此输入图像描述

在这里,我在观看的局部变量Autos,Locals,WatchImmediate窗口.

由于我无法在脑海中想象物体的形状,我宁愿使用图形组件来表示这些物体.所以我开始创建一个Debugger Visualizer来绘制对象.我在这里的 bitbucket公共回购中有它.

现在我无法让它在我在解决方案中使用的控制台应用程序之外工作.我究竟做错了什么?

这是它工作时的样子:

在此输入图像描述

另外,如何以允许我一次查看多个对象的方式执行此操作.我意识到我真的想看到多个对象及其交互,而不仅仅是单个对象.(例如,寻找交叉路口等).

PS

有没有人在这样的地方看到调试器扩展?或者有任何关于如何修复现有的建议?

我以Visual Studio扩展的形式尝试过此操作,但也没有成功.有关详细信息,请参阅此问题.

c# vspackage vs-extensibility visual-studio-2012 geometry-class-library

10
推荐指数
1
解决办法
543
查看次数

定制,复杂,动态反射解决方案 - C#

我有很多我正在使用的自定义类,我将解释并发布示例.在解释他们所做的一切之后,我将尝试清楚地描述我的错误发生的条件.

首先,我使用PropertyGrid来显示几种不同类型对象的属性.因为PropertyGrid的默认绑定不是我想要的描述,我创建了一些自定义类,我将其称为"显示"类.这些Display类是通过传入一个对象然后创建属性来构造的,这些属性返回格式良好的字符串以及传入的真实对象的公共属性(在某些情况下是方法)的描述.

我将用一些简短的示例代码演示这个:

以下是我想在PropertyGrid中显示的对象示例:

public class Joint
{
   public Joint(...)
   {...}

   //properties
   public string Name { get; set;}
   public CustomObject CC { get; set;}
   public List<CustomObject> Custom List { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

字符串属性"Name"在PropertyGrid中显示正常但是CustomObject和List没有以对用户友好的方式显示.

所以我尝试通过编写这个类来创建一个解决方案:

public class DisplayJoint
{       

   private Joint _jnt;

   public DisplayJoint(Joint jnt)
   {
      _jnt = jnt;
   }

   //properties
   public string Name {  get { return _jnt.Name; } }

   [TypeConverterAttribute(typeof(ExpandableObjectConverter))]
   public DisplayCustomObject CC {  get { return new DisplayCustomObject(_jnt.CC); } }

   [TypeConverterAttribute(typeof(ExpandableObjectConverter))]
   public List<CustomObject> CustomList { get; set;}
} …
Run Code Online (Sandbox Code Playgroud)

c# reflection propertygrid winforms

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

将数据从Excel移动到SQL Server表

我有一个非常简单的excel表:

在此输入图像描述

我想将此数据放入SQL Server中的表中.我还想添加一个包含日期的字段.

做这个的最好方式是什么?

sql sql-server excel date

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

解析所有可能类型的不同架构维度输入

我正在为我们公司的产品编写一个库,它将采用我们的用户已经熟悉的任何类型的体系结构维度作为从字符串转换为double的函数的输入.以下是我们希望有效的输入类型列表.

Input| 意义| Output(英寸由双人代表)


12.5' | 12英尺和6英寸|150.0

11" | 11英寸|11.0

3/16"| 英寸的3个十六分之一|0.1875


在英尺和英寸以及英寸和十六分之间可以使用或不使用空格

11' 11"| 11英尺和11英寸|143.0

11'11"| 11英尺和11英寸|143.0


在英尺和英寸之间或英寸和十六分之间或两者之间可以使用或不使用破折号

12'-11"| 12英尺和11英寸|155.0

12' 11 3/16"| 12英尺和11英寸和3个十六分之二|155.1875

12' 11-1/2"| 12英尺和11英寸和8个十六分之二|155.5


在英尺和英寸以及英寸和十六分之间可以使用任意数量的空间

12' 11 1/2"| 12英尺和11英寸和8个十六分之二|155.5


还提供了另一种更简单的格式

121103| 12英尺和11英寸和3个十六分之二|155.1875


每种格式都可以使用否定词

-121103| 12英尺和11英寸和3个十六分之二|-155.1875

-11'11"| 11英尺和11英寸|-143.0

我们目前正在使用一组极其复杂的分支逻辑来尝试确定输入尝试模拟的格式......并且它并不适用于所有情况.

是否有一些可能的LINQ和正则表达式和巫术的组合,我们可以用来确定如何解析字符串?

另请注意,我们确实希望避免在表单上给出一个简单的组合框来选择输入格式类型.

c# regex linq string string-parsing

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

NoSQL数据库中的模式迁移脚本

我有一个活动项目,一直使用C#,实体框架和SQL Server.但是,随着NoSQL备选方案日益增加的可行性,我正在研究将项目转换为使用MongoDB的所有影响.

很明显,主要的过渡障碍是由于"无架构".什么暗示对于像C#语言的一个很好的总结发现这里的官方MongoDB的文档.以下是最有用的相关段落(粗体添加):

仅仅因为MongoDB是无模式的并不意味着您的代码可以处理无模式文档.最有可能的是,如果您使用的是静态类型语言(如C#或VB.NET),那么您的代码就不灵活,需要映射到已知的模式.

架构可以通过多种不同方式从应用程序的一个版本更改为下一个版本.

你如何处理这些取决于你自己.有两种不同的策略:编写升级脚本.在使用文档时逐步更新文档.最简单的策略是编写升级脚本.关系数据库(SQL Server,Oracle)和MongoDB之间的这种方法实际上没有区别.确定需要更改的文档并进行更新.

或者,在大多数关系数据库中不支持,是增量升级.我们的想法是,您的文档在使用时会得到更新.从未使用的文档永远不会更新.因此,您需要注意一些明确的陷阱.

首先,针对一半文档是版本1而一半文档是版本2的架构的查询可能会出错.例如,如果重命名元素,则查询将需要测试旧元素名称和新元素名称以获取所有结果.

其次,任何增量升级代码必须保留在代码库中,直到所有文档都已升级.例如,如果有文档的3个版本,[1,2和3]并且我们将升级代码从版本1移除到版本2,那么仍然作为版本1存在的任何文档都是不可升级的.

用于在SQL生态系统中管理/创建此类初始化或升级脚本的工具非常成熟(例如,实体框架迁移)

虽然在NoSQL世界中有类似的工具自制脚本可用于此类升级(尽管有些人认为不应该这样),但似乎对"何时"和"如何"运行这些升级脚本的共识较少.有些建议在部署之后.不幸的是,这种方法(当不与增量更新一起使用时)可能会在尝试读取C#模型已更改的现有数据时使应用程序处于不可用状态.

如果

" 最简单的策略是编写升级脚本. "

对于像C#这样的静态.NET语言来说,它是真正最简单/推荐的方法,是否存在用于这些语言的NoSql数据库中代码优先模式迁移的现有工具?或NoSql生态系统没有到那个成熟点?

如果您不同意MongoDB的建议,那么什么是更好的实现,您能否提供一些参考/示例,说明我在哪里可以看到正在使用的实现?

.net c# mongodb ef-migrations azure-cosmosdb

9
推荐指数
2
解决办法
2651
查看次数

用自定义文本创建错误,阻止在VB.NET中编译(C#中的#error)

你可以添加一个预处理器指令,在编译时在C#中导致错误,如下所示:

#error This will cause a divide by zero
Run Code Online (Sandbox Code Playgroud)

我怎样才能在vb.net中做到这一点

要么

是否有另一种方法可以创建错误,在Errorlist中提供自定义有用的信息.

TLDR: 我想在VB.NET中做类似这样的事情:

从C#项目拍摄的照片

c# vb.net error-handling visual-studio-2010 user-defined

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