Feature map
Finding a feature
Start with RouteHelper and any controller attribute routes, follow the action's selected view/model, then inspect service requests and partial/script imports. Many models perform service calls themselves. A controller name or menu label does not establish deployment availability or authorization.
| Area | Main entry points | Important dependencies and behavior |
|---|---|---|
| Home and branding | HomeController, StaffingController, CodeHelper |
Deployment-specific defaults, shared navigation, billboards, and branding |
| Magazine and issues | MagazineController, Models/Magazine, MagazineHelper |
Magazine service; issue lists, categories, cover endpoints, and publication distinctions |
| Articles | ArticleController, ShowArticleViewModel, ArticlePresentation |
Magazine/file services; body, figures, downloads, author images, and 2027 reader selection |
| Blogs | BlogController, BlogControllerHelper, Models/Blog |
Blog service; blog/post slug dispatch, cached indexes, attachments, and reader adapter |
| Events | EventsController, EventHelper, Models/Events |
Event service; brand homepages, detail, signup, attendance, and calendar delivery |
| Training | TrainingController, Models/Training |
Event-backed training lists/detail and topic-specific offerings |
| Consulting | ConsultingController, ConsultingServicesHelper, Models/Consulting |
Consulting service; offerings, custom slugs, images, inquiry, and dynamic menu links |
| Staffing and jobs | StaffingController, JobsController, corresponding models |
Jobs/person/service integrations; careers, network signup, applications, and supporting content |
| Account access | AccountController, IdentityHelper |
Person-service login/registration/password recovery and cookie sign-in |
| My CODE | MyCodeController, MyApiController, Models/MyCode, wwwroot/app |
Profile editing, subscriptions, owned/mailed issues, invoices, fulfillment, and events |
| Subscribe and renew | SubscribeController, Models/Subscribe, Shared/CreditCardModel |
Subscription service and tokenized Braintree payment flow; inspect raw-card clearing before service requests |
| People | PeopleController, Models/People, image endpoints |
Biographies, business-card Hello pages, and person photos |
| Search | SearchController, Models/Search |
Search request construction and result presentation |
| Press and video | PressController, VideoController, MediaController |
Press service, video models, shared player partials, and thumbnails |
| Documents and downloads | ContentController, DownloadController, DevNetController |
Service-backed documents, delivery, registration/download flows, and content types |
| Operations and discovery | CacheController, AdminController, SitemapController, SessionStateController |
Cache inspection, service diagnostics, sitemap, and session tracking diagnostics |
| Other areas and compatibility | AboutController, AdvertiseController, WriteController, FrameworkController, VFPConversionController, CodeCampsController, LunchController, EnergyController, LegacyController |
Feature-specific views and longstanding URLs; trace active routes before changing legacy behavior |
Representative flows
An article request resolves its quick ID, loads magazine data into the article model, and selects the existing or 2027 view based on site/style. Image and download requests are separate HTTP endpoints with their own service calls and caching. Altering the page alone does not update those delivery paths.
A blog URL can identify a blog index or a post. RenderBlogOrPost resolves that ambiguity; RenderBlog loads post attachments and chooses the appropriate view. Keep blog slugs and post slugs distinct when generating links.
An event brand homepage uses the shared generic brand action with an EventMode, while an individual event uses its detail flow. Some old brand-specific files coexist with the current shared action. Follow GenericBrandHome and its current model before editing a similarly named older view.
A subscription renewal has several stages: selection/data loading, user/account details, payment token input, server validation, and the subscription-service operation. Test the whole flow with approved test data. A UI validation message does not prove that the service received a safe or complete request.
Choosing the change boundary
Use a view/model change for feature presentation, shared adapters/partials for common reading behavior, shared content patterns for repeated page sections, and configuration/routes/menus for deployment differences. Service contract changes belong to the Thessaly service projects and package workflow, not improvised JSON shapes in the web tier. Review verification for the checks that match each boundary.