我们目前正在对CQRS和事件采购进行一些研究,并找到了两个主要框架来处理这两个问题:Axon Framework和Eventuate.两者都在不断发展,而现在在RBMH存储库中更积极地开发了Eventuate.
我是GIT克隆了两个示例项目,并得出结论,Eventuate看起来更轻一点,但我认为这是由于缺乏与Axon相比的功能.
我徒劳地试图找到这两个框架之间的比较,在Stackoverflow中我也找不到任何框架.有人有一些意见吗?
请注意,这是一篇很长的帖子.对不起,但我想澄清一点:
我想知道如何将Swing GUI与Presentation和Business Logic分开很长一段时间.在工作中,我必须使用一个小的Swing对话框为一些数据实现3 MD Excel Export以配置导出.我们不使用像Spring这样的框架,所以我必须自己实现它.
我想完全将GUI与Business Logic分开,这些都是精确的后续任务:
当然,GUI不应该注意BL实现,反之亦然.我创建了上述所有这些任务,例如几个接口ProgressListener,LogMessageListener,JobDoneListener等,要由业务逻辑被解雇.例如,如果业务逻辑想要告诉记录,则会调用
fireLogListeners("Job has been started");
Run Code Online (Sandbox Code Playgroud)
实现公共接口LogListener +的类附加到BL,现在将通知有关"作业已启动"的日志消息.所有这些监听器此时都是由GUI本身实现的,一般看起来像这样:
public class ExportDialog extends JDialog implements ProgressListener, LogListener, JobFinishedListener, ErrorListener {
@Override
public void jobFinished(Object result){
// Create Save File dialog and save exported Data to file.
}
@Override
public void reportProgress(int steps){
progressBar.setValue(progressBar.getValue()+steps);
}
@Override
public void errorOccured(Exception ex, String additionalMessage){
ExceptionDialog dialog = new ExceptionDialog(additionalMessage, ex);
dialog.open();
}
// etc.
}
Run Code Online (Sandbox Code Playgroud)
"GUI和BL创建类"只是将GUI(作为所有这些侦听器的界面)附加到BL,它看起来像这样: …
我的网站 www.ssd-vergleichen.de 中有那个元标记
<meta name="viewport" content="width=device-width; initial-scale=1.0;"/>
Run Code Online (Sandbox Code Playgroud)
防止设备初始放大网站。在三星 Galaxy S2 上的 chrome 移动浏览器上观看网站时,网站被放大了大约 400%。我做错了什么?任何人都可以帮忙吗?
提前致谢
编辑:使用
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
Run Code Online (Sandbox Code Playgroud)
它适用于 Android 的标准网络浏览器,但仍不适用于 Chrome。我想知道它是否适用于IOS?
Edit2:不,它也不适用于 iOS http://iphonetester.com/

我的问题是关于你们在实践中如何将域或基础设施服务注入到 DDD 聚合中。我确信在 DomainObjects 中允许 DependencyInjection通常是一个坏主意,因为根据我的经验,它鼓励鲁莽的开发人员用它做令人讨厌的事情。但是可以肯定的是,总是有例外情况,Domainobjects 中的 DependencyInjection 可能有意义,特别是当它有利于可读性和简单性时。就我而言,我正在尝试解决如何创建新Ids的 anaggregate的问题root。
让我们假设我们有一个UserAddresses以Address实体列表作为其聚合根的聚合。让我们进一步假设我们changeAddress(AddressId addressId, AddressChangeDto dto)在该聚合中有一个方法:
public AddressId changeAddress(AddressId addressId, AddressChangeDto dto) {
Address address = nullableAddress(addressId);
if (address == null) {
// Doesn't matter for this question
} else if (address.hasChanged(dto)) {
address = changeAddress(address, dto);
}
}
Run Code Online (Sandbox Code Playgroud)
和一个私有changeAddress(Address address, AddressChangeDto dto)方法简化如下:
private Address changeAddress(Address address, AddressChangeDto dto) {
if (!addressCopyNeeded(address)) {
address.change(dto);
return address; …Run Code Online (Sandbox Code Playgroud) 我现在面对这个问题大约一个小时,我不知道我做错了什么.你在我的plugin.xml代码中看到错误了吗?
<extension
point="org.eclipse.ui.perspectiveExtensions">
<perspectiveExtension
targetID="de.tps.client.workspace.perspective">
<view
closeable="true"
id="de.tps.client.inboxplusplus.views.inboxplusplusview"
minimized="false"
moveable="true"
ratio="0.3"
relationship="bottom"
relative="de.tps.client.iteminfo.view"
showTitle="false"
standalone="false"
visible="true">
</view>
</perspectiveExtension>
Run Code Online (Sandbox Code Playgroud)
并且观点:
<extension
point="org.eclipse.ui.views">
<view
allowMultiple="false"
category="com.contmgmt.client.category"
class="de.tps.client.inboxplusplus.views.Inboxplusplusview"
id="de.tps.client.inboxplusplus.views.inboxplusplusview"
name="%view.inbox.name"
restorable="true">
</view>
Run Code Online (Sandbox Code Playgroud)
任何建议将受到高度赞赏.