Link to home
Start Free TrialLog in
Avatar of BrianMc1958
BrianMc1958

asked on

Is Swing good choice for intranet UI?

Dear Experts,

I am looking for advice re-designing a UI.

The company I work for created a “version 1.0” UI for our reporter product using only ASP’s, vbScript, HTML and a little javaScript. (There is no Visual Basic, or any other OOP component).  It runs exclusively on our customers’ intranets.

To me, the internal code looks very messy.  There is no structure.  We are considering re-writing it using mostly Swing, for these “OOP” reasons:

  Far less code.
  Far better organized code.
  Easier to maintain.
  Quicker to bring similar products to market.

I have worked a little with all these technologies, but I don’t know nearly enough to make the decision myself.  This is very important for my company.  This UI would form the basis of everything we do over the next few years.

These are the basic specifications:

  intranet-only
  less than 10 concurrent users (normally just one)
  fairly complex user input requiring:
      a dozen separate screens
      a few thousand input fields
      connection to server’s MS Access database (holds info about those fields)
      sophisticated responses to user input (shows report preview, based on user input, etc.)
  multiple complex calls to underlying middleware
  Java plug-in is probably not a problem


So, Experts!  

Do you think my assumptions about the advantages of Swing are basically correct?

Do you think Swing is a good, reasonably “industry-standard” solution under these circumstances?

Any advice will be greatly appreciated.

Avatar of girionis
girionis
Flag of Greece image

If you want to go with Java then Swing is indeed the standard. But before you delve into Swing you might want to take a look at the following links:

http://www.jgoodies.com/index.html
http://www.oop-reserch.com/xmlpanel_1_2_2.html
http://cloudgarden.com/jigloo/index.html (plugin for eclipse)
http://www.wsoftware.de/SpeedJG/

The are basically some libraries and API that can help you build GUIs faster :)
Avatar of BrianMc1958
BrianMc1958

ASKER

Thanks, girionis.  We understand that Swing is the standard for Java.  We're just not sure if we should use Java/Swing, or something else.  As far as IDE, we're thinking JBuilder if we go with Swing.
> multiple complex calls to underlying middleware

How?  Command line?

I think you will need a swing applet with some servlets to do the processing on the server...
Well I do not see any problems about using Swing. Besides the only other thing you could use is SWT which is native specific. Do you have anything else in your mind apart from Swing?
i don't understand. the solutions now is a website (asp, vbscript, etc) running on your intranet and now you want to try swing for that? so you want to make a client/server application?

swing would be a good thing if you want to such a desktop application. perhaps also consider looking to the java web start technologie. which is some kind of a combination of the advantage of a webapplication (if something changes, you only have to update one place) with the power and richness of a desktop application.: http://java.sun.com/products/javawebstart/

grtz

lee
To leeprovoost:  My basic idea would be Swing, running in an applet, available from a browser.  I know that Swing is more often associated with desktop applications.  I think our situation (complex UI, intranet, small number of users) falls somewhere between browser world and client-server/desktop world.  Given the complexity of our UI, and the small number of users, it seems like "rich" client would better serve our needs.  And a "rich" client seems to require a programming language more sophisticated than vbscript.

So the question I'm asking the experts is: Is it practical (and more or less normal) to put a sophisticated Swing application inside an applet, where a small number of intranet users would access it from Internet Explorer?  The applet would almost entirely replace the asp, vbscript, etc.    

To TimYates:  We're not sure how the applet would return the user input.  Servlet is likely.  It would be better if a servlet was not necessary, though.

To girionis:  Apart from Swing, we might just need to continue with what we have.  Again, I don't know much about user interfaces.  What we have looks very disorganized to me.  Maybe that is just the way ASP-based sites look.  

Thank you all for your comments.  We would love to hear more...
Hello BrianMc1958;

I are using the correct choice =-) be sure to use Java and you will like it. In my company we use Applet, Servlet and JSP combinations for our interface.
Its actually the same as what your wanting to do. We use it in intranet w/ thousands of users, it handles multiple knowledgebases records and
solutions. Technically speaking its an industry standard Our expert system is done through java and we are now 5.2 so I dont think you will
have any problems to it. Just be sure you have all the neccessary tutorials.

http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html

Regards : Javatm

 
> My basic idea would be Swing, running in an applet, available from a browser.

I'd suggest looking at using applications via web start instead of applets.
Well I believe Swing is the way to go then if you do not want to use HTML clients. We just finished a project where we used HTML instead of Swing and it was very complicated, the code looks ugly (since there is lots of JavaScript and DHTML there), complicated and it we had problems making it work in all browsers (which still does not work on all browsers). If we had gone with Swing from the beginning it would have saved us time and effort.

>So the question I'm asking the experts is: Is it practical (and more or less normal) to put a
>sophisticated Swing application inside an applet, where a small number of intranet users would
>access it from Internet Explorer?

I do not see why it is not practical. I am not an expert on Swing -I have only written a few Swing applications- but I had no problem writting them and making them available to the user. Besides Swing provides you with more or less everything you need in order to build a GUI. I have to admit though, at times it can get complicated.
If you'd like to see an example of applets used in a web based application you could have a look at:

http://www.evalu8.com.au
What is the skillset in the company?  Are there at least a couple of Java programmers who are familiar with Swing, etc?  If not then perhaps choosing a technology that has experienced developers would be the better option,

--> Java plug-in is probably not a problem
I think that would be very important to verify that you can get the latest JVM installed on the client machines, and ensure that it won't conflict with any other software/sites that they use.  This would limit you considerations.

Also, as the current implementation uses vbScript, am I correct in assuming that all of your clients machines will only be using IE?  Can you get a minimum version across all clients?

It sounds to me (although I don't know the full details) that all you require is a simple website, written in JSP/servlets, or your current implementation of ASP.  Your reasoning to change the underlying technology (for OOP reasons) seems a bit strange.  I couldn't comment on the ASP code, but if it looks messy (are you an ASP programmer?) then perhaps that particular implementation was not done correctly?

As for the far less code, I would say that the amount of code would probably be considerably more if written in Swing as opposed to simple HTML pages with dynamic content (ASP/JSP), especially as you have a few thousand input fields (this will take quite a long to develop as well).
Installing the vm in an intranet environement shouldn't be a big drama.
To Objects (and LeeProvoost):  Thanks. I am looking into Java Web Start.  Our UI will need to call our middleware on the originating server (which then calls legacy apps...), so that conncection would need to be available with Web Start.  Do you folks know if that works?


To giroinis:  Thanks for the warning about Swing complexity.  We don't want to be naive about that.


To grim_toaster:  Hmmm. Why do they call you that?  I'm particularly interested in your response, as you're challenging everything.  Our customers all use IE.  Noted your point about plug-in issues. Otherwise:

-->What is the skillset in the company?  
  We don't have much Swing experience yet.  I have written one SMALL Swing app.  However, we are considering Swing as the main component for our company's future UI strategy.

-->It sounds to me (although I don't know the full details) that all you require is a simple website, written in JSP/servlets, or your current implementation of ASP.  Your reasoning to change the underlying technology (for OOP reasons) seems a bit strange.

   I DO want to be told if what I'm proposing is strange.  I'm proposing it because I have worked on the original UI, adding thousands of lines of vbScript.  In the course of doing that, I discovered things like:

    the site consists of about a hundred ASP's (not including images, etc.)
    everything hangs together using INCLUDEs (it's basically all one huge program)
    vbScript has no data typing
   
  I want to apply OOP to the situation because this is NOT a simple web site.  It's really a full-blown application, that just happens to eventually communicate the user'sinput to some middleware.  It has thousands of line of complex internal logic that don't directly relate to the interface itself.

--> I couldn't comment on the ASP code, but if it looks messy (are you an ASP programmer?) then perhaps that particular implementation was not done correctly?

  I am NOT an ASP programmer.  I had been assuming ASP programming was just inherently messy. Would it be less messy if it had a strong Visual Basic (not vbScript) component?  I've been told Visual Basic is OOP.  Is that what would normally provide structure here?

Thank you especially, Mr grim, for providing the grim perspective.  I would especially like to hear more from you.


To everyone:  This is my first EE post.  If I am not using this forum appropriately, please let me know.  (Is it OK to have such an open-ended discussion?)



Addendum for grim_toaster:

-->As for the far less code, I would say that the amount of code would probably be considerably more if written in Swing as opposed to simple HTML pages with dynamic content (ASP/JSP), especially as you have a few thousand input fields (this will take quite a long to develop as well).

We have maybe 200 unique fields.  We have a few thousand displayed in tables, that the user could select to print, etc.  If the total amount of code in Swing would be more than in HTML, that defeats the whole purpose.  Could you say a little more on that, too?

Thanks.
> Do you folks know if that works?

Yes your application could make connections to server.
ASKER CERTIFIED SOLUTION
Avatar of grim_toaster
grim_toaster

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thank you everyone, especially Mr. Toaster, for your help.  I'm afraid I can't pursue this further right now, although I hope to do so later.