Я использовал и на работе и дома. Они оба очень прохладны самостоятельно. Единственное время я рекомендовал бы использовать TFS, хотя то, если Вы будете использовать больше функций, чем просто управление исходным кодом. Если все, в чем Вы нуждаетесь, является управлением исходным кодом, Вы наклоняетесь, идут не так, как надо с SVN, и это то, почему.
Сервер VisualSVN , Который является полным сервером SVN с хорошим плагином для управления им с. Это позволяет Вам использовать аутентификацию Windows прямо через UI. Легкий.
Черепаха Ее черепаха, достаточно сказал.
ankhsvn Это - большой плагин SCC. Для тех, которые хотят полную интеграцию IDE VS, последняя версия является полным плагином SCC. Таким образом, Вы теперь получаете полную интеграцию бесплатно.
вышеупомянутый настроенный на 100% свободен и получит Вас через что-либо, в чем Вы нуждаетесь для управления исходным кодом.
Попробуйте следующее:
Dimension d = new Dimension(2,2);
String expressionString = "width";
Object expr = Ognl.parseExpression(expressionString);
OgnlContext ctx = new OgnlContext();
Object value = Ognl.getValue(expr, ctx, d);
System.out.println("Value: " + value);
Here is an example helloworld for jython (python that compiles to java).
from ognl import Ognl, OgnlContext
from java.lang import String
exp = Ognl.parseExpression("substring(2, 5)")
print Ognl.getValue(exp, OgnlContext(), String("abcdefghj"))
Если предполагается только читать свойства из объекта, то PropertyUtils.getProperty (из commons-beanutils) может быть достаточно. Однако, если предполагается оценивать условия и тому подобное, то Ognl может быть полезен.
Вот тот же пример Dimension с булевым:
Dimension d = new Dimension();
d.setSize(100,200) ;// width and height
Map<String,Object> map = new HashMap<String,Object>();
map.put("dimension", d);
String expression = "dimension.width == 100 && dimension.height == 200";
Object exp = Ognl.parseExpression(expression);
Boolean b = (Boolean) Ognl.getValue(exp,map);
// b would evaluate to true in this case