2010-08-14 5 views
1

Je ne suis pas nouveau dans le développement de logiciels, mais ces dernières années, j'étais presque complètement impliqué dans le développement d'applications web, très probablement en PHP avec MySQL/PostgreSQL.Décider parmi les technologies Java devrait utiliser - beginner

Maintenant, je change de focus. Je voudrais commencer à programmer pour les applications de bureau, avec Java. La décision sur le langage a été motivée par les raisons suivantes: c'est un langage mature, il a de l'espace sur le marché, il est multiplateforme, plein de ressources, et il a de très bons IDEs (j'utilise netbeans 6.9). Je ne suis pas nouveau aux concepts de POO (ou la plupart d'entre eux au moins), mais Java a un gamma énorme des solutions (technologies, armatures et ainsi de suite), et je me perds avec cela. Impossible de décider quelle est la solution la plus appropriée à adopter et à retenir.

Cela dit, passons au point. Je vais décrire les cibles du logiciel, certaines choses que j'ai adoptées jusqu'à présent, et je m'attends à ce que quelqu'un me donne une piste à suivre pour remplir les points désordonnés.

Mon application est une petite entreprise. Des trucs habituels sur les produits, les ventes, la gestion de trésorerie. Il doit fonctionner dans un petit bureau, avec quelques ordinateurs (pas une application de bureau complètement autonome). Tous les utilisateurs ne peuvent pas tout faire. Certains auraient des privilèges pour accéder à des produits financiers, d'autres ne vendraient que, d'autres ne rempliraient que des produits, etc.

Selon la définition de haut niveau ci-dessus, nous savons qu'il fonctionnera comme une application client-serveur. Un serveur sera installé dans une seule machine, tous les autres auront juste le client. J'utilise HSQL comme backend pour la persistance.

Souhaitez utiliser Swing pour créer l'interface utilisateur (pour conserver les thèmes en fonction du système d'exploitation). Les possibilités pour le client incluent l'envoi d'email (pas directement, mais par l'intermédiaire d'un client de courrier électronique déjà défini [Thunderbird, Outlook]) et l'impression (à n'importe quelle imprimante disponible dans le réseau).

Pour cela, j'utilise Desktop API. Bon, enfin nous avons perdu mon emprise: quel framework/technologie recommandez-vous pour accélérer le développement (formulaires pré-construits basés sur les tables disponibles), et aussi modulaire que possible? Comme je l'ai dit, différents utilisateurs auraient des privilèges différents, mais au lieu de simplement vérifier et désactiver, je voudrais garder les modules séparés. Dans différents packs, ou quelque chose comme ça.

EJB? BlueJ? JavaBeans? OSGi? Swing Application Framework? Je suis un peu perdu avec ceux-là. Toute aide serait appréciée.

+0

! Apprenez les bases en premier. –

+0

Je ne comprends pas. Que recherchez-vous exactement? Cadre pour quoi? De votre description, il est clair pour moi que vous allez faire une application de bureau basée sur Swing, mais les questions que vous avez mentionnées au bas de la page sont déroutantes. – Xorty

+0

Thorbjorn, désolé mais je considère que j'ai déjà appris les bases.Je sais comment créer et utiliser des classes, des packages, des interfaces ... utiliser des API réseau, SQL, garder l'état, threading ... La question portait sur l'outil le plus approprié à utiliser dans le projet que j'ai mentionné. – Dave

Répondre

3

Si vous êtes perdu, restez simple.

Pour le type d'applications de bureau que vous décrivez, vous aurez besoin de Swing et de JDBC. Si vous passez au Web, remplacez les pages JSP écrites à l'aide uniquement de JSTL et de servlets. Vous devrez connaître HTML et CSS pour écrire des JSP. Vous pouvez embellir ceux avec JavaScript au besoin.

Vous ferez un long chemin avec seulement ceux-là.

Les autres que vous avez mentionnés ne sont que du bruit jusqu'à ce que vous plus à l'aise:

  1. sont pour les applications EJB à l'échelle de l'entreprise. Vous pouvez laisser beaucoup de choses complexes comme le threading, le pooling d'objets et le cycle de vie, etc. sur un serveur d'applications et vous concentrer sur l'expression de votre logique métier dans des composants transactionnels distribués appelés Enterprise Java Beans.Pas nécessaire de commencer.
  2. BlueJ est un IDE débutant conçu pour protéger les gens des complexités de Java. Je ne le recommanderais pas.
  3. OSGi - déploiements modulaires pour applications Web. Pas nécessaire de commencer.
  4. Swing App Framework? Je ne suis pas familier avec ça - je n'écris pas Swing. Si vous voulez dire le printemps, je pense que c'est un excellent cadre, mais pas nécessaire pour commencer.
+1

Swing Application Framework est en fait assez bonne chose et de manière standart de façon comment écrire des applications Swing (il est merveilleusement intégré dans l'EDI NetBeans donc vous pouvez simplement utiliser le modèle) – Xorty

+0

Merci, Xorty, je vais y jeter un oeil. – duffymo

+0

Thx duffymo, c'est très proche de l'asnwer je cherchais. – Dave

2

Ceci est un peu hors sujet, mais je pense qu'il devrait être dit de toute façon.

Mon application est une application pour petites entreprises. Des trucs habituels sur les produits, les ventes, la gestion de trésorerie. Il doit fonctionner dans un petit bureau, avec quelques ordinateurs (pas une application de bureau complètement autonome). Tous les utilisateurs ne peuvent pas tout faire. Certains auraient des privilèges pour accéder à des produits financiers, d'autres ne vendraient que, d'autres ne rempliraient que des produits, etc.

Vous essayez quelque chose de très ambitieux ici. Il existe d'innombrables applications existantes pour faire ce genre de chose pour les petites entreprises, dont certains sont des noms familiers. Qu'est-ce qui vous fait penser que vous pouvez faire mieux? Qu'est-ce qui vous fait penser que vous pouvez rivaliser?

Le fait que vous soyez nouveau sur Java rend ce projet doublement ambitieux.

Mon conseil serait:

  • Si vous avez des rêves de faire beaucoup d'argent sur cela, l'oublier. Vous êtes > 10 ans trop tard.

  • Si vous faites cela pour un client, votre entreprise ou vous-même, il serait probablement préférable d'utiliser une application commerciale standard. Si vous faites cela pour «le bien public», vos travaux seraient plus fructueux si vous rejoigniez un projet d'application métier open source existant.

  • Si vous faites juste cela "pour le plaisir" ... allez-y. (Cela ne me paraît pas un projet « fun » mais ...)

+0

+1. notre société a une application de suivi du temps horrible dans ASP + Microsoft SQL Server qu'ils ont passé beaucoup de temps à écrire. mieux vaut juste utiliser un logiciel réel au lieu d'écrire le vôtre, quand vous le pouvez. –

+0

Stephen, mes intentions ne devraient faire aucune différence à la réponse. Je ne suis pas un adolescent qui rêve de dominer le monde, je n'ai aucun intérêt à ce stade à rejoindre un projet open source ... eh bien je ne vais pas en discuter plus avant. Ma question était simplement technique. Gardez les réponses au même niveau. – Dave

+0

@Dave - J'espère que vous avez des poches profondes alors. Bonne chance ... vous en aurez besoin. –

1

Commençant avec java, balançoire application de bureau est normal ... Je dois dire cependant que les éléments inclus dans la valeur par défaut, Je n'ai jamais aimé, je pensais qu'ils étaient trop moche. https://substance.dev.java.net/ Est un look and feel lib pour Java. Alors faites votre application, réfléchissez-y bien et assurez-vous que vous avez une sorte de design à l'esprit. C'est plus facile et souvent plus rapide si vous avez une idée de l'endroit où vous allez visuellement que si vous commencez simplement à coder et espérez que vous atteignez un endroit que vous aimez.

Sortez du papier et du crayon, griffonnez les petites notes et les dessins de votre interface graphique. Vous n'avez pas forcément besoin de frameworks et du lot, si votre application a besoin de stocker des données, regardez le pilote JDBC pour vous connecter à mysql, ou jetez un oeil aux bases de données embarquées telles que HSQLDB ...

+0

Salut robinsonc494. Je ne suis pas un artiste. Juste besoin de quelques trucs fonctionnels, et déléguer cette responsabilité pour garder la cohérence avec l'aspect natif du système d'exploitation est un peu suivre le chemin sûr. Thx pour les conseils sur le changement dans le processus de création/conception. A propos de JDBC et HSQLDB embarqué Je savais déjà, mais pas encore décidé de le faire embarquer ou d'envelopper un serveur avec le pack. – Dave

+0

cool, et croyez-moi, vous n'avez pas besoin d'être un artiste. Juste une mise en page approximative pour vous donner une idée de l'endroit où vous voulez aller ... croyez-moi, si quelqu'un me considérait comme un artiste, je serais convaincu qu'ils sont aveugles ... – zcourts

+0

nice one rob. Prendra tes mots. – Dave

Questions connexes