从应用程序的外部,是否有任何区别
...
Environment.Exit(2)
Run Code Online (Sandbox Code Playgroud)
和
static int Main()
{
...
return 2;
}
Run Code Online (Sandbox Code Playgroud)
?
在Java中你可以写Boolean.valueOf(myString).但是在Scala中,java.lang.Boolean隐藏了scala.Boolean缺少此功能的东西.切换到使用原始Java版本的布尔值很容易,但这似乎不对.
那么Scala中用于true从字符串中提取的单行,规范解决方案是什么?
在我目前的一个应用程序中,我需要通过Webservice/SOAP从远程服务(CRM)获取客户数据.但是我也希望将数据缓存在mysql数据库中,以便我下次不需要连接到webservice(数据不会经常更改,远程服务很慢并且有带宽限制 - 因此缓存可以/必须).
我非常确定这项任务的技术部分,但我不太确定如何在我的网络应用程序中实现这种干净透明.
我的所有其他数据都来自一个mysql数据库,因此我使用NHibernate从数据库中查询返回列表或单个实体的存储库.
我的想法到目前为止:
1合一
使用CustomerRepository,它通过Id查找客户,如果成功,则返回它,否则调用webservice并将检索到的数据保存到数据库.
控制器看起来像这样:
class Controller
{
private CustomerRepository Rep;
public ActionResult SomeAction(int id)
{
return Json(Rep.GetCustomerById(id));
}
}
Run Code Online (Sandbox Code Playgroud)
伪/简单代码中的存储库如下:
class CustomerRepository
{
public Customer GetCustomerById(int id)
{
var cached = Database.FindByPK(id);
if(cached != null) return cached;
var webserviceData = Webservice.GetData(id);
var customer = ConvertDataToCustomer(webserviceData);
SaveCustomer(customer);
return customer;
}
}
Run Code Online (Sandbox Code Playgroud)
虽然上面看起来有些简单,但我认为CustomerRepository类会变得非常庞大和丑陋.所以我根本不喜欢这种方法.
存储库应该只加载数据库中的数据,至少应该是我应用程序中的"合同".
2在控制器中分离并粘在一起
对存储库(db访问)和webservice(远程访问)使用单独的类,让控制器完成工作:
控制器看起来像这样:
class Controller
{
private CustomerRepository Rep;
private Webservice Service;
public ActionResult SomeAction(int id)
{
var customer = Rep.GetCustomerById(id);
if(customer != …Run Code Online (Sandbox Code Playgroud) NHibernate可以使用2种不同的模式吗?我有一个项目可以使用Schema A来处理几个部分而Schema可以B用于其他部分.这可能与NHibernate一起使用吗?我怎样才能做到这一点?
作为标题,我朋友的环境是Windows 2003 Server。他附加了IIS进程,并在应该运行的代码处设置了断点,但VS并没有停止。ISAPI用VC ++编写。
他需要设置什么设置吗?
谢谢。
我有一个iPhone应用程序,一旦对服务器进行了更改就需要更新.如何让服务器"推送"数据到iphone而不是iphone不断轮询网络服务?
编辑:我希望iPhone在服务器处理它们时立即接收JSON更新,而不必请求.
我想因为服务器是一个名为Comet的Web服务,但我还没有看到一个好的iPhone示例.
我正在尝试使用带有asp .net mvc应用程序的JQuery插件jqGrid.
我正在以jqGrid文档中的格式传递网格JSON对象:
{
"total":1,
"page":1,
"records":10,
"rows":
[{
"i":1,"cell":["foo","bar"]},
{"i":2,"cell":["foo1","barr"]},
{"i":3,"cell":["foo2","barrr"]}]
}
Run Code Online (Sandbox Code Playgroud)
并设置了jqGrid:
jQuery("#searchResults").jqGrid({
url: '/Customer/SearchResults/',
datatype: 'json',
mtype: 'GET',
colNames: ['Surname', 'Forename'],
colModel: [
{ name: 'Surname', index: 'Surname', width: 200, align: 'left' },
{ name: 'Forename', index: 'Forename', width: 200, align: 'left'}],
pager: jQuery('#pager'),
rowNum: 10,
rowList: [5, 10, 20, 50],
sortname: 'Id',
sortorder: "desc",
viewrecords: true,
imgpath: '/scripts/themes/coffee/images',
caption: 'My first grid'
});
Run Code Online (Sandbox Code Playgroud)
它击中我的行动,但网格卡在加载,任何想法我做错了?
谢谢
我想用ctypes模仿Python中的一段C代码,代码类似于:
typedef struct {
int x;
int y;
} point;
void copy_point(point *a, point *b) {
*a = *b;
}
Run Code Online (Sandbox Code Playgroud)
在ctypes中,不可能执行以下操作:
from ctypes import *
class Point(Structure):
_fields_ = [("x", c_int),("y", c_int)]
def copy_point(a, b):
a.contents = b.contents
p0 = pointer(Point())
p1 = pointer(Point())
copy_point(p0,p1)
Run Code Online (Sandbox Code Playgroud)
因为contents仍然是Python ctypes结构对象,它本身作为引用进行管理.
一个明显的解决方法是手动复制每个字段(表示为不可变的python int),但这不会扩展到更复杂的结构.此外,对于非基本字段而非结构化类型,需要递归地完成.
我的另一个选择是使用memmove和复制对象就像它们是缓冲区一样,但这似乎非常容易出错(因为Python是动态类型的,因此很容易将它与不同类型和大小的对象一起使用,导致内存损坏或分段故障)...
有什么建议?
编辑:
我也可以使用一个全新的结构副本,所以这可能有用:
import copy
p0 = Point()
p1 = copy.deepcopy(p0) #or just a shallow copy for this example
Run Code Online (Sandbox Code Playgroud)
但我不知道是否有某种奇怪的行为复制ctypes代理,好像它们是普通的Python对象......
asp.net-mvc ×2
.net ×1
architecture ×1
asp.net ×1
c# ×1
c++ ×1
c++11 ×1
copy ×1
ctypes ×1
d ×1
exit-code ×1
iphone ×1
isapi ×1
jqgrid ×1
jquery ×1
json ×1
nhibernate ×1
objective-c ×1
pointers ×1
python ×1
scala ×1
session ×1
web-services ×1