|
1 | 1 | # Interface Graph Inventory for WindowsAppCommunity.Sdk |
2 | 2 |
|
3 | | -This document provides a comprehensive inventory of the interface hierarchy for the three main entities in the WindowsAppCommunity.Sdk: **Publisher**, **Project**, and **User**. This mapping is intended to help with blog generator development by clearly defining the type relationships and data access patterns. |
| 3 | +This document provides a comprehensive inventory of the interface hierarchy for the three main entities in the WindowsAppCommunity.Sdk: **Publisher**, **Project**, and **User**. This mapping helps developers understand the type relationships and data access patterns. |
4 | 4 |
|
5 | 5 | ## Core Entity Interfaces |
6 | 6 |
|
@@ -197,7 +197,7 @@ public interface IReadOnlyConnection |
197 | 197 | } |
198 | 198 | ``` |
199 | 199 |
|
200 | | -## Data Access Patterns for Blog Generator |
| 200 | +## Data Access Patterns |
201 | 201 |
|
202 | 202 | ### For User Profiles |
203 | 203 | 1. **Basic Info**: `IReadOnlyEntity` → name, description, extendedDescription |
@@ -233,34 +233,28 @@ public interface IReadOnlyConnection |
233 | 233 |
|
234 | 234 | ``` |
235 | 235 | IHasId (base interface with Id property) |
| 236 | +│ |
236 | 237 | ├── IReadOnlyEntity |
237 | 238 | │ ├── IReadOnlyConnectionsCollection |
238 | 239 | │ ├── IReadOnlyLinksCollection |
239 | 240 | │ └── IReadOnlyImagesCollection |
| 241 | +│ |
240 | 242 | ├── IReadOnlyAccentColor |
| 243 | +│ |
241 | 244 | ├── IReadOnlyFeaturesCollection |
242 | | -├── IReadOnlyUserCollection<T> |
243 | | -│ └── IReadOnlyUserRoleCollection |
244 | | -├── IReadOnlyProjectCollection<T> |
245 | | -│ └── IReadOnlyProjectRoleCollection |
246 | | -├── IReadOnlyPublisherCollection<T> |
247 | | -│ └── IReadOnlyPublisherRoleCollection |
248 | | -├── IReadOnlyUser |
249 | | -│ └── IReadOnlyUserRole |
250 | | -├── IReadOnlyProject<T> |
251 | | -│ └── IReadOnlyProjectRole |
252 | | -└── IReadOnlyPublisher<T> |
253 | | - └── IReadOnlyPublisherRole |
254 | | -``` |
255 | | - |
256 | | -## Recommendations for Blog Generator Implementation |
257 | | - |
258 | | -1. **Start with Core Entities**: Implement converters for `IReadOnlyUser`, `IReadOnlyPublisher`, and `IReadOnlyProject` first |
259 | | -2. **Implement Supporting Collections**: Handle each collection interface as a separate template component |
260 | | -3. **Handle Async Data**: Many collections use `IAsyncEnumerable<T>` - ensure proper async handling in templates |
261 | | -4. **Link Resolution**: Pre-resolve relationships (like publisher for projects) to avoid async calls in templates |
262 | | -5. **Role Handling**: Create specialized templates for role-based views vs direct entity views |
263 | | -6. **Image Processing**: Handle `IFile` objects from `IReadOnlyImagesCollection` for proper image rendering |
264 | | -7. **Connection Values**: Cache `IReadOnlyConnection.GetValueAsync()` results before template rendering |
265 | | - |
266 | | -This interface inventory provides the foundation for systematically implementing blog generation for each entity type while maintaining clear separation of concerns. |
| 245 | +│ |
| 246 | +├── Collection Interfaces: |
| 247 | +│ ├── IReadOnlyUserCollection<T> |
| 248 | +│ │ └── IReadOnlyUserRoleCollection |
| 249 | +│ ├── IReadOnlyProjectCollection<T> |
| 250 | +│ │ └── IReadOnlyProjectRoleCollection |
| 251 | +│ └── IReadOnlyPublisherCollection<T> |
| 252 | +│ └── IReadOnlyPublisherRoleCollection |
| 253 | +│ |
| 254 | +└── Main Entity Interfaces: |
| 255 | + ├── IReadOnlyUser : IReadOnlyEntity, IReadOnlyPublisherRoleCollection, IReadOnlyProjectRoleCollection |
| 256 | + ├── IReadOnlyProject<T> : IReadOnlyEntity, IReadOnlyImagesCollection, IReadOnlyUserRoleCollection, IReadOnlyAccentColor, IReadOnlyFeaturesCollection |
| 257 | + └── IReadOnlyPublisher<T> : IReadOnlyEntity, IReadOnlyAccentColor, IReadOnlyUserRoleCollection, IReadOnlyProjectCollection |
| 258 | +``` |
| 259 | + |
| 260 | +This interface inventory provides a comprehensive reference for understanding the type hierarchy and relationships within the WindowsAppCommunity.Sdk. |
0 commit comments