问题列表 - 第13958页

领域驱动设计:工作流逻辑在哪里?

在我的项目中,我有工作流,它在多个实体上运行以完成业务交易.表示工作流逻辑的最佳位置是什么?目前我只是创建一个"XXXManager",它负责与实体对象协作以结束业务事务.还有其他选择吗?

workflow domain-driven-design

6
推荐指数
1
解决办法
2450
查看次数

你能强迫ImageMagick使用PNG-8 alpha透明度吗?

当我尝试通过Imagemagick运行一堆具有alpha透明度的PNG-8图像时,它会将它们转换为PNG-32,从而大大增加了文件大小.

是否可以强制Imagemagick将我的图像类型保持为8位PNG?

optimization png imagemagick

13
推荐指数
2
解决办法
9438
查看次数

使用J2ME进行音频流传输

我有MP3文件在线音频,如何从我的J2ME应用程序流式传输音频?一个网站为应用程序提供要播放的音频列表,选择音频,然后必须从网站流式传输.

示例代码会很好.谢谢

java-me

7
推荐指数
1
解决办法
3241
查看次数

对Rhino模拟方法的多次调用会返回不同的结果

如果我想模拟一个返回一个字符串的类,该字符串用于确定while循环是否应该继续(想象读取字符串!= null),我该如何设置期望值.我尝试过以下方法:

    provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20");
    provider.Reader.Expect(r => r.ReadLine()).Return(null);
Run Code Online (Sandbox Code Playgroud)

但是当它在同一个方法中被调用两次时,它会在两种情况下返回第一个字符串,而我希望它在第二次调用时返回第二个值(null).

rhino-mocks

21
推荐指数
1
解决办法
6028
查看次数

ASP.NET MVC是否可以从数据库中提取的模板中呈现视图?

我要做的是使用不同的模板生成电子邮件内容.

我认为ASP.NET MVC可能非常适合这种情况.我的控制器将获取电子邮件的必要数据并决定要呈现的视图(模板).(这只是一个简单的邮件合并,需要有条件块,foreach等)

我希望能够将这些模板存储在数据库中而不是Web应用程序中的文件中,因此可以从Web应用程序本身轻松添加新模板.

这可能吗?我希望能够使用WebForms视图引擎,但如果不可能,则会考虑其他视图引擎.我希望使用键入的视图.

asp.net-mvc viewengine

6
推荐指数
1
解决办法
930
查看次数

连接被拒绝:使用groovy解析xml时连接

我有以下xml片段:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">
 <sqlMap namespace="reports">

   <typeAlias alias="Header" type="VerificationVO"/>
  </sqlMap>
Run Code Online (Sandbox Code Playgroud)

在尝试使用以下方法解析此xml时:

def sqlMapOld = new XmlParser().parse(file)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Exception thrown: Connection refused: connect
java.net.ConnectException: Connection refused: connect
Run Code Online (Sandbox Code Playgroud)

如果我从xml片段中删除DOCTYPE,则此错误消失.有没有办法阻止groovy脚本尝试连接到URL?

xml groovy

5
推荐指数
1
解决办法
3023
查看次数

postgres中的表连接顺序

我有办法强制在Postgres中使用特定的连接顺序吗?

我有一个看起来像这样的查询.我已经删除了一些真实查询中的东西,但这种简化证明了这个问题.剩下的不应该太神秘:使用角色/任务安全系统,我试图确定给定用户是否具有执行给定任务的权限.

select task.taskid
from userlogin
join userrole using (userloginid)
join roletask using (roleid)
join task using (taskid)
where loginname='foobar'
and taskfunction='plugh'
Run Code Online (Sandbox Code Playgroud)

但我意识到该程序已经知道userlogin的价值,所以通过跳过userlogin上的查找并只填写userloginid似乎可以提高查询效率,如下所示:

select task.taskid
from userrole
join roletask using (roleid)
join task using (taskid)
where userloginid=42
and taskfunction='plugh'
Run Code Online (Sandbox Code Playgroud)

当我这样做 - 从查询中删除一个表并对从该表中检索到的值进行硬编码时 - 解释计划时间就会增加!在原始查询中,Postgres读取userlogin然后userrole然后roletask然后task.但是在新查询中,它决定先读取roletask,然后加入userrole,即使这需要对roletask进行全文扫描.

完整的解释计划是:

版本1:

Hash Join  (cost=12.79..140.82 rows=1 width=8) 
  Hash Cond: (roletask.taskid = task.taskid) 
  ->  Nested Loop  (cost=4.51..129.73 rows=748 width=8) 
        ->  Nested Loop  (cost=4.51..101.09 rows=12 width=8) 
              ->  Index Scan using idx_userlogin_loginname on userlogin  (cost=0.00..8.27 rows=1 width=8) 
                    Index Cond: …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql

10
推荐指数
1
解决办法
1万
查看次数

Qt中的持久性类

我正在将一个中等大小的CRUD应用程序从.Net移植到Qt,我正在寻找一种创建持久化类的模式.在.Net中,我通常使用基本方法(插入,更新,删除,选择)创建抽象持久化类,例如:

public class DAOBase<T>
{
    public T GetByPrimaryKey(object primaryKey) {...}

    public void DeleteByPrimaryKey(object primaryKey) {...}

    public List<T> GetByField(string fieldName, object value) {...}

    public void Insert(T dto) {...}

    public void Update(T dto) {...}
}
Run Code Online (Sandbox Code Playgroud)

然后,我将其子类化为特定的表/ DTO并添加了DB表布局的属性:

[DBTable("note", "note_id", NpgsqlTypes.NpgsqlDbType.Integer)]
[DbField("note_id", NpgsqlTypes.NpgsqlDbType.Integer, "NoteId")]
[DbField("client_id", NpgsqlTypes.NpgsqlDbType.Integer, "ClientId")]
[DbField("title", NpgsqlTypes.NpgsqlDbType.Text, "Title", "")]
[DbField("body", NpgsqlTypes.NpgsqlDbType.Text, "Body", "")]
[DbField("date_added", NpgsqlTypes.NpgsqlDbType.Date, "DateAdded")]
class NoteDAO : DAOBase<NoteDTO>
{
}
Run Code Online (Sandbox Code Playgroud)

感谢.Net反射系统,我能够实现繁重的代码重用并轻松创建新的ORM.

在Qt中执行此类操作的最简单方法似乎是使用QtSql模块中的模型类.不幸的是,就我而言,它们提供了过于抽象的界面.我至少需要事务支持和控制QSqlTableModel不提供的单个提交.

你能给我一些关于用Qt解决这个问题的提示或者指点一些参考资料吗?


更新:

根据Harald的线索,我实现了一个与上面的.Net类非常相似的解决方案.现在我有两节课.

UniversalDAO继承QObject并使用元类型系统处理QObject DTO:

class UniversalDAO : public QObject
{
    Q_OBJECT

public: …
Run Code Online (Sandbox Code Playgroud)

sql orm qt

8
推荐指数
1
解决办法
8117
查看次数

将IEnumerable <T>添加到从CollectionBase派生的类中

假设我有一个类TestCollection,用于保存Test类型的对象并定义为

public class TestCollection : CollectionBase
Run Code Online (Sandbox Code Playgroud)

这允许我以集合方式遍历集合

foreach(object o in collection)
...
Run Code Online (Sandbox Code Playgroud)

要么

foreach(Test t in collection)
Run Code Online (Sandbox Code Playgroud)

但是不允许我使用新的Linq查询.

如果我将类的定义更改为

public class TestCollection : CollectionBase, IEnumerable<Test>
Run Code Online (Sandbox Code Playgroud)

并添加一个方法

public new IEnumerator<Test> GetEnumerator()
{
    foreach (Test o in this.List)
        yield return o ;
}
Run Code Online (Sandbox Code Playgroud)

然后linq查询可用.

但是,这个新方法不仅仅调用linq查询,而且还在遗留代码中调用(即在foreach(集合中的对象o)和foreach(集合中的Test)期间).

迭代通过集合的旧方法和假设集合中的所有项目都是Test类型的新方法之间有什么区别吗?我知道添加IEnumerator方法会导致程序抛出异常,如果它找到除Test之外的任何类型,但想知道我是否忽略了任何东西.

c# generics collections

7
推荐指数
2
解决办法
3725
查看次数

SQL Server 2000中不区分大小写的REPLACE()

我有一个字段,其中包含'Blah-OVER','Blah-OveR'等字符串,并希望在没有'over'的情况下选择它们.这只能抓住第一种情况(可以这么说)而不是其他情况:

SELECT field as "before", REPLACE(field, 'OVER', '') as "after"
Run Code Online (Sandbox Code Playgroud)

我怎么只是让他们所有人都说"Blah-"(保留剩下的情况)而不试图用另一个嵌套的REPLACE函数覆盖每个案例组合?

sql-server sql-server-2000

6
推荐指数
1
解决办法
1万
查看次数