小编Mat*_*nes的帖子

如何完全分离业务和数据层?

我目前在我的应用程序中的单个项目中代表我的业务层和数据层.我对两组课程之间的关注点有很好的分离.但是,我的数据层类作为参数并返回我的业务对象.因此,我将拥有松散类似的代码(请不要过于批评此代码,我的生产代码看起来不像这样):

//business class fragment
public bool Save()
{
    if(this.IsValid)
    {
       //DataProvider is one of many data access classes that implement an IDataProvider interface.  Switched elsewhere in the class.  This allows switching of Database providers, xml, etc.
       DataProvider.Save(this);
       return true;
    }
    return false;
}

public List<MyBusinessObject> GetObjectsByCriteria(string criteria)
{
    return DataProvider.GetMyBusinessObjectsByCriteria(criteria);
}
Run Code Online (Sandbox Code Playgroud)

我不希望我的业务类必须处理DataSet,而不是让我的数据层类处理Business Classes.

我已经在数据访问对象或数据传输对象上阅读了很多内容以解决这个问题,但这似乎是这些模式的反模式案例.

我能做什么?如何优雅地完成我的应用程序这两层的完全分离?

c# design-patterns

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

在32位和64位处理器上开发,我应该如何构建我的项目以自动引用正确的dll?

我目前处于这样的情况:我有32位和64位开发人员机器在我的c#项目上工作.我必须引用一些同时具有32位和64位版本的dll.显然,32位机器需要引用32位dll,而64位机器需要64位dll.我遇到的问题是,每次开发人员检查一些代码时,他们也会检查他们的dll引用,所以当另一方的某个人提取他们的代码时,它不会构建,并且他们必须手动更新他们的引用他们应该是什么.然后他们检查,其他开发人员必须手动修复他们的引用等等.

我不认为这是一个新问题,但这是我第一次碰到它.有一个通常的做法是让项目自动引用CPU的正确dll吗?或者也许是一种拥有32位和64位项目的方法,每个项目都有正确的引用,以及一种方式(可能是命令行工具或一些可以绑定到构建中的外部工具)将它们绑定在一起,以便在新项目时添加或删除一个,另一个也将更新?

另一种选择是让每个开发人员使用相同的虚拟化开发环境.如果我走这条路线,我可以在32位硬件上虚拟化64位系统,还是我必须走另一条路,并虚拟化32位.这将是一个SaaS产品,所以我只需要部署一个处理器,我宁愿这是64位.

c# dll virtualization visual-studio-2010 32bit-64bit

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

您更喜欢Python到严格的OO语言类型的应用程序或问题?

我在C风格的语言方面有很强的背景.并参与了几个不同类型的项目.在阅读编程集体智慧之后,我刚开始认真研究Python .我知道Python可以解决C#可以解决的任何问题,反之亦然.但我很好奇地从那些经常使用它们的人那里知道,当他们选择一个而不是另一个.删除其他因素,如同事体验等.

您何时选择使用Python创建应用程序而不是静态类型的纯OO语言(如C#或Java)?

编辑:

我担心我们会在这个问题上稍微讨论一下话题.Python是一种面向对象的语言.但是,如下所述,当您的应用程序具有非常繁重的业务域等时,它可能不是首选语言.我知道Python广泛使用对象,甚至函数都是对象,这在某些情况下都不是真的.我之前提到的"OO"语言.

尽管我在问题中选择的单词很糟糕(几乎没有语言可以很好地融入两三个单词的描述中,但如果没有它出现在某种类型的开发人员面前,很难指出语言的差异.),当您更喜欢Python到其他语言时,我仍然非常感兴趣.

c# c++ python java programming-languages

4
推荐指数
1
解决办法
492
查看次数

我应该优先对语义标记我的页面吗?或者语义网是一个永远不会真正开始的好主意?

语义Web是一个真棒想法.使用语义Web概念已经完成了许多非常酷的事情.但毕竟这一次我开始怀疑这到底是不是只是一个白日梦.如果我们真的能够成功地创建一个完全语义的网络,并且如果我们不能利用语义网来为我们的用户提供更深入的网络体验,那么花费时间和额外的努力来确保完全语义网络是值得的页面是由我自己或我的团队创建的?

我知道语义页面通常只会变得更好(从注意到细节,而不是我想的任何东西),所以我不会质疑尝试语义页面设计,我目前正在考虑的是,正在放弃审查和修改过程部分语义页面,完全语义,希望将来有所回报.

html semantic-web semantic-markup semantics

4
推荐指数
1
解决办法
353
查看次数

delphi - 在关闭应用程序时终止所有线程(TThread)

我的应用程序是一个tcp/ip服务器,主线程只创建一次并且一直在监听.当新客户端连接时,主线程创建TClientThread类型的新线程.但是没有运行客户端线程的列表,因为这会使我的应用程序有点复杂...有没有办法在所有线程上执行"terminate"方法,即使线程忙(在我的情况下"忙")意味着它正在等待数据,超时设置大约是30秒......所以无论如何我都要杀掉它,而不是等待.)?简单的关闭应用程序似乎不会在线程上运行"terminate"方法,最终会导致FastMM报告内存泄漏...

delphi tthread terminate fastmm

4
推荐指数
1
解决办法
5729
查看次数

我应该为这款iPad应用估算多少工时?

背景:我之前开发过自己的iPad/iPhone应用程序.这将是我的第一个客户端应用程序.我没有经验可以估算它需要的小时数,因为我之前的所有iOS开发都已经过时.

我想获得它需要多长时间一个知识渊博的iOS开发者开发一个简单的PDF查看应用程序的客户现有的PDF图书系列很一般建议.对于那种规模的东西,你会用什么来估算你的时间?10个小时?25?50?100?

我知道估计很难做到,这取决于开发人员,精心规划的要求等.我将采取这些预防措施并完善估算,以更好地匹配明确的要求.我是一个称职的开发人员,我只是不知道在估计时间方面从哪里开始.

iphone estimation time-estimation

4
推荐指数
1
解决办法
3036
查看次数

.net在运行时确定我的应用程序是exe还是Web应用程序

我确定我以前做过这个,但我已经在文档中了一段时间,似乎无法再找到它.我需要能够在我的业务领域的运行时确定我的应用程序运行的上下文.这样我可以使用配置文件进行一些切换,并使用正确的方法来确定我是在运行调试还是发布等.我非常有信心它在System.Environment中,但我还没有遇到它.

c# environment-variables asp.net-3.5 winforms

3
推荐指数
1
解决办法
1221
查看次数

如何在不调整大小的情况下居中控制?(.net Winforms)

我有一个相当简单的用户控件,代表一个基本的登录控件.所以它有几个标签,文本框和一个按钮.我希望这个用户控件来填充它的容器,所以我将其dock模式设置为fill.到目前为止很容易.

现在,我希望用户控件中的所有控件都可以根据呈现时用户控件的大小来居中.我想不出一个可以解决问题的锚/码头组合.

用户控件具有ReSize事件.所以我知道我可以根据用户控件在该事件期间的大小来计算和移动控件.但我希望这个问题很常见,如果我愿意,可以通过设计师处理.

.net c# user-interface winforms

3
推荐指数
1
解决办法
4408
查看次数

不允许使用带有WHERE子句的SqlDependency查询.如何修改它才有效?

我使用以下查询设置了SqlDependency:

string sql = "SELECT dbo.Case.CMRID, dbo.Case.SolutionID, dbo.Case.CreateDT, dbo.Case.ModifyDT "
+ "FROM dbo.Case "
+ "WHERE dbo.Case.ModifyDT > @LastExecutionDateTime";
Run Code Online (Sandbox Code Playgroud)

执行此查询会导致OnChanged事件持续触发,其类型为Invalid和Source of Statement.我进一步研究后发现,当您的查询违反与索引视图规则相同的规则时会发生什么,因为这是此通知机制所基于的.

使用查询通知检查特殊注意事项(ADO.NET)我没有看到任何违反此语句的规则.

将语句修改为

string sql = "SELECT dbo.Case.CMRID, dbo.Case.SolutionID, dbo.Case.CreateDT, dbo.Case.ModifyDT "
+ "FROM dbo.Case";
Run Code Online (Sandbox Code Playgroud)

工作正常吗?OnChanged事件仅在适当时触发,并且具有正确的类型集.

那么,我怎样才能返回自上次执行语句以来具有修改日期的记录?

c# sql-server-2005 .net-3.5 sqldependency

3
推荐指数
1
解决办法
5817
查看次数

Java初学者问题:下面的代码有什么问题?

public class Function
{
   public static void main(String args[])
   {
      System.out.println(power(3,2));
      System.out.println(power(3,2));
      System.out.println(power(2));
   }
   public long power(int m)
   {
      return m*m;
   }
   public long power(int m,int n)
   {
      long product=1;
      for(int i=1;i<=n;i++)
      {
          product=product*m;
      }
      return product;
   }
}
Run Code Online (Sandbox Code Playgroud)

编译器显示此错误: -

Function.java:5:无法从静态上下文引用非静态方法power(int,int)

[编辑]

对于缩进的事情很抱歉:/从现在开始我会记住这一点.

好的,我刚刚添加了静态关键字,现在工作正常.这个静态关键字有什么区别?我是java的初学者,还没有研究静态做什么.我肯定会在本书的后续章节中阅读它,但有人请告诉我它的作用.谢谢.

java non-static

3
推荐指数
1
解决办法
385
查看次数

如何以编程方式检索SQL Server 2005中的视图的alter view脚本

我们允许使用我们的用途来更改报表的某些视图,以及不基于我们在应用程序中跟踪的某些应用程序字段元数据的内容.可以在运行时创建这些字段.我有一个标准流程来在添加或删除字段时更改视图.我现在需要以编程方式执行此操作,这意味着我需要能够拉出当前的Alter视图脚本,进行修改,然后针对数据库执行它.最后两个步骤很简单,但第一部分给了我一些麻烦.

抛开设计决策(因为在这个特定实例中它们不在我手中).我想知道如何检索Sql server Management Studio用于View-> Edit命令的Alter视图脚本.

我需要与该命令完全相同的输出,因为我的脚本中有注释挂钩,允许我的编辑发生.

相关问题,但不是我想要的.

如何以编程方式检索与SQL Server Management Studio gui返回的源相同的SQL Server存储过程源?

在MSSQL中,如何为给定的表生成CREATE TABLE语句?

.net ddl metadata sql-server-2005

2
推荐指数
1
解决办法
4836
查看次数

有没有办法过滤SharePoint列表的RSS视图?

我正在尝试从SharePoint列表中仅获取某些项目.RSS提要给了我一切,即使我已经过滤了查看特定视图的列表.

rss sharepoint moss

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