Skip to content
CAI
Software that uses CAICheck a score

ventrian/News-Articles

41.2

Weak · 28 September 2026

30.9k

lines of production code

VB.NET

with JavaScript

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Features

Add Archives, Latest Articles, and Image Handler components

The update introduces new UI and backend components for the News Articles module. This includes the Archives view for browsing articles by category, author, or month, alongside the LatestArticles control for displaying recent posts. An ImageHandler is added to manage thumbnail generation and caching, while a comprehensive options panel allows administrators to configure sorting, filtering, and display settings for the latest articles widget.

(repo-wide) · high confidence

Added Handout template and supporting assets for PDF handouts

Introduced a new Handout template system, including an XML schema (Handout.xsd) and sample data (Handout.xml) defining the structure for handouts with titles, descriptions, and articles. Added a corresponding layout file (IIK.sps) that maps the schema to a visual template with header, content, and footer sections. Also added a ColorPicker JavaScript library and the jQuery 1.3.2 library to support interactive features in the template.

Images, Includes, Tracking · high confidence

Added MetaWeblog API support for content management

The API area now includes a new MetaWeblog implementation, enabling external clients to create, edit, and delete posts, upload media, and retrieve categories or recent posts. This adds a new endpoint at /API/MetaWebLog/Handler.ashx, which processes XML-RPC requests for standard blogging operations. The change also introduces a Rsd.ashx endpoint that advertises the MetaWeblog API for discovery. Users can now integrate with the News Articles module using standard MetaWeblog clients.

API · high confidence

Added application settings and resource files for News Articles module

The My Project folder now includes generated files for application settings and resources. Specifically, Settings.settings and Settings.Designer.vb define a new application-level setting named Ventrian\_NewsArticles\_wsStoryFeed\_StoryFeedWS, which stores the URL for the Story Feed web service (defaulting to a local test endpoint). Additionally, Resources.resx and Resources.Designer.vb have been added to support strongly-typed resource lookups, while Application.myapp and AssemblyInfo.vb establish the application's metadata and configuration.

My Project · high confidence

Added localization resources for News Articles modules

New .resx files have been added to the App\_LocalResources directory to provide English text for the Archives, Handout, HandoutDetail, HandoutSettings, LatestArticles, LatestArticlesOptions, LatestComments, and LatestCommentsOptions controls. This enables these modules to display user-facing strings in English, supporting internationalization of the news and handout features.

_App\LocalResources · high confidence

Added web service reference for Smart-Thinker UserProfile StoryFeed

The application now includes a generated client proxy and associated metadata files for the Smart-Thinker UserProfile StoryFeed web service. This adds the ability to call the 'AddAction' and 'AddActionIfNotExists' SOAP endpoints, enabling the application to push story feed actions to the remote service.

Web References · high confidence

Initial database schema and data access layer for News Articles module

The DataProvider class and associated SQL scripts are introduced, establishing the foundational database schema for the News Articles module. This includes the creation of tables for articles, categories, comments, pages, and their relationships, along with the corresponding stored procedures for data access. The schema supports core article management features such as approval status, draft states, start/end dates, image URLs, and featured status.

Providers/DataProvider · high confidence

Introduced base classes for News Articles module

Added new base classes \NewsArticleControlBase\ and \NewsArticleModuleBase\ in the \Ventrian.NewsArticles.Base\ namespace. These classes provide foundational functionality for the News Articles module, including property accessors for article and module settings, URL generation for author filters, and helper methods for loading stylesheets and processing XML skin attributes.

Base · high confidence

Introduced new file provider implementation for article attachments

The system now uses a new \CoreFileProvider\ and \CoreFileProvider2\ classes to handle file uploads for articles. This change introduces a dedicated \FileController\ and \FileInfo\ model to manage file metadata, storage paths, and cache invalidation, replacing the previous mechanism for associating files with article content.

Providers/FileProvider · high confidence

New Default and JWPlayer templates for articles, comments, and listings

A comprehensive set of new HTML and CSS templates has been added for the 'Default' and 'JWPlayer' themes, covering article listings, single article views, comments, menus, and RSS feeds. These templates introduce a modern, div-based layout with calendar icons, author metadata, and social sharing links, replacing the previous table-based structure. The 'Standard' theme also receives updated templates, including support for the \[PORTALALIAS\] token in the menu.

Templates · high confidence

New article management controls for listing, commenting, rating, and file uploads

The Controls directory now includes four new user interface components for the News Articles module: a Listing control to display articles, a PostComment control that supports DNN Captcha, reCaptcha, and Honeypot spam prevention, a PostRating control for user star ratings, and an UploadFiles control for managing article attachments. These controls provide the frontend interface for article display, user interaction, and media management within the module.

Controls · high confidence

New components for article archives, authors, and categories

The Components folder now includes new classes and enums to support article archives, author listings, and category management. Specifically, ArchiveInfo, ArchiveModeType, and ArchiveSettings provide the data model and configuration for archive views. ArticleController, ArticleInfo, and ArticleSettings handle core article data and settings. AuthorController and AuthorInfo manage author data and statistics. CategoryController and CategoryInfo handle category hierarchies. Additionally, new enums like ArchiveModeType, AuthorSortByType, and CaptchaType define available options for these features. The Bitly class is also added for URL shortening.

Components · high confidence

Behavioural changes

Database schema and stored procedures updated for News Articles module

The SqlDataProvider scripts have been updated to introduce new database tables and stored procedures for the News Articles module. New tables include DnnForge\_NewsArticles\_Page, DnnForge\_NewsArticles\_ArticleCategories, and DnnForge\_NewsArticles\_EmailTemplate. The Article table was extended with new columns such as IsDraft, StartDate, EndDate, ModuleID, ImageUrl, IsFeatured, LastUpdateID, and Url. The Comment table was extended with Type, TrackbackUrl, TrackbackTitle, TrackbackBlogName, and TrackbackExcerpt. Several existing stored procedures were dropped and recreated with new parameters and logic, including AddArticle, UpdateArticle, GetArticleListBySearchCriteria, and GetCategoryStatistics. A new procedure GetNewsArchive was also added.

SqlDataProvider · high confidence

Dependencies

Upgrade .NET Framework to 4.8.1 and update DNN dependencies

The project files (Ventrian.NewsArticles.vbproj and SqlDataProvider/Ventrian.NewsArticles.SqlDataProvider.vbproj) have been updated to target .NET Framework 4.8.1. Additionally, the DNN references have been upgraded to version 10.0.1.0 (including DotNetNuke.Abstractions, DotNetNuke.Instrumentation, and DotNetNuke.Web.Client), aligning the module with DNN 10 compatibility.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 34 → 41 (+7.5)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.16) — scores are not directly comparable.

Lenses

  • Code Health 37 → 67 (+30.4)
  • Architecture 63 → 62 (-0.6)
  • Maturity 54 → 45 (-9.0)
  • Readiness 15 → 23 (+8.0)
  • Security 96 → 96 (+0.0)

Resolved (67)

  • Build did not complete in the analyzer
  • Change coupling: ArticleSettings.vb ↔ ucViewOptions.ascx.vb (Components/ArticleSettings.vb)
  • Change coupling: UploadFiles.ascx.vb ↔ UploadImages.ascx.vb (Controls/UploadFiles.ascx.vb)
  • Duplicated block (11 lines × 2) (ucSubmitNews.ascx.vb)
  • Duplicated block (12 lines × 2) (Controls/UploadFiles.ascx.vb)
  • Duplicated block (12 lines × 2) (ImageHandler.ashx.vb)
  • Duplicated block (12 lines × 2) (LatestArticles.ascx.vb)
  • Duplicated block (12 lines × 2) (Providers/DataProvider/SqlDataProvider/SqlDataProvider.vb)
  • Duplicated block (12 lines × 4) (Controls/UploadFiles.ascx.vb)
  • Duplicated block (13 lines × 2) (ucApproveArticles.ascx.vb)
  • Duplicated block (14 lines × 2) (Controls/UploadFiles.ascx.vb)
  • Duplicated block (14 lines × 2) (Providers/DataProvider/SqlDataProvider/SqlDataProvider.vb)
  • Duplicated block (15 lines × 2) (ViewArticle.ascx.vb)
  • Duplicated block (15 lines × 2) (ucImportFeed.ascx.vb)
  • Duplicated block (15 lines × 9) (ucEditCategory.ascx.vb)
  • Duplicated block (16 lines × 2) (ucViewOptions.ascx.vb)
  • Duplicated block (16 lines × 7) (ucViewOptions.ascx.vb)
  • Duplicated block (17 lines × 2) (Controls/UploadFiles.ascx.vb)
  • Duplicated block (17 lines × 3) (LatestCommentsOptions.ascx.vb)
  • Duplicated block (28 lines × 2) (Controls/Listing.ascx.vb)
  • …and 47 more

New (90)

  • (anonymous) (cognitive 59) (Includes/ColorPicker/ColorPicker.js)
  • (anonymous) (cyclomatic 54) (Includes/ColorPicker/ColorPicker.js)
  • Archives.AuthorID.Get (cognitive 20) (Archives.ascx.vb)
  • Documentation: no installation or build instructions (README.md)
  • Dormant codebase
  • Duplicated block (10 lines × 3) (Components/Common.vb)
  • Duplicated block (10 lines × 4) (Controls/Listing.ascx.vb)
  • Duplicated block (11 lines × 3) (Providers/DataProvider/SqlDataProvider/SqlDataProvider.vb)
  • Duplicated block (12 lines × 4) (Controls/PostRating.ascx.vb)
  • Duplicated block (13 lines × 2) (ucApproveArticles.ascx.vb)
  • Duplicated block (14 lines × 2) (Providers/DataProvider/SqlDataProvider/SqlDataProvider.vb)
  • Duplicated block (14–15 lines × 2) (ImageHandler.ashx.vb)
  • Duplicated block (15 lines × 2) (ViewArticle.ascx.vb)
  • Duplicated block (15 lines × 2) (ucImportFeed.ascx.vb)
  • Duplicated block (15 lines × 3) (Components/Social/Journal.vb)
  • Duplicated block (15–16 lines × 2) (Controls/UploadFiles.ascx.vb)
  • Duplicated block (16 lines × 2) (Controls/UploadFiles.ascx.vb)
  • Duplicated block (16 lines × 2) (Controls/UploadFiles.ascx.vb)
  • Duplicated block (16 lines × 2) (ucEditPages.ascx.vb)
  • Duplicated block (18 lines × 2) (LatestArticles.ascx.vb)
  • …and 70 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

ventrian/News-Articles was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 28 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit e6761be21de60ada257c5023eb7661174a110063 — the exact code this score is about.
  • Scored under rubric-2026.09.16 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-2d9048c36d26.