[PAUMÉ] Dév. de "WebApps" simples

Dév. de "WebApps" simples [PAUMÉ] - PHP - Programmation

Marsh Posté le 15-09-2007 à 17:40:54    

Bonjour à tous,
 
Je viens de faire le tri de mes 4 h de recherche, de mes 50 onglets Firefox, de tout ces termes Framework, AJAX, IDE, de dizaines de lignes de codes... bref c'est pas clair, j'ai besoin d'un coup de pouce pour démarrer ;)
 
L'idée :
 
J'aimerai développer une petite appli de gestion de stock. Un truc tout simple avec ajout/suppression de catégories, éléments, affichage des états, tri, recherche multi-critères simples...
 
C'est facilement faisable avec un tableur mais les recherches devront être faite sur plusieurs postes WIN/MAC/LINUX. Il me faut donc une solution universelle et "légère".
C'est rapidement faisable en PHP/SQL à la mano... par un développeur PHP. Ce que je ne suis pas.
 
L'idée, c'est aussi de développer mes connaissances pour les réutiliser sur d'autres projets persos.
 
J'aimerai donc trouver une solution de développement qui me permette d'élaborer ce genre de projet sans avoir à tout écrire depuis zéro.
Je sais pertinament qu'il me faudra forcement un peu retoucher du code mais pour une appli simple comme celle là, il doit forcément y avoir des choses automatisées ?
 
J'ai jeté un oeil à divers CMS (Joomla et ezPublish). C'est exceptionnel mais un peu sur-dimensionné et pas vraiment adapté à mes besoins.
 
Je dispose de Dreamweaver, j'ai un peu d'expérience dans le web "statique". Ca ne me dérange pas de passer du temps à de la recherche sur le net, j'aurai juste besoin de pistes.
 
Dans l'idéal, cet appli serait "typée" AJAX. Cette techno gère t'elle uniquement l'aspect ? Peut-elle être greffée sur du PHP "classique" existant ou doit-elle être intégrée dès le début de la conception ? (ex. les requêtes vers la BDD font-elle partie du framework AJAX ou celui-ci ne contient que des fonctions "graphiques" ?)
 
Merci de votre aide.

Reply

Marsh Posté le 15-09-2007 à 17:40:54   

Reply

Marsh Posté le 15-09-2007 à 18:32:39    

Salut, essayons de faire le point.
 
D'un point de vue (très) général, une application web peut se diviser en 3 grandes parties : ce qui est fait côté serveur, ce qui est fait côté client et le document affiché en lui même. Le traitement de la requête de l'internaute côté serveur va créer un document HTML (en général) renvoyé au client. Ce document peut éventuellement contenir des scripts correspondant à un traitement à effectuer côté client. Il contient aussi les informations de manière formatée (par HTML) pour un affichage convivial.
 
- Passons sur le HTML en lui-même ...
 
- Les traitements côté client sont fait par du code Javascript. Idéalement, celui-ci ne devrait être utilisé que pour ajouter des effets visuels et améliorer l'ergonomie d'un site au moyen, par exemple, de menus déroulant. Mais tu as entendu parler de la "technologie" AJAX et de Web2.0. Beaucoup de choses sont dites dessus, plus ou moins vraies. La vérité est que Web2.0 est une appelation qui représente un nouveau mode de consommation de l'internet où l'internaute n'est plus seulement spectateur mais aussi contributeur (en donnant son avis sur un blog par exemple), bref, rien de technologique de ce côté là. AJAX veut dire Asynchronous Javascript And XML ; Cela correspond à exécuter un script Javascript côté client qui va faire un chose très précise : utiliser un objet appelé HttpXMLRequest : lors d'un click sur un lien ou d'une autre action de l'utilisateur, au lieu que le navigateur recharge une page complète à partir du serveur, c'est le script Javascript qui va prendre le contrôle, envoyer la même requête au serveur et récupérer le résultat pour l'insérer dans la page web, sans que le navigateur recharge la page. En fait, on peut dire que ce n'est qu'un effet visuel qui donne une impression de page dynamique puisque l'utilisateur ne voit pas le navigateur recharger la page (pas de petit sablier).
Voilà pourquoi tu peux passer à côté de celà car ce n'est qu'un "gadget". Par contre, si tu veux vraiment ce gadget, il faudra en tenir compte dès le départ.
 
- Le plus important (la seule chose indispensable) pour ton application web sera d'avoir un traitement côté serveur. Là, il faut agrandir l'image que je te donnais au début. Cette partie peut se séparer en de nombreuses couches. Il y a même différents points de vues qui demandent des abstractions différentes et qui séparent les couches de manière différente. Tu as par exemple la modélisation MVC qui sépare (en gros) la modélisation des données, le contrôle de l'application et l'affichage. Tu as la modélisation N-tiers qui va séparer (en gros) l'utilisation d'un modèle de données, l'accès aux données et la manière de stocker les données. Ces deux modélisations sont compatibles. Ces modèles ne sont pas obligatoires, seulement recommandés pour le type d'application que tu semble vouloir développer.
Pour développer cela, il va falloir s'appuyer sur un langage, généralement PHP, Java ou .NET. Je passe sur .NET que je ne connais pas du tout. En PHP, pour modéliser ton application, tu devras tout faire à partir de zéro ou presque car il n'existe pas vraiment de framework fait pour être utilisé dans ce sens. Par contre, la simplicité pour apprendre PHP te permettra d'avancer assez vite. En Java, il existe de nombreux frameworks qui incluent déjà ces modélisations MVC et N-tiers. Il existe aussi de très bons IDE (éditeur de code très avancé) qui permettent de mettre ces solutions en place assez rapidement. Plusieurs fichiers de "configuration" vont te permettre de générer automatiquement de nombreuses parties de ton application pour gagner beaucoup de temps. Par contre, à la fois Java et ces frameworks sont difficiles à appréhender. Ton apprentissage sera donc lent et peu clair.
 
Voilà, j'espère que c'est suffisamment clair : tu ne peux pas échapper à une longue période de codage pour ce type d'application.
 
Par contre, il existe effectivement des solutions opensource à des besoins assez généraux. Tu peux en essayer la plupart sur opensourcecms.com. Je te conseille d'essayer OsCommerce, une des solutions les plus connues et qui semble convenir à tes besoins (je me trompe peut-être, tu n'as pas l'air de parler de vendre des produits)
 
Peut-être un jour existera-t-il des solutions qui permettent de créer des systèmes d'information avec des outils standards (ceux que tu cite) de manière très simplifiée, un peu comme on crée un blog aujourd'hui ; ce sera peut-être le Web3.0 ?
 
En attendant, bon courage :hello:
 
edit : ortho


Message édité par TheRom_S le 15-09-2007 à 18:35:44

---------------
The Rom's, à votre service
Reply

Marsh Posté le 29-09-2007 à 05:18:30    

merde mais clair, j'avais zappé
je vais effacer ma réponse :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:


---------------
The Rom's, à votre service
Reply

Marsh Posté le 26-10-2007 à 14:23:16    

TheRom_S a écrit :

merde mais clair, j'avais zappé
je vais effacer ma réponse :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:


 
Bravo : excellente synthèse. N'efface pas.

Message cité 1 fois
Message édité par finnlassen le 26-10-2007 à 14:23:37
Reply

Marsh Posté le 26-10-2007 à 14:33:21    


Ca vous apprendra à vouloir faire croire aux gens qu'on s'improvise développeur. Et puis l'important, c'est la motivation, écrire une appli complète en 2 mercredi aprèm quand on a pour background notepad, c'est possible !
 
Ce genre de sujet ça appelle deux réponses:
- prend un professionnel
- fais des formations, reviens dans 1 an.

Reply

Marsh Posté le 27-10-2007 à 06:02:50    

finnlassen a écrit :


 
Bravo : excellente synthèse. N'efface pas.


 
merci, ça fait plaisir :sol:


---------------
The Rom's, à votre service
Reply

Marsh Posté le 27-10-2007 à 12:08:55    

En tout cas moi je te remercie the_roms, meme si je pense être à un point bcp plus avancé que l'auteur du topic, j'aime lire des explications clair, puis ca confirme un peu ma compréhension du sujet.
d'ailleurs hier j'ai installé wamp+symfony et j'ai fait la démo du site symfony sur le module cart ca permet d'apprendre pas mal de choses!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed