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.

Source references