You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge branch 'improvement/generic-file-names' into develop
Ensured that the file names reflected the generic type parameters, where appropriate. This was typically used, but not universally. It's a best practice for avoiding ambiguity, and clearly reflecting the class contained within a file.
Copy file name to clipboardExpand all lines: OnTopic/README.md
+10-5Lines changed: 10 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,7 @@ The `OnTopic` assembly represents the core domain layer of the OnTopic library.
16
16
-[Specialty Collections](#specialty-collections)
17
17
-[Editor](#editor-1)
18
18
-[View Models](#view-models)
19
+
-[Binding Models](#binding-models)
19
20
20
21
## Entities
21
22
-**[`Topic`](Topic.cs)**: This is the core entity in OnTopic, and models all attributes, relationships, and references associated with a topic record.
@@ -74,7 +75,7 @@ The `OnTopic.Collections.Specialized` namespace includes a number of collections
74
75
-**[`TopicReferenceCollection`](associations/TopicReferenceCollection.cs)**: A `TrackedRecordCollection` of [`TopicReferenceRecord`](Associations/TopicReferenceRecord.cs) instances keyed by `TopicReference.Key`; exposed by `Topic.References`.
75
76
-**[`TopicMultiMap`](Collections/Specialized/TopicMultiMap.cs)**: Provides a multi-map (or collection-of-collections) for topics organized by a collection key.
76
77
-**[`ReadOnlyTopicMultiMap`](Collections/Specialized/ReadOnlyTopicMultiMap.cs)**: A read-only interface to the `TopicMultiMap`, thus allowing simple enumeration of the collection withouthout exposing any write access.
77
-
-**[`TopicRelationshipMultiMap`](associations/TopicRelationshipMultiMap.cs)**: A `TopicMultiMap` of [`KeyValuesPair`](Collections/Specialized/KeyValuesPair.cs) instances keyed by `KeyValuesPair.Key`; exposed by `Topic.Relationships`.
78
+
-**[`TopicRelationshipMultiMap`](associations/TopicRelationshipMultiMap.cs)**: A `TopicMultiMap` of [`KeyValuesPair`](Collections/Specialized/KeyValuesPair{TKey,TValue}.cs) instances keyed by `KeyValuesPair.Key`; exposed by `Topic.Relationships`.
78
79
79
80
### Editor
80
81
The following are intended to provide support for the Editor domain objects, `ContentTypeDescriptor` and `AttributeDescriptor`.
@@ -83,10 +84,14 @@ The following are intended to provide support for the Editor domain objects, `Co
83
84
84
85
## View Models
85
86
The core Topic library has been designed to be view model agnostic; i.e., view models should be defined for the specific presentation framework (e.g., ASP.NET Core) and customer. That said, to facilitate reusability of features that work with view models, several interfaces are defined which can be applied as appropriate. These include:
86
-
-**[`ITopicViewModel`](Models/ITopicViewModel.cs)**: Includes universal properties such as `Key`, `UniqueKey`, `Id`, `ContentType`, and `Title`.
87
-
-**[`IPageTopicViewModel`](Models/IPageTopicViewModel.cs)**: Includes page-specific properties such as `MetaKeywords` and `MetaDescription`.
88
-
-**[`INavigationTopicViewModel<T>`](Models/INavigationTopicViewModel{T}.cs)**: Includes `IPageTopicViewModel`, `Children`, and an `IsSelected()` view logic handler, for use with navigation menus.
87
+
-**[`ICoreTopicViewModel`](Models/ICoreTopicViewModel.cs)**: Includes core properties `Key` and `ContentType` necessary for every `Topic`.
88
+
-**[`ITopicViewModel`](Models/ITopicViewModel.cs)**: Includes universal properties such as `UniqueKey`, `WebPath`, `Id`, and `Title`.
89
+
-**[`IHierarchicalTopicViewModel<T>`](Models/IHierarchicalTopicViewModel{T}.cs)**: Includes a generic `Children` property necessary to model a hierarchical graph.
90
+
-**[`INavigableTopicViewModel`](Models/INavigableTopicViewModel.cs)**: Includes core properties `Title`, `ShortTitle`, and `WebPath`, necessary treating a topic as a navigable link.
91
+
-**[`INavigationTopicViewModel<T>`](Models/INavigationTopicViewModel{T}.cs)**: Includes `IHierarchicalTopicViewModel<T>` and the `IsSelected()` view logic method, for use with navigation menus.
92
+
93
+
### Binding Models
89
94
-**[`ITopicBindingModel`](Models/ITopicBindingModel.cs)**: Includes the bare minimum properties—namely `Key` and `ContentType`—needed to support a binding model that will be consumed by the `IReverseTopicMappingService`.
90
-
-**[`IRelatedTopicBindingModel`](Models/IRelatedTopicBindingModel.cs)**: Includes the bare minimum properties—namely `UniqueKey`—needed to reference another topic on a binding model that will be consumed by the `IReverseTopicMappingService`.
95
+
-**[`IAssociatedTopicBindingModel`](Models/IAssociatedTopicBindingModel.cs)**: Includes the bare minimum properties—namely `UniqueKey`—needed to associate another topic on a binding model that will be consumed by the `IReverseTopicMappingService`.
91
96
92
97
In addition to these interfaces, a set of concrete implementations of view models corresponding to the default schemas for the out-of-the-box content types can be found in the [`OnTopic.ViewModels`](../OnTopic.ViewModels/README.md) package.
0 commit comments