宪兵有AvoidAssemblyVersionMismatchRule以下描述:
此规则检查
[AssemblyVersion]匹配两者[AssemblyFileVersion]何时出现在程序集中.部署应用程序后,在两个属性中具有不同的版本号可能会造成混淆.
例如,此规则会警告Microsoft System.dll具有以下属性:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.50727.3053")]
Run Code Online (Sandbox Code Playgroud)
我不同意宪兵的规则.接下来它将使您无法使用类似于Microsoft使用的版本控制方案,即
AssemblyFileVersion每个构建,AssemblyVersion只在公共接口或其他大的变化,AssemblyVersion并AssemblyFileVersion共享一个共同的前缀,我认为这个版本控制方案是为什么能够区分AssemblyVersion和AssemblyFileVersion首先区分的设计原因.
我无法想出为什么强制两个装配属性相等是一个好习惯,但也许你可以!我会对你的意见感兴趣.
如果确实没有充分的理由,我很快会建议宪兵开发者将规则改为
当规则内部存在两个前缀时,此规则检查
[AssemblyVersion]并且具有公共的非空前缀.[AssemblyFileVersion]
我有一个通用类:
public class ListObject<T>
{
// fields
protected T _Value = null;
// ..
}
Run Code Online (Sandbox Code Playgroud)
现在我想做类似以下的事情:
ListObject<MyClass> foo = new ListObject<MyClass>();
ListObject<MyClass> foo2 = new ListObject<MyClass>();
foo.compareTo(foo2);
Run Code Online (Sandbox Code Playgroud)
题:
如何定义compareTo()具有泛型的方法T?
我想我必须以某种方式对泛型实现一个约束T,告诉它T实现一个特定的接口(也许Comparable,如果那个存在).
任何人都可以为我提供一个小代码示例吗?
好吧,我不是白痴; 真的......
我是一位经验丰富的开发人员,但对Eclipse和CVS来说还是全新的.我的妻子和我想在同一个房间里使用来自不同计算机的相同源文件.
我们所有的谷歌搜索和Eclipse等的所有说明都说"第一步是连接到你配置的CVS服务器".但如果您不知道CVS服务器是什么或如何配置它,那么这不是第一步.
我的两个问题很简单:
1)CVS服务器是Eclipse附带的东西,我可以从Eclipse配置,还是我必须首先从其他地方下载并在http:// localhost上安装/配置的第三方实体.
2)我从哪里开始?什么是真正的 "第一步".换句话说,如何创建存储库以连接到TO?
在C++中,您可以编写:
private:
int w;
string x;
protected:
int y;
string z;
Run Code Online (Sandbox Code Playgroud)
C#中有类似的东西吗?
我在java,xpath,sax,DOM,DocumentBuilderFactory中的所有XML处理方法都有点迷失......不同的流行语我不明白它们之间的关系......
1)所以我猜我的问题是,任何人都知道一个关于在java 6中处理XML的好教程吗?我找到了一些,但它们似乎已经老了.
2)我需要遍历一个xml树,这意味着要知道它不同的节点,并能够从中获取数据,最好的方法是什么?
谢谢
任何链接将不胜感激
常见场景:
层次结构域模型被映射到平面视图模型以用于呈现目的.
我在我的域中有一个完整的验证设置,并希望避免将视图模型映射到域对象,只是为了找出某些属性是无效的.我也不想在视图模型中复制验证逻辑.
这里有什么好的做法?
我反对视图模型和域对象的接口,因为视图模型通常是字符串和扁平的,而域对象通常是嵌套的,并且具有许多其他属性的数据类型.
我正在考虑一些可插拔的验证器,它将足够智能地验证域对象和视图模型,但对实现有点怀疑.
但为了简单起见,我倾向于这种方法:
服务器端验证仅在域模型中发生; 视图模型未经过验证,但使用JavaScript在客户端上验证数据.因此,在大多数情况下,我的视图模型将是有效的,验证逻辑将保留在一个位置,并且仅在域模型中发生.这种方法有一个缺点,即asp.net mvc 2验证将无法支持它.你怎么看?
谢谢.
我用C/C++编写了一段时间,现在我需要为我正在做的项目提高效率.
我从这个shared_ptr中理解的是它在我需要它时基本上删除了对象.所以,例如,如果我的对象有一个shared_ptr的向量,我不必担心迭代向量并删除析构函数中的每个元素?换句话说,只要我使用这些,我就不用担心内存管理了吗?或者我完全误解了这个?这听起来好得令人难以置信.
我有一个以数据为中心的应用程序,用Python/PyQt编写.我打算做一些重构来真正将UI与核心分开,主要是因为还没有任何真正的测试,而且显然必须改变.
已经存在一些分离,我认为我已经以正确的方式做了很多事情,但它远非完美.两个例子,告诉你什么样的事情困扰着我:
当用户右键单击数据对象的表示时,弹出的上下文菜单由数据对象创建,尽管此数据对象(实质上是数据库行的ORM表示)应该与UI无关.
当某些内容被写入数据库但写入失败时(例如,因为数据库记录被其他用户锁定),会向用户呈现经典的"重试/中止"消息框.此对话框由数据提供程序*创建,但提供程序显然不应具有任何UI功能.显然,提供者可以提出异常或以其他方式指示失败,并且UI可以捕获并相应地采取行动.
*这是我用于对象的词,它基本上代表数据库表并在其数据对象和数据库引擎之间进行调解; 我不确定这是否通常被称为"提供者"
我没有测试经验,所以我不容易"感觉"可测性问题等,但在我开始之前,必须进行一些重组.
没有复杂的业务逻辑(它主要只是CRU D,是的,即使没有D),这将比重写更重组,所以我并不真正关心引入这个问题中讨论的回归错误.
我的计划是开始重构这个想法,因为UI部分很容易被删除,例如,由Web前端或基于文本的界面而不是Qt界面替换.另一方面,Qt本身仍将被核心使用,因为信号/插槽机制在很多地方使用,例如数据对象发出changed信号来指示,你知道什么.
所以,我的问题:这是一种提高可测试性和可维护性的可行方法吗?还有其他任何评论,特别是考虑到Python吗?
线程通常以两种方式设计(参见java教程):通过扩展Thread类或通过实现Runnable类.无论哪种方式,您都需要指定在线程内运行的内容.
我设计了一个类,一个适用于在线资源的适配器,可以检索不同类型的信息.该类由getInformationOfTypeA()和getInformationOfTypeB()等方法组成.两者都包含连接到在线资源的代码,因此两者都需要进行线程化以避免死锁.
问题是:我该如何设计?我可以像下面这样做,但后来我只能实现一个方法:
public class OnlineResourceAdapter implements Runnable {
public void run() {
//get stuff from resource
getInformationOfTypeA();
}
public static void main(String args[]) {
(new Thread(new OnlineResourceAdapter ())).start();
}
public void getInformationOfTypeA(){
//get information of type A
}
public void getInformationOfTypeB(){
//get information of type B
}
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是为每个方法创建单独的类,但这对我来说似乎不自然.
顺便说一句:我正在j2me中开发我的应用程序
更新:
感谢您的回复,我认为最适合使用以下方法作为方法:
你觉得这怎么样:
public class OnlineResourceAdapter{
public void getInformationOfTypeA(){
Thread t = new Thread(new Runnable() {
public void run() {
//do stuff here
}
});
t.start();
} …Run Code Online (Sandbox Code Playgroud) 为了设置外部服务器的查询,我想在我正在构建的iPhone应用程序中获取当前Map View的边界.UIView应该响应边界,但似乎MKMapView没有.设置区域并放大地图后,我尝试获取边界.我坚持第一步,试图获得代表地图SE和NW角落的CGPoints.之后我打算用:
- (CLLocationCoordinate2D)convertPoint:(CGPoint)point toCoordinateFromView:(UIView *)view
Run Code Online (Sandbox Code Playgroud)
将点转换为地图坐标.但我甚至无法做到那么远......
//Recenter and zoom map in on search location
MKCoordinateRegion region = {{0.0f, 0.0f}, {0.0f, 0.0f}};
region.center = mySearchLocation.searchLocation.coordinate;
region.span.longitudeDelta = 0.01f;
region.span.latitudeDelta = 0.01f;
[self.mapView setRegion:region animated:YES];
//After the new search location has been added to the map, and the map zoomed, we need to update the search bounds
//First we need to calculate the corners of the map
CGPoint se = CGPointMake(self.mapView.bounds.origin.x, mapView.bounds.origin.y);
CGPoint nw = CGPointMake((self.mapView.bounds.origin.x + mapView.bounds.size.width), (mapView.bounds.origin.y + mapView.bounds.size.height)); …Run Code Online (Sandbox Code Playgroud) java ×3
c++ ×2
.net ×1
asp.net-mvc ×1
assemblyinfo ×1
attributes ×1
boost ×1
bounds ×1
c# ×1
cocoa-touch ×1
constraints ×1
cvs ×1
eclipse ×1
gendarme ×1
generics ×1
iphone ×1
java-6 ×1
java-me ×1
mapkit ×1
mkmapview ×1
python ×1
qt ×1
refactoring ×1
unit-testing ×1
validation ×1
versioning ×1
xml ×1