Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VB.NET pour un exe et pour le WEB

8 réponses
Avatar
max_mont
Bonjour,

Je souhaite r=E9=E9crire une grosse application (actuellement en VB5) en
VB.NET. Pour cela, je voudrais faire une application autonome
executable sur un PC.
Par la suite, je souhaiterais que cette application soit utilisable
aussi en application WEB (ASP + VB.NET).
Je n'ai pas beaucoup de notion de dev web (scolaire).
Est-il possible et facile de migrer une application VB autonome en une
application WEB ?
Si oui, est-il facile de maintenir une application VB autonome et WEB
dans le temps ?
Cela est-il courant ?

Le principe serait d'avoir un noyau commun, la seule diff=E9rence serait
la gestion de l'IHM.

D'avance merci pour vos r=E9ponses.

8 réponses

Avatar
Jean-marc
max_mont wrote:
Bonjour,



Bonjour,

Je souhaite réécrire une grosse application (actuellement en VB5) en
VB.NET. Pour cela, je voudrais faire une application autonome
executable sur un PC.



Elle sera autonome pour autant que le .net framework soit installé
sur le PC ou réside l'application.

Par la suite, je souhaiterais que cette application soit utilisable
aussi en application WEB (ASP + VB.NET).
Je n'ai pas beaucoup de notion de dev web (scolaire).
Est-il possible et facile de migrer une application VB autonome en une
application WEB ?



Oui et non. C'est faisable, évidemment. Quand à la facilité, ça va dépendre
très fort de la qualité et de la structure du code. En tout cas, il
ne faut pas s'attendre à de la magie: ce sera dans tous les cas (au mieux)
pas mal de boulot. Tu peux espérer récupérer les modules de calcul, si ils
sont bien isolés de l'IHM.

NOTE: Il faut réfléchir pendant la migration sur la pertinence d'un
"portage".
En effet, .Net offre tout un tas de facilités qui rendent peut être
très simples des traitements qui en VB étaient très compliqués. Il faut
alors réfléchir à l'opportunité ou non d'un portage "brutal" par rapport
à une vraie réécriture...


Si oui, est-il facile de maintenir une application VB autonome et WEB
dans le temps ?



Ca dépend de l'appli et de la façon dont le code est écrit.

Cela est-il courant ?



Difficile à dire. En tout cas, ça existe (de plus en plus).


Le principe serait d'avoir un noyau commun, la seule différence serait
la gestion de l'IHM.



C'est bien sur la bonne façon de faire. Idéalement, l'IHM devrait se
contenter
d'afficher des données et de renvoyer des informations sur des actions ou
des
changements. Dans tous les cas, c'est la couche métier qui doit réaliser le
travail associé.

Sur cette base, la maintenance devient assez facile.


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
max_mont
On 5 août, 10:40, "Jean-marc"
wrote:
max_mont wrote:
> Bonjour,

Bonjour,

> Je souhaite réécrire une grosse application (actuellement en VB5) en
> VB.NET. Pour cela, je voudrais faire une application autonome
> executable sur un PC.

Elle sera autonome pour autant que le .net framework soit installé
sur le PC ou réside l'application.

> Par la suite, je souhaiterais que cette application soit utilisable
> aussi en application WEB (ASP + VB.NET).
> Je n'ai pas beaucoup de notion de dev web (scolaire).
> Est-il possible et facile de migrer une application VB autonome en une
> application WEB ?

Oui et non. C'est faisable, évidemment. Quand à la facilité, ça v a dépendre
très fort de la qualité et de la structure du code. En tout cas, il
ne faut pas s'attendre à de la magie: ce sera dans tous les cas (au mie ux)
pas mal de boulot. Tu peux espérer récupérer les modules de calcul, si ils
sont bien isolés de l'IHM.

NOTE: Il faut réfléchir pendant la migration sur la pertinence d'un
"portage".
En effet, .Net offre tout un tas de facilités qui rendent peut être
très simples des traitements qui en VB étaient très compliqués. I l faut
alors réfléchir à l'opportunité ou non d'un portage "brutal" par rapport
à une vraie réécriture...

> Si oui, est-il facile de maintenir une application VB autonome et WEB
> dans le temps ?

Ca dépend de l'appli et de la façon dont le code est écrit.

> Cela est-il courant ?

Difficile à dire. En tout cas, ça existe (de plus en plus).



> Le principe serait d'avoir un noyau commun, la seule différence serait
> la gestion de l'IHM.

C'est bien sur la bonne façon de faire. Idéalement, l'IHM devrait se
contenter
d'afficher des données et de renvoyer des informations sur des actions ou
des
changements. Dans tous les cas, c'est la couche métier qui doit réali ser le
travail associé.

Sur cette base, la maintenance devient assez facile.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB:http://faq.vb.free.fr/



Cette techno m'a l'air tres interessante.
Par contre, elle appartient completement au monde microsoft.
Pour le developpement en VB, je suppose qu'il faut utiliser VS.NET.
Pour heberger l'application WEB, je pensais utiliser le serveur
d'application gratuit de MS WebMatrix.
Est-il suffisant ? Ou bien, faut-il s'orienter vers le serveur IIS ?
Je précise que le serveur d'application sera utilisé sur plusieurs
machines.

D'avance merci pour vos réponse.

Maxime
Avatar
François Picalausa
On Aug 5, 12:39 pm, max_mont wrote:
On 5 août, 10:40, "Jean-marc"
wrote:

> max_mont wrote:
> > Bonjour,

> Bonjour,

> > Je souhaite réécrire une grosse application (actuellement en VB5) en
> > VB.NET. Pour cela, je voudrais faire une application autonome
> > executable sur un PC.

> Elle sera autonome pour autant que le .net framework soit installé
> sur le PC ou réside l'application.

> > Par la suite, je souhaiterais que cette application soit utilisable
> > aussi en application WEB (ASP + VB.NET).
> > Je n'ai pas beaucoup de notion de dev web (scolaire).
> > Est-il possible et facile de migrer une application VB autonome en une
> > application WEB ?

> Oui et non. C'est faisable, évidemment. Quand à la facilité, ça va dépendre
> très fort de la qualité et de la structure du code. En tout cas, il
> ne faut pas s'attendre à de la magie: ce sera dans tous les cas (au m ieux)
> pas mal de boulot. Tu peux espérer récupérer les modules de calcu l, si ils
> sont bien isolés de l'IHM.

> NOTE: Il faut réfléchir pendant la migration sur la pertinence d'un
> "portage".
> En effet, .Net offre tout un tas de facilités qui rendent peut être
> très simples des traitements qui en VB étaient très compliqués. Il faut
> alors réfléchir à l'opportunité ou non d'un portage "brutal" pa r rapport
> à une vraie réécriture...

> > Si oui, est-il facile de maintenir une application VB autonome et WEB
> > dans le temps ?

> Ca dépend de l'appli et de la façon dont le code est écrit.

> > Cela est-il courant ?

> Difficile à dire. En tout cas, ça existe (de plus en plus).

> > Le principe serait d'avoir un noyau commun, la seule différence ser ait
> > la gestion de l'IHM.

> C'est bien sur la bonne façon de faire. Idéalement, l'IHM devrait se
> contenter
> d'afficher des données et de renvoyer des informations sur des action s ou
> des
> changements. Dans tous les cas, c'est la couche métier qui doit réa liser le
> travail associé.

> Sur cette base, la maintenance devient assez facile.

> --
> Jean-marc Noury (jean_marc_n2)
> Microsoft MVP - Visual Basic
> mailto: remove '_no_spam_' ;
> FAQ VB:http://faq.vb.free.fr/

Cette techno m'a l'air tres interessante.
Par contre, elle appartient completement au monde microsoft.
Pour le developpement en VB, je suppose qu'il faut utiliser VS.NET.



Tu peux employer Visual Basic 2005 Express Edition (gratuit), ou
télécharger le .Net Framework 2 qui contient le compilateur VB.Net et
développer avec... Notepad.
Tu peux aussi acheter Visual Studio, ou utiliser des IDE third-party,
naturellement.

Pour heberger l'application WEB, je pensais utiliser le serveur
d'application gratuit de MS WebMatrix.



Ce web server se nomme cassini:
http://blogs.msdn.com/dmitryr/archive/2005/09/27/474534.aspx
http://blogs.msdn.com/dmitryr/archive/2006/03/09/548131.aspx

Néanmoins, d'autres webservers lightweight en sont inspirés:
http://ultidev.com/Products/Cassini/

Est-il suffisant ? Ou bien, faut-il s'orienter vers le serveur IIS ?
Je précise que le serveur d'application sera utilisé sur plusieurs
machines.



Ca dépend de la charge prévue.
Cassini est au départ conçu comme un outil permettant a un développeur
d'exécuter de l'asp.net sans devoir se soucier d'avoir un webserver un
peu conséquent (type IIS).
Si le but est de gérer 1M connexions par secondes avec du code time-
critical, ce n'est certainement pas la solution. <privatejoke>A moins
d'inclure un string builder bien entendu... même si personellement je
le déclinerais en une version safearray pour des raisons évidentes</
privatejoke>.
Bref, tout dépend des specs du serveur lightweight (de la déclinaison
de cassini ou autre) qui est retenu, en raison de la charge prévue.

François
Avatar
Jean-marc
>François Picalausa wrote:



Si le but est de gérer 1M connexions par secondes avec du code time-
critical, ce n'est certainement pas la solution.



<privatejoke>A moins
d'inclure un string builder bien entendu... même si personellement je
le déclinerais en une version safearray pour des raisons évidentes</
privatejoke>.



<pj>Qu'il faut encore que je benche d'ailleurs...</pj>


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
max_mont
On 5 août, 13:43, "Jean-marc"
wrote:
>François Picalausa wrote:
> Si le but est de gérer 1M connexions par secondes avec du code time-
> critical, ce n'est certainement pas la solution.
> <privatejoke>A moins
> d'inclure un string builder bien entendu... même si personellement je
> le déclinerais en une version safearray pour des raisons évidentes</
> privatejoke>.

<pj>Qu'il faut encore que je benche d'ailleurs...</pj>

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB:http://faq.vb.free.fr/



En fait, c'est une appli qui gere une baie de tests de production.
Elle permet de séquencer des tests sur différents appareils en
parallèle.
Elle doit donc faire de la com ethernet, série, paralléle, GPIB ...
Le coté appli WEB est intéressante car tous les membres de l'usines
pourraient avoir des actions simultanées sur la baie suivant leurs
privilieges a travers un simple WEB Browser.
Donc le nombre de connexions ne devrait pas dépasser une dizaine voire
une vingtaine.
Je me demandais s'il était possible de faire tourner l'appli sur le
serveur de la baie en standalone en gérant une IHM classique et en
appli WEB (en gerant une IHM HTML) en meme temps ?
Je suis un peu exigeant mais je fais pour l'instant de la veille
technologique avant de me lancer tete baissée.

D'avance merci
Avatar
Jean-marc
max_mont wrote:
On 5 août, 13:43, "Jean-marc"
wrote:



En fait, c'est une appli qui gere une baie de tests de production.
Elle permet de séquencer des tests sur différents appareils en
parallèle.
Elle doit donc faire de la com ethernet, série, paralléle, GPIB ...
Le coté appli WEB est intéressante car tous les membres de l'usines
pourraient avoir des actions simultanées sur la baie suivant leurs
privilieges a travers un simple WEB Browser.
Donc le nombre de connexions ne devrait pas dépasser une dizaine voire
une vingtaine.
Je me demandais s'il était possible de faire tourner l'appli sur le
serveur de la baie en standalone en gérant une IHM classique et en
appli WEB (en gerant une IHM HTML) en meme temps ?
Je suis un peu exigeant mais je fais pour l'instant de la veille
technologique avant de me lancer tete baissée.



Plein de choses sont possibles. Ce que tu demandes ici dépasse très
nettement le cadre de ce forum. Tu peux aussi prendre des renseignements
dur le groupe dédié à vb .net.

Disons que une application très bien découpée et pensée en ce sens peut
sans trop de problèmes supporter 2 IHM. Dans la mesure ou on autorise
via le web des sessions simultanées, en avoir une de plusde type Windows
ne pose pas de problèmes. Tout ça est théorique bien sur. En pratique,
pour que cela soit possible, il faut une appli vraiment écrite pour
supporter tout cela.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
François Picalausa
On Aug 5, 4:43 pm, max_mont wrote:
On 5 août, 13:43, "Jean-marc"
wrote:

> >François Picalausa wrote:
> > Si le but est de gérer 1M connexions par secondes avec du code time-
> > critical, ce n'est certainement pas la solution.

En fait, c'est une appli qui gere une baie de tests de production.
Elle permet de séquencer des tests sur différents appareils en
parallèle.
Elle doit donc faire de la com ethernet, série, paralléle, GPIB ...
Le coté appli WEB est intéressante car tous les membres de l'usines
pourraient avoir des actions simultanées sur la baie suivant leurs
privilieges a travers un simple WEB Browser.
Donc le nombre de connexions ne devrait pas dépasser une dizaine voire
une vingtaine.
Je me demandais s'il était possible de faire tourner l'appli sur le
serveur de la baie en standalone en gérant une IHM classique et en
appli WEB (en gerant une IHM HTML) en meme temps ?
Je suis un peu exigeant mais je fais pour l'instant de la veille
technologique avant de me lancer tete baissée.

D'avance merci



Hello,

Pour une vingtaine de connexions simultanée, il me semble que Cassini
devrait pouvoir tenir la charge (sur une machine décente)
Cela étant, un IIS fourni avec Windows XP Pro/Win 2k Pro (10
connexions *simultanées* maximum - ou plus en googleant un peu) est
aussi prévu pour ce genre d'applications... si par hasard la machine
destination a ce type d'OS, c'est peut-être l'occasion d'essayer.

Pour ce qui est de faire partager a la couche application lourde et
application web la même couche métier, c'est tout a fait possible. Une
technique possible est de réduire la couche métier a un service web
appelé indépendemment par les deux interfaces.

Cela étant, toujours pour la prudence par rapport au portage, as-tu
pensé à a technique intermédiaire consistant a utiliser du .Net dans
VB5? Ou a l'inverse, encapsuler les fonctionnalités VB5 existantes
dans une dll COM appelée ensuite par le .Net framework? Ce genre de
solution a l'avantage de demander moins de réimplémentation, mais a le
gros désavantage de demander des connaissances dans les deux
plateformes pour la maintenance. Donc si tu souhaites évaluer dans la
pratique si ça marche, ça peut être une solution *transitoire*
appropriée. Si les interfaces entre COM et .Net sont bien spécifiées,
il sera même probablement possible de ne pas devoir réimplémenter la
partie "portée" en .Net.

François
Avatar
max_mont
On 5 août, 17:18, "Jean-marc"
wrote:
max_mont wrote:
> On 5 août, 13:43, "Jean-marc"
> wrote:
> En fait, c'est une appli qui gere une baie de tests de production.
> Elle permet de séquencer des tests sur différents appareils en
> parallèle.
> Elle doit donc faire de la com ethernet, série, paralléle, GPIB ...
> Le coté appli WEB est intéressante car tous les membres de l'usines
> pourraient avoir des actions simultanées sur la baie suivant leurs
> privilieges a travers un simple WEB Browser.
> Donc le nombre de connexions ne devrait pas dépasser une dizaine voire
> une vingtaine.
> Je me demandais s'il était possible de faire tourner l'appli sur le
> serveur de la baie en standalone en gérant une IHM classique et en
> appli WEB (en gerant une IHM HTML) en meme temps ?
> Je suis un peu exigeant mais je fais pour l'instant de la veille
> technologique avant de me lancer tete baissée.

Plein de choses sont possibles. Ce que tu demandes ici dépasse très
nettement le cadre de ce forum. Tu peux aussi prendre des renseignements
dur le groupe dédié à vb .net.

Disons que une application très bien découpée et pensée en ce sen s peut
sans trop de problèmes supporter 2 IHM. Dans la mesure ou on autorise
via le web des sessions simultanées, en avoir une de plusde type Windows
ne pose pas de problèmes. Tout ça est théorique bien sur. En pratiq ue,
pour que cela soit possible, il faut une appli vraiment écrite pour
supporter tout cela.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB:http://faq.vb.free.fr/



Qu'entendez vous par session de type Windows ? Un client lourd qui
enverrait des requetes a l'appli ?
N'est-il pas possible de faire tourner une appli classique windows sur
un serveur d'application afin d'avoir l'interface classique windows et
l'interface WEB ?