2009-08-15 10 views
8

Ich sehe oft andere Entwickler, die Bibliotheken mit "CORE" benennen. Was bedeutet es eigentlich?Was bedeutet "Core" im Kontext des Bibliotheksentwurfs?

+3

Warum ist das? Ist die Bedeutung von Core subjektiv? –

+0

Wikipedia hat eine Seite: http://en.wikipedia.org/wiki/What_wp_is_not in der sie sagen "Wikipedia ist kein Wörterbuch." Ratet mal, wir sollten es in SOFAQ haben ... –

+0

Was? Setzen wir jetzt die Richtlinie bei StackOverflow auf der Grundlage der Wikipedia-Richtlinien? –

Antwort

6

Meiner Meinung nach bedeutet CORE etwas Unentbehrliches. Mathematische Funktionen und andere Funktionen mit Utility-Zwecken sind nicht im Kern. Sie sind eher "Utils".

Der Kern ist der Teil, der alles andere existiert - ohne ihn ergeben die anderen keinen Sinn. Andere Sachen, die nicht im Kern sind (können nicht immer durch Design möglich), werden entfernt.

+0

+ 1: Ich kann nicht sagen, dass ich ein gut gelehrter Student der Implementierung des .Net-Frameworks bin, aber nur aus allgemeiner Sicht scheint es, dass dies mit dem Zweck von System.Core und mscorlib übereinstimmt. –

+0

Ich bin geneigt, mit Ihrem Konzept von Utils zuzustimmen. –

+1

Core ist etwas, von dem alles andere abhängt. –

4

Ich verwende diese Konvention und es ist im Grunde eine Kern-Klasse-Bibliothek mit generischen Dienstprogramm Klassen und Code, die wirklich keinen Platz in ihrer eigenen Bibliothek hat.

Zum Beispiel Erweiterungsmethoden für viele Klassen, zusätzliche mathematische Funktionen usw. Dinge, die nicht groß genug sind, um ein ganzes anderes Projekt für sie zu rechtfertigen.

Was andere tun, habe ich keine Ahnung, obwohl.

6

I asked Bing definieren "Core". Eine der Definitionen es herauskam, war:

wesentlicher Bestandteil: die zentrale oder die meisten wichtiger Teil von etwas

Also im Grunde, wenn jemand benennt eine Bibliothek Kern, es ist die zentrale und die meisten wichtiger Teil ihrer Anwendung und/oder Rahmen :-)

+0

Können Sie genauer sein. dh Proben von Material, das Sie in den Core legen würden. Ich habe normalerweise ein separates Projekt für DataAccess, BusinessLogic, Präsentation, Konfiguration, Fehlerbehandlung, Dienstprogramme etc. Ich bin mir nicht sicher, was noch in den Core, oder wenn einige dieser Dinge sollten/könnte in der sein Kern – Dkong

+2

Bing! ??!?! Warum! – micmoo

+0

@micmoo, weil es existiert. Ich benutze Bing nicht selbst, aber es ist seine Wahl, welche Suchmaschine zu verwenden ist. –

1

Ich sehe den Kern als das abstrakte Herz der Anwendung. Der Kern implementiert normalerweise ausreichend Logik, um das Verhalten der gesamten Anwendung zu definieren.

Also meiner Meinung nach Datenzugriff und Präsentation sollte nicht Teil des Kerns sein. Dadurch können sowohl Web- als auch Desktop-Anwendungen dasselbe Kernmodul nutzen.

In Ihrem Fall würde ich Geschäftslogik, Fehlerbehandlung und Konfiguration im Kernmodul enthalten.

Ich glaube auch, dass der Hauptgrund für ein großes Kernmodul die Kosten zu vermeiden ist, viele kleinere Module zu warten.

0

Ich sehe Core als Voraussetzung für jede andere Bibliothek, die Sie von diesem Anbieter verwenden können. Während also der Anbieter mehrere unabhängige Pakete anbietet, verlassen sich alle auf den Kern, um die Dinge zu erledigen. Andernfalls kann es zu einer schwerwiegenden Codeverdopplung kommen.

1

Dies wird wahrscheinlich als Häresie beurteilt werden, aber nach mehreren Jahren der Strukturierung von Lösungen mit separaten Projekten für Datenzugriff, Geschäftslogik, etc., werde ich eher diese Schichten in ein einziges Projekt namens MyApp.Core so setzen dass eine Basislösung nur aus dem Kernprojekt und einem UI-Projekt bestehen würde. Das heißt nicht, dass keine anderen Projekte jemals benötigt oder hinzugefügt werden würden (z. B. MyApp.Tests), sondern dass die Struktur auf diesen beiden basieren würde.

Edit: gekürzt pro Vorschlag in Kommentaren.

+0

-1: Ich nehme an, dass Ihre Antwort weit über die Frage hinausgeht und zu einem Blogbeitrag oder dem Beginn einer Diskussion geworden ist. Ich empfehle Ihnen, es zu bearbeiten, um zu stoppen, nachdem Sie sagen, dass Sie diese Stücke zusammenfügen und es "Kern" nennen. –

+0

Wow interessant im Gegensatz zu den Meinungen der Inhaber der Website, die wiederholt in ihrem Podcast angegeben haben, dass gute Antworten diejenigen sind, die detailliert sind und unterstützende Informationen zu ihren Thesen bieten, eine Position, die sich in der Community durch die unzähligen Antworten zeigt. stimmte mit Kommentaren, die Wertschätzung für ins Detail gehen. Es ist auch ein interessanter Vorschlag, eine Antwort zu kürzen, die im Wesentlichen subjektiv ohne Kontext ist und sie fast so willkürlich macht wie "Ich bevorzuge Blau", ohne zu sagen, warum. Jedem aber auch :-) –

+0

Meh, bei weiterer Überlegung wollte ich einen Grund haben mit dem Bloggen anzufangen. Die Bearbeitung machen. –

1

Basierend auf den Antworten, die hier bereits gepostet wurden, gibt es anscheinend keine "Standard" -Methode, um "Core" zu definieren, was die Entwicklung von Bibliotheken betrifft.

Also würde ich mir keine Sorgen machen, dass ich "korrekt" bin. Verwenden Sie den Begriff so, wie Sie es für richtig halten.