The "best system to develop on" depends on what you know about the
ultimate production platform(s). For instance, I don't develop on
Linux because I know all my users will be using the product on
Windows, and in IE7 for that matter. Even though my deployed server
environment is Linux with Oracle database, I do my JBoss development
on Windows using MySQL. I have found the JPA layer sufficiently
neutral that I don't get bit often. Also, I develop on a laptop, and
I like having a completely self-contained and mobile development
environment that I can crank up in the shoe store while waiting for my
wife to make a decision, if need be.
Rapid feedback is a key quality in a development environment. I set
up my RPC like this:
1. My service servlet has a 2-phase service location algorithm: it
finds JBoss JNDI first on a well known port, then it tries to get the
local EJB, and only if that fails it gets the remote EJB. In
production, it will end up using the local; in development the remote,
which is fast enough for testing.
2. When I test in Hosted Mode (launched from IDEA in debug mode), I
have the shell/browser/servlet in one JVM and JBoss/EJB in another.
3. Client side code changes can be quickly refreshed and debugged in
hosted mode. I do a lot more fidgeting with my client side than my
server side, so the main part of development testing is this.
4. If I need to patch a server class, I start a second remote debug
session to JBoss and let IDEA do hot code swap. This works as long as
the Java schema does not change, else I have to re-build and deploy my
server, which does incur a slightly longer wait (about 1 minute).
5. When the widgets are stable and the client logic is working, I
switch to "Compile/Browse" to fine tune CSS in a real browser, where
feedback is lightning fast, much faster than refreshing the shell.
Walden
> > > solution. For example, compiling time is near 2 min.- Hide quoted text -
>
> - Show quoted text -