冒着听起来很幼稚的风险,我会问这个问题,以便更深入地理解编程语言的概念.我写这个问题是为了我自己的启发和其他人的启发.
计算机编程语言的有用定义是什么?它的基本和必要组件是什么?区分语言的主要特征是什么(功能,命令,声明,面向对象,脚本等)?
思考这个问题的一种方法.想象一下,你正在看现代台式机或笔记本电脑的硬件.假设C语言或其任何变体不存在.您如何向我人描述使计算机具有表现力和功能所需的所有内容,以满足我们对当今个人计算机的期望?
切线相关,它允许其他语言存在的计算机语言是什么?例如,使用Javascript,Perl或PHP等脚本语言.我假设这些定义的一部分是有一个解释器很可能在某种程度上用C或C++实现.是否可以在Javascript中为Javascript编写解释器?这是完整语言的要求吗?Perl,PHP等也一样吗?
我会对可以进一步查找或研究的概念列表感到满意.
我正熟悉ASP.Net-MVC,我试图完成我过去用webforms和其他功能完成的一些常见任务.关于我需要做的最常见的任务是创建SEO友好的URL,这在过去意味着做一些url重写以在目录路径中构建查询字符串.
例如:www.somesite.com/productid/1234/widget
而不是:www.somesite.com?productid=1234&name=widget
在ASP.Net-MVC中我用什么方法来完成这个?
我一直在四处寻找,而我所发现的就是这个,要么我不能正确理解,要么我没有真正回答我的问题:
我一直认为使用ThreadPool(比如说非关键的)短期背景任务被认为是最佳实践,即使在ASP.NET中也是如此,但后来我发现这篇文章似乎暗示了其他 -这个论点是你应该离开ThreadPool来处理ASP.NET相关的请求.
所以这就是我到目前为止一直在做的小异步任务:
ThreadPool.QueueUserWorkItem(s => PostLog(logEvent))
Run Code Online (Sandbox Code Playgroud)
而且文章建议明确地创建一个线程,类似于:
new Thread(() => PostLog(logEvent)){ IsBackground = true }.Start()
Run Code Online (Sandbox Code Playgroud)
第一种方法具有管理和限制的优点,但是有可能(如果文章是正确的)后台任务正在争夺具有ASP.NET请求处理程序的线程.第二种方法释放了ThreadPool,但代价是无限制,因此可能耗尽太多资源.
所以我的问题是,文章中的建议是否正确?
如果你的网站流量太大而你的ThreadPool已经满了,那么最好是带外,还是一个完整的ThreadPool意味着你无论如何都要达到你的资源限制,在这种情况下你不应该试图开始自己的线程?
澄清:我只是询问小型非关键异步任务(例如,远程日志记录)的范围,而不是需要单独过程的昂贵工作项(在这些情况下,我同意您需要更强大的解决方案).
当通过grails -Dgrails.env = custom run-app运行带有grails的自定义环境时,似乎关闭了自动重新加载/热部署,是否有人知道如何在任何给定环境中任意启用此设置,而不仅仅是dev,是默认情况下它实际上唯一的环境?
我正在尝试在F#中使用异步工作流来获取多个Web请求.
但是,我的一些请求偶尔会返回错误(例如http 500),我不知道如何处理这个问题.看起来我的F#程序在调试器中运行时陷入无限循环.
我可能错过了一些东西,因为我看到的例子没有开箱即用.我找到的第一件事就是帮助了这段代码:
type System.Net.WebRequest with
member req.GetResponseAsync() =
Async.BuildPrimitive(req.BeginGetResponse, req.EndGetResponse)
Run Code Online (Sandbox Code Playgroud)
然后我有一些代码来获取请求,这是我见过的例子中非常标准的:
let async_value = async {
let req = WebRequest.Create(url)
let! rsp = req.GetResponseAsync()
return (rsp :?> HttpWebResponse).StatusCode
}
Run Code Online (Sandbox Code Playgroud)
然后我试着得到结果:
let status = Async.RunSynchronously(async_value)
Run Code Online (Sandbox Code Playgroud)
但是当我在调试器中运行我的程序时,它会req.EndGetResponse因为服务器返回内部服务器错误500 而中断.如果我继续执行,它会进入一个时髦的循环,中断req.EndGetResponse(有时连续几次)和let status = Async.RunSynchronously(async_value) .
如何解决异常问题以便获取状态代码?另外,我需要上面做的类型吗?或者我错过了F#/ VS 2010 Beta 1的一些库/ dll,其中这已经是其中的一部分了?
我实际上使用Async.RunSynchronously(Async.Parallel(my_array_of_async_values))并行运行多个请求,尽管我不认为这与我遇到的异常问题有关.
事实上我遇到的例子只是使用Async.Run而不是Async.RunSynchronously可能是一个指标,我错过了一些东西...... = /
在两个不同位置的三台不同的计算机上工作,在颠覆的项目中,我偶尔忘记在一个位置检查东西,这样我就无法处理最新的代码,当我想继续处理项目时在另一个地方.
我相信其他人也遇到过类似的问题.
我可以采取哪些措施来避免这个问题?有用的工具吗?我可以设置通知吗?
我在Windows7 PC上使用Visual Studio 2008和TortoiseSVN.
有这样的事情:
public abstract class AAA
{
protected abstract virtual string ToString() // Error
{
// Base Stuff
}
}
public abstract class BBB : AAA
{
public override string ToString()
{
// Use base.ToString();
// More Stuff
}
}
Run Code Online (Sandbox Code Playgroud)
我读了另一篇文章(虚拟课堂中的抽象方法)女巫很像我的问题,但是有一点不同.我希望AAA.ToString()具有基本行为并强制派生类覆盖它.
我知道我可以做这样的事情(向下滚动)但我正在寻找一种正确的方法.
public abstract class AAA
{
public abstract string ToString();
protected string ToString2()
{
// Base Stuff
}
}
public class BBB : AAA
{
public override string ToString()
{
// Use base.ToString2();
// More Stuff …Run Code Online (Sandbox Code Playgroud) 我的应用程序无缘无故退出,很可能是由于我使用的分析器中的错误,因为它干扰了所有CLR运行时的东西.问题是.Net框架记录这些错误的任何位置是否有任何文件?
我有模特Foo和Bar.Bar有专栏foo_id.当我打电话时,Bar.foo_id我得到了错误missing attribute: foo_id
请记住,这不是未定义的方法错误,列肯定在db中.这有什么常见的原因?
谢谢
.net ×1
activerecord ×1
asp.net ×1
asp.net-mvc ×1
c# ×1
deployment ×1
environments ×1
f# ×1
grails ×1
linux ×1
methods ×1
overriding ×1
ruby ×1
svn ×1
threadpool ×1
tortoisesvn ×1
virtual ×1
windows ×1