是否建议使用svcutil工具而不是xsd工具?我没有看到这是一个确认的声明,但它确实如此.我对此感到困惑的原因是我使用这两个工具生成了一个类.但是,我使用xsd获得了更好的课程.XSD架构仅由DataContracts组成.
我对svcutil使用了以下命令:
svcutil path-to\xyz.xsd /language:C# /dataContractOnly /importxmltypes /out:path-to\class.cs
Run Code Online (Sandbox Code Playgroud)
这产生了所需的类.但是,它只包含字段的XmlNode []对象.
然后,我对xsd使用了以下命令:
xsd.exe /c path-to\xyz.xsd /out:path-to\class.cs
Run Code Online (Sandbox Code Playgroud)
它产生了比svcutil更好的类.大多数字段都按需转换.
我有理由相信我应该在xsd上使用svcutil吗?
这里有一个示例jsfiddle来演示我的问题.
Hello和World链接会更改路线.动画在离开时已应用于Hello路由.实际上,转换的设置使得当Hello
页面离开时,它会要求子组件<h1>
在其自身中进行动画处理componentWillLeave
,从而完成可以快速卸载的页面.我这样做是因为在我的真实应用程序中,当Hello页面离开时,其子组件需要以不同的方式进行动画处理 - 因此它不是整页的单个转换.
要查看问题,请单击Hello to load Hello
page.然后单击该页面的World链接World
.World
即使Hello
是动画,您也会看到页面已加载.
那么我该如何World
等待动画完成呢?我想要确认的另一件事是,在父组件离开之前我用来使子组件动画的方法是否正确.
作为参考,我在master分支中使用最新的react-router:1.0b4
我正在开发一个GWT + Hibernate项目.它由各种模块组成,其中我将命名为两个 - 公司和登录.对于每个模块,我已经创建了一个RPC服务,这样项目就不会有一个像神一样的服务来完成所有事情.
为了与数据库进行交互,我使用了Hibernate API - 具体来说,是POJO中的EntityManager和Annotations.
另外,我创建了一个Generic DAO类来处理基本的CRUD操作.GenericDAO类也将处理EntityManager.每个模块服务类都将扩展此GenericDAO,以便它可以添加自己的查询方法.
以下是GenericDAO类的存根 -
public class GenericDataAccessService<EntityType, PrimaryKeyType extends Serializable> {
// Constructor
@Override
public void save(EntityType newEntity) {
// TODO Auto-generated method stub
}
@Override
public void update(EntityType entity) {
// TODO Auto-generated method stub
}
@Override
public EntityType find(PrimaryKeyType primaryKey) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<EntityType> findByProperty(String property) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<EntityType> findAll() {
// …
Run Code Online (Sandbox Code Playgroud) 我正在开发旅行管理应用程序.有问题的设计如下:
旅游中的每个人都被指定为旅行者.每位旅行者都有护照.现在,旅行者可以是主会员或子会员,具体取决于他是否是家庭主管.MainMember决定像TourPackage这样的东西,他的旅行家庭的总金额等.一个SubMember在旅行时依赖于MainMember.因此,如果删除了MainMember,则还必须删除其所有子成员.
所以,旅行者有护照.(一对一关系)旅行者是主会员或子会员.(Traveler-MainMember和Traveler-SubMember之间的一对一/一)MainMember可能有几个SubMembers.(一对多)子成员只有一个主要成员.(多到一个)
我目前的ERD如下.
如您所见,三个表 - Traveler,MainMember和SubMember - 形成了循环依赖.不过,我不确定它是否会伤害我的应用程序.如果我删除作为MainMember的Traveler,则1.删除Traveler中的记录.2.删除其相关的MainMember记录.3.删除依赖于MainMember的SubMember记录.4.删除子成员的旅行者记录.
虽然它似乎不是问题,但由于Traveler-MainMember删除将始终只删除Traveler-SubMember(s).不过,我对此感觉不好.
任何人都可以指导我更好的设计吗?
更新 -
在等待回复的同时,我根据@ Daveo的回复提出了另一种设计.基本上,Traveler包含自引用外键.SubMember记录将使用它来识别他们的父母.
这是ERD.
现在,正如@Branko指出的那样,我之前的设计中没有循环依赖问题,我想知道哪种设计更好?
另外,通过Hibernate实现哪种设计会更好?我认为第二种方法可能会在通过Hibernate实现时导致复杂性.
我还要感谢关于您喜欢的设计的实现模式(Hibernate实体中的继承等)的一些指示.
database-design erd circular-dependency hibernate-mapping class-table-inheritance
我的设置是基于Flask的服务器。该项目的鸟瞰图是:基于Flask的服务器基于一些算法计算(例如找出要从S3提取的文件名)从AWS S3提取二进制数据,并将数据提供给HTML + JavaScript客户端。
起初,我认为JSON对象是最好的响应类型。我创建了以下格式的JSON响应(可能在语法上不正确):
{
'payload': [
{
'symbol': 'sym',
'exchange': 'exch',
'headerfile': {
'name': '#name',
'content': '#binarycontent'
},
'datafiles': [
{
'name': '#name',
'content': '#binarycontent'
},
{
'name': '#name',
'content': '#binarycontent'
}
]
},
'errors': [ //errors ]
}
Run Code Online (Sandbox Code Playgroud)
对于JSON中的任何语法错误,我深表歉意。我有点想找出一个小错误。在构造了此JSON之后,我知道JSON本身并不支持二进制数据。因此,我将无法将二进制数据作为值嵌入JSON中。
我意识到,我始终可以将字节转换为base64编码的字符串,并将该字符串用作JSON中的值。但是,结果字符串的大小要多出30%左右。4010字节的数据被编码为5348字节,虽然对于单个二进制块来说微不足道,但是当我将大量此类二进制块嵌入JSON响应时,我的客户将其视为一个问题。由于尺寸较大,响应需要更多时间才能到达客户,这是我客户的应用程序的关键问题。
我考虑的另一种选择是将二进制块流式传输octet-stream Content-Type
到客户端。但是我不确定它是否比上述解决方案更好。此外,在这种情况下,我还无法弄清楚如何关联二进制块及其名称。
有没有比“将二进制文件转换为文本并嵌入JSON”更好的解决方案?
在解析Web请求中的数据时,我遇到了以下字符串 -
dateRange = 'September\xa04,\xa01978 – September 1980'
Run Code Online (Sandbox Code Playgroud)
提取的字符串的编码似乎是Latin-1(基于\xa0
).我通过用空格替换代码来摆脱它.
dateRange = dateRange.replace(u'\xa0', u' ')
Run Code Online (Sandbox Code Playgroud)
保持这一点,我不能在连字符( - )上分割字符串.
当我调用split()时如下:
print(dateRange.split('-'))
Run Code Online (Sandbox Code Playgroud)
输出如下:
['September\xa04,\xa01978 – September 1980']
Run Code Online (Sandbox Code Playgroud)
就好像字符串中没有连字符一样.我觉得它与编码有关,但我似乎无法完全理解这个问题.
那么,如何解决这个问题呢?
编辑:
我已经尝试了以下无济于事:
dateRange.split('\-')
Run Code Online (Sandbox Code Playgroud) 我提取网页以便将数据提供给我的应用程序.但是,这些页面包含许多我根本不需要的图像.我只需要文本数据.我的问题是网络请求花费了不可接受的时间.我认为这些图片也是在网络请求期间获取的.有没有办法消除图像并只下载文本数据?
以下是我目前使用的代码.
var httpWebRequest = HttpWebRequest.Create(url) as HttpWebRequest;
httpWebRequest.Method = "GET";
httpWebRequest.ProtocolVersion = HttpVersion.Version11;
httpWebRequest.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
httpWebRequest.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
httpWebRequest.Proxy = null;
httpWebRequest.KeepAlive = true;
httpWebRequest.Accept = "text/html";
string responseString = null;
var httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
using (var responseStream = httpWebResponse.GetResponseStream())
{
using (var streamReader = new StreamReader(responseStream))
{
responseString = streamReader.ReadToEnd();
}
}
Run Code Online (Sandbox Code Playgroud)
此外,欢迎任何其他优化建议.
c# ×2
python ×2
.net ×1
amazon-s3 ×1
binary-data ×1
encoding ×1
erd ×1
flask ×1
genericdao ×1
gwt ×1
hibernate ×1
http-headers ×1
json ×1
latin1 ×1
react-router ×1
reactjs ×1
svcutil.exe ×1
transition ×1
unicode ×1
xml ×1
xsd ×1