例如,您有客户,订单和产品.您是否为每个这些业务实体创建单独的服务?
你应该为每一个创建一个服务合同,这是合乎逻辑的.但是,由于您必须明确指定您的服务将实现的合同...这种强制您为每个服务合同创建单独的服务,不是吗?
你能告诉我你将如何处理这件事吗?不知何故,为任何商业实体提供服务都感到笨拙... :-(
提前,非常感谢和问候.
在阅读了有关数据库模式迁移和版本的许多问题之后,我想出了一个在更新过程中安全地更新数据库模式的方案.基本思想是在更新期间,我们将数据库导出到文件,删除并重新创建所有表,然后重新导入所有表.没有什么太花哨或风险.
问题是这个系统有点"病毒",这意味着添加列或表是安全的,因为删除它们会在重新导入数据时引起问题.通常,我可以忽略这些列,但问题是许多被删除的项目实际上已被重构,并且代码中旧的项目的存在使其他程序员误以为他们可以使用它们.
所以,我想找到一种方法,可以将列或表标记为已弃用.在理想情况下,在更新模式时会标记已弃用的对象,但是在下次更新期间,我们的备份脚本将不会选择以这种方式标记的对象,从而允许我们最终淘汰模式的这些部分.
我发现MySQL(也可能是其他数据库平台,但我们正在使用它)支持字段和表的COLUMN属性.这将是完美的,除了我无法弄清楚如何以有意义的方式实际使用它.我将如何编写SQL查询以获取不包含与包含"deprecated"一词的文本匹配的注释的所有列名?或者我在看这个问题都错了,错过了一个更好的方法来做到这一点?
我是WPF及其数据绑定的新手,但我偶然发现了一个我无法解决的奇怪行为.
在Dialog中,我有一个包含用户的Listbox和一个用户名的TextBox.两者都绑定到UserLogonLogic,后者发布CurrentUser属性.
我希望TextBox在单击ListBox中的名称时更新其文本.SelectedItem当我直接在TextBox中输入用户名时,我也希望更新ListBox中的内容.TextBox中的部分名称将解析为列表框中的第一个匹配值,如果没有,则为null.
每次点击ListBox时,TextBox都会更新.Debug告诉我每次激活PropertyChangeEventfor时都会调用CurrentUser方法txtName_TextChanged方法.只有在我在文本框中键入内容后DataBinding,TextBox似乎才会丢失.当我点击ListBox时,TextBox将不再进一步更新.Debug现在告诉我,在触发txtName_TextChanged后不再调用该方法CurrentUser PropertyChangeEvent.
有没有人知道我哪里可能出错?
非常感谢
Rü
UserLogon.xaml:
<ListBox Grid.Column="0" Grid.Row="1" Grid.RowSpan="4" MinWidth="100" Margin="5" Name="lstUser" MouseUp="lstUser_MouseUp"
ItemsSource="{Binding Path=Users}" SelectedItem="{Binding Path=CurrentUser, Mode=TwoWay}"/>
<TextBox Grid.Column="1" Grid.Row="1" Margin="3" Name="txtName" TextChanged="txtName_TextChanged"
Text="{Binding Path=CurrentUser, Mode=OneWay}" />
Run Code Online (Sandbox Code Playgroud)
UserLogon.xaml.cs:
public UserLogon()
{
InitializeComponent();
_logic = new UserLogonLogic();
TopLevelContainer.DataContext = _logic;
}
private int _internalChange = 0;
private void txtName_TextChanged(object sender, TextChangedEventArgs e)
{
if (_internalChange > 0)
{
return;
} …Run Code Online (Sandbox Code Playgroud) 从输入文本我需要调用一个函数来捕获onkeydown事件,我需要将一个参数传递给该事件,例如:
<input type="text" onkeydown="TextOnKeyDown('myPrefix');" />...
Run Code Online (Sandbox Code Playgroud)
然后在该功能中我需要知道按下了什么键.我用
function TextOnKeyDown(prefix) {
var key = event.keyCode;
...
}
Run Code Online (Sandbox Code Playgroud)
这就像IE中的魅力一样,但在Firefox中则不然.我已经读过,对于firefox,你必须将一个参数传递给处理程序然后用它来获取密钥,类似于:
<input type="text" onkeydown="detectKey(event)"/>
...
function detectKey(e){
var key = (document.all) ? e.keyCode : e.which;
...
}
Run Code Online (Sandbox Code Playgroud)
但我无法传递我的参数和firefox所需的事件参数.有什么建议?
我正在使用带标题的数组.每个标题索引对应于数据库中的id,该id包含该给定标题的html.
假设我有一个包含其中一个标题的字符串.
title = "why-birds-fly";
titles[] // an array which contains all the titles
Run Code Online (Sandbox Code Playgroud)
要使用字符串"title"来获取相应的ID,我可以这样做:
for (i = 0; i < titles.length-1; i++) {
if (titles[i] == title)
return i+1;
}
Run Code Online (Sandbox Code Playgroud)
我可以使用的另一种方法是创建一个关联数组和titles数组,这与titles完全相反.也就是说,它使用字符串作为索引并返回数字.
titles_id {blah:0,why-birds-fly:1,blah2:2}
Run Code Online (Sandbox Code Playgroud)
然后我可以通过以下方式访问ID:
return titles_id[title]+1;
Run Code Online (Sandbox Code Playgroud)
考虑到CPU,内存等,最有效的是什么?
另外,如果我的逻辑完全错误,请告诉我.
谢谢威廉
我有一个Oracle项目,非常适合使用GUID作为密钥.我找到了以下代码段
SET SERVEROUTPUT ON
BEGIN
FOR indx IN 1 .. 5
LOOP
DBMS_OUTPUT.put_line ( SYS_GUID );
END LOOP;
END;
/
Run Code Online (Sandbox Code Playgroud)
来自http://feuerthoughts.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html
当我在我的数据库上运行它(我在版本10g和版本11上尝试它)时,我得到输出
64FE4083D6BA7CB4E0400F0A0E0A18B0
64FE4083D6BB7CB4E0400F0A0E0A18B0
64FE4083D6BC7CB4E0400F0A0E0A18B0
64FE4083D6BD7CB4E0400F0A0E0A18B0
64FE4083D6BE7CB4E0400F0A0E0A18B0
Run Code Online (Sandbox Code Playgroud)
即价值永远不会改变!有什么我必须做的事情来设置它按预期工作?
编辑:我不是很观察 - GUID正在改变,但看起来我正在遭受上面链接所讨论的顺序GUID问题.
在大多数较新的计算机上,您可以通过按下电源按钮几秒钟来关闭硬盘.但我想彻底防止这种情况.
您可以在Windows控制面板中阻止一些软事件,如睡眠,暂停,休眠和"按电源按钮"事件; 您也可以使用一些Win32和WDI编程来捕获和处理/拒绝这些事件,但是当您按住按钮较长时间时,它似乎不会停止机械电源.
我猜电源按钮是硬连接到电源的,当你按住它几秒钟时从不等待操作系统?或者有什么方法可以通过代码来防止这种情况?
我是.NET开发人员.
Whooaaa ...!很多人真的主张不这样做 - "你没有我的电脑或我的操作系统", - "你是开发SkyNet"等:)这个应用程序是一个高度定制和封闭的解决方案,为一些客户.它是在Windows XP Embedded上运行的定制硬件上的自助服务终端应用程序,并使用触摸屏.它不公开.
经过许多https请求后,我遇到此错误。任何人都不知道可能是什么原因吗?它似乎与SSL有关。但是以前它运行良好。我真的不明白是什么原因导致了这个问题
提交响应时出错java.io.IOException:sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)处sun.nio.ch.FileDispatcher.write0(本机方法)处的管道损坏。 com.sun.enterprise.server的sun.nio.ch.IOUtil.write(IOUtil.java:75)的writeFromNativeBuffer(IOUtil.java:104)com.sun.enterprise.server处的sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:302) com.sun.net.ssl.internal.ssl.OutputRecord.writeBuffer(OutputRecord.java:283)处的.ss.ASOutputStream.write(ASOutputStream.java:120)com.sun.net.ssl.internal.ssl.OutputRecord处的com.sun.net.ssl.internal.ssl的.write(OutputRecord.java:272)。com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream)的SSLSocketImpl.writeRecord(SSLSocketImpl.java:666) .java:59),位于org.apache.coyote.http11.InternalOutputBuffer.commit(InternalOutputBuffer.java:602)在com.sun.enterprise.web.connector.grizzly.ProcessorTask.action(ProcessorTask.java:721)在org.apache.coyote.Response.action(Response.java:188)在org.apache.coyote.Response位于org.apache.coyote.tomcat5.OutputBuffer.doFlush(OutputBuffer.java:357)的org.apache.coyote.tomcat5.OutputBuffer.close(OutputBuffer.java:318)的.sendHeaders(Response.java:380) org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:192)上的apache.coyote.tomcat5.CoyoteResponse.finishResponse(CoyoteResponse.java:528)在com.sun.enterprise.web.connector.grizzly.ProcessorTask上。 com.sun.enterprise.web.connector.grizzly的doProcess(ProcessorTask.java:604)。com.sun.enterprise.web.connector.grizzly.ProcessorTask.doTask(ProcessorTask。)的doProcess(ProcessorTask.java:475) java:426)。com.sun.enterprise.web.connector。在com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:83)上的grizzly.TaskBase.run(TaskBase.java:281)
我希望[0-9A-Z]+?以后能够处理所有事情.我有
if [[ `cat file` =~ '[0-9A-Z]+?' ]]; then
echo $BASH_REMATCH;
fi
Run Code Online (Sandbox Code Playgroud)
这给了我第一场比赛,但我怎么能处理文件中的所有比赛?
谢谢
我写了下面的代码来发送短信.
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(destAddr, null, mMessageText, il, null);
Run Code Online (Sandbox Code Playgroud)
但这不是我的收件箱中更新,我需要在收件箱中保存相同的邮件,或者有没有办法调用本机短信应用程序发送短信?