我最近被要求开发一个必须与Sage Line 50财务软件集成的应用程序.
我做了一些谷歌搜索,我很惊讶缺乏与Java或.Net的Sage接口的信息.Sage是否是一个黑盒子,你需要在获得任何信息之前注册Sage Developer程序?
是否有任何开源选项允许应用与Sage交谈?
任何信息赞赏.
干杯
保罗
我最近看到一些C#代码,其中的接口声明和实现位于同一个文件中,就像这样
namespace MyNameSpace.Foo
{
public interface IFoo{
void DoThis();
}
public class Foo : IFoo {
public void DoThis();
}
}
Run Code Online (Sandbox Code Playgroud)
乍一看,在同一个文件中声明和实现似乎都是错误的,但是有实际的好处.例如,当您在Visual Studio中转到定义时,接口和实现位于同一文件中.此方法不会禁止您使用其他接口实现,例如单元测试可能需要.对于只有一个实现的接口,我认为这可能是一种实用的方法.
好主意还是坏主意?
扩展问题:
当您有接口引用时,人们如何使用Visual Studio导航到实现IFoo myFoo = FooFactory.getFoo(MY_FOO);如果我右键单击IFoo并选择Go To Definition我可以获得接口声明.有没有办法让我获得IFoo的实现列表,因为这是我真正感兴趣的内容.
我在选项卡中使用手风琴遇到了问题,最初非活动的手风琴在选择选项卡时无法正确呈现其内容.阅读我看到的原因是非活动标签最初显示:none,因此手风琴中div的高度无法正确计算.所有建议的解决方案都不适合我.有没有人克服这个或有一个解决方案?
以下是该问题的一些示例代码:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../css/jquery-ui-1.7.2.custom.css" media="screen" />
<script type='text/javascript' src='../scripts/jquery-1.3.2.min.js'></script>
<script type='text/javascript' src='../scripts/jquery-ui-1.7.2.custom.js'></script>
<script type="text/javascript">
$(document).ready(function(){
$('#tabs').tabs();
$("#accordion1").accordion();
$("#accordion2").accordion();
});
</script>
</head>
<body style="font-size:62.5%;">
<div id="main" class="round roundB">
<div id="tabs">
<ul>
<li><a href="#tab1">Tab 1</a> </li>
<li><a href="#tab2">Tab 2</a> </li>
</ul>
<div id="tab1">
<div id="accordion1">
<h3><a href="#">Section 1</a></h3>
<div>
<p>
TAB 1 Accordion 1
</p>
</div>
<h3><a href="#">Section 2</a></h3>
<div>
<p>
TAB 1 Accordion 2
</p>
</div>
</div>
</div>
<div id="tab2">
<div id="accordion2">
<h3><a href="#">Section 1</a></h3> …Run Code Online (Sandbox Code Playgroud) 我找不到任何关于使用Grails 进行域驱动设计(DDD)的信息.
我正在寻找任何最佳实践,经验笔记甚至开源项目,这些都是使用Grails的DDD的好例子.
我的应用程序通过响应标头禁用浏览器上的缓存,然后使用Post-Redirect-Get模式启用后退按钮以"重新获取"当前页面.
然而,在使用Firefox 12和IE 8重新测试时,我没有看到我期待的结果(或者我之前在IE 6中看到的结果).
选择后退按钮后,我可以看到浏览器正在尝试执行原始请求(Post),而不是重定向请求(Get).当我查看Firebug的网络选项卡上的请求时,我看到以下内容:
看起来浏览器将Post和Get视为同一个请求,因此选择后退按钮会重新提交帖子:

我使用的是JSF,但我认为这是一个浏览器问题.有谁知道为什么浏览器没有执行重定向页面的获取?
如何导出我的Eclipse Snippets以便我可以在另一台机器上重复使用它们?
我想创建一个有序集或列表,并将枚举添加到集合中,以便它们以枚举顺序插入.
我可以不创建明确的比较器吗?是否有一个集合将使用枚举的固有顺序来维护集合中的顺序?
我希望做什么的Groovy中的示例(我希望Java与for循环而不是闭包相似):
TreeSet<TransactionElement> elements = new TreeSet<TransactionElement>()
elementList.each{ element -> elements.add(element)}
Run Code Online (Sandbox Code Playgroud)
TransactionElement是一个枚举,元素应按照它们在枚举中列出的顺序添加到TreeSet中
更新:解决方案我去了:
EnumSet<TransactionElement> elements = EnumSet.noneOf(TransactionElement.class);
elementList.each{ element -> elements.add(element)}
Run Code Online (Sandbox Code Playgroud)
如何一些伟大的例子使用EnumSet和EnumMap的位置
当我执行代码时:
public List<T> GetCustomerTxList(int customerId)
{
var matchingPocos = new List<T>();
using (linq.AOMSEntities dataRepos = new linq.AOMSEntities())
{
IEnumerable txlist = from t in dataRepos.TransactionRecord
where t.CustomerReference.Value.Id == customerId
select t;
foreach (EntityObject entity in txlist)
{
matchingPocos.Add(entity.ConvertToPoco<T>());
}
}
return matchingPocos;
}
Run Code Online (Sandbox Code Playgroud)
我收到以下异常:Data.Repository.Integration.Test.LinqRepositoryTest.GetCustomerTxList:System.NotSupportedException:LINQ to Entities不支持指定的类型成员'CustomerReference'。仅支持初始化程序,实体成员和实体导航属性。
CustomerReference是在TransactionRecord实体上引用Customer实体的EntityReference。
为什么我不能使用实体引用进行查询?
建议执行这种查询的方法是什么?
如果有帮助,我将很乐意提供更多的信息/代码。
我想找到ASP.Net MVC项目的最佳设置,以便在Visual Studio中获得最快的代码构建运行过程.
如何设置解决方案以实现接近零的二次构建时间以进行小的增量更改?
如果您有一个测试项目,并且依赖于解决方案中的其他项目,那么测试项目的构建仍将处理其他项目,即使它们没有更改.
我不认为它完全重建这些项目,但肯定是在处理它们.在进行TDD时,您需要接近零的构建时间来进行小的增量更改,而不是20-30秒的延迟.
目前我的方法是引用依赖项目的dll而不是引用项目本身,但这有副作用,要求我独立构建这些项目,如果我需要在那里进行更改,然后构建我的测试项目.
一个小技巧,如果您使用PostSharp,您可以添加条件编译符号SKIPPOSTSHARP,以避免在单元测试期间重建项目中的方面.如果为单元测试创建单独的构建配置,则此方法效果最佳.