Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 252879
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T21:42:53+00:00 2026-05-11T21:42:53+00:00

Our software shop does a big enterprisey system and one of its part is

  • 0

Our software shop does a big enterprisey system and one of its part is a sophisticated monitoring and log viewer tool. Recently one of our teems rewrote it, since previous version was really lacking some essential features. And it was really ugly.

Since this team is bored with enterprisey stuff and they heard of IoC and Spring (“Seems to be cool, ya?”), they thought it’s a good idea to use it in this app. As a result I have around 170 objects configured via Spring (almost every seen in app). Every simple object is connected via tag. Of course everything is a singleton so adding a feature like multiple file processing is almost impossible.

May I assume that using Spring this way is quite “controversial”? I thought IoC and Spring suits other needs (like change of database driver or other dynamic configuration).

EDIT: GUI of this app is a little bit similar to Visual Studio GUI. So I have tab with log file (and this is one Spring component). I have tab for bookmarks (one Spring component). And so one: imagine that for every tab in Visual Studio you have one Spring component. And every component has interface only capable of connecting with other single component.

So it is possible to have to file tabs (configure two compoennts). But that means two bookmarks windows (which makes no sense – in VS you habe one for every file).

@Earwicker: almost every single class in this project is configured via Spring (file loader, file indexer, bookmark tab, file tab, colorizer tab)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T21:42:53+00:00Added an answer on May 11, 2026 at 9:42 pm

    From your description (as others have said) it is not possible to judge whether the resulting design is good or bad.

    The ultimate extreme of IOC looks like this: every useful API is wrapped in a component class. The parameters to that API are supplied by other components. For example, if the application might need to read a file, you’d have a component (in pseudocode):

    public class ReadFile : IStreamFactory
    {
        IFilePath _path;
    
        public ReadFile(IFilePath path)
        {
            _path = path;
        }
    
        // implementing IStreamFactory
        Stream Get()
        {
            return new FileStream(_path.GetPathString());
        }
    }
    

    So now to make that object capable of opening a stream on a file, you need to write another component that implements IFilePath. You could write several: a component that stores a constant filepath (read from configuration, of course!), a component that combines two filepaths, a component that takes plain text from another component (implementing another new interface, ITextSource?) and merely checks that it’s a valid path.

    You get the idea, anyway. It’s almost as if you take every single line of an ordinary application and make that single line into a separate component. Another example:

    class IfThenElse : IAction
    {
        IBoolean _test;
        IAction _ifTrue;
        IAction _ifFalse;
    
        // omitting obvious constructor
    
        // implementing IAction
        void Do()
        {
            if (_test.GetBool())
                _ifTrue.Do();
            else
                _ifFalse.Do();
        }
    }
    

    You’ll need other components representing a “scope within which variables can be declared”, and a “named variable declaration” and a “reference to a variable”, which must somehow be able to work on any type of component.

    So now you need to tie all these miniscule fragments together in a gigantic XML configuration file, to assemble them all back together into an application.

    If you’ve really done this at the lowest possible level, it will be pretty absurd, because the task of writing the XML file will be comparable to writing an application in the usual way. Except that the syntax will be XML-based, the names of all the functions will be completely non-standard, and the debugging support will suck.

    If you can find a “sweet spot” somewhere above this, then your XML format might be something that users will prefer, and find easier to learn, than “raw” programming in the underlying language.

    This is very similar to a point I made the other day about XAML.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

A few months ago I created a shop manager software for one of our
Our company publishes our software product's documentation using a custom-built content management system using
We are working on an update system for our software. The updater should run
There is a small part of our software that inserts a string before and
Our small software shop recently migrated from Subversion to Git, as we programmers found
As part of our Software Engineering and Project Management course assignment, we got to
Our company provides web-based management software (servicedesk, helpdesk, timesheet, etc) for our clients. One
Our shop designs and create custom software applications for a vareity of vertical industies.
We're a development shop that still does most of our development in .net 2.0.
I've never used it in the professional software even though in our shop, and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.