8

我知道这个问题看起来如何,但我很认真。我正在尝试创建一个可以帮助我学习数据库(sql、查询、正确的数据库设计等)的应用程序。我在工作中使用了一个宠物项目,所以我需要关注一些实际需求。最初的项目是通过 MS Access 编写的(如原作者所说,“Frankensteined together”)。我想学习如何通过 SQLite 做得更好,但不知道如何重新创建 Access 提供的其他功能。

使用此站点作为与程序员和开发人员交互的一种方式(我不与任何人一起工作),到目前为止,我已经阅读了问题中推荐的所有Database Design for Mere Mortals 。所以,我有一个不错的小型数据库设计,我打算使用 SQLite 来实现。

我还检查了如何通过使用 Balsamiq 的 Mockups 为应用程序设计用户界面,并向我的潜在用户群(我团队中的同事)提交了一些想法,让他们提供反馈。

            Database --> <insert code here> --> User Interface

然而,对我而言,我最失望的部分是如何弥合这两种设计之间的差距?我意识到这显然是编码的用武之地,但迄今为止我还没有使用 GUI 制作任何东西。环顾四周,我似乎没有找到任何可以帮助我(一本书、一个网站,甚至是一个可以遵循的过程)尝试实际编写应用程序的东西。

我在一定程度上了解 Perl,但只将它用于命令行应用程序;我可以使用 Win32::GUI 模块,但我并不真正了解 GUI 编程和命令行编程之间的区别,只是知道它们是不同的。

是否有关于 GUI 开发的模型或指南可供遵循?是否有将应用程序绑定到数据库的特定资源?

4

2 回答 2

9

现在遵循的一般模式是:

Database -> DAL -> BLL -> Controller -> View Model -> UI

在哪里

DAL == Data Access Layer (aka ORM, Object-Relational mapper)
BLL == Business Logic Layer

谷歌搜索这些术语应该可以让您很好地了解从哪里开始。请注意,您并不总是需要每一层。例如,如果应用程序足够小,BLL 和视图模型可以是可选的。

另请参阅用于 Web 开发的 Model View Controller (MVC),以及用于桌面开发的 Model View Presenter (MVP) 或 Model View ViewModel (MVVM)。

尽管NerdDinner教程是特定于 Microsoft/Web 的,但它在一个地方包含了所有这些概念。

于 2009-11-12T18:23:59.440 回答
0

中间件是您所描述的另一个术语。

数据库本身可以是几个不同点的组合:

  1. 存储过程 - 这将用于代替直接访问表并提供抽象层。
  2. 表或视图 - 如果您正在构建轻量级应用程序,直接访问可能很有用的列名。
  3. 两者的结合。有些表可以直接访问,而其他数据库活动则通过存储过程完成。

UI 可以只是一个表示层,也可以有几个其他层与之关联,因为可以使用 ASP.Net 层的组合,包括 C#、HTML 和 JavaScript 来创建 Web 应用程序。

于 2009-11-17T18:24:50.067 回答