问题列表 - 第42408页

建模数据库模型是设计复杂和大型企业应用程序的好方法吗?

我们正在开发一个面向服务的大型多层应用程序,必须从头开始设计.现在我们需要开始编程,并尝试组装第一块砖.

问题是从哪里开始?有人建议我们应该从设计持久数据模型开始,这将提供更清晰的视图.这是一个好方法吗?

编辑为Suirtimed

这里没有太多的敏捷文化.这是一个SOA样式项目,使用WCF,SQL Server,实体框架(使用POCO生成器用于域对象),ASP MVC和Workflow Foundation.我们是一个由4名开发人员组成的团队; 技术合理(但不是专家).

architecture database-design design-patterns software-design

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

带有提示符的UINavigationBar上的Pixelheight

有没有人知道UINavigationBar如何提示?我知道它没有44px.帮助或链接到一个网站,在那里我可以看到iPhone上不同GUI元素的所有不同测量结果非常受欢迎!

iphone

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

DTO和UnitOfWork模式是一种为Web应用程序设计DAL的好方法吗?

我正在使用实体框架实现DAL.在我们的应用程序中,我们有三个层(DAL,业务层和演示文稿).这是一个网络应用程序.当我们开始实现DAL时,我们的团队认为DAL应该有类,其方法接收业务层上的服务给出的ObjectContext并对其进行操作.这个决定背后的基本原理是不同的ObjectContexts看到不同的DB状态,因此由于外键匹配和其他不一致的问题,一些操作可能被拒绝.

我们注意到从服务层生成和传播对象上下文会在层之间产生高耦合.因此,我们决定使用由Automapper映射的DTO(不是非托管实体或自我跟踪实体,主张高耦合,将实体暴露给上层和低效率)和UnitOfWork.所以,这是我的问题:

  1. 这是设计Web应用程序的DAL的正确方法吗?为什么?
  2. 如果对1回答"是",那么如何将DTO的概念与UnitOfWork模式相协调?
  3. 如果对"1"回答"否",这可能是为Web应用程序设计DAL的正确方法吗?

如果可能的话,请提供支持您答案的参考书目.

关于目前的设计:

该应用程序计划在三个层次上开发:演示,业务和DAL.业务层有外观和服务

有一个名为ITransaction的接口(只有两种处理和保存更改的方法)仅在服务中可见.为了管理事务,有一个类Transaction,它扩展了ObjectContext和ITransaction.我们已经设计了这一点,考虑到在业务层我们不希望其他ObjectContext方法可访问.

在DAL上,我们使用两个泛型类型创建了一个抽象存储库(一个用于实体,另一个用于其关联的DTO).此存储库具有以通​​用方式实现的CRUD方法和两个通用方法,以使用AutoMapper映射通用存储库的DTO和实体.抽象存储库构造函数将ITransaction作为参数,并且它期望ITransaction是ObjectContext,以便将其分配给其检测到的ObjectContext属性.

具体的存储库应该只接收和返回.net类型和DTO.

我们现在面临这个问题:创建的泛型方法不会为附加实体生成临时或持久ID(直到我们使用SaveChanges(),因此打破了我们想要的事务性); 这意味着服务方法无法使用它来关联BL中的DTO

c# design-patterns data-access-layer .net-4.0 entity-framework-4

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

使用PHP MySQL的类别层次结构(按顺序)

我想ORDER我的所有类别和子类别的层次结构:

重点是如何从MySQL订购它们(使用POSITION字段)

  • 猫A - >位置10
    • 子猫1 - >位置10
    • Sub_Sub_Cat 1 - >位置20
      • Sub_Sub_Cat 2 - >位置10
    • Sub_Cat 2 - >位置30
  • 猫B - >位置20
  • Cat C - >位置30

MySQL代码:

 CREATE TABLE IF NOT EXISTS `categories` (
   `category_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
   `position` smallint(5) unsigned,
   `parent_id` mediumint(8) unsigned NOT NULL DEFAULT '0'
  PRIMARY KEY (`category_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 ;
Run Code Online (Sandbox Code Playgroud)

php mysql database hierarchy

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

派生类和智能指针

class Object { /* */ };
Run Code Online (Sandbox Code Playgroud)

和一些派生的:

class Derived1 : public Object { /* */ };
class Derived2 : public Object { /* */ };
Run Code Online (Sandbox Code Playgroud)

我有一个函数,它使派生对象和返回指针Object;

Object *make()
{
   return new Derived1();
}
Run Code Online (Sandbox Code Playgroud)

所以,这种方式我必须通过智能指针包装返回的对象,但要使用什么返回类型?

TYPE? make()
{
   return boost::shared_ptr<Derived1>(new Derived1());
}
Run Code Online (Sandbox Code Playgroud)

c++ boost pointers smart-pointers

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

从多维数组中获取特定键值对

我有以下数组:

array(2) {
  [0] => array(3) {
    ["submission_id"] => int(28)
    ["date"] => string(22) "2010-10-18 15:55:33+02"
    ["user_id"] => int(12)
  }
  [1] => array(3) {
    ["submission_id"] => int(37)
    ["date"] => string(22) "2010-11-21 16:02:07+01"
    ["user_id"] => int(23)
  }
Run Code Online (Sandbox Code Playgroud)

我想从这个数组中只获取user_id键值.我显然可以循环它,但我想知道是否有更快的方法.

php

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

在添加节点时,让Nokogiri不添加"默认"命名空间

背景:

我想从一个文件中获取一些xml,将其放在模板文件中,然后将修改后的模板保存为新文件.它可以正常工作,但是当我保存文件时,我添加的所有节点都有一个预先定义的默认命名空间,即

        <default:ComponentRef Id="C__AD1817F9C64A42F0A14DDDDC82DFC8D9"/>
        <default:ComponentRef Id="C__157DD41D70854617A3D6D1E4A39B589F"/>
        <default:ComponentRef Id="C__2E6D8662F38FE62CAFA9F8842A28F510"/>
        <default:ComponentRef Id="C__54E5E2181323D4A5F37293DAA87B4230"/>
Run Code Online (Sandbox Code Playgroud)

我想要的只是:

        <ComponentRef Id="C__AD1817F9C64A42F0A14DDDDC82DFC8D9"/>
        <ComponentRef Id="C__157DD41D70854617A3D6D1E4A39B589F"/>
        <ComponentRef Id="C__2E6D8662F38FE62CAFA9F8842A28F510"/>
        <ComponentRef Id="C__54E5E2181323D4A5F37293DAA87B4230"/>
Run Code Online (Sandbox Code Playgroud)

以下是我的ruby代码:

file = "wixmain/generated/DarkOutput.wxs"
template = "wixmain/generated/MsiComponentTemplate.wxs"
output = "wixmain/generated/MSIComponents.wxs"

dark_output = Nokogiri::XML(File.open(file))
template_file = Nokogiri::XML(File.open(template))

#get stuff from dark output
components = dark_output.at_css("Directory[Id='TARGETDIR']")
component_ref = dark_output.at_css("Feature[Id='DefaultFeature']")

#where to insert in template doc
template_component_insert_point = template_file.at_css("DirectoryRef[Id='InstallDir']")
template_ref_insert_point = template_file.at_css("ComponentGroup[Id='MSIComponentGroup']")

template_component_insert_point.children= components.children()
template_ref_insert_point.children= component_ref.children()

#write out filled template to output file
File.open(output, 'w') { |f| template_file.write_xml_to f }
Run Code Online (Sandbox Code Playgroud)

更新

我的模板文件示例:

<?xml version="1.0" …
Run Code Online (Sandbox Code Playgroud)

ruby xml nokogiri

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

是Silverlight .Net吗?(删除前阅读)

我知道这听起来像一个愚蠢的问题,但它是为了解决一个同事和我对Silverlight的争论.

引用我的同事"我们将在Silverlight中开发......我们不会做太多.Net开发".

我的反应是声明Silverlight是.net.当然,组件的封装是不同的,但在核心,两个VM/GC都运行相同的代码.Silverlight只缺少完整.Net 4配置文件提供的大部分例程.

我的同事的论点是Silverlight有自己的一组VM/GC错误,而且所有Silverlight VM都比不那么强大的完整.Net VM更不成熟.

有没有人对此有一些答案?也许在某处有一些文件?如果我错了,我会承认的.但我找不到任何说我错的东西.

c# silverlight silverlight-4.0 c#-4.0

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

如何在Windows上模拟iPad浏览器

如何在Windows下模拟iPad浏览器?我知道用户代理字符串,我知道浏览器宽度/高度,屏幕宽度/高度

mobile-safari ipad

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

iPad,JavaScript字符代码和shiftKey

假设每次用户按下ID为"txt"的textarea中的键时,我都会调用以下jQuery的Web应用程序:

$('#txt').keydown(function(e) {
console.log(e.which); // shows the keyCode
console.log(e.shiftKey);
}
Run Code Online (Sandbox Code Playgroud)

在桌面浏览器上,对于像(和这样的字符9,我可以通过检查是否按住shift键来区分两者(使用e.shiftKey).但是,在Safari for iPad中,键入这些字符不需要Shift键.因此,例如,按下iPad键盘上的两个键(9在keyCode的控制台中记录"57".为e.shiftKey记录的值始终显示为false.

我如何能够可靠地区分在iPad上键入移位字符?提前致谢!

javascript mobile-safari keyboard-events ipad

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