begin process at 2012 02 09 20:49:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Foxpro

 > 

Divers

 > 

Général

 > 

comment faire une application client serveur avec vfp


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comment faire une application client serveur avec vfp

jeudi 12 août 2010 à 12:57:52 | comment faire une application client serveur avec vfp

hakima75

bonjour tout le monde,

voila , mon soucis est que je ne sais faire que des applications mono poste avec vfp.

J'ai essayé de faire conseillé par des informaticiens, leurs réponses sont unanimes: abandonnes ton vfp.

Je voudrais savoir s'il ya des gens qui ont réussi dans ce domaine avec vfp ?

Merci
jeudi 12 août 2010 à 13:18:39 | Re : comment faire une application client serveur avec vfp

MichelAtoutFox

Membre Club
Bonjour,

pour commencer, une application multi-postes, multi-utilisateurs n'a pas besoin d'être client/serveur! ce sont 2 concepts différents.

1) application non client/serveur:
Dans une aplication VFP multi-postes et multi-utilisateurs (et je te rassure, nous devons être des milliers à avoir écrit des choses commeça, utilisées par des millions d'utilisateurs depuis des années), le code est exécuté en totalité sur le client.
les données peuvent être partagées, elles résident dans un ou plusieurs dossiers partagés accessibles par les utilisateurs du réseau. On parle de serveur de fichier.

2) application client serveur
on différencie la couche de données et les autres couches (métier et présentation). par exemple, tu vas avoir tes données dans un serveur SQL, et dans la couche métier écrite en VFP, tu vas demander à ce serveur SQL de t'extraire ces données, que tu vas recevoir dans un alias VFP. C'est ton serveur SQL qui travaille pour te fournir ces données, pas ton client VFP.
Et tu peux aussi avoir ton code métier qui tourne comme service sur une autre machine (par exemple à travers un objet COM+ écrit en VFP, ou un web service).

Il faut bien comprendre que le passage d'une application monoposte en multi-poste multi-utilisateurs ne se fait pas magiquement, il faut reprendre ton code.
Et c'est encore plus vrai si tu veux passer en client/serveur (tu peux te préparer à en réécrire au moins 80%)

Alors, faut-il suivre le conseil des "informaticiens" qui t'ont dit d'abandonner VFP? je dirais oui, malheureusement! VFP n'est plus supporté par Microsoft, et les dbf ne sont plus du tout adaptés aux nouveaux matériels.
jeudi 12 août 2010 à 14:26:57 | Re : comment faire une application client serveur avec vfp

hakima75

merci pour votre réponse monsieur michel,

donc si j'ai une application mono poste en vfp et que je voudrais qu'elle soit utilisée par plusieurs utilisateurs en même temps et cela pour longue durée, il vaut mieux la réécrire en un autre langage ?
jeudi 12 août 2010 à 15:53:31 | Re : comment faire une application client serveur avec vfp

MichelAtoutFox

Membre Club
longue durée, ça veut dire quoi?

si tu dois réécrire, oui, à mon avis, autant en profiter pour changer de support de données et changer de langage.
jeudi 12 août 2010 à 20:29:43 | Re : comment faire une application client serveur avec vfp

Mike Gagnon

Membre Club

Contrairement à l'avis de Michel (sur la question de changer de language), je t'offre l'avis contraire. Premièrement je ne vois pas la pertinence de te suggérer de changer de language pour rendre ton application utilisable par plus de 1 usager à la fois. Deuxièmement que Microsoft supporte Foxpro ou non, ce n'est pas Microsoft qui va supporter ton application, mais bien toi, donc si tu est confortable avec Foxpro reste avec Foxpro, et supporte tes applications.

Mike Gagnon
samedi 14 août 2010 à 16:13:39 | Re : comment faire une application client serveur avec vfp

babazou38

Je suis d'accord avec Mike. Michel est un informaticien de haut niveau qui a l'habitude des très grosses bases de données et des techniques de pointe. Si ton application est monoposte et monoutilisateur, il y a de fortes chances que tu veuilles simplement qu'une dizaine de personnes puissent travailler en même temps.
Tu risques d'avoir peu de travail à faire si ton appli actuelle est bien faite comme tu risques d'en avoir beaucoup si tu as fait une programmation en 'amateur' (et c'est seulement dans ce dernier cas, où la réécriture est importante que tu pourrais, éventuellement, changer de langage).

Le premier point essentiel est qu'il faut gérer le partage des données. Si ce n'est pas déjà fait, cela va être le gros travail : il ne faut pas que deux utilisateurs puissent modifier en même temps la même donnée. Il y a plusieurs solutions pour cela. Il faudrait que tu nous en dises plus sur ton appli pour que nous en discutions. L'ideal est de créer une base de données (CREATE DATABASE), d'y mettre les tables et d'accéder aux tables par des vues SQL. A l'opposé, les RLOCK() fonctionnent encore. La création d'une base de données VFP peut être une bonne solution intermédiaire si plus tard ton appli est utilisée par des centaines d'utilisateurs. Parce qu'une fois la base VFP maitrisée, il est 'assez facile' de copier les données vers une base plus 'sérieuse' comme SQL Server : l'essentiel du travail (le SQL) est déjà fait.

Le deuxième point concerne 'l'avenir' de ton appli : c'est une appli commerciale que tu vends, c'est une appli personnelle, ... ? Il y a des problèmes de sécurité ? Si c'est une appli commerciale, ou s'il y a des problèmes de sécurité alors il faudra envisager de transmettre les données vers une base de données comme SQL Server MAIS tu pourras garder VFP en tant que 'client'. Dans les autres cas, VFP est un excellent outil.

Concernant l'avenir de VFP : Microsoft n'a JAMAIS supporté VFP. Toute l'aide qu'un programmeur peut demander arrive via les groupes d'utilisateurs (www.atoutfox.org par exemple) ou les forums. Ce n'est donc pas une raison pour abandonner l'outil qui est, techniquement, d'une trés grande efficacité. A mon humble avis, le problème va venir du système d'exploitation : VFP tourne sous W7 mais après ? Que va nous concocter Microsoft ? Alors comme j'ai encore des applis qui tournent sous DOS (et je suis un développeur professionel et VFP est 'toute ma vie'; sans lui je fais faillite), je suis assez serein pour les 15 ans à venir ...

Maintenant que tu sais où tu peux trouver une aide efficace, dis nous en un peu plus ...

Bon courage.

Jean à Grenoble
samedi 14 août 2010 à 17:04:52 | Re : comment faire une application client serveur avec vfp

MichelAtoutFox

Membre Club
Comme tu le vois, Hakima, il y a plusieurs points de vue, et c'est à toi de faire ton choix!

je voudrais juste corriger quelques erreurs dans ce que dit Jean:

il est completement faux de dire que Microsoft n'a jamais supporté VFP! il y avait une équipe de développement VFP chez Microsoft, qui nous a livré de nombreuses versions, des Services Pack, des patches correctifs, etc... Et qui répondait aux questions des MVP, qui étaient présents aux Rencontres (y compris en France), etc..
C'est tout ça qu'on appelle le support. Et c'est ça qui a disparu aujourdhui: plus d'équipe VFP chez Microsoft, plus de nouvelles versions, pas d'évolution ni d'adaptations.

Autre erreur dans les propos de Jean, il faut au contraire que 2 utilisateurs puissent modifier en même temps la même donnée. Il faut simplement que le moteur n'écrive pas physiquement en même temps au même endroit, et il faut également créer les règles du jeu" pour permettre de choisir en cas de conflit. C'est ce qu'on appelle gérer les accès concurrentiels, et ça se fait très très bien (en fox comme dans d'autres langages). Peu importe le nombre d'utilisateurs, c'est à faire dès que tu passes en multi-utilisateurs.

Tiens nous au courant, n'hésite pas à redemander de l'aide!
dimanche 15 août 2010 à 11:02:06 | Re : comment faire une application client serveur avec vfp

hakima75

D'abord, je tiens à tous vous remercier pour tous ces éclaircissements.

Et à la lumière de vos conseils, je crois que vais procéder par étape:
1- Faire évoluer mon application monoposte en multi-postes,multi-utilisateurs (non client/server) avec Vfp.
2-Observer les performances de la nouvelle application pendant 6 mois à 1 an.
3- Décider , si je passe au client/server avec ou sans Vfp.

En ce qui concerne l'application, il s'agit d'un classique : la gestion d'un cabinet médical, et à vous lire je crois qu'il n'y a pas plus amateur que ma programmation, car :
1- je n'ai pas de BDD , c'est des tables indépendantes.
2- je ne fais pas de gestion de conflits.
3- pour chaque formulaire, les tables utilisées sont dans l'environnement de données.

A titre d'exemple:
- pour consulter les données de table patient, lors d'une recherche par nom :
select IDPATIENT, nom, prenom, DATNAISS,;
from patient where ALLT(nom)=wnom
order by nom,prenom into cursor pat
thisform.grid2.recordsource="PAT"


- pour modifier un patient :
MONPATIENT=ALLT(thisform.IDPATIENTO.TEXT1.value)
SET PATH TO "C:\CAB\DATA\"
IF USED("PATIENT")
select patient
ELSE
USE PATIENT
ENDIF
go top
=seek(monpatient,"patient","idpatient")
if !found()
=messagebox('erreur ! ce patient n'+"'"+'existe pas',0+16+0,'Cab')
ELSE
REPLACE NOM WITH WNOM
REPLACE PRENOM WITH WPRENOM
REPLACE DATNAISS WITH WDATNAISS
REPLACE TAILLE WITH WTAILLE
REPLACE SEXE WITH WSEXE
REPLACE ADRESSE WITH WADRESSE
REPLACE VILLE WITH WVILLE
REPLACE PROFESSION WITH WPROFESSION
REPLACE TEL WITH WTEL
REPLACE SECUSOCIAL WITH WSECUSOCIAL
REPLACE POID WITH WPOID
REPLACE ANTMED WITH WANTMED
REPLACE ANTCHIR WITH WANTCHIR
REPLACE ANTOX WITH WANTOX
REPLACE ANTFAM WITH WANTFAM
=messagebox('MODIFICATIONS EFFECTUEES !',;
0+16+0,;
'Cab')
ENDIF


- pour supprimer un patient :
set path to "c:\CAB\data\"
*voir s'il ya des consultations pour ce patient.

if used("CONSULT")
select CONSULT
else
use CONSULT
endif
SELECT * from consult where idpatient==monpatient into cursor tempcons
go top
count to nbrcons
IF USED("TEMpcons")
SELECT TEMPcons
USE
ENDIF
if used("CONSULT")
select CONSULT
else
use CONSULT
endif
use
if nbrcons=0
*s'il ya pa de consult je pe supprimer
IF USED("PAT")
SELECT PAT
USE
ENDIF
set deleted off
set path to "c:\CAB\data\"
delete from patient where idpatient==monpatient
set path to "c:\CAB\data\"
if used("PATIENT")
select PATIENT
else
use PATIENT
endif
USE
set path to "c:\CAB\data\"
use PATIENT exclusive
pack
use
set deleted on
=messagebox(" SUPPRESSION EFFECTUEE ! ",;
0+48+0, 'CAB')
else
=messagebox("SUPPRESSION IMPOSSIBLE, VEUILLER D'ABORD SUPPRIMER L'HISTORIQUE !",;
0+48+0, "CAB")
endif
dimanche 15 août 2010 à 12:48:24 | Re : comment faire une application client serveur avec vfp

Mike Gagnon

Membre Club

1. Foxpro se souviens de la première fois que tu fais:
set path to "c:\CAB\data\"

Donc pas besoin de répéter à deux ligne de code.

2. Si tu fais:

use CONSULT

Toutes les autres table que étaient ouvertes se ferme et seulement CONSULT reste ouverte. Et il y a de bonnes chances que la table CONSULT est ouverte exclusivement (donc pour un seul utilisateur).
Si tu fais:

USE consult shared in 0

maintenant la table CONSULT est ouverte en mode partagé et aucune autre table se ferme. Ouvre toute tes tables de cette façon et toutes les tables vont rester ouverte. Mais si tu mets tables dans le Dataenvironnment des formes, pas besoin d'ouvrir et de fermer tes tables, la forme va s'en occuper.


Mike Gagnon
dimanche 15 août 2010 à 13:34:34 | Re : comment faire une application client serveur avec vfp

hakima75

Merci Mike,

Je vais faire pour toutes mes tables shared in 0.

Je vous tiendrais au courant .

1 2 3 4 5

Cette discussion est classée dans : application, serveur, client, vfp


Répondre à ce message

Sujets en rapport avec ce message

application client/serveur [ par abdourasiz ] Salut !suis un débutant, j'ai développé une application mono poste; il y a t'il un moyen simple pour la transformer en une application réseau c'est à Documentater une application VFP - Extraire les champs d'un rapport! [ par Addo ] Bonjour, Je suis nouveau avec VFP, j'utilise la version 9 pour visualiser une application déjà écrite. Je dois faire la documentation technique et le ODBC et SQL [ par hab162002 ] Bonjour, apres avoir developper une application pour client /serveur, et apres avoir 'upsizing', ma base de donnée apparait dans le odbc, jusque la to "Handwriting Recognition" - Signature manuscrite sur un rapport imprimé vs VFP 6.0 [ par BuckStar ] Appel à tous,J'ai une application en VFP 6.0 en trois modules: 1. Module-Client: Le client passe une commande2. Module-Approbation - La commande est a connexion distante [ par glopglop ] Bonjour,J'ai un site en ASP hébergé chez moi sur un poste avec IIS. C'est un extranet qui attaque (en lecture seul) une base VFP. Mon proble c'est que fichiers d'installation [ par info_maroc ] Bonjour1 - j'ai developpe une application sous visual foxpro 9 et je veux creer les fichiers d'installation, j'ai pas sur le menu de foxpro un moyen p Démarrer ancienne application [ par fourniey ] Bonjour,J'essaie de démarrer une application que j'ai développé sous foxpro 8. Je suis maintenant avec foxpro 9.Lorsque je démarre mon application, je adapter une application sur petit ecran [ par brunaux ] Bonjour à tousj'ai fait une petite application contenant 7 formulaires, avec des grids,pageframes,boutons,list etc... avec mon  écran de 17 pouces (en application a mettre sur portable [ par brunaux ] Bonjoura propos de ma question sur l'ajustement de formulaire sur un petit portable, j'ai trouvé dans les archives de questions une demande sur ce suj Client POP3 [ par ducker88 ] Bonjour à tous, pourriez vous m'indiquez quel code dois-je utiliser pour creer un client mail POP3.j'ai trouvé pour du .net mais pas pour foxpro.Merci


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,310 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales