Language agnostic 什么是;核心;在图书馆设计的背景下是什么意思?

Language agnostic 什么是;核心;在图书馆设计的背景下是什么意思?,language-agnostic,architecture,platform-agnostic,Language Agnostic,Architecture,Platform Agnostic,我经常看到其他开发人员用“CORE”命名库。它实际上意味着什么?我使用这个约定,它基本上是一个核心类库,包含通用实用程序类和代码,在它们自己的库中没有位置 例如,许多类的扩展方法,额外的数学函数等等,这些东西都不够大,不能保证它们有一个完整的其他项目 我不知道还有什么其他的东西。来定义“核心”。其中一个定义是: 基本部分:中心或最重要部分 重要部分 因此,基本上,当有人命名库核心时,它是其应用程序和/或框架的核心和最重要的部分:-)在我看来,核心意味着不可或缺的东西。数学函数和其他具有实用目的的

我经常看到其他开发人员用“CORE”命名库。它实际上意味着什么?

我使用这个约定,它基本上是一个核心类库,包含通用实用程序类和代码,在它们自己的库中没有位置

例如,许多类的扩展方法,额外的数学函数等等,这些东西都不够大,不能保证它们有一个完整的其他项目

我不知道还有什么其他的东西。

来定义“核心”。其中一个定义是:

基本部分:中心或最重要部分 重要部分


因此,基本上,当有人命名库核心时,它是其应用程序和/或框架的核心和最重要的部分:-)

在我看来,核心意味着不可或缺的东西。数学函数和其他具有实用目的的函数不在核心中。它们相当“实用”


核心是使其他一切都存在的那一部分——没有它,其他一切就毫无意义。其他不在核心中的东西可以被删除(设计上并不总是可能的)。

我认为核心是应用程序的抽象核心。 核心通常实现足够的逻辑来定义整个应用程序的行为

因此,在我看来,数据访问和显示不应该是核心的一部分。这允许web和桌面应用程序共享同一个核心模块

在您的情况下,我将在核心模块中包含业务逻辑、错误处理和配置


我还认为,拥有一个大型核心模块的主要原因是为了避免维护大量小型模块的成本

我认为core是您可以从该供应商处使用的任何其他库的先决条件。因此,虽然供应商可能会提供几个独立的包,但它们都依赖core来完成工作。否则可能会导致严重的代码重复。

这可能会被视为异端,但经过数年的构建解决方案,并针对数据访问、业务逻辑等单独项目,我更倾向于将这些层放在一个名为MyApp.Core的项目中,这样一个基本解决方案将只包含核心项目和一个UI项目。这并不是说不再需要或添加其他项目(例如MyApp.Tests),而是说基本结构将基于这两个项目


编辑:根据评论中的建议进行删节。

根据此处已发布的答案,显然没有“标准”方法来定义与开发库相关的“核心”


这样我就不用担心“正确”了。使用你认为合适的术语。

为什么?核心的含义是主观的吗?维基百科有一个页面:上面写着“维基百科不是字典”。我想我们应该在SOFAQ中有它……什么?我们现在是否在基于维基百科策略的StackOverflow上设置策略?请举一些具体的例子,说明您认为“核心”这个名字的原因不明显。您能更具体一些吗。比如,你放在核心的东西样本。我通常有一个单独的项目,用于数据访问、业务逻辑、演示、配置、错误处理、实用程序等。我不确定在核心中还剩下什么,或者这些东西是否应该/可能在核心中core@micmoo,因为它存在。我自己不使用Bing,但使用什么搜索引擎是他的选择。-1:我认为你的答案远远超出了问题的范围,已经成为博客帖子或讨论的开始。我建议你在说你把这些东西放在一起并称之为“核心”之后,就停止编辑它。哇,有趣的是,与网站所有者的观点形成对比,他们在播客中反复声明,好的答案是那些详细的,并为他们的论文提供支持信息的答案,这一立场似乎反映在社区中,无数的答案都被投票通过,评论表明对细节的理解。还有一个有趣的建议,就是删去一个基本上是主观的、没有上下文的答案,使其几乎像“我喜欢蓝色”一样武断,而不说明原因。每个人都有自己的想法:-)嗯,进一步考虑后,我想要一个开始写博客的理由。做编辑。我已经删除了投票,事实上推翻了这个答案,因为你花时间考虑我写的东西。即使你回来说,“经过考虑,我不会改变它”,我也会投赞成票。我的问题不是你回答得很详细,而是你回答了一个不同的问题。这不是OP所问的问题。+1:我不能说我对.Net框架的实现有很好的了解,但从一般情况来看,这似乎符合System.Core和mscorlib的目的。我倾向于同意你对UTIL的概念。Core是其他一切都依赖的东西。