我准备开始一个新的短期合同(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中似乎有变化的事实.这可能对此有所帮助.
我需要一个用于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
我无法看到我做错了什么,因为文件的顺序正确.在这种情况下,它是:
它们位于相同的命名空间中,但即使我将它们放在不同的模块中,并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) 我一直在玩这段代码,我不确定我做错了什么.
我得到一个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) 我试图将一些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)
对于第二个,我可能必须用零元素填充较短的列表以使其工作,但这是我在此功能上的目标.
那么,我怎样才能编译这个函数,所以我可以测试一下呢?
我是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分配内存有什么区别?我的代码中确实存在内存泄漏吗?
我有一个函数将解析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#中构建了一些方程式,在处理我的多项式类时,我发现了一些使用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) 我在我的 .NET 4 应用程序中使用了并行数据结构,并且ConcurrentQueue
在我处理它时添加了一个。
我想做类似的事情:
personqueue.AsParallel().WithDegreeOfParallelism(20).ForAll(i => ... );
当我调用数据库来保存数据时,我限制了并发线程的数量。
但是,我希望ForAll
不会出队,我担心只是做
ForAll(i => {
personqueue.personqueue.TryDequeue(...);
...
});
Run Code Online (Sandbox Code Playgroud)
因为不能保证我弹出正确的一个。
那么,我如何以并行方式遍历收集和出队。
或者,使用PLINQ
并行进行此处理会更好吗?
我正在创建一个有向图,但它最终比我的窗口大,所以不是不断地创建一个更大的窗口,我想允许滚动.稍后我还将允许用户旋转图形,因为它将是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我可以看到我需要使用哪些事件,例如鼠标拖动和滚轮,我只需要给用户一个印象即视线正如他们所期望的那样移动
f# ×3
.net-4.0 ×1
architecture ×1
asp.net ×1
c ×1
c#-4.0 ×1
collections ×1
combobox ×1
concurrency ×1
datareader ×1
dom ×1
groovy ×1
html-parsing ×1
inheritance ×1
javascript ×1
jquery ×1
jtidy ×1
memory ×1
opengl ×1
pfx ×1
plinq ×1
pointers ×1
pyglet ×1
python-2.7 ×1
scala ×1