This project is read-only.

Tci Desktop News Reader

This is a light-weight, user-friendly news reader for the Windows desktop. Screen shots are available on the project home page.
tcinr1.jpg

Description

This is a light-weight, user-friendly desktop news reader. Its principal features are...
  • Full user instructions on each dialog page
  • All CRUD operations: add, modify/update, and delete are supported
  • Responsive UI, multi-threaded
  • Ability to filter by item age
  • Sort by item date/time (ascending or descending) or publisher name (ascending or descending)
  • Properly displays non-English characters, such as Cyrillic and Swedish
  • Properly displays in-line images
  • Session level filtering of feeds
  • Full transparency into the feed capture process, detailed errors and exceptions
  • Pre-flight verification and validation of all URL's
  • Open source

Screen Shots

The screen shot below shows the program recognizing an invalid URL...
CropperCapture[3].jpg

The screen shot below shows the program has verified all URL's and provided their turn-around times...
CropperCapture[4].jpg

The screen shot below shows various feeds being selected/deselected for the next refresh...
CropperCapture[5].jpg

Some feeds are not well-behaved. This screen shot shows a representative error/exception report (blurring is intentional)
CropperCapture[6].jpg

Some people need to view non-English character sets. The screen shot below shows the application properly dealing with Cyrillic (Russian) text...
CropperCapture[7].jpg

Technical Details

The application is written using the Windows Presentation Foundation (WPF) and is deployed on the .NET 4.5 Framework.

Feeds are stored in the root directory of the application (under Resources\Data) in XML format. A representative sample is...

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...>
<string>http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/rss.xml</string>
<string>http://blogs.msdn.com/b/robcaron/rss.aspx</string>
</ArrayOfString>

The application produces a log file also stored in the root directory of the application. The log file is truncated each time the application starts. A representative sample is...

2014-03-18T08:02:23: Exception (processing http://==redacted==): FeedInfo.Load => Error in line 2 position 2.
2014-03-18T08:02:25: Exception (processing http://==redacted==): FeedInfo.Load => Error in line 2 position 592. An error was encountered when parsing a DateTime value in the XML.
2014-03-18T08:02:25: Exception (processing http://==redacted==): FeedInfo.Load => Error in line 14 position 26. An error was encountered when parsing a DateTime value in the XML.

Like many .NET applications, this one also uses an 'exe.config' which contains switches of interest to the developer...

<applicationSettings>
<TciNewsReader_2014_04.Properties.Settings>
<setting name="AsyncTasking" serializeAs="String">
<value>True</value>
</setting>
<setting name="ShowExceptionsOnClose" serializeAs="String">
<value>False</value>
</setting>
</TciNewsReader_2014_04.Properties.Settings>
</applicationSettings>

The application uses the Model-View-ViewModel design pattern, and relies upon Prism 4 (specifically the Unity Container).

False Positives

The application accesses both the hard drive and the internet. It also uses .NET Reflection (full trust). These, and other things, may raise an alert. This is a false positive. In all events, the source is available for inspection.

Art Work

The application uses public domain icons and images. These were obtained from http://www.xamalot.com/ and http://www.microsoft.com

Last edited Mar 18, 2014 at 10:04 AM by TyburnConsultancy, version 22