小编Jam*_*ack的帖子

什么时候应该为.NET 4 Framework设计新的.NET项目

我准备开始一个新的短期合同(1-2个月),涉及通过将Access应用程序移动到ASP.NET和SQL Server来替换它.

我只负责ASP部分并将其连接到数据库.

唯一的要求是我使用的任何技术在该领域都比较熟知,因此如果他们需要让其他人在其上工作,那么这不是专业知识.

所以,我可以在Rails或ASP.NET中做到这一点,但是,什么时候开发应该针对.NET 4 Framework,因为有很多变化可能会有利于使用.

或者,即使它可能有用,何时更好地忽略新功能并保留旧版本的.NET?

我假设硬件不是限制,因为许多计算机将无法运行.NET 4 Framework,但这对托管公司来说是个问题,因为他们可以找到托管公司来支持应用程序的任何框架是专为.如果Rails最有意义,因为他们希望快速编写应用程序,但让它可靠,那么托管公司需要支持它,或者他们使用不同的应用程序.

该公司没有使用托管公司,他们需要找到一个,所以没有一个关系可能是一个问题.

更新:我担心的部分原因是最初应用程序不需要javascript,但第2阶段将使其更具交互性,因为某些客户端将不允许在其计算机上使用javascript.为了限制开发人员必须知道多少javascript,有一些框架可以很好地适应浏览器和情况,这就是为什么我也在考虑RoR以及.NET 4中似乎有变化的事实.这可能对此有所帮助.

architecture asp.net ruby-on-rails .net-4.0

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

当文本框更改时,如何将javascript事件处理程序绑定到Ajax Control Toolkit组合框

我需要一个用于ASP.NET项目的组合框,所以我决定使用Ajax Control Toolkit组合框(http://www.asp.net/AJAX/AjaxControlToolkit/Samples/ComboBox/ComboBox.aspx).

我不想使用回发,因为我不想重新加载页面,但我需要知道文本框中的文本何时更改,以便我可以调用服务器来保留新的列表项.

我很好奇如何将onchange或onblur事件绑定到此组合框使用的输入框.

这是我的asp.net页面:

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>

<cc1:ComboBox ID="PlantDropDown" runat="server" OnInit="PlantDropDown_Init" DropDownStyle="DropDown" 
             AutoCompleteMode="SuggestAppend" 
            ItemInsertLocation="OrdinalText" AutoPostBack="false">


                </cc1:ComboBox>
Run Code Online (Sandbox Code Playgroud)

更新:我尝试使用该建议,我收到此错误:

$find("PlantDropDown") is null
[Break on this error] $find('PlantDropDown').add_propertyChanged(function(sender, e) {\r\n
Run Code Online (Sandbox Code Playgroud)

我在javascript方面使用jQuery,顺便说一句,如果有帮助的话.

最后更新:感谢crescentfresh的帮助,我得到了它的工作,最后我在.aspx文件中有这个:

    <input type="hidden" id="PlantDropDownID" value="<%= PlantDropDown.ClientID %>" />
Run Code Online (Sandbox Code Playgroud)

这是在我的javascript文件中,因为我不在我的.aspx文件中推送javascript:

elem = document.getElementById('PlantDropDownID');
$find(elem.value).add_propertyChanged(function(sender, e) {
    if (e.get_propertyName() == 'selectedIndex') {
        var newValue = sender.get_textBoxControl().value;
    }
})
Run Code Online (Sandbox Code Playgroud)

javascript jquery combobox ajaxcontroltoolkit javascript-events

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

继承类型时获取"值未定义"

我无法看到我做错了什么,因为文件的顺序正确.在这种情况下,它是:

  1. BaseDAO.fs
  2. CreateDatabase.fs

它们位于相同的命名空间中,但即使我将它们放在不同的模块中,并CreateDatabase以相同的错误打开模块.

错误是:

Error   1   The value or constructor 'execNonQuery' is not defined  
Run Code Online (Sandbox Code Playgroud)

我试图继承BaseDAO并使用一个对几个文件通用的成员,我不明白为什么我得到上面的错误.

namespace RestaurantServiceDAO

open MySql.Data.MySqlClient

type BaseDAO() =
    let connString = @"Server=localhost;Database=mysql;Uid=root;Pwd=$$$$;"
    let conn = new  MySqlConnection(connString)

    member self.execNonQuery(sqlStr) =
        conn.Open()
        let comm = new MySqlCommand(sqlStr, conn, CommandTimeout = 10)
        comm.ExecuteNonQuery |> ignore
        comm.Dispose |> ignore
Run Code Online (Sandbox Code Playgroud)

继承的类型在这里,并execNonQuery没有定义.

namespace RestaurantServiceDAO

open MySql.Data.MySqlClient

type CreateDatabase() =
    inherit BaseDAO()

    let createRestaurantTable conn =
        execNonQuery "CREATE TABLE restaurant(id INT NOT NULL AUTO_INCREMENT PRIMARY …
Run Code Online (Sandbox Code Playgroud)

inheritance f#

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

解析从JTidy返回的DOM以查找特定的HTML元素

我一直在玩这段代码,我不确定我做错了什么.

我得到一个url,用JTidy清理它,因为它格式不正确,然后我需要找到一个特定的隐藏输入字段(input type="hidden" name="mytarget" value="313"),所以我知道name属性中的值.

我把它打印出整个html页面,当它清理它时,我就可以将我正在寻找的内容与文档中的内容进行比较.

我的问题是试图确定找到这个的最佳方式,关于我的位置System.out << it.

    def http = new HTTPBuilder( url )
    http.request(GET,TEXT) { req ->
        response.success = { resp, reader ->
            assert resp.status == 200
            def tidy = new Tidy()
            def node = tidy.parse(reader, System.out)
            def doc = tidy.parseDOM(reader, null).documentElement
            def nodes = node.last.last
            nodes.each{System.out << it}
        }
        response.failure = { resp -> println resp.statusLine }
    }
Run Code Online (Sandbox Code Playgroud)

groovy dom jtidy html-parsing

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

在Scala 2.10中如何将两个通用列表中的每个元素一起添加

我试图将一些java数学类重写为Scala,但我遇到了一个奇怪的问题.

class Polynomials[@specialized T](val coefficients:List[T]) {
  def +(operand:Polynomials[T]):Polynomials[T] = {
    return new Polynomials[T](coefficients = 
      (operand.coefficients, this.coefficients).zipped.map(_ + _))
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题可能类似于这个问题:如何为所有数字类型创建一个通用类?,但当我删除@specialized我得到相同的错误.

type mismatch; found : T required: String

地图函数中的第二个下划线突出显示错误,但我不认为这是问题所在.

我想做的是:

Polynomial(1, 2, 3) + Polynomial(2, 3, 4) 返回 Polynomial(3, 5, 7)

Polynomial(1, 2, 3, 5) + Polynomial(2, 3, 4)返回Polynomial(3, 5, 7, 5)

对于第二个,我可能必须用零元素填充较短的列表以使其工作,但这是我在此功能上的目标.

那么,我怎样才能编译这个函数,所以我可以测试一下呢?

scala

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

C中的内存泄漏

我是C初学者,我正在编写一个非常简单的链表.我想知道以下代码中是否存在内存泄漏:

void removeListEntry(struct tableEntry *symp, struct tableEntry *previous) {
  if (symp->next = 0){
    symbolList.tail = previous;
    previous->next =0;
  } else {
    previous->next = symp->next;
    symp->next = 0;
  }
}
Run Code Online (Sandbox Code Playgroud)

我很确定如果指针symp没有存储在另一个变量中,则无法访问指针指向的列表条目,因此我将发生内存泄漏.在C中,我们使用malloc()函数为数据结构分配内存空间,我记得使用new关键字在C++中"动态"分配内存.使用malloc()和使用new分配内存有什么区别?我的代码中确实存在内存泄漏吗?

c memory pointers

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

如何使用while..do循环在大小未知时初始化F#列表

我有一个函数将解析DataReader的结果,我不知道返回了多少项,所以我想使用while..do循环迭代读取器,结果应该是某个类型的列表.

(fun(reader) ->
            [
                while reader.Read() do
                    new CityType(Id=(reader.GetInt32 0), Name=(reader.GetString 1), StateName=(reader.GetString 2))
            ])
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的,但我收到的警告是:

This expression should have type 'unit', but has type 'CityType'. Use 'ignore' to discard the result of the expression, or 'let' 
to bind the result to a name.
Run Code Online (Sandbox Code Playgroud)

那么迭代DataReader并创建列表的最佳方法是什么?

f# functional-programming datareader

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

对F#中List.mapi的行为感到困惑

我在F#中构建了一些方程式,在处理我的多项式类时,我发现了一些使用List.mapi的奇怪行为

基本上,每个多项式具有的阵列,因此3*x^2 + 5*x + 6[|6, 5, 3|]在阵列中,因此,增加多项式的情况下,如果一个阵列是比另一个长,然后我只需要追加多余的元素的结果,而这正是我跑进一个问题.

后来我想把它概括为并不总是使用a float,但这将是在我开始工作之后.

所以,问题是我希望List.mapi返回一个List不是单独的元素,但是,为了将列表放在一起,我不得不放弃[]使用mapi,我很好奇为什么会这样.

这比我想象的要复杂得多,我想我应该能够告诉它List在某个索引上做一个新的开始,但我找不到任何功能.

type Polynomial() =
    let mutable coefficients:float [] = Array.empty
    member self.Coefficients with get() = coefficients
    static member (+) (v1:Polynomial, v2:Polynomial) =
        let ret = List.map2(fun c p -> c + p) (List.ofArray v1.Coefficients) (List.ofArray v2.Coefficients)
        let a = List.mapi(fun i x -> x)
        match v1.Coefficients.Length - v2.Coefficients.Length with
            | x when x < …
Run Code Online (Sandbox Code Playgroud)

collections f# functional-programming

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

使用 ConcurrentQueue 时,尝试在并行循环时出队

我在我的 .NET 4 应用程序中使用了并行数据结构,并且ConcurrentQueue在我处理它时添加了一个。

我想做类似的事情:

personqueue.AsParallel().WithDegreeOfParallelism(20).ForAll(i => ... );

当我调用数据库来保存数据时,我限制了并发线程的数量。

但是,我希望ForAll不会出队,我担心只是做

ForAll(i => {
    personqueue.personqueue.TryDequeue(...);
    ...
});
Run Code Online (Sandbox Code Playgroud)

因为不能保证我弹出正确的一个。

那么,我如何以并行方式遍历收集和出队。

或者,使用PLINQ并行进行此处理会更好吗?

concurrency pfx plinq c#-4.0

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

使用pyglet滚动窗口的最佳方法

我正在创建一个有向图,但它最终比我的窗口大,所以不是不断地创建一个更大的窗口,我想允许滚动.稍后我还将允许用户旋转图形,因为它将是3D图形.

那么,我如何在pyglet中滚动?

我找到了这个:

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(ClipBox.x1,ClipBox.x2,ClipBox.y1,ClipBox.y2,ClipBox.z1,ClipBox.z2);
glMatrixMode(GL_MODELVIEW);
Run Code Online (Sandbox Code Playgroud)

但我不确定是否有更好的选择.

通过查看http://www.pyglet.org/doc/programming_guide/mouse_events.html我可以看到我需要使用哪些事件,例如鼠标拖动和滚轮,我只需要给用户一个印象即视线正如他们所期望的那样移动

opengl pyglet python-2.7

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