小编ste*_*tej的帖子

PowerShell的推荐编码风格是什么?

如何编写PowerShell脚本是否有任何推荐的编码风格?

不是关于如何构造代码(有多少函数,如果使用模块,......).它是关于" 如何编写代码以使其可读 ".

在编程语言中有一些推荐的编码样式(缩进的内容,如何缩进 - 空格/制表符,在哪里创建新行,在哪里放括号,...),但我还没有看到任何关于PowerShell的建议.

我特别感兴趣的是:


如何写参数

function New-XYZItem
  ( [string] $ItemName
  , [scriptblock] $definition
  ) { ...
Run Code Online (Sandbox Code Playgroud)

(我看到它更像'V1'语法)

要么

function New-PSClass  {
  param([string] $ClassName
       ,[scriptblock] $definition
  )...
Run Code Online (Sandbox Code Playgroud)

或(为什么要添加空属性?)

function New-PSClass  {
  param([Parameter()][string] $ClassName
       ,[Parameter()][scriptblock] $definition
  )...
Run Code Online (Sandbox Code Playgroud)

或(我在Jaykul的代码中看到的其他格式)

function New-PSClass {
  param(
        [Parameter()]
        [string]
        $ClassName
        ,
        [Parameter()]
        [scriptblock]
        $definition
  )...
Run Code Online (Sandbox Code Playgroud)

要么 ...?


如何编写复杂的管道

Get-SomeData -param1 abc -param2 xyz | % {
    $temp1 = $_
    1..100 | % { …
Run Code Online (Sandbox Code Playgroud)

powershell coding-style

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

如何在Angular.js中推迟路由定义?

我已经配置了一些在登录之前可供所有用户使用的基本路由:

App.config(function ($routeProvider) {
    $routeProvider.
        when('/login', { templateUrl: 'views/login.html', controller: PageStartCtrl.Controller }).
        otherwise({ redirectTo: '/login' });
});
Run Code Online (Sandbox Code Playgroud)

所以用户唯一能做的就是登录.用户登录后,我想注册其他路由,如下所示:

$http
  .post('api/Users/Login', {   User: userName, Password: userPassword })
  .success(function (response : any) {
    App.config(function ($routeProvider) {
      $routeProvider
        .when('/dashboard', 
              { templateUrl: 'part/dashboard.html', 
              controller: DashboardCtrl.Controller });
  });
Run Code Online (Sandbox Code Playgroud)

但是,我想我应该只调用一次.config方法,因为$ routeProvider是一个对/ login route一无所知的全新实例.进一步的调试向我展示了在解析视图更改时使用$ resourceProvider的第一个实例.

问:以后如何注册路线?

路由和模板动态添加到$ routeProvider的解决方案可能有效,但是非常难看(涉及全局变量nastyGlobalReferenceToRouteProvider).

configuration dynamic url-routing deferred angularjs

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

Netduino和.NET Gadgeteer有什么区别?

我想学习.NET Microframework,发现有(尤其)Netduino与Arduino有某种兼容性.最近.NET Gadgeteer上市.有很多热情,所以它看起来像.NET Microframework的重要一步.

有可能以某种方式比较它们吗?我不确定哪些任务更好Netduino以及Gadgeteer的任务.或者他们实际上是完全不同的野兽?
我无法从主页上的信息中读到这些内容,因为主要是营销材料.

.net-micro-framework netduino .net-gadgeteer

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

如何将asp.net(mvc)服务器返回错误到jquery ajax调用被捕获的错误回调?

假设我的控制器中有一个通过jQuery AJAX调用调用的方法.我想删除一个用户.当一切顺利时,我返回新内容('ok')并退出方法.

发生错误时该怎么办?我想通过适当的状态代码来表明它,以便调用我的错误回调.为什么状态代码?在这里阅读: 如何使用ASP.NET MVC在jQuery AJAX调用中触发"错误"回调?

但是,该方法不起作用,因为IIS7返回自己的自定义错误消息的消息(错误请求).

除此之外还有另外两个:

  1. 它也必须与IIS6一起使用
  2. IE8不会返回"错误请求"字符串.内部错误回调属性request.responseTest为null.

错误回调可能如下所示:error:function(request){alert(request.responseText);}

ajax asp.net-mvc callback

26
推荐指数
1
解决办法
9698
查看次数

左连接条件

假设我有这些表

create table bug (
    id int primary key, 
    name varchar(20)
)
create table blocking (
    pk int primary key,
    id int, 
    name varchar(20)
)

insert into bug values (1, 'bad name')
insert into bug values (2, 'bad condition')
insert into bug values (3, 'about box')
insert into blocking values (0, 1, 'qa bug')
insert into blocking values (1, 1, 'doc bug')
insert into blocking values (2, 2, 'doc bug')
Run Code Online (Sandbox Code Playgroud)

我想在id列上加入表格,结果应该是这样的:

id          name                 blockingName
----------- -------------------- --------------------
1 …
Run Code Online (Sandbox Code Playgroud)

mysql sql t-sql left-join

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

如何通过命令行应用程序获取Firefox中打开的选项卡列表?

我在Firefox中打开了很多标签.在我关闭Firefox然后再次运行它之后,选项卡就在那里.没关系.

但是,Firefox有时会崩溃,我的标签会丢失.如何获取打开的选项卡并将列表备份到某个文件?

(使用文件中的选项卡,我也可以使用Git,SVN或其他任何内容来存储它们,并可选择找到我在浏览器中看到的但不记得它是什么的链接.)

到目前为止我得到了什么:

我能够获得一些URL,但这似乎不是我在Firefox中看到的:

$c = ((gc c:\Users\..\AppData\Roaming\Mozilla\Firefox\Profiles\xfvj8vd5.default\sessionstore.js ) -join '')
$sess = [Jayrock.Json.Conversion.JsonConvert]::Import( $c.trim('()') )
$sess.windows[0].tabs |
  % { $_.entries } |
  % { $_.url } |
  Select-Object -Unique
Run Code Online (Sandbox Code Playgroud)

请不要告诉我"使用这个插件或那个插件".我真的很想按照我的描述去做.

powershell firefox console-application

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

.NET中的绿色线程

在Erlang中引入了绿色线程,并且可能所有基于它的语言都知道它们,也在go(gorutines)中.然后afaik他们被除锈.

我的问题:

  • 如何在.NET中实现绿色线程?是否有一些警告阻止当前的.NET运行时实现它们?
  • 它在性能方面甚至有意义吗?我们有相当轻量级的任务,在(接近)未来我们甚至会有ValueType Task(更适合某些场景)......

.net clr concurrency multithreading

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

Azure for Owin/IIS应用程序的性能不佳

我们测量了一些执行测试,我注意到CPU在内核模式下运行了很多时间.我想知道为什么会这样.

应用程序:它是经典的Azure云服务Web角色,其中Owin正在IIS下监听,而Owin本身只提供缓存在内存中的静态文件(因此应该只有一点性能损失,而且每个都应该非常快).内容将复制await stream.CopyToAsync(response.Body)到输出流.

测试本身在加特林看起来像这样:

val openLoginSet = exec(http("ROOT")
      .get("/")
      .headers(Headers105Test2.headers_0)
      .resources(
        http("MED: arrow-down-small.png").get(uriIconAssets + "/arrow-down-small.png").headers(Headers105Test2.headers_1),
        http("MED: arrow-up-small.png").get(uriIconAssets + "/arrow-up-small.png").headers(Headers105Test2.headers_1),
        http("MED: close-medium.png").get(uriIconAssets + "/close-medium.png").headers(Headers105Test2.headers_1),
        http("MED: decline-medium.png").get(uriIconAssets + "/decline-medium.png").headers(Headers105Test2.headers_1),
        http("MED: help-medium.png").get(uriIconAssets + "/help-medium.png").headers(Headers105Test2.headers_1),
        http("MED: submit-medium.png").get(uriIconAssets + "/submit-medium.png").headers(Headers105Test2.headers_1),
        http("MED: delete-medium.png").get(uriIconAssets + "/delete-medium.png").headers(Headers105Test2.headers_1),
        http("MED: en-us.js").get("/en-us.js").headers(Headers105Test2.headers_8),
        http("MED: cloud_logo_big.png").get("/assets/cloud_logo_big.png").headers(Headers105Test2.headers_1),
        http("MED: favicon.ico").get("/favicon.ico").headers(Headers105Test2.headers_0))

val httpProtocol = http
  .baseURL("https://myurl.com")
  .inferHtmlResources()

val openLoginSenario = scenario("OpenOnly").exec(repeat(400, "n") {
    exec(openLoginSet).pause(3,6)
})

setUp(openLoginSenario.inject(rampUsers(150) over (3 minutes)))
  .protocols(httpProtocol)
  .maxDuration(3 minutes)
Run Code Online (Sandbox Code Playgroud)

(我将测试缩短为运行3分钟只是为了捕获这里显示的数据)有3台计算机运行此gatling测试,每个计算机最多150个并发线程,总共450个线程.

我看到内核中运行的代码很多,而W3wp进程并没有占用大部分CPU:

测试刚刚启动时捕获的CPU(添加新线程时cpu正在上升):

测试刚刚开始

当测试几乎在结束之前捕获CPU:

在测试结束之前

内核模式看起来很糟糕,我不确定是什么原因造成的.应该几乎没有涉及锁.当阅读其他可能导致高内核模式的内容时,我发现DPC可能会导致它.所以我也捕获了一些DPC数据,但我不确定什么是正常的,什么不是.无论如何,具有DPC最大时间的图表也包括在sshot中.

vmbus.sys从所有DPC中获取最重要的时间.这意味着Azure实例不是任何裸机(并不令人惊讶),并且该实例与其他实例共享它的计算能力.据我了解,vmbus.sys负责网卡本身与托管的HyperV实例之间的通信.可能在HyperV中运行是低性能的主要原因?

我想知道在哪里查看,以及如何在我的情况下找出导致内核模式的原因.


更多数据:

测试开始时的部分DPC数据(在30秒内拍摄):

Total …
Run Code Online (Sandbox Code Playgroud)

c# performance cpu-usage azure

15
推荐指数
1
解决办法
397
查看次数

函数中使用的$ _变量为空(PowerShell)

有一个问题在这里;)

我有这个功能:

function Set-DbFile {
    param(
        [Parameter(ValueFromPipeline=$true)]
        [System.IO.FileInfo[]]
        $InputObject,
        [Parameter(ValueFromPipelineByPropertyName=$true)]
        [scriptblock]
        $Properties
    )
    process {
        $InputObject | % { 
            Write-Host `nInside. Storing $_.Name
            $props = & $Properties
            Write-Host '  properties for the file are: ' -nonew
            write-Host ($props.GetEnumerator()| %{"{0}-{1}" -f $_.key,$_.Value})
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

看看$Properties.应对每个文件进行评估,然后进一步处理文件和属性.

示例如何使用它可能是:

Get-ChildItem c:\windows |
    ? { !$_.PsIsContainer } |
    Set-DbFile -prop { 
        Write-Host Creating properties for $_.FullName
        @{Name=$_.Name } # any other properties based on the file
    }
Run Code Online (Sandbox Code Playgroud)

当我将函数复制并粘贴Set-dbFile到命令行并运行示例代码段时,一切都很好.

但是,当我将函数存储在模块中,导入它并运行该示例时,该$_ …

variables powershell scope powershell-module

13
推荐指数
2
解决办法
2942
查看次数

什么是html5画布的不寻常和创造性用法

来自html5的Canvas是不久前推出的.目前它(几乎)只用于演示它有多酷 - 它主要与绘画,游戏和图表有关.其中许多都可以在Canvas演示中找到.

画布的创造性/异常性如何?

一些例子:

html html5 canvas

11
推荐指数
1
解决办法
3594
查看次数