Commit 4258d46

mokhan <mokhan@ce5e1baf-6525-42e4-a1b2-857ea38da20a>
2009-03-04 20:26:07
removed create_sut that weren't needed any more thanks to jpboodhoo.bdd.
git-svn-id: https://svn.xp-dev.com/svn/mokhan-mo.money@41 ce5e1baf-6525-42e4-a1b2-857ea38da20a
1 parent ae7ec39
Changed files (71)
trunk
build
product
MyMoney
DataAccess
Domain
Infrastructure
Presentation
Utility
windows.ui
trunk/build/config/log4net.config.xml.template
@@ -1,6 +1,6 @@
 <log4net>
 	<appender name='RollingFileAppender' type='log4net.Appender.RollingFileAppender'>
-		<file value='logs/log.txt' />
+		<file value='logs\log.txt' />
 		<appendToFile value='true' />
 		<rollingStyle value='Size' />
 		<maxSizeRollBackups value='10' />
@@ -14,4 +14,8 @@
 		<level value='@log.level@' />
 		<appender-ref ref='RollingFileAppender' />			
 	</root>
-</log4net>
+	<logger name="NHibernate" additivity="false">
+		<level value="ERROR" />
+		<appender-ref ref="RollingFileAppender" />
+	</logger>
+</log4net>
\ No newline at end of file
trunk/product/MyMoney/DataAccess/db40/ObjectRepositorySpecs.cs
@@ -5,21 +5,20 @@ using MyMoney.Domain.Core;
 using MyMoney.Testing.MetaData;
 using MyMoney.Testing.spechelpers.contexts;
 using MyMoney.Testing.spechelpers.core;
-using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
 
 namespace MyMoney.DataAccess.db40
 {
     [Concern(typeof (ObjectRepository))]
     public abstract class behaves_like_a_object_repository : concerns_for<IRepository, ObjectRepository>
     {
-        public override IRepository create_sut()
-        {
-            return new ObjectRepository(factory);
-        }
+        //public override IRepository create_sut()
+        //{
+        //    return new ObjectRepository(factory);
+        //}
 
         context c = () => { factory = the_dependency<ISessionFactory>(); };
 
-        protected static ISessionFactory factory;
+        static protected ISessionFactory factory;
     }
 
     public class when_loading_all_the_items_from_the_database : behaves_like_a_object_repository
@@ -37,7 +36,8 @@ namespace MyMoney.DataAccess.db40
                             var session = an<IObjectContainer>();
 
                             factory.is_told_to(x => x.create()).it_will_return(session);
-                            session.is_told_to(x => x.Query<IEntity>()).it_will_return(new List<IEntity> {first_item, second_item});
+                            session.is_told_to(x => x.Query<IEntity>()).it_will_return(new List<IEntity>
+                                                                                           {first_item, second_item});
                         };
 
         because b = () => { result = sut.all<IEntity>(); };
trunk/product/MyMoney/DataAccess/db40/SessionFactorySpecs.cs
@@ -10,10 +10,10 @@ namespace MyMoney.DataAccess.db40
     [Concern(typeof (SessionFactory))]
     public abstract class behaves_like_a_session_factory : concerns_for<ISessionFactory, SessionFactory>
     {
-        public override ISessionFactory create_sut()
-        {
-            return new SessionFactory(database_configuration, connection_factory);
-        }
+        //public override ISessionFactory create_sut()
+        //{
+        //    return new SessionFactory(database_configuration, connection_factory);
+        //}
 
         context c = () =>
                         {
trunk/product/MyMoney/Domain/accounting/financial_growth/income_specs.cs
@@ -1,5 +0,0 @@
-namespace MyMoney.Domain.accounting.financial_growth
-{
-    public class income_specs
-    {}
-}
\ No newline at end of file
trunk/product/MyMoney/Domain/accounting/AccountHolder.cs
@@ -16,7 +16,7 @@ namespace MyMoney.Domain.accounting
     }
 
     [Serializable]
-    internal class AccountHolder : Entity<IAccountHolder>, IAccountHolder
+    public class AccountHolder : Entity<IAccountHolder>, IAccountHolder
     {
         public AccountHolder()
         {
trunk/product/MyMoney/Domain/accounting/AccountHolderSpecs.cs
@@ -11,12 +11,12 @@ using MyMoney.Testing.spechelpers.core;
 namespace MyMoney.Domain.accounting
 {
     [Concern(typeof (AccountHolder))]
-    public abstract class behaves_like_an_account_holder : concerns_for<IAccountHolder>
+    public abstract class behaves_like_an_account_holder : concerns_for<IAccountHolder, AccountHolder>
     {
-        public override IAccountHolder create_sut()
-        {
-            return new AccountHolder();
-        }
+        //public override IAccountHolder create_sut()
+        //{
+        //    return new AccountHolder();
+        //}
     }
 
     public class when_a_customer_is_checking_for_any_bills_that_have_not_been_paid : behaves_like_an_account_holder
@@ -61,14 +61,19 @@ namespace MyMoney.Domain.accounting
                             income_for_february_2007 = an<IIncome>();
                             income_for_february_2008 = an<IIncome>();
 
-                            income_for_january_2007.is_told_to(x => x.date_of_issue).it_will_return( new DateTime(2007, 01, 01).as_a_date());
-                            income_for_january_2007.is_told_to(x => x.amount_tendered). it_will_return(new Money(1000, 00));
+                            income_for_january_2007.is_told_to(x => x.date_of_issue).it_will_return(
+                                new DateTime(2007, 01, 01).as_a_date());
+                            income_for_january_2007.is_told_to(x => x.amount_tendered).it_will_return(new Money(1000, 00));
 
-                            income_for_february_2007.is_told_to(x => x.date_of_issue).it_will_return (new DateTime(2007, 02, 01).as_a_date());
-                            income_for_february_2007.is_told_to(x => x.amount_tendered).it_will_return(new Money(1000, 00));
+                            income_for_february_2007.is_told_to(x => x.date_of_issue).it_will_return(
+                                new DateTime(2007, 02, 01).as_a_date());
+                            income_for_february_2007.is_told_to(x => x.amount_tendered).it_will_return(new Money(1000,
+                                                                                                                 00));
 
-                            income_for_february_2008.is_told_to(x => x.date_of_issue).it_will_return( new DateTime(2008, 02, 01).as_a_date());
-                            income_for_february_2008.is_told_to(x => x.amount_tendered).it_will_return(new Money(1000, 00));
+                            income_for_february_2008.is_told_to(x => x.date_of_issue).it_will_return(
+                                new DateTime(2008, 02, 01).as_a_date());
+                            income_for_february_2008.is_told_to(x => x.amount_tendered).it_will_return(new Money(1000,
+                                                                                                                 00));
                         };
 
         because b = () =>
trunk/product/MyMoney/Domain/accounting/general_ledger.cs → trunk/product/MyMoney/Domain/accounting/GeneralLedger.cs
@@ -12,11 +12,11 @@ namespace MyMoney.Domain.accounting
     }
 
     [Serializable]
-    public class general_ledger : IGeneralLedger
+    public class GeneralLedger : IGeneralLedger
     {
         private readonly List<ILedgerEntry> entries;
 
-        public general_ledger(List<ILedgerEntry> entries)
+        public GeneralLedger(List<ILedgerEntry> entries)
         {
             this.entries = entries;
         }
trunk/product/MyMoney/Domain/accounting/GeneralLedgerSpecs.cs
@@ -10,12 +10,12 @@ using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
 
 namespace MyMoney.Domain.accounting
 {
-    [Concern(typeof (general_ledger))]
-    public abstract class behaves_like_a_general_ledger : concerns_for<IGeneralLedger, general_ledger>
+    [Concern(typeof (GeneralLedger))]
+    public abstract class behaves_like_a_general_ledger : concerns_for<IGeneralLedger, GeneralLedger>
     {
         public override IGeneralLedger create_sut()
         {
-            return new general_ledger(new List<ILedgerEntry> {february_first, february_twenty_first, april_first});
+            return new GeneralLedger(new List<ILedgerEntry> {february_first, february_twenty_first, april_first});
         }
 
         context c = () =>
trunk/product/MyMoney/Infrastructure/Extensions/threading_extensions.cs
@@ -7,7 +7,7 @@ namespace MyMoney.Infrastructure.Extensions
     {
         public static IBackgroundThread on_a_background_thread(this IDisposableCommand command)
         {
-            var background_thread = new background_thread(command);
+            var background_thread = new BackgroundThread(command);
             background_thread.run();
             return background_thread;
         }
trunk/product/MyMoney/Infrastructure/Threading/background_thread.cs → trunk/product/MyMoney/Infrastructure/Threading/BackgroundThread.cs
@@ -6,16 +6,15 @@ namespace MyMoney.Infrastructure.Threading
     {
     }
 
-    public class background_thread : IBackgroundThread
+    public class BackgroundThread : IBackgroundThread
     {
         readonly IWorkerThread worker_thread;
 
-        public background_thread(IDisposableCommand command_to_execute)
-            : this(command_to_execute, new worker_thread())
+        public BackgroundThread(IDisposableCommand command_to_execute) : this(command_to_execute, new WorkerThread())
         {
         }
 
-        public background_thread(IDisposableCommand command_to_execute, IWorkerThread worker_thread)
+        public BackgroundThread(IDisposableCommand command_to_execute, IWorkerThread worker_thread)
         {
             this.worker_thread = worker_thread;
             worker_thread.DoWork += ((sender, e) => command_to_execute.run());
trunk/product/MyMoney/Infrastructure/Threading/background_thread_factory.cs → trunk/product/MyMoney/Infrastructure/Threading/BackgroundThreadFactory.cs
@@ -10,23 +10,23 @@ namespace MyMoney.Infrastructure.Threading
         IBackgroundThread create_for(Action action);
     }
 
-    public class background_thread_factory : IBackgroundThreadFactory
+    public class BackgroundThreadFactory : IBackgroundThreadFactory
     {
         private readonly IDependencyRegistry registry;
 
-        public background_thread_factory(IDependencyRegistry registry)
+        public BackgroundThreadFactory(IDependencyRegistry registry)
         {
             this.registry = registry;
         }
 
         public IBackgroundThread create_for<CommandToExecute>() where CommandToExecute : IDisposableCommand
         {
-            return new background_thread(registry.get_a<CommandToExecute>());
+            return new BackgroundThread(registry.get_a<CommandToExecute>());
         }
 
         public IBackgroundThread create_for(Action action)
         {
-            return new background_thread(new command(action));
+            return new BackgroundThread(new command(action));
         }
     }
 }
\ No newline at end of file
trunk/product/MyMoney/Infrastructure/Threading/background_thread_factory_specs.cs → trunk/product/MyMoney/Infrastructure/Threading/BackgroundThreadFactorySpecs.cs
@@ -7,14 +7,13 @@ using MyMoney.Utility.Core;
 
 namespace MyMoney.Infrastructure.Threading
 {
-    [Concern(typeof (background_thread_factory))]
-    public abstract class behaves_like_a_background_thread_factory :
-        concerns_for<IBackgroundThreadFactory, background_thread_factory>
+    [Concern(typeof (BackgroundThreadFactory))]
+    public abstract class behaves_like_a_background_thread_factory : concerns_for<IBackgroundThreadFactory, BackgroundThreadFactory>
     {
-        public override IBackgroundThreadFactory create_sut()
-        {
-            return new background_thread_factory(registry);
-        }
+        //public override IBackgroundThreadFactory create_sut()
+        //{
+        //    return new BackgroundThreadFactory(registry);
+        //}
 
         context c = () => { registry = the_dependency<IDependencyRegistry>(); };
 
trunk/product/MyMoney/Infrastructure/Threading/background_thread_specs.cs → trunk/product/MyMoney/Infrastructure/Threading/BackgroundThreadSpecs.cs
@@ -7,8 +7,8 @@ using Rhino.Mocks;
 
 namespace MyMoney.Infrastructure.Threading
 {
-    [Concern(typeof (background_thread))]
-    public abstract class behaves_like_a_background_thread : concerns_for<IBackgroundThread, background_thread>
+    [Concern(typeof (BackgroundThread))]
+    public abstract class behaves_like_a_background_thread : concerns_for<IBackgroundThread, BackgroundThread>
     {
         context c = () =>
                         {
trunk/product/MyMoney/Infrastructure/Threading/command_processor.cs → trunk/product/MyMoney/Infrastructure/Threading/CommandProcessor.cs
@@ -8,11 +8,11 @@ namespace MyMoney.Infrastructure.Threading
         void add(ICommand command_to_add_to_queue);
     }
 
-    public class command_processor : ICommandProcessor
+    public class CommandProcessor : ICommandProcessor
     {
         private readonly Queue<ICommand> queued_commands;
 
-        public command_processor()
+        public CommandProcessor()
         {
             queued_commands = new Queue<ICommand>();
         }
trunk/product/MyMoney/Infrastructure/Threading/command_processor_specs.cs → trunk/product/MyMoney/Infrastructure/Threading/CommandProcessorSpecs.cs
@@ -6,13 +6,13 @@ using MyMoney.Utility.Core;
 
 namespace MyMoney.Infrastructure.Threading
 {
-    [Concern(typeof (command_processor))]
-    public abstract class behaves_like_a_command_processor : concerns_for<ICommandProcessor, command_processor>
+    [Concern(typeof (CommandProcessor))]
+    public abstract class behaves_like_a_command_processor : concerns_for<ICommandProcessor, CommandProcessor>
     {
-        public override ICommandProcessor create_sut()
-        {
-            return new command_processor();
-        }
+        //public override ICommandProcessor create_sut()
+        //{
+        //    return new command_processor();
+        //}
     }
 
     public class when_running_all_the_queued_commands_waiting_for_execution : behaves_like_a_command_processor
trunk/product/MyMoney/Infrastructure/Threading/interval_timer.cs → trunk/product/MyMoney/Infrastructure/Threading/IntervalTimer.cs
@@ -12,12 +12,12 @@ namespace MyMoney.Infrastructure.Threading
     }
 
     [Singleton]
-    public class interval_timer : ITimer
+    public class IntervalTimer : ITimer
     {
         private readonly ITimerFactory factory;
         private readonly IDictionary<ITimerClient, Timer> timers;
 
-        public interval_timer(ITimerFactory factory)
+        public IntervalTimer(ITimerFactory factory)
         {
             this.factory = factory;
             timers = new Dictionary<ITimerClient, Timer>();
trunk/product/MyMoney/Infrastructure/Threading/interval_timer_specs.cs → trunk/product/MyMoney/Infrastructure/Threading/IntervalTimerSpecs.cs
@@ -8,14 +8,9 @@ using Rhino.Mocks;
 
 namespace MyMoney.Infrastructure.Threading
 {
-    [Concern(typeof (interval_timer))]
-    public abstract class behaves_like_an_interval_timer : concerns_for<ITimer, interval_timer>
+    [Concern(typeof (IntervalTimer))]
+    public abstract class behaves_like_an_interval_timer : concerns_for<ITimer, IntervalTimer>
     {
-        //public override ITimer create_sut()
-        //{
-        //    return new interval_timer(factory);
-        //}
-
         context c = () => { factory = the_dependency<ITimerFactory>(); };
 
         protected static ITimerFactory factory;
@@ -89,7 +84,7 @@ namespace MyMoney.Infrastructure.Threading
         because b = () =>
                         {
                             sut.start_notifying(client, new TimeSpan(0, 10, 0));
-                            timer.Raise(t => t.Elapsed += null, null, null);
+                            timer.Raise(t => t.Elapsed += null, timer, null);
                         };
     }
 
trunk/product/MyMoney/Infrastructure/Threading/synchronize.cs
@@ -1,28 +0,0 @@
-using System;
-using System.ComponentModel;
-
-namespace MyMoney.Infrastructure.Threading
-{
-    public class synchronize : ISynchronizeInvoke
-    {
-        public IAsyncResult BeginInvoke(Delegate method, object[] args)
-        {
-            throw new NotImplementedException();
-        }
-
-        public object EndInvoke(IAsyncResult result)
-        {
-            throw new NotImplementedException();
-        }
-
-        public object Invoke(Delegate method, object[] args)
-        {
-            throw new NotImplementedException();
-        }
-
-        public bool InvokeRequired
-        {
-            get { throw new NotImplementedException(); }
-        }
-    }
-}
\ No newline at end of file
trunk/product/MyMoney/Infrastructure/Threading/timer_factory.cs → trunk/product/MyMoney/Infrastructure/Threading/TimerFactory.cs
@@ -8,7 +8,7 @@ namespace MyMoney.Infrastructure.Threading
         Timer create_for(TimeSpan span);
     }
 
-    public class timer_factory : ITimerFactory
+    public class TimerFactory : ITimerFactory
     {
         public Timer create_for(TimeSpan span)
         {
trunk/product/MyMoney/Infrastructure/Threading/timer_factory_specs.cs → trunk/product/MyMoney/Infrastructure/Threading/TimerFactorySpecs.cs
@@ -7,12 +7,12 @@ using MyMoney.Testing.spechelpers.core;
 
 namespace MyMoney.Infrastructure.Threading
 {
-    [Concern(typeof (timer_factory))]
-    public abstract class behaves_like_a_timer_factory : concerns_for<ITimerFactory, timer_factory>
+    [Concern(typeof (TimerFactory))]
+    public abstract class behaves_like_a_timer_factory : concerns_for<ITimerFactory, TimerFactory>
     {
         public override ITimerFactory create_sut()
         {
-            return new timer_factory();
+            return new TimerFactory();
         }
     }
 
trunk/product/MyMoney/Infrastructure/Threading/worker_thread.cs → trunk/product/MyMoney/Infrastructure/Threading/WorkerThread.cs
@@ -10,13 +10,13 @@ namespace MyMoney.Infrastructure.Threading
         void Begin();
     }
 
-    public class worker_thread : Component, IWorkerThread
+    public class WorkerThread : Component, IWorkerThread
     {
         private static readonly object do_work_key = new object();
         private bool is_running;
         private readonly Action background_thread;
 
-        public worker_thread()
+        public WorkerThread()
         {
             background_thread = worker_thread_start;
         }
trunk/product/MyMoney/Infrastructure/transactions/UnitOfWork.cs
@@ -3,9 +3,9 @@ using MyMoney.Infrastructure.Container;
 
 namespace MyMoney.Infrastructure.transactions
 {
-    public class UnitOfWork
+    static public class UnitOfWork
     {
-        public static IUnitOfWork<T> For<T>() where T : IEntity
+        static public IUnitOfWork<T> For<T>() where T : IEntity
         {
             if (resolve.is_initialized())
             {
trunk/product/MyMoney/Infrastructure/transactions/unit_of_work_factory.cs → trunk/product/MyMoney/Infrastructure/transactions/UnitOfWorkFactory.cs
@@ -8,12 +8,12 @@ namespace MyMoney.Infrastructure.transactions
         IUnitOfWork<T> create_for<T>() where T : IEntity;
     }
 
-    public class unit_of_work_factory : IUnitOfWorkFactory
+    public class UnitOfWorkFactory : IUnitOfWorkFactory
     {
         readonly IRepository repository;
-        IDependencyRegistry registry;
+        readonly IDependencyRegistry registry;
 
-        public unit_of_work_factory(IRepository repository, IDependencyRegistry registry)
+        public UnitOfWorkFactory(IRepository repository, IDependencyRegistry registry)
         {
             this.repository = repository;
             this.registry = registry;
trunk/product/MyMoney/Infrastructure/transactions/unit_of_work_registry_specs.cs → trunk/product/MyMoney/Infrastructure/transactions/UnitOfWorkRegistrySpecs.cs
@@ -7,12 +7,12 @@ using MyMoney.Testing.spechelpers.core;
 namespace MyMoney.Infrastructure.transactions
 {
     [Concern(typeof (UnitOfWorkRegistry))]
-    public abstract class behaves_like_unit_of_work_registery : concerns_for<IUnitOfWorkRegistry>
+    public abstract class behaves_like_unit_of_work_registery : concerns_for<IUnitOfWorkRegistry,UnitOfWorkRegistry>
     {
-        public override IUnitOfWorkRegistry create_sut()
-        {
-            return new UnitOfWorkRegistry(factory);
-        }
+        //public override IUnitOfWorkRegistry create_sut()
+        //{
+        //    return new UnitOfWorkRegistry(factory);
+        //}
 
         context c = () => { factory = the_dependency<IUnitOfWorkFactory>(); };
 
trunk/product/MyMoney/Presentation/Context/the_application_context_specs.cs
@@ -1,3 +1,4 @@
+using System;
 using System.Windows.Forms;
 using jpboodhoo.bdd.contexts;
 using MyMoney.Presentation.Model.Menu.File.Commands;
@@ -7,7 +8,6 @@ using MyMoney.Testing.MetaData;
 using MyMoney.Testing.spechelpers.contexts;
 using MyMoney.Testing.spechelpers.core;
 using Rhino.Mocks;
-using mocking_extensions=MyMoney.Testing.spechelpers.core.mocking_extensions;
 
 namespace MyMoney.Presentation.Context
 {
@@ -26,25 +26,26 @@ namespace MyMoney.Presentation.Context
                             load_application = an<ILoadApplicationShellCommand>();
                         };
 
-        protected static ApplicationShell shell_view;
-        protected static IExitCommand exit_command;
-        protected static ILoadApplicationShellCommand load_application;
+        static protected ApplicationShell shell_view;
+        static protected IExitCommand exit_command;
+        static protected ILoadApplicationShellCommand load_application;
     }
 
     public class when_starting_the_application : behaves_like_an_application_context
     {
         it should_specify_the_main_shell_view_as_the_main_form = () => result.should_be_equal_to(shell_view);
 
-        it should_run_the_main_shell_presenter = () => mocking_extensions.was_told_to(load_application, x => x.run());
+        it should_run_the_main_shell_presenter = () => load_application.was_told_to(x => x.run());
 
         because b = () => { result = sut.MainForm; };
+
         static Form result;
     }
 
     public class when_the_application_shell_is_closed : behaves_like_an_application_context
     {
-        it should_shut_the_application_down = () => mocking_extensions.was_told_to(exit_command, x => x.run());
+        it should_shut_the_application_down = () => exit_command.was_told_to(x => x.run());
 
-        because b = () => shell_view.Raise(x => x.Closed += null, null, null);
+        because b = () => shell_view.Raise(x => x.Closed += null, shell_view, EventArgs.Empty);
     }
 }
\ No newline at end of file
trunk/product/MyMoney/Presentation/Core/application_controller_specs.cs
@@ -10,11 +10,6 @@ namespace MyMoney.Presentation.Core
     [Concern(typeof (application_controller))]
     public abstract class behaves_like_an_application_controller : concerns_for<IApplicationController, application_controller>
     {
-        //public override IApplicationController create_sut()
-        //{
-        //    return new application_controller(presenter_registry, shell);
-        //}
-
         context c = () =>
                         {
                             presenter_registry = the_dependency<IPresenterRegistry>();
trunk/product/MyMoney/Presentation/Model/Menu/File/Commands/exit_command_specs.cs
@@ -8,12 +8,12 @@ using MyMoney.Testing.spechelpers.core;
 
 namespace MyMoney.Presentation.Model.Menu.File.Commands
 {
-    [Concern(typeof (exit_command))]
+    [Concern(typeof (ExitCommand))]
     public abstract class behaves_like_exit_command : concerns_for<IExitCommand>
     {
         public override IExitCommand create_sut()
         {
-            return new exit_command(application, broker, save_changes_command);
+            return new ExitCommand(application, broker, save_changes_command);
         }
 
         context c = () =>
trunk/product/MyMoney/Presentation/Model/Menu/File/Commands/exit_command.cs → trunk/product/MyMoney/Presentation/Model/Menu/File/Commands/ExitCommand.cs
@@ -9,13 +9,13 @@ namespace MyMoney.Presentation.Model.Menu.File.Commands
     {
     }
 
-    public class exit_command : IExitCommand
+    public class ExitCommand : IExitCommand
     {
         readonly IApplicationEnvironment application;
         readonly IEventAggregator broker;
         readonly ISaveChangesCommand command;
 
-        public exit_command(IApplicationEnvironment application, IEventAggregator broker, ISaveChangesCommand command)
+        public ExitCommand(IApplicationEnvironment application, IEventAggregator broker, ISaveChangesCommand command)
         {
             this.application = application;
             this.command = command;
trunk/product/MyMoney/Presentation/Presenters/Commands/display_the_splash_screen.cs
@@ -10,7 +10,7 @@ namespace MyMoney.Presentation.Presenters.Commands
         readonly ISplashScreenPresenter presenter;
 
         public display_the_splash_screen()
-            : this(new splash_screen_presenter(new interval_timer(new timer_factory()), new splash_screen_view()))
+            : this(new SplashScreenPresenter(new IntervalTimer(new TimerFactory()), new SplashScreenView()))
         {
         }
 
trunk/product/MyMoney/Presentation/Presenters/Commands/run_the_specs.cs
@@ -7,18 +7,17 @@ using MyMoney.Testing.spechelpers.core;
 namespace MyMoney.Presentation.Presenters.Commands
 {
     [Concern(typeof (run_the<>))]
-    public class when_initializing_a_different_regions_of_the_user_interface :
-        concerns_for<IRunThe<IPresenter>, run_the<IPresenter>>
+    public class when_initializing_different_regions_of_the_user_interface : concerns_for<IRunThe<IPresenter>, run_the<IPresenter>>
     {
         it should_initialize_the_presenter_that_controls_that_region =
             () => application_controller.was_told_to(x => x.run<IPresenter>());
 
-        context c = () => { application_controller = an<IApplicationController>(); };
+        context c = () => { application_controller = the_dependency<IApplicationController>(); };
 
-        public override IRunThe<IPresenter> create_sut()
-        {
-            return new run_the<IPresenter>(application_controller);
-        }
+        //public override IRunThe<IPresenter> create_sut()
+        //{
+        //    return new run_the<IPresenter>(application_controller);
+        //}
 
         because b = () => sut.run();
 
trunk/product/MyMoney/Presentation/Presenters/income/add_new_income_presenter_specs.cs
@@ -15,10 +15,10 @@ namespace MyMoney.Presentation.Presenters.income
     [Concern(typeof (add_new_income_presenter))]
     public abstract class behaves_like_add_new_income_presenter : concerns_for<IAddNewIncomePresenter, add_new_income_presenter>
     {
-        public override IAddNewIncomePresenter create_sut()
-        {
-            return new add_new_income_presenter(view, tasks);
-        }
+        //public override IAddNewIncomePresenter create_sut()
+        //{
+        //    return new add_new_income_presenter(view, tasks);
+        //}
 
         context c = () =>
                         {
trunk/product/MyMoney/Presentation/Presenters/Menu/Help/about_the_application_presenter_specs.cs
@@ -6,20 +6,20 @@ using MyMoney.Testing.spechelpers.core;
 
 namespace MyMoney.Presentation.Presenters.Menu.Help
 {
+    [Concern(typeof (about_the_application_presenter))]
     public abstract class behaves_like_the_application_information_presenter :
         concerns_for<IAboutApplicationPresenter, about_the_application_presenter>
     {
-        public override IAboutApplicationPresenter create_sut()
-        {
-            return new about_the_application_presenter(view);
-        }
+        //public override IAboutApplicationPresenter create_sut()
+        //{
+        //    return new about_the_application_presenter(view);
+        //}
 
         context c = () => { view = the_dependency<IAboutApplicationView>(); };
 
-        protected static IAboutApplicationView view;
+        static protected IAboutApplicationView view;
     }
 
-    [Concern(typeof (about_the_application_presenter))]
     public class when_initializing_the_application_information_presenter :
         behaves_like_the_application_information_presenter
     {
trunk/product/MyMoney/Presentation/Presenters/Menu/main_menu_presenter.cs
@@ -11,10 +11,10 @@ namespace MyMoney.Presentation.Presenters.Menu
 
     public class main_menu_presenter : IMainMenuPresenter
     {
-        readonly IMainMenuView main_menu;
+        readonly IMenuView main_menu;
         readonly ISubMenuRegistry registry;
 
-        public main_menu_presenter(IMainMenuView main_menu, ISubMenuRegistry registry)
+        public main_menu_presenter(IMenuView main_menu, ISubMenuRegistry registry)
         {
             this.main_menu = main_menu;
             this.registry = registry;
trunk/product/MyMoney/Presentation/Presenters/Menu/main_menu_presenter_specs.cs
@@ -10,19 +10,14 @@ namespace MyMoney.Presentation.Presenters.Menu
     [Concern(typeof (main_menu_presenter))]
     public abstract class behaves_like_the_main_menu_presenter : concerns_for<IMainMenuPresenter, main_menu_presenter>
     {
-        public override IMainMenuPresenter create_sut()
-        {
-            return new main_menu_presenter(main_menu, repository);
-        }
-
         context c = () =>
                         {
-                            main_menu = the_dependency<IMainMenuView>();
+                            main_menu = the_dependency<IMenuView>();
                             repository = the_dependency<ISubMenuRegistry>();
                         };
 
-        protected static ISubMenuRegistry repository;
-        protected static IMainMenuView main_menu;
+        static protected ISubMenuRegistry repository;
+        static protected IMenuView main_menu;
     }
 
     public class when_initializing_the_main_menu_presenter : behaves_like_the_main_menu_presenter
trunk/product/MyMoney/Presentation/Presenters/Navigation/navigation_presenter_specs.cs → trunk/product/MyMoney/Presentation/Presenters/Navigation/NavigationPresenterSpecs.cs
@@ -14,16 +14,16 @@ namespace MyMoney.Presentation.Presenters.Navigation
 
         context c = () =>
                         {
-                            view = an<INavigationView>();
-                            tree_view_visitor = an<INavigationTreeVisitor>();
+                            view = the_dependency<INavigationView>();
+                            tree_view_visitor = the_dependency<INavigationTreeVisitor>();
                         };
 
         because b = () => sut.run();
 
-        public override INavigationPresenter create_sut()
-        {
-            return new NavigationPresenter(view, tree_view_visitor);
-        }
+        //public override INavigationPresenter create_sut()
+        //{
+        //    return new NavigationPresenter(view, tree_view_visitor);
+        //}
 
         static INavigationView view;
         static INavigationTreeVisitor tree_view_visitor;
trunk/product/MyMoney/Presentation/Presenters/reporting/report_presenter.cs
@@ -15,11 +15,11 @@ namespace MyMoney.Presentation.Presenters.reporting
 
     public class report_presenter : IViewAllBillsReportPresenter
     {
-        private readonly IReportView view;
+        private readonly IReportViewer view;
         private readonly IViewAllBillsReport report;
         private readonly IBillingTasks tasks;
 
-        public report_presenter(IReportView view, IViewAllBillsReport report, IBillingTasks tasks)
+        public report_presenter(IReportViewer view, IViewAllBillsReport report, IBillingTasks tasks)
         {
             this.view = view;
             this.tasks = tasks;
trunk/product/MyMoney/Presentation/Presenters/Shell/GettingStartedPresenterSpecs.cs
@@ -12,10 +12,10 @@ namespace MyMoney.Presentation.Presenters.Shell
         public class behaves_like_the_getting_started_presenter :
             concerns_for<IGettingStartedPresenter, GettingStartedPresenter>
         {
-            public override IGettingStartedPresenter create_sut()
-            {
-                return new GettingStartedPresenter(view, broker);
-            }
+            //public override IGettingStartedPresenter create_sut()
+            //{
+            //    return new GettingStartedPresenter(view, broker);
+            //}
 
             context c = () =>
                             {
trunk/product/MyMoney/Presentation/Presenters/Shell/load_application_shell_specs.cs → trunk/product/MyMoney/Presentation/Presenters/Shell/LoadApplicationShellSpecs.cs
@@ -33,10 +33,10 @@ namespace MyMoney.Presentation.Presenters.Shell
 
         because b = () => sut.run();
 
-        public override ILoadApplicationShellCommand create_sut()
-        {
-            return new LoadApplicationShell(registry, controller, shell);
-        }
+        //public override ILoadApplicationShellCommand create_sut()
+        //{
+        //    return new LoadApplicationShell(registry, controller, shell);
+        //}
 
         static IPresenterRegistry registry;
         static IPresentationModule correct_presenter;
trunk/product/MyMoney/Presentation/Presenters/Shell/NotificationIconPresenterSpecs.cs
@@ -11,10 +11,10 @@ namespace MyMoney.Presentation.Presenters.Shell
     [Concern(typeof (NotificationIconPresenter))]
     public abstract class behaves_like_notification_icon_presenter : concerns_for<INotificationIconPresenter, NotificationIconPresenter>
     {
-        public override INotificationIconPresenter create_sut()
-        {
-            return new NotificationIconPresenter(view, broker);
-        }
+        //public override INotificationIconPresenter create_sut()
+        //{
+        //    return new NotificationIconPresenter(view, broker);
+        //}
 
         context c = () =>
                         {
trunk/product/MyMoney/Presentation/Presenters/Shell/StatusBarPresenterSpecs.cs
@@ -23,10 +23,10 @@ namespace MyMoney.Presentation.Presenters.Shell
 
         because b = () => sut.notify(new new_project_opened(""));
 
-        public override IStatusBarPresenter create_sut()
-        {
-            return new StatusBarPresenter(view, broker);
-        }
+        //public override IStatusBarPresenter create_sut()
+        //{
+        //    return new StatusBarPresenter(view, broker);
+        //}
 
         static IStatusBarView view;
         static IEventAggregator broker;
trunk/product/MyMoney/Presentation/Presenters/Shell/TitleBarPresenterSpecs.cs
@@ -12,10 +12,10 @@ namespace MyMoney.Presentation.Presenters.Shell
     [Concern(typeof (TitleBarPresenter))]
     public abstract class behaves_like_a_title_bar_presenter : concerns_for<ITitleBarPresenter, TitleBarPresenter>
     {
-        public override ITitleBarPresenter create_sut()
-        {
-            return new TitleBarPresenter(view, project, broker);
-        }
+        //public override ITitleBarPresenter create_sut()
+        //{
+        //    return new TitleBarPresenter(view, project, broker);
+        //}
 
         context c = () =>
                         {
trunk/product/MyMoney/Presentation/Presenters/Shell/UnhandledErrorPresenterSpecs.cs
@@ -11,10 +11,10 @@ namespace MyMoney.Presentation.Presenters.Shell
     public class behaves_like_unhandled_error_presenter :
         concerns_for<IUnhandledErrorPresenter, UnhandledErrorPresenter>
     {
-        public override IUnhandledErrorPresenter create_sut()
-        {
-            return new UnhandledErrorPresenter(view, broker);
-        }
+        //public override IUnhandledErrorPresenter create_sut()
+        //{
+        //    return new UnhandledErrorPresenter(view, broker);
+        //}
 
         context c = () =>
                         {
trunk/product/MyMoney/Presentation/Presenters/Startup/splash_screen_presenter.cs → trunk/product/MyMoney/Presentation/Presenters/Startup/SplashScreenPresenter.cs
@@ -8,13 +8,13 @@ namespace MyMoney.Presentation.Presenters.Startup
     {
     }
 
-    public class splash_screen_presenter : ISplashScreenPresenter
+    public class SplashScreenPresenter : ISplashScreenPresenter
     {
         private readonly ITimer timer;
         private readonly ISplashScreenView view;
         private ISplashScreenState current_state;
 
-        public splash_screen_presenter(ITimer timer, ISplashScreenView view)
+        public SplashScreenPresenter(ITimer timer, ISplashScreenView view)
         {
             this.timer = timer;
             this.view = view;
trunk/product/MyMoney/Presentation/Presenters/Startup/splash_screen_presenter_specs.cs → trunk/product/MyMoney/Presentation/Presenters/Startup/SplashScreenPresenterSpecs.cs
@@ -8,13 +8,13 @@ using MyMoney.Testing.spechelpers.core;
 
 namespace MyMoney.Presentation.Presenters.Startup
 {
-    [Concern(typeof (splash_screen_presenter))]
-    public abstract class behaves_like_splash_screen_presenter : concerns_for<ISplashScreenPresenter, splash_screen_presenter>
+    [Concern(typeof (SplashScreenPresenter))]
+    public abstract class behaves_like_splash_screen_presenter : concerns_for<ISplashScreenPresenter, SplashScreenPresenter>
     {
-        public override ISplashScreenPresenter create_sut()
-        {
-            return new splash_screen_presenter(timer, view);
-        }
+        //public override ISplashScreenPresenter create_sut()
+        //{
+        //    return new splash_screen_presenter(timer, view);
+        //}
 
         context c = () =>
                         {
trunk/product/MyMoney/Presentation/Presenters/updates/CheckForUpdatesPresenterSpecs.cs
@@ -10,13 +10,12 @@ using MyMoney.Testing.spechelpers.core;
 namespace MyMoney.Presentation.Presenters.updates
 {
     [Concern(typeof (CheckForUpdatesPresenter))]
-    public abstract class behaves_like_check_for_updates_presenter :
-        concerns_for<ICheckForUpdatesPresenter, CheckForUpdatesPresenter>
+    public abstract class behaves_like_check_for_updates_presenter : concerns_for<ICheckForUpdatesPresenter, CheckForUpdatesPresenter>
     {
-        public override ICheckForUpdatesPresenter create_sut()
-        {
-            return new CheckForUpdatesPresenter(view, tasks, command);
-        }
+        //public override ICheckForUpdatesPresenter create_sut()
+        //{
+        //    return new CheckForUpdatesPresenter(view, tasks, command);
+        //}
 
         context c = () =>
                         {
trunk/product/MyMoney/Presentation/Presenters/add_company_presenter_specs.cs
@@ -11,15 +11,15 @@ namespace MyMoney.Presentation.Presenters
     [Concern(typeof (add_company_presenter))]
     public abstract class behaves_like_the_add_company_presenter : concerns_for<IAddCompanyPresenter, add_company_presenter>
     {
-        public override IAddCompanyPresenter create_sut()
-        {
-            return new add_company_presenter(view, tasks);
-        }
+        //public override IAddCompanyPresenter create_sut()
+        //{
+        //    return new add_company_presenter(view, tasks);
+        //}
 
         context c = () =>
                         {
-                            view = an<IAddCompanyView>();
-                            tasks = an<IBillingTasks>();
+                            view = the_dependency<IAddCompanyView>();
+                            tasks = the_dependency<IBillingTasks>();
                         };
 
         protected static IAddCompanyView view;
trunk/product/MyMoney/Presentation/Views/Menu/Help/about_the_application_view.cs
@@ -1,96 +0,0 @@
-using System.IO;
-using System.Reflection;
-using System.Windows.Forms;
-using MyMoney.Presentation.Resources;
-
-namespace MyMoney.Presentation.Views.Menu.Help
-{
-    public partial class about_the_application_view : Form, IAboutApplicationView
-    {
-        public about_the_application_view()
-        {
-            InitializeComponent();
-            labelProductName.Text = AssemblyProduct;
-            labelVersion.Text = string.Format("Version {0} {0}", AssemblyVersion);
-            uxCopyright.Text = AssemblyCopyright;
-            uxCompanyName.Text = AssemblyCompany;
-            uxDescription.Text = AssemblyDescription;
-            ux_logo.Image = ApplicationImages.Splash;
-        }
-
-        public void display()
-        {
-            ShowDialog();
-        }
-
-        public string AssemblyTitle
-        {
-            get
-            {
-                var attributes = GetType().Assembly.GetCustomAttributes(typeof (AssemblyTitleAttribute), false);
-                if (attributes.Length > 0) {
-                    var titleAttribute = (AssemblyTitleAttribute) attributes[0];
-                    if (titleAttribute.Title != "") {
-                        return titleAttribute.Title;
-                    }
-                }
-                return Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase);
-            }
-        }
-
-        public string AssemblyVersion
-        {
-            get { return GetType().Assembly.GetName().Version.ToString(); }
-        }
-
-        public string AssemblyDescription
-        {
-            get
-            {
-                var attributes =
-                    GetType().Assembly.GetCustomAttributes(typeof (AssemblyDescriptionAttribute), false);
-                if (attributes.Length == 0) {
-                    return "";
-                }
-                return ((AssemblyDescriptionAttribute) attributes[0]).Description;
-            }
-        }
-
-        public string AssemblyProduct
-        {
-            get
-            {
-                var attributes = GetType().Assembly.GetCustomAttributes(typeof (AssemblyProductAttribute), false);
-                if (attributes.Length == 0) {
-                    return "";
-                }
-                return ((AssemblyProductAttribute) attributes[0]).Product;
-            }
-        }
-
-        public string AssemblyCopyright
-        {
-            get
-            {
-                var attributes = GetType().Assembly.GetCustomAttributes(typeof (AssemblyCopyrightAttribute), false);
-                if (attributes.Length == 0) {
-                    return "";
-                }
-                return ((AssemblyCopyrightAttribute) attributes[0]).Copyright;
-            }
-        }
-
-        public string AssemblyCompany
-        {
-            get
-            {
-                var attributes =
-                    GetType().Assembly.GetCustomAttributes(typeof (AssemblyCompanyAttribute), false);
-                if (attributes.Length == 0) {
-                    return "";
-                }
-                return ((AssemblyCompanyAttribute) attributes[0]).Company;
-            }
-        }
-    }
-}
\ No newline at end of file
trunk/product/MyMoney/Presentation/Views/Menu/Help/AboutTheApplicationView.cs
@@ -0,0 +1,42 @@
+using System.Linq;
+using System.Reflection;
+using MyMoney.Presentation.Resources;
+using MyMoney.Presentation.Views.core;
+using MyMoney.Utility.Extensions;
+
+namespace MyMoney.Presentation.Views.Menu.Help
+{
+    public partial class AboutTheApplicationView : ApplicationWindow, IAboutApplicationView
+    {
+        public AboutTheApplicationView()
+        {
+            InitializeComponent();
+            labelProductName.Text = get_attribute<AssemblyProductAttribute>().Product;
+            labelVersion.Text = string.Format("Version {0} {0}", AssemblyVersion);
+            uxCopyright.Text = get_attribute<AssemblyCopyrightAttribute>().Copyright;
+            uxCompanyName.Text = get_attribute<AssemblyCompanyAttribute>().Company;
+            uxDescription.Text = get_attribute<AssemblyDescriptionAttribute>().Description;
+            ux_logo.Image = ApplicationImages.Splash;
+        }
+
+        public void display()
+        {
+            ShowDialog();
+        }
+
+        string AssemblyVersion
+        {
+            get { return GetType().Assembly.GetName().Version.ToString(); }
+        }
+
+        Attribute get_attribute<Attribute>() where Attribute : System.Attribute
+        {
+            return
+                GetType()
+                    .Assembly
+                    .GetCustomAttributes(typeof (Attribute), false)
+                    .Select(x => x.downcast_to<Attribute>())
+                    .First();
+        }
+    }
+}
\ No newline at end of file
trunk/product/MyMoney/Presentation/Views/Menu/Help/about_the_application_view.Designer.cs → trunk/product/MyMoney/Presentation/Views/Menu/Help/AboutTheApplicationView.Designer.cs
@@ -1,6 +1,6 @@
 namespace MyMoney.Presentation.Views.Menu.Help
 {
-    public partial class about_the_application_view
+    public partial class AboutTheApplicationView
     {
         /// <summary>
         /// Required designer variable.
trunk/product/MyMoney/Presentation/Views/Menu/Help/about_the_application_view.resx → trunk/product/MyMoney/Presentation/Views/Menu/Help/AboutTheApplicationView.resx
File renamed without changes
trunk/product/MyMoney/Presentation/Views/Menu/Mappers/sub_menu_to_tool_strip_menu_item_mapper.cs → trunk/product/MyMoney/Presentation/Views/Menu/Mappers/SubMenuToToolStripMenuItemMapper.cs
@@ -9,7 +9,7 @@ namespace MyMoney.Presentation.Views.Menu.Mappers
     {
     }
 
-    public class sub_menu_to_tool_strip_menu_item_mapper : ISubMenuToToolStripMenuItemMapper
+    public class SubMenuToToolStripMenuItemMapper : ISubMenuToToolStripMenuItemMapper
     {
         public ToolStripMenuItem map_from(ISubMenu item)
         {
trunk/product/MyMoney/Presentation/Views/Menu/main_menu_view.cs → trunk/product/MyMoney/Presentation/Views/Menu/ApplicationMenuHost.cs
@@ -4,17 +4,17 @@ using MyMoney.Presentation.Views.Shell;
 
 namespace MyMoney.Presentation.Views.Menu
 {
-    public interface IMainMenuView
+    public interface IMenuView
     {
         void add(ISubMenu menu_to_add);
     }
 
-    public class main_menu_view : IMainMenuView
+    public class ApplicationMenuHost : IMenuView
     {
         private readonly ISubMenuToToolStripMenuItemMapper mapper;
         private readonly IShell application_shell;
 
-        public main_menu_view(IShell application_shell, ISubMenuToToolStripMenuItemMapper mapper)
+        public ApplicationMenuHost(IShell application_shell, ISubMenuToToolStripMenuItemMapper mapper)
         {
             this.mapper = mapper;
             this.application_shell = application_shell;
trunk/product/MyMoney/Presentation/Views/Menu/main_menu_view_specs.cs → trunk/product/MyMoney/Presentation/Views/Menu/ApplicationMenuHostSpecs.cs
@@ -3,34 +3,41 @@ using jpboodhoo.bdd.contexts;
 using MyMoney.Presentation.Model.Menu;
 using MyMoney.Presentation.Views.Menu.Mappers;
 using MyMoney.Presentation.Views.Shell;
+using MyMoney.Testing.MetaData;
 using MyMoney.Testing.spechelpers.contexts;
 using MyMoney.Testing.spechelpers.core;
 
 namespace MyMoney.Presentation.Views.Menu
 {
-    public class when_adding_sub_menus_to_the_main_menu_ : concerns_for<IMainMenuView>
+    [Concern(typeof (ApplicationMenuHost))]
+    public class behaves_like_application_menu_host : concerns_for<IMenuView, ApplicationMenuHost>
+    {
+        context c = () =>
+                        {
+                            mapper = the_dependency<ISubMenuToToolStripMenuItemMapper>();
+                            main_shell = the_dependency<IShell>();
+                        };
+
+        static protected ISubMenuToToolStripMenuItemMapper mapper;
+        static protected IShell main_shell;
+    }
+
+    public class when_adding_sub_menus_to_the_main_menu : behaves_like_application_menu_host
     {
         it should_add_the_mapped_menu_strip_item_to_the_main_menu_strip =
             () => main_shell.was_told_to(x => x.add_to_main_menu(tool_strip_menu_item));
 
         context c = () =>
                         {
+                            mapper = the_dependency<ISubMenuToToolStripMenuItemMapper>();
+                            main_shell = the_dependency<IShell>();
                             sub_menu = an<ISubMenu>();
-                            mapper = an<ISubMenuToToolStripMenuItemMapper>();
-                            main_shell = an<IShell>();
                             tool_strip_menu_item = new ToolStripMenuItem();
                             mapper.is_told_to(x => x.map_from(sub_menu)).it_will_return(tool_strip_menu_item);
                         };
 
         because b = () => sut.add(sub_menu);
 
-        public override IMainMenuView create_sut()
-        {
-            return new main_menu_view(main_shell, mapper);
-        }
-
-        static ISubMenuToToolStripMenuItemMapper mapper;
-        static IShell main_shell;
         static ISubMenu sub_menu;
         static ToolStripMenuItem tool_strip_menu_item;
     }
trunk/product/MyMoney/Presentation/Views/Navigation/navigation_view.cs → trunk/product/MyMoney/Presentation/Views/Navigation/NavigationView.cs
@@ -8,11 +8,11 @@ using WeifenLuo.WinFormsUI.Docking;
 
 namespace MyMoney.Presentation.Views.Navigation
 {
-    public partial class navigation_view : ApplicationDockedWindow, INavigationView
+    public partial class NavigationView : ApplicationDockedWindow, INavigationView
     {
         readonly IShell shell;
 
-        public navigation_view(IShell shell)
+        public NavigationView(IShell shell)
         {
             InitializeComponent();
             this.shell = shell;
trunk/product/MyMoney/Presentation/Views/Navigation/navigation_view.Designer.cs → trunk/product/MyMoney/Presentation/Views/Navigation/NavigationView.Designer.cs
@@ -1,6 +1,6 @@
-namespace MyMoney.Presentation.Views.Navigation
+namespace MyMoney.Presentation.Views.Navigation
 {
-    partial class navigation_view
+    partial class NavigationView
     {
         /// <summary>
         /// Required designer variable.
trunk/product/MyMoney/Presentation/Views/Navigation/navigation_view.resx → trunk/product/MyMoney/Presentation/Views/Navigation/NavigationView.resx
File renamed without changes
trunk/product/MyMoney/Presentation/Views/reporting/IReportView.cs → trunk/product/MyMoney/Presentation/Views/reporting/IReportViewer.cs
@@ -3,7 +3,7 @@ using MyMoney.Presentation.Views.core;
 
 namespace MyMoney.Presentation.Views.reporting
 {
-    public interface IReportView : IDockedContentView
+    public interface IReportViewer : IDockedContentView
     {
         void display(IReport report);
     }
trunk/product/MyMoney/Presentation/Views/reporting/report_viewer.cs → trunk/product/MyMoney/Presentation/Views/reporting/ReportViewer.cs
@@ -5,9 +5,9 @@ using MyMoney.Utility.Extensions;
 
 namespace MyMoney.Presentation.Views.reporting
 {
-    public partial class report_viewer : ApplicationDockedWindow, IReportView
+    public partial class ReportViewer : ApplicationDockedWindow, IReportViewer
     {
-        public report_viewer()
+        public ReportViewer()
         {
             InitializeComponent();
         }
trunk/product/MyMoney/Presentation/Views/reporting/report_viewer.Designer.cs → trunk/product/MyMoney/Presentation/Views/reporting/ReportViewer.Designer.cs
@@ -1,6 +1,6 @@
-namespace MyMoney.Presentation.Views.reporting
+namespace MyMoney.Presentation.Views.reporting
 {
-    partial class report_viewer
+    partial class ReportViewer
     {
         /// <summary>
         /// Required designer variable.
trunk/product/MyMoney/Presentation/Views/reporting/report_viewer.resx → trunk/product/MyMoney/Presentation/Views/reporting/ReportViewer.resx
File renamed without changes
trunk/product/MyMoney/Presentation/Views/Startup/splash_screen_view.cs → trunk/product/MyMoney/Presentation/Views/Startup/SplashScreenView.cs
@@ -4,9 +4,9 @@ using MyMoney.Presentation.Views.core;
 
 namespace MyMoney.Presentation.Views.Startup
 {
-    public partial class splash_screen_view : ApplicationWindow, ISplashScreenView
+    public partial class SplashScreenView : ApplicationWindow, ISplashScreenView
     {
-        public splash_screen_view()
+        public SplashScreenView()
         {
             InitializeComponent();
             ApplyWindowStyles();
trunk/product/MyMoney/Presentation/Views/Startup/splash_screen_view.Designer.cs → trunk/product/MyMoney/Presentation/Views/Startup/SplashScreenView.Designer.cs
@@ -1,5 +1,5 @@
-namespace MyMoney.Presentation.Views.Startup {
-    partial class splash_screen_view
+namespace MyMoney.Presentation.Views.Startup {
+    partial class SplashScreenView
     {
         /// <summary>
         /// Required designer variable.
trunk/product/MyMoney/Presentation/Views/Startup/splash_screen_view.resx → trunk/product/MyMoney/Presentation/Views/Startup/SplashScreenView.resx
File renamed without changes
trunk/product/MyMoney/Presentation/Views/add_new_company_view.cs → trunk/product/MyMoney/Presentation/Views/AddCompanyView.cs
@@ -11,11 +11,11 @@ using MyMoney.Utility.Extensions;
 
 namespace MyMoney.Presentation.Views
 {
-    public partial class add_new_company_view : ApplicationDockedWindow, IAddCompanyView
+    public partial class AddCompanyView : ApplicationDockedWindow, IAddCompanyView
     {
         readonly register_new_company dto;
 
-        public add_new_company_view()
+        public AddCompanyView()
         {
             InitializeComponent();
             titled("Add A Company");
trunk/product/MyMoney/Presentation/Views/add_new_company_view.Designer.cs → trunk/product/MyMoney/Presentation/Views/AddCompanyView.Designer.cs
@@ -1,6 +1,6 @@
 namespace MyMoney.Presentation.Views
 {
-    partial class add_new_company_view
+    partial class AddCompanyView
     {
         /// <summary>
         /// Required designer variable.
@@ -28,7 +28,7 @@ namespace MyMoney.Presentation.Views
         /// </summary>
         private void InitializeComponent()
         {
-            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(add_new_company_view));
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddCompanyView));
             this.kryptonHeaderGroup1 = new ComponentFactory.Krypton.Toolkit.KryptonHeaderGroup();
             this.kryptonSplitContainer1 = new ComponentFactory.Krypton.Toolkit.KryptonSplitContainer();
             this.ux_submit_button = new ComponentFactory.Krypton.Toolkit.KryptonButton();
trunk/product/MyMoney/Presentation/Views/add_new_company_view.resx → trunk/product/MyMoney/Presentation/Views/AddCompanyView.resx
File renamed without changes
trunk/product/MyMoney/Utility/Extensions/command_extensions.cs
@@ -18,7 +18,7 @@ namespace MyMoney.Utility.Extensions
 
         public static ICommand as_command_chain(this IEnumerable<ICommand> commands)
         {
-            var processor = new command_processor();
+            var processor = new CommandProcessor();
             commands.each(processor.add);
             return processor;
         }
trunk/product/MyMoney/windows.ui/start_the_application.cs
@@ -1,8 +1,10 @@
 using System;
 using System.Windows.Forms;
 using MyMoney.Infrastructure.Container;
+using MyMoney.Infrastructure.eventing;
 using MyMoney.Infrastructure.Extensions;
 using MyMoney.Presentation.Context;
+using MyMoney.Presentation.Model.messages;
 using MyMoney.Utility.Core;
 
 namespace MyMoney.windows.ui
@@ -18,7 +20,8 @@ namespace MyMoney.windows.ui
             catch (Exception e)
             {
                 this.log().error(e);
-                MessageBox.Show(e.ToString(), e.Message);
+                resolve.dependency_for<IEventAggregator>().publish(new unhandled_error_occurred(e));
+                //MessageBox.Show(e.ToString(), e.Message);
             }
         }
     }
trunk/product/MyMoney/windows.ui/wire_up_the_reports_in_to_the.cs
@@ -16,7 +16,7 @@ namespace MyMoney.windows.ui
 
         public void run()
         {
-            registry.transient<IReportView, report_viewer>();
+            registry.transient<IReportViewer, ReportViewer>();
             registry.transient<IViewAllBillsReport, view_all_bills_report>();
         }
     }
trunk/product/MyMoney/windows.ui/wire_up_the_views_in_to_the.cs
@@ -26,10 +26,10 @@ namespace MyMoney.windows.ui
         {
             register.singleton<IShell, ApplicationShell>();
             register.singleton<the_application_context, the_application_context>();
-            register.transient<IAboutApplicationView, about_the_application_view>();
-            register.transient<ISplashScreenView, splash_screen_view>();
-            register.transient<INavigationView, navigation_view>();
-            register.transient<IAddCompanyView, add_new_company_view>();
+            register.transient<IAboutApplicationView, AboutTheApplicationView>();
+            register.transient<ISplashScreenView, SplashScreenView>();
+            register.transient<INavigationView, NavigationView>();
+            register.transient<IAddCompanyView, AddCompanyView>();
             register.transient<IViewAllBills, view_all_bills>();
             register.transient<IAddBillPaymentView, add_bill_payment>();
             register.transient<IMainMenuView, MainMenuView>();
trunk/product/MyMoney/MyMoney.csproj
@@ -185,7 +185,6 @@
     <Compile Include="Domain\Core\IYear.cs" />
     <Compile Include="Domain\Core\money_extensions.cs" />
     <Compile Include="Domain\Core\money_extensions_specs.cs" />
-    <Compile Include="Domain\accounting\financial_growth\income_specs.cs" />
     <Compile Include="Domain\Core\MoneySpecs.cs" />
     <Compile Include="Domain\Core\range.cs" />
     <Compile Include="Domain\Core\range_specs.cs" />
@@ -222,7 +221,7 @@
     <Compile Include="Infrastructure\registries\default_registry_specs.cs" />
     <Compile Include="Domain\accounting\billing\Bill.cs" />
     <Compile Include="Domain\accounting\billing\BillSpecs.cs" />
-    <Compile Include="Domain\accounting\general_ledger.cs" />
+    <Compile Include="Domain\accounting\GeneralLedger.cs" />
     <Compile Include="Domain\accounting\GeneralLedgerSpecs.cs" />
     <Compile Include="Domain\accounting\billing\ILedgerEntry.cs" />
     <Compile Include="Domain\accounting\billing\Payment.cs" />
@@ -232,13 +231,12 @@
     <Compile Include="Domain\Core\registry_extensions.cs" />
     <Compile Include="Infrastructure\Container\Windsor\configuration\ComponentRegistrationConfiguration.cs" />
     <Compile Include="Infrastructure\System\application_environment.cs" />
-    <Compile Include="Infrastructure\Threading\background_thread_factory.cs" />
-    <Compile Include="Infrastructure\Threading\background_thread.cs">
+    <Compile Include="Infrastructure\Threading\BackgroundThreadFactory.cs" />
+    <Compile Include="Infrastructure\Threading\BackgroundThread.cs">
     </Compile>
-    <Compile Include="Infrastructure\Threading\interval_timer.cs" />
-    <Compile Include="Infrastructure\Threading\synchronize.cs" />
-    <Compile Include="Infrastructure\Threading\timer_factory.cs" />
-    <Compile Include="Infrastructure\Threading\worker_thread.cs">
+    <Compile Include="Infrastructure\Threading\IntervalTimer.cs" />
+    <Compile Include="Infrastructure\Threading\TimerFactory.cs" />
+    <Compile Include="Infrastructure\Threading\WorkerThread.cs">
       <SubType>Component</SubType>
     </Compile>
     <Compile Include="Infrastructure\transactions\IUnitOfWorkRegistrationFactory.cs" />
@@ -248,9 +246,9 @@
     <Compile Include="Infrastructure\transactions\UnitOfWorkRegistrationFactory.cs" />
     <Compile Include="Infrastructure\transactions\UnitOfWorkRegistrationSpecs.cs" />
     <Compile Include="Infrastructure\transactions\unit_of_work.cs" />
-    <Compile Include="Infrastructure\transactions\unit_of_work_factory.cs" />
+    <Compile Include="Infrastructure\transactions\UnitOfWorkFactory.cs" />
     <Compile Include="Infrastructure\transactions\UnitOfWorkRegistry.cs" />
-    <Compile Include="Infrastructure\transactions\unit_of_work_registry_specs.cs" />
+    <Compile Include="Infrastructure\transactions\UnitOfWorkRegistrySpecs.cs" />
     <Compile Include="Infrastructure\transactions\unit_of_work_specs.cs" />
     <Compile Include="Presentation\Core\could_not_find_presenter.cs" />
     <Compile Include="Presentation\Core\IContentPresenter.cs" />
@@ -279,7 +277,7 @@
     <Compile Include="Presentation\Model\Projects\current_project.cs" />
     <Compile Include="Presentation\Core\PresenterRegistry.cs" />
     <Compile Include="Presentation\Model\Menu\create.cs" />
-    <Compile Include="Presentation\Model\Menu\File\Commands\exit_command.cs" />
+    <Compile Include="Presentation\Model\Menu\File\Commands\ExitCommand.cs" />
     <Compile Include="Presentation\Model\Menu\File\Commands\new_command.cs" />
     <Compile Include="Presentation\Model\Menu\File\Commands\open_command.cs" />
     <Compile Include="Presentation\Model\Menu\File\Commands\open_command_specs.cs" />
@@ -347,9 +345,9 @@
     <Compile Include="Presentation\Presenters\Shell\ToolBarPresenter.cs" />
     <Compile Include="Presentation\Presenters\Navigation\MainMenuPresenter.cs" />
     <Compile Include="Presentation\Presenters\Navigation\NavigationPresenter.cs" />
-    <Compile Include="Presentation\Presenters\Navigation\navigation_presenter_specs.cs" />
+    <Compile Include="Presentation\Presenters\Navigation\NavigationPresenterSpecs.cs" />
     <Compile Include="Presentation\Presenters\reporting\report_presenter.cs" />
-    <Compile Include="Presentation\Presenters\Shell\load_application_shell_specs.cs" />
+    <Compile Include="Presentation\Presenters\Shell\LoadApplicationShellSpecs.cs" />
     <Compile Include="Presentation\Presenters\Shell\NotificationIconPresenterSpecs.cs" />
     <Compile Include="Presentation\Presenters\Shell\TaskTrayPresenter.cs" />
     <Compile Include="Presentation\Presenters\Shell\TitleBarPresenter.cs" />
@@ -359,15 +357,15 @@
     <Compile Include="Presentation\Presenters\Startup\display_the_splash_screen.cs" />
     <Compile Include="Presentation\Presenters\Startup\hide_the_splash_screen.cs" />
     <Compile Include="Presentation\Presenters\Startup\ISplashScreenState.cs" />
-    <Compile Include="Presentation\Presenters\Startup\splash_screen_presenter.cs" />
+    <Compile Include="Presentation\Presenters\Startup\SplashScreenPresenter.cs" />
     <Compile Include="Presentation\Presenters\updates\CheckForUpdatesPresenter.cs" />
     <Compile Include="Presentation\Presenters\updates\CheckForUpdatesPresenterSpecs.cs" />
     <Compile Include="Presentation\Resources\HybridIcon.cs" />
-    <Compile Include="Presentation\Views\add_new_company_view.cs">
+    <Compile Include="Presentation\Views\AddCompanyView.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="Presentation\Views\add_new_company_view.Designer.cs">
-      <DependentUpon>add_new_company_view.cs</DependentUpon>
+    <Compile Include="Presentation\Views\AddCompanyView.Designer.cs">
+      <DependentUpon>AddCompanyView.cs</DependentUpon>
     </Compile>
     <Compile Include="Presentation\Views\billing\add_bill_payment.cs">
       <SubType>Form</SubType>
@@ -422,7 +420,7 @@
       <DependentUpon>ViewAllIncome.cs</DependentUpon>
     </Compile>
     <Compile Include="Presentation\Views\listbox_extensions.cs" />
-    <Compile Include="Presentation\Views\Menu\main_menu_view.cs" />
+    <Compile Include="Presentation\Views\Menu\ApplicationMenuHost.cs" />
     <Compile Include="Presentation\Views\Navigation\MainMenuView.cs">
       <SubType>Form</SubType>
     </Compile>
@@ -430,18 +428,18 @@
       <DependentUpon>MainMenuView.cs</DependentUpon>
     </Compile>
     <Compile Include="Presentation\Views\Navigation\INavigationView.cs" />
-    <Compile Include="Presentation\Views\Navigation\navigation_view.cs">
+    <Compile Include="Presentation\Views\Navigation\NavigationView.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="Presentation\Views\Navigation\navigation_view.Designer.cs">
-      <DependentUpon>navigation_view.cs</DependentUpon>
+    <Compile Include="Presentation\Views\Navigation\NavigationView.Designer.cs">
+      <DependentUpon>NavigationView.cs</DependentUpon>
     </Compile>
-    <Compile Include="Presentation\Views\reporting\IReportView.cs" />
-    <Compile Include="Presentation\Views\reporting\report_viewer.cs">
+    <Compile Include="Presentation\Views\reporting\IReportViewer.cs" />
+    <Compile Include="Presentation\Views\reporting\ReportViewer.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="Presentation\Views\reporting\report_viewer.Designer.cs">
-      <DependentUpon>report_viewer.cs</DependentUpon>
+    <Compile Include="Presentation\Views\reporting\ReportViewer.Designer.cs">
+      <DependentUpon>ReportViewer.cs</DependentUpon>
     </Compile>
     <Compile Include="Presentation\Views\billing\view_all_bills_report.cs">
       <SubType>Component</SubType>
@@ -497,13 +495,13 @@
     <Compile Include="Infrastructure\Extensions\environment_extensions.cs" />
     <Compile Include="Infrastructure\Extensions\logging_extensions.cs" />
     <Compile Include="Infrastructure\Logging\ConsoleLogging\console_logger.cs" />
-    <Compile Include="Infrastructure\Threading\background_thread_specs.cs" />
-    <Compile Include="Infrastructure\Threading\command_processor.cs" />
-    <Compile Include="Infrastructure\Threading\command_processor_specs.cs" />
+    <Compile Include="Infrastructure\Threading\BackgroundThreadSpecs.cs" />
+    <Compile Include="Infrastructure\Threading\CommandProcessor.cs" />
+    <Compile Include="Infrastructure\Threading\CommandProcessorSpecs.cs" />
     <Compile Include="Infrastructure\Threading\ITimerClient.cs" />
-    <Compile Include="Infrastructure\Threading\background_thread_factory_specs.cs" />
-    <Compile Include="Infrastructure\Threading\timer_factory_specs.cs" />
-    <Compile Include="Infrastructure\Threading\interval_timer_specs.cs" />
+    <Compile Include="Infrastructure\Threading\BackgroundThreadFactorySpecs.cs" />
+    <Compile Include="Infrastructure\Threading\TimerFactorySpecs.cs" />
+    <Compile Include="Infrastructure\Threading\IntervalTimerSpecs.cs" />
     <Compile Include="Presentation\Databindings\ComboBoxDataBindingSpecs.cs" />
     <Compile Include="Presentation\Databindings\combo_box_property_binding.cs" />
     <Compile Include="Presentation\Databindings\control_binding_extensions.cs" />
@@ -546,16 +544,16 @@
     <Compile Include="Presentation\Presenters\Shell\NotificationIconPresenter.cs" />
     <Compile Include="Presentation\Presenters\Shell\StatusBarPresenter.cs" />
     <Compile Include="Presentation\Presenters\Shell\StatusBarPresenterSpecs.cs" />
-    <Compile Include="Presentation\Presenters\Startup\splash_screen_presenter_specs.cs" />
+    <Compile Include="Presentation\Presenters\Startup\SplashScreenPresenterSpecs.cs" />
     <Compile Include="Presentation\Resources\ApplicationIcon.cs" />
     <Compile Include="Presentation\Resources\ApplicationIcons.cs" />
     <Compile Include="Presentation\Resources\ApplicationImage.cs" />
     <Compile Include="Presentation\Resources\ApplicationImages.cs" />
-    <Compile Include="Presentation\Views\Menu\Help\about_the_application_view.cs">
+    <Compile Include="Presentation\Views\Menu\Help\AboutTheApplicationView.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="Presentation\Views\Menu\Help\about_the_application_view.Designer.cs">
-      <DependentUpon>about_the_application_view.cs</DependentUpon>
+    <Compile Include="Presentation\Views\Menu\Help\AboutTheApplicationView.Designer.cs">
+      <DependentUpon>AboutTheApplicationView.cs</DependentUpon>
     </Compile>
     <Compile Include="Presentation\Views\Menu\Help\IAboutApplicationView.cs" />
     <Compile Include="Presentation\Views\Shell\ApplicationShell.cs">
@@ -564,15 +562,15 @@
     <Compile Include="Presentation\Views\Shell\ApplicationShell.Designer.cs">
       <DependentUpon>ApplicationShell.cs</DependentUpon>
     </Compile>
-    <Compile Include="Presentation\Views\Menu\Mappers\sub_menu_to_tool_strip_menu_item_mapper.cs" />
+    <Compile Include="Presentation\Views\Menu\Mappers\SubMenuToToolStripMenuItemMapper.cs" />
     <Compile Include="Presentation\Context\the_application_context_specs.cs" />
     <Compile Include="Presentation\Context\the_application_context.cs" />
     <Compile Include="Presentation\Views\Startup\ISplashScreenView.cs" />
-    <Compile Include="Presentation\Views\Startup\splash_screen_view.cs">
+    <Compile Include="Presentation\Views\Startup\SplashScreenView.cs">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="Presentation\Views\Startup\splash_screen_view.Designer.cs">
-      <DependentUpon>splash_screen_view.cs</DependentUpon>
+    <Compile Include="Presentation\Views\Startup\SplashScreenView.Designer.cs">
+      <DependentUpon>SplashScreenView.cs</DependentUpon>
     </Compile>
     <Compile Include="Utility\Core\chained_command.cs" />
     <Compile Include="Utility\Extensions\command_extensions.cs" />
@@ -597,10 +595,10 @@
     <Compile Include="Infrastructure\Container\IDependencyRegistry.cs" />
     <Compile Include="Presentation\Presenters\Menu\main_menu_presenter_specs.cs" />
     <Compile Include="Presentation\Presenters\Commands\LoadApplicationShell.cs" />
-    <Compile Include="Presentation\Views\Menu\main_menu_view_specs.cs" />
+    <Compile Include="Presentation\Views\Menu\ApplicationMenuHostSpecs.cs" />
     <Compile Include="windows.ui\bootstrap.cs" />
-    <EmbeddedResource Include="Presentation\Views\add_new_company_view.resx">
-      <DependentUpon>add_new_company_view.cs</DependentUpon>
+    <EmbeddedResource Include="Presentation\Views\AddCompanyView.resx">
+      <DependentUpon>AddCompanyView.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Presentation\Views\billing\add_bill_payment.resx">
@@ -625,20 +623,20 @@
       <DependentUpon>ViewAllIncome.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
-    <EmbeddedResource Include="Presentation\Views\Menu\Help\about_the_application_view.resx">
-      <DependentUpon>about_the_application_view.cs</DependentUpon>
+    <EmbeddedResource Include="Presentation\Views\Menu\Help\AboutTheApplicationView.resx">
+      <DependentUpon>AboutTheApplicationView.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Presentation\Views\Navigation\MainMenuView.resx">
       <DependentUpon>MainMenuView.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
-    <EmbeddedResource Include="Presentation\Views\Navigation\navigation_view.resx">
-      <DependentUpon>navigation_view.cs</DependentUpon>
+    <EmbeddedResource Include="Presentation\Views\Navigation\NavigationView.resx">
+      <DependentUpon>NavigationView.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
-    <EmbeddedResource Include="Presentation\Views\reporting\report_viewer.resx">
-      <DependentUpon>report_viewer.cs</DependentUpon>
+    <EmbeddedResource Include="Presentation\Views\reporting\ReportViewer.resx">
+      <DependentUpon>ReportViewer.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
     <EmbeddedResource Include="Presentation\Views\billing\view_all_bills_report.resx">
@@ -649,8 +647,8 @@
       <DependentUpon>ApplicationShell.cs</DependentUpon>
       <SubType>Designer</SubType>
     </EmbeddedResource>
-    <EmbeddedResource Include="Presentation\Views\Startup\splash_screen_view.resx">
-      <DependentUpon>splash_screen_view.cs</DependentUpon>
+    <EmbeddedResource Include="Presentation\Views\Startup\SplashScreenView.resx">
+      <DependentUpon>SplashScreenView.cs</DependentUpon>
     </EmbeddedResource>
     <EmbeddedResource Include="Presentation\Views\updates\CheckForUpdatesView.resx">
       <DependentUpon>CheckForUpdatesView.cs</DependentUpon>
@@ -687,8 +685,6 @@
     <Compile Include="windows.ui\wire_up_the_views_in_to_the.cs" />
   </ItemGroup>
   <ItemGroup>
-    <Folder Include="Presentation\Presenters\mapping\" />
-    <Folder Include="Presentation\Presenters\Menu\File\" />
     <Folder Include="Tasks\domain\" />
     <Folder Include="Tasks\Stubs\" />
     <Folder Include="Testing\spechelpers\concerns\" />