2009-08-15 17 views
8

A menudo veo a otros desarrolladores nombrar bibliotecas con "CORE". ¿Qué significa en realidad?¿Qué significa "Core" en el contexto del diseño de la biblioteca?

+3

¿Por qué es eso? ¿Es el significado de Core subjetivo? –

+0

Wikipedia tiene una página: http://en.wikipedia.org/wiki/What_wp_is_not en el que dicen "Wikipedia no es un diccionario". Supongo que deberíamos tenerlo en SOFAQ ... –

+0

¿Qué? ¿Estamos estableciendo políticas en StackOverflow según la política de Wikipedia? –

Respuesta

6

En mi opinión, CORE significa algo indispensable. Las funciones matemáticas y otras funciones con fines de utilidad no están en el núcleo. Son más bien "Utils".

El núcleo es esa parte que hace que todo lo demás exista, sin eso, los otros no tienen sentido. Otras cosas, que no están en el núcleo, pueden (no siempre es posible por diseño) eliminarse.

+0

+ 1: No puedo decir que soy un buen alumno de la implementación del framework .Net pero solo por exposición general parece que esto es consistente con el propósito de System.Core y mscorlib. –

+0

Me inclino a estar de acuerdo con su concepto de Utils. –

+1

Core es algo de lo que todo lo demás depende. –

4

Utilizo esa convención y es básicamente una biblioteca de clase principal con clases de utilidad genéricas y código que realmente no tiene lugar en su propia biblioteca.

Por ejemplo, métodos de extensión para muchas clases, funciones matemáticas extra, etc. Cosas que no son lo suficientemente grandes como para justificar un proyecto completamente diferente para ellas.

Lo que otros hacen, no tengo ni idea.

6

I asked Bing para definir "Core". Una de las definiciones que ocurrió fue:

parte esencial: la central o más parte importante de algo

Así que, básicamente, cuando los nombres de alguien una base de la biblioteca, es el central y más parte importante de su aplicación y/o marco :-)

+0

Puede ser más específico. es decir, muestras de cosas que colocarías en el Núcleo. Normalmente tengo un proyecto separado para DataAccess, BusinessLogic, Presentation, Configuration, Error Handling, Utilities, etc. No estoy seguro de lo que queda por poner en el Core, o si algo de eso debería/podría estar en el core – Dkong

+2

Bing! ??!?! ¡Por qué! – micmoo

+0

@micmoo, porque existe. Yo no uso Bing, pero es su elección lo que el motor de búsqueda usar. –

1

Veo el núcleo como el corazón abstracto de la aplicación. El núcleo normalmente implementa suficiente lógica para definir el comportamiento de toda la aplicación.

Por lo tanto, en mi opinión, el acceso a los datos y la presentación no deberían formar parte del núcleo. Esto permite que las aplicaciones web y de escritorio compartan el mismo módulo principal.

En su caso, habría contenido lógica comercial, manejo de errores y configuración en el módulo principal.

También creo que la razón principal para tener un módulo de núcleo grande es evitar el costo de tener que mantener una gran cantidad de módulos más pequeños.

0

Veo el núcleo como un requisito previo para cualquier otra biblioteca que pueda utilizar de ese proveedor. Por lo tanto, aunque el proveedor puede ofrecer varios paquetes independientes, todos confían en el núcleo para hacer las cosas. De lo contrario, puede provocar una duplicación grave del código.

1

Esto probablemente será juzgado como una herejía, pero después de varios años de soluciones de estructuración con proyectos separados para acceso a datos, lógica de negocios, etc., estoy más que dispuesto a poner esas capas en un solo proyecto llamado MyApp.Core para que una solución básica consistiría solo en el proyecto central y un proyecto de interfaz de usuario. Eso no quiere decir que nunca se necesitarían o agregarían otros proyectos (por ejemplo, MyApp.Tests), pero que la estructura básica se basaría en esos dos.

Editar: abreviado por sugerencia en los comentarios.

+0

-1: Mi opinión es que su respuesta va más allá de la pregunta, y se ha convertido en una publicación de blog o en el comienzo de una discusión. Te recomiendo que lo edites para que pare después de decir que estás juntando estas piezas y llamándolo "Núcleo". –

+0

Wow interesante tomar en contraste con las opiniones de los propietarios del sitio que han declarado repetidamente en su podcast que las buenas respuestas son las que se detallan y proporcionan información de apoyo a sus tesis, una posición que parece reflejada en la comunidad por la miríada de respuestas votó con comentarios que indican apreciación por entrar en detalles. También una sugerencia interesante para truncar una respuesta que sería esencialmente subjetiva sin contexto, haciéndola casi tan arbitraria como "Prefiero el azul" sin decir por qué. Para cada uno lo suyo :-) –

+0

Meh, en consideración adicional, he querido una razón para comenzar a bloguear. Haciendo la edición. –

1

Según las respuestas ya publicadas aquí, aparentemente no hay una forma "estándar" de definir "Núcleo" en lo que se refiere al desarrollo de bibliotecas.

Así que no me preocuparía ser "correcto". Use el término como mejor le parezca.

Cuestiones relacionadas