- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
有这个 Web 应用程序,它依赖于一种直接从数据库生成的数据访问库(简单的数据对象和关联对象以对其执行 CRUD 操作)。
所以来自 Person 表
ID<br/>
Forename<br/>
Surname<br/>
DoBirth
你会得到一个带有字段的生成的 Person 类:
ID, Forename, Surname, DoBirth
从他们的数据库列中输入。
还有一个辅助类 PersonPersister
与
Create(Person p)
Update(Person p)
Delete(Person p)
方法。
它还会在数据库上创建必要的 CRUD 存储过程。
刚开始时我对此感到不安,因为除了与 nHibernate 和 MEF 的短暂调情之外,我习惯于对数据访问层进行手动编码。我所有的担忧现在似乎都变成了现实,一年过去了,因为我们正在与更大的开发团队进行另一个开发阶段,并且裂缝已经开始出现。
基本问题是,作为开发人员,我们无法控制生成的内容,也无法对 DAL 进行版本控制。
每次我们发布版本时,我们都会花很多时间手动配置应用程序、dal 和数据库以使其正常运行。通常情况下,DAL 是从开发数据库生成的,然后应用于实时数据库,这当然缺少在开发过程中创建的表/存储过程等。
在这些时候,我经常发现自己前往 jobserve.com,尽管抛开这个问题我更喜欢在这里工作。
我的想法包括修改代码生成器,以便它覆盖显式 DAL 处理 Visual Studio 项目中的源文件 - 然后这些将在 CVS 中可跟踪,也可手动编辑。有没有人对这种策略有任何积极的经验?目前,构建生成的唯一工件是一个 dll,因此无法查看更改历史记录。
除了使用 ORM(管理层不喜欢 - 是的,我知道)之外,我们还有哪些选择可以合理化,让我们自己控制?我们仍然需要自动化的元素,但我们目前拥有的数量是行不通的。
我们很幸运在这里订阅了 MSDN,所以我们运行的是带有自动构建的 TFS 2010、最新的 Visual Studio 等,但由于我们开发环境的这一方面,感觉我们是落后于时代十年或更长时间。
最佳答案
我觉得这更多是您的部署策略问题,而不是开发策略问题。无论您使用 ORM 还是当前工具,它都会从开发数据库生成(如果您使用自动生成)实体。您的部署需要确保对应用程序的所有更改都通过您的 QA 传播到您的生产系统,无论是应用程序、数据库还是其他一些依赖项。
关于c# - 现代化 'Hand Rolled' 数据访问库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4852423/
我试图理解 java.util.concurrent.locks 库,并希望实现两个通过列表运行的线程,而第二个线程不应超过(领先)第一个线程。具体来说,我想实现手动锁定。 我写了下面的代码,但不起作
我正在寻找 Adobe Reader 中的张开的手/闭合的手 鼠标光标。他们在哪里?如果它们是非标准的,我用 C# 创建它们的最简单方法是什么? 最佳答案 是的,它们是非标准的。您只需要四处搜索,
我有这些警告,但我不知道如何解决它们。 warning: left-hand operand of comma has no effect warning: right-hand operand of
我在网站上寻求帮助,但仍然找不到此问题的答案。 这是代码: import java.util.Scanner; public class Player { private Card[] hand; p
当我尝试这样做时出现错误 friend std::ostream& operator<<(std::ostream& os, const hand& obj) { return obj.sho
我之前没有学过javascript,完全不知道自己该怎么做,因为我只是跟着别人的项目,希望有人能告诉我如何修改这些错误的地方。谢谢T_T 最佳答案 改变 function aniSprite (col
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve t
题目地址:https://leetcode.com/problems/hand-of-straights/description/ 题目描述 Alice has a hand of cards,
我有一个包含几个变量的循环;其中一个在每一步递增。然而,有时,这个变量可能会被重置为 0。因此我可以写: (loop with z = 0 ... do (progn
在 this link ,期望的结果是当光标悬停在图例上时,鼠标不会变为手形。我怎样才能实现它? 我不确定,但是这样的东西有用吗? window.setTimeout("document.body.s
我有一个 GameActivity 和一个 GameOverActivity。我将游戏积分保存在 GameActivity 中,但会在 GameOverActivity 中显示这些积分。我必须做什么?
这个问题已经有答案了: Output of System.out.println(object) (4 个回答) 已关闭 9 年前。 我不确定为什么会得到这个输出。当我尝试为我的扑克程序打印一手牌时。
我使用 carousel bootstrap 3 来使用幻灯片文本。当第 1 行文本长到底部(例如:高度 300 像素)而第 2 行文本太短(例如:仅 10 像素)时,问题是当我们单击第 # 行旁边时
如何使用 JavaScript 在 td 元素中添加样式属性 cursor? 我已经试过了: var tabla = document.getElementById("table"); var fil
有没有办法从导入的模块中获取异常处理输出并从调用程序中处理它?例如,我有一个写入 HTTP 异常的导入模块 except urllib2.HTTPError, e: sys.stderr.wri
我在这里遵循 W3C 的标准 http://www.w3.org/TR/CSS2/ui.html在这里 http://www.quirksmode.org/css/cursor.html#note .
我正在使用 Unity 构建汽车模拟器游戏。对于输入,我使用 Logitheck 方向盘 G29。现在我需要使用 Hand Controller 来加速或刹车。这是我的手控器手控器 HC1 Link
我在 chrome 浏览器中运行我的 flutter 应用程序,它会显示以下错误。 Do not call didCreateEngineInitializer by hand. Start with
我想为我的 Lable 设置一个鼠标监听器,这样当用户将鼠标放在标签上时,我可以将光标更改为 HAND_CURSOR。 我试图设置样式 css“cursor: hand;”对于这个标签,但是在运行
我正在使用 idTCPServer 来处理数据。对于新设备,我需要将套接字移交给 dll(停止 tcp 服务器从该套接字读取数据)。 Indy 或 ICS 可以实现这一点吗? [编辑]出于测试目的,我
我是一名优秀的程序员,十分优秀!