3

我非常了解 ASP.NET C#。我做了很多东西,比如调查和自定义 Web 应用程序。

我在研究 Drupal 并弄清楚如何做“特殊”的程序化事情时遇到了很多麻烦,比如搜索客户列表或创建 Web 应用程序。

1 -我一直在阅读书籍和drupal API,但我仍然在开始使用任何东西时遇到很多麻烦。与页面、模块、片段有关的自定义代码在哪里......?如何将我在 ASP.NET 中所做的表单 X 复制到 drupal 中的新页面中?等等。 把我的头包裹在 Drupal 上是非常困难的,它看起来如此庞大、简单和可扩展,但我也很难编码。对于 ASP.NET 应用程序程序员学习使用 Drupal/在 Drupal 中工作,您有什么建议?

2 -有时我们会为客户编写完整的 ASP.NET 应用程序,而这些应用程序并不打算让客户去编辑它们。例如,我们的整个网站都在 drupal 中,但在该网站内部,我们将有一个地方供用户使用特殊的数据库信息搜索。我们不希望简单的网站编辑器和内容提供商试图编辑这个特殊编码的页面。如何处理不希望客户编辑 Drupal 应用程序中的任何内容?它是通过页面/用户权限处理的吗?完全在 drupal 之外开发和托管应用程序是最好的吗?drupal 应用程序是否是 drupal 网站内的自己的 drupal 实例(嵌套的 drupal?)?

3 -最后,我如何处理数据库?我了解 Drupal 和 PHP 设置为与 MySQL 一起工作得最好。我们有多个应用程序使用的 MS SQL 数据库,并希望在我们开始使用 Drupal 时将它们用于新应用程序。例如,我们有一个 Staff 目录,它为 ASP.NET 报告应用程序、ASP.NET Staff Listing 应用程序提供数据,并且想要创建一个新的 Drupal PHP 应用程序,该应用程序也使用(并且可能向其中插入/更新更多信息)该数据库。处理多个 Drupal 和 ASP.NET 应用程序正在使用和更新的 MS SQL 数据库和/或 MySQL 数据库的最佳/最简单方法是什么?让所有应用程序都使用 MS SQL 数据库会更容易,还是在 MySQL 上为 Drupal/PHP 应用程序复制数据库并以某种方式同步两个数据库?

如果我在一个帖子中提出多个相关问题,我希望没关系。

4

5 回答 5

2

恐怕我对 Drupal 没有任何经验,所以我无法对您的第一个或第二个问题提供任何见解,但关于第三个问题:

处理多个 Drupal 和 ASP.NET 应用程序正在使用和更新的 MS SQL 数据库和/或 MySQL 数据库的最佳/最简单方法是什么?

如果您要从 ASP.NET 应用程序和 PHP/Drupal 应用程序执行 CRUD 操作,那么我建议您不要尝试在 MySQL 和 MSSQL 之间来回同步数据,因为这会导致延迟问题,而且您将拥有处理两个数据库管理系统之间的差异。

相反,我建议您考虑使用存储过程来控制所有数据库访问。这样,您可以确保所有数据库 CRUD 操作符合相同的规则和逻辑。

在 ASP.NET 和 PHP 中使用 MSSQL 应该没有问题,尤其是对于非常优秀的 PDO 库,它提供了访问许多流行数据库管理系统的标准接口。它应该允许您在 PHP 应用程序中快速轻松地连接并开始使用您的 MSSQL 数据库。

于 2009-11-06T22:12:51.567 回答
2

这是你问的一些好问题。我会尽我所能回答他们。我对 APS.NET 的 c# 没有任何经验,所以我不知道你来自哪里。我自己作为一个没有经验的 python/django 开发人员学习了 Drupal。所以在某些方面我可以理解你在尝试学习 Drupal 时遇到的一些麻烦。其中一些事情只需要时间/经验/实验才能消失。

  1. 要真正了解 Drupal 和 Drupal API,您首先需要对 PHP 有很好的了解。有时 Drupal 会做一些复杂的 PHP 事情,所以如果你不了解语法或 PHP 函数等,你很容易迷失方向。

    • 代码在哪里?
      Drupal 是作为一个模块化系统构建的。Drupal 本身是一组模块,其中一些是 Drupal 正常工作所必需的。如果你想制作一些自定义代码,那就是你想做一些你不能使用模块的事情。为 Drupal 开发了大约 5000 个模块。通常即使是熟练的程序员,最好的选择是找到一个可以满足您需要或可以让您接近的模块。因此,您所做的就是创建自己的模块。

      1. 使用模块名称创建一个文件夹

      2. 在其中创建一个 modulename.info ,其中包含有关以特殊方式格式化的模块的一些信息。Drupal 需要它在激活模块的模块列表页面上显示模块。

      3. 最后创建一个 modulename.module 文件,模块代码的核心将位于该文件中。

      对于 Drupal,另一件需要理解的重要事情是它使用了一个基于钩子的系统。钩子就像事件,一旦发生你想要挂钩的特定事情,或者改变流程,或者做一些你自己的事情,就会触发。您可以在每次显示特定表单时记录 Fx,或者您可以更改表单,添加/删除字段。

    • Forms
      Drupal 有一个 FAIP 或 Form API,用于生成表单,这是在文档中有它自己的页面的东西。这个想法是您创建一个关联的 PHP 数组,其中包含有关表单的每个元素的信息,Drupal 将使用它来创建表单。

    • 书籍 有很多不错的 Drupal 书籍可供您学习。我自己学到最多的书是Pro Drupal Development

  2. 首先,Drupal 有一个非常细粒度的基于角色的权限系统,这将允许您准确设置您的客户被允许做的事情。您可以创建不同的角色,如版主、内容创建者、管理员、系统管理员等,并为每个角色赋予不同的权限。这非常简单,并且可以在 Drupal AI 中进行设置。但是,您需要知道权限,因为有些是超级权限这将允许访问很多东西。现在,为了集成您的应用程序,您可能想要为其编写自定义模块。我不知道你想怎么做。但我认为最好的结果是让 Drupal 从您的应用程序中创建页面、表单等,然后来回发送数据。这样网站的主题 = 布局将是一致的。这样用户就不会觉得他们离开了网站,但这只是网站提供的另一个功能。

  3. Drupal 不仅设置为最好地处理 MYSQL,您实际上需要 MYSQL 或 PSQL 作为您的 drupal 数据库后端。原因是 Drupal 处理查询的方式,它允许您编写非特定查询,无论您使用两种类型中的哪一种,或者您的表是否有前缀。因此,对于所有 Drupal 内部,您将需要两者之一。PHP 可以连接到 MSSQL 并针对该数据库运行查询,因此您可以毫无问题地编写自定义代码来运行对其他应用程序数据库的查询并获取或更新数据。根据数据,您可能希望在数据库中创建一个可以读取和写入的表,然后在需要时同步数据库。这在一定程度上取决于您的用例。我已经完成了后者,在我不需要写入数据库的情况下,

于 2009-11-07T06:53:49.750 回答
1

磅,

我已经完成了相当多的 Drupal 并且拥有强大的 ASP.NET 经验。您确实需要阅读以理清思路。他们以类似 MVC 的方式使用层,这对于 WebForms 和 ASP.NET MVC 开发人员来说非常陌生……坦率地说,起初看起来很奇怪。

以下是我为快速获得非常非常好的事情所做的一系列事情:

  1. 以 8 美元的价格获得类似 hostgator 的主机,它可以让您安装 Drupal
  2. 获取《Pro Drupal Development for Beginners》这本书……非常好,涵盖了很多领域http://www.amazon.com/Pro-Drupal-Development-Second-Beginning/dp/1430209895/ref=sr_1_2?ie=UTF8&s =books&qid=1257545528&sr=8-2
  3. 进入 Drupal 论坛
  4. 准备好做出贡献。Drupal 有很多特性,但最终最好的方法是成为贡献代码的人

有许多 IDE 需要考虑,但启动文本编辑器应该没问题。

祝你好运。

于 2009-11-06T22:13:21.673 回答
1

首先,我认为了解 Drupal 的局限性很重要,有些事情并不是真正适合做的。它是一种 Web 应用程序框架,但如果您使用自己的自定义数据建模和其他东西进行大量自定义工作,Drupal 可能不是解决您的各种问题的最灵活或最容易实现的解决方案。像 Zend Framework 这样的更通用的框架可能更适合。

学习 Drupal 的一个重要教训是:不要破解核心或其他模块。这将使升级核心或模块非常耗时。而是“像 Drupal 一样”并使用钩子覆盖。在主题化中,您也可以使用钩子覆盖,但也可以通过其他方式。覆盖是强大的,所以要很好地理解这个概念。

  1. 我想说,选择一种学习方式,即你的风格、截屏视频、IRC、黑客、用户聚会 IRL、书籍、文章或任何组合,并在 Drupal 上寻找材料。只需开始四处逛逛,感受和了解 Drupal 的工作原理。理解行话是一个重要的部分,那么什么是:节点、块、区域、钩子、模块、主题。
  2. Drupal 有一个非常灵活的权限系统,使用它可能是最好的选择,而不是自己制作。您可以编写自己的模块来添加或更改 Drupal 的行为。因此,如果您想编写一个与 Drupal 一起工作的新应用程序,您可以编写一个模块来执行应用程序必须具有的功能,并利用 Drupal 提供的所有功能,包括用户、权限系统等。我不知道t真的理解你的第二个问题的最后一部分“drupal应用程序是drupal网站内部的drupal实例(嵌套drupal?)?”。Drupal 是服务器上的 PHP 文件集合,它与数据库中的大量表一起为向它发出的请求提供服务。多个 Drupal 网站(因此不同的 PHP 文件)可以引用相同的数据库或其中的一部分(例如用户表)。Drupal 站点并没有真正的“实例”,因为没有真正的“应用程序”。我当然可能对这些术语不太熟悉,但我认为 PHP 不能与“应用程序”的“实例”一起使用。

  3. 这是一个难题,afaik Drupal 不适用于 MS SQL,因此您可能必须自己建立该方向的任何连接。我还会在 Drupal 论坛或 IRC 上询问。

祝你好运!

于 2009-11-07T00:59:12.697 回答
1

这里有一些很好的答案,所以我将填写一些简短的项目。

1 - Learning Drupal:Pro Drupal Development 是这方面最好的书。进入问题队列并与开发人员互动是熟悉细节的一种方式。您关于表单的问题与 Drupal 如何处理表单有关。FAPI 在 Drupal 中非常健壮,可以保护您免受安全漏洞的影响。api dot Drupal dot org 也是记录代码的地方,尽管其他地方也有文档。谷歌是你的朋友。(在 Drupal 站点本身上,使用本机搜索来获取分面结果。)

2 - 这是一个用户权限问题。您可以根据内容类型限制创建和编辑权限。对于访问控制(读取),您将需要使用众多模块之一进行访问控制。这实际上取决于您的用例。

3 - Drupal 对 MySQL 的社区支持最多,但人们也在 MS SQL 上运行 Drupal。在 Drupal 7 中,您可能会看到对非 MySQL 的更多支持,因为此版本引入了数据库抽象。

可能最糟糕的事情就是在边缘进行黑客攻击。学习 Drupal 基础知识(管理和编码)的来龙去脉真的很值得,这样您就可以真正利用 Drupal 带来的强大功能。

如果您正在寻找模块,http ://drupalmodules.com是您的朋友。;)

于 2009-11-09T01:01:55.643 回答