Aller au contenu

Java ou C#


harold50

Messages recommandés

Bonsoir

je voudrais programmer un driver pour une table traçante avec une interface VB. Pendant mes recherches j'ai vu qu'il était possible de programmer ce driver en créant une classe en Java ou en créant le pilote sous C#.

je voudrais savoir les forces et les faiblesses de ses deux languages afin de faire un meilleur choix

merci

Lien vers le commentaire
Partager sur d’autres sites

Ces langages sont tous les 2 des descendants de c++ et sont très proches en terme de syntaxe, etc...

Finalement, ton choix devra plus se porter sur le framework que tu va utiliser, à savoir .net pour c# et j2ee pour java...

Chacun a là effectivement ses avantages et ses inconvénients, mais les 2 te permettrons de réaliser ce que tu veux...

Au niveau de l'environnement de dev cependant, j'ai une petite préférence pour c#, visual studio étant vraiment un très bon ide, et il y a l'édition express ou des versions d'éval qui sont gratuites.

Lien vers le commentaire
Partager sur d’autres sites

il est absolument impossible de répondre à cette question, malheureusement...

C'est souvent plus une question de philosophie qu'autre chose (le libre/java face au propriétaire/ms)

Je dirais quand même que le gros avantage de java est qu'il est multi-plateforme/multi-os alors que .net est limité à windows (qui a dit mono au fond là-bas :transpi:)

La très grosse force de .net par contre est réellement visual studio qui fait que le framework est très facile à prendre en main.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je ne sais pas exactement ce que tu entends par "driver" : est-ce que c'est un vrai driver de périphérique que l'on retrouve dans le gestionnaire de périphérique après installation par plug n play ,

ou par exemple une DLL avec laquelle tu t'interface en VB pour pouvoir commander la table.

- si c'est un vrai driver : oublie C# et java , il faut utiliser le DDK ( Driver Developpement Kit ) de Microsoft et c'est tout en C (et là sous Windows c'est un peu chaud quand on débute).

- par contre (et ça à l'air d'être ton cas) , si c'est une DLL, je te conseillerai d'utiliser C# l'interfaçage avec VB sera beaucoup plus simple.

Je sais C# c'est propriétaire et quasi que Windows, mais si tu n'as pas de nécessité de faire un "driver" multiplateforme, et si le temps te manque utilise C#.

Une petite question au passage : pourquoi ne pas faire aussi l'interface dans le langage que tu choisira ( c# ou Java ) , cela te faciliterais l'intégration.

A moins que l'interface existe déjà auquel cas je n'ai rien dit.

Voilà, j'espère que je ne t'ai pas trop embrouillé.

Bonne continuation.

Salut

Lien vers le commentaire
Partager sur d’autres sites

Finalement, ton choix devra plus se porter sur le framework que tu va utiliser, à savoir .net pour c# et j2ee pour java...

j2ee pour un driver, c'est un peu too much non ?

Mais c vrai que pour moi, developper un driver en java ou c#, ca me semble bizarre... Ca serait plutot du C voire C++ (et encore)

Si jamais ca peut se developper en C#, developpe le en C# voire en VB.net (si c'est du VB.net l'interface graphique), ca sera plus simple que d'interfacer en java.

Mais personnellement, j'ai des doutes :)

Lien vers le commentaire
Partager sur d’autres sites

y a t'il une version de DDK compatible avec Vista?

Le pilote doit en fait intégrer un logiciel existant qui utilise la sortie GDI de Windows.

: est-ce que c'est un vrai driver de périphérique que l'on retrouve dans le gestionnaire de périphérique après installation par plug n play ,

ou par exemple une DLL avec laquelle tu t'interface en VB pour pouvoir commander la table.

Je ne vois pas vraiment la différence entre les deux types de drivers. un drivers n'utilise t'il pas des DLL???

Je compte programmer mon interface graphique en VB. ne serait il pas plus conseillé de programmer le driver dans un language de la suite .net pour éviter les programmes de compatibilité avec le C??

Lien vers le commentaire
Partager sur d’autres sites

: est-ce que c'est un vrai driver de périphérique que l'on retrouve dans le gestionnaire de périphérique après installation par plug n play ,

ou par exemple une DLL avec laquelle tu t'interface en VB pour pouvoir commander la table.

Je ne vois pas vraiment la différence entre les deux types de drivers. un drivers n'utilise t'il pas des DLL???

Je compte programmer mon interface graphique en VB. ne serait il pas plus conseillé de programmer le driver dans un language de la suite .net pour éviter les programmes de compatibilité avec le C??

Sauf qu'un driver, étant donné que ca tape la discut' avec du matos (donc ca se situe très bas dans les couches), ca ne peut pas être développé avec n'importe quel langage!

En général, c'est du C et de l'assembleur, et rien d'autre! Du C++ à la limite?

Lien vers le commentaire
Partager sur d’autres sites

Je vais essayé de préciser mon explication.

Un driver (c'est la définition que l'on me donnait quand j'étais étudiant ) n'est jamais qu'un bout de programme qui permet d'initialiser, de configurer, de lire et d'écrire sur un péripherique.

Quand on veut intégrer ce driver à un OS ( c'est à dire qu'il soit exploitable par n'importe quel programme fait pour l'OS, que la façon d'utiliser une imprimante soit toujours la même par exemple, que la detection du matos soit toujours normalisée ... ), on respecte certaines "normes" de l'OS (détection du matériel , interface logiciel, fonction à implémenter... ) .

Pour windows une "norme" de driver c'est le WDM, je crois que ça a changé pour Vista, mais le WDM doit être compatible.

C'est ce que j'ai appelé "vrai driver".

Pour faire ce genre de chose, je t'ai conseillé d'aller voir du côté de chez MS (DDK ) . Le DDK est en C, utiliser un autre langage rajoute une difficulté qui me semble inutile, étant donné que tu connais déjà le C.

L'interfacage ( c'est à dire un programme qui va utiliser ton périf. ou un type de périf( imprimante ) ) avec ce driver peut lui se faire en presque n'importe quoi ( c# sur , java surement ... ).

L'autre posibilité : c'est ne rien respecter, tu es le seul à utiliser ton matos et en plus tu fournis un programme ( .exe ) pour exploiter ton matériel.

Par exemple : ton traceur est branché sur une port parallèle ( c'est la même chose avec port série et port USB ), tu fais un programme ( peut importe la forme DLL , pour séparer interface graphique avec l'utilisateur et pilotage du traceur ou exe monolithique avec pilotage et interface graphique ) qui envoie et lit des trames ( selon un protocole établit par le constructeur du traceur) qui commande le traceur.

Dans ce cas là : envoyer et recevoir de trames sur un port peut se faire aussi bien en C# , java , C , C++ , VB .

Pour la deuxième possibilité, j'ai déjà vu ce genre de chose pour des cartes d'acquisition video d'une grande marque ( M...X ) , et leur matos n'est utilisable qu'avec leur programme ou à travers une bibliothèque propriétaire vendu séparement.

Tu peux trouver des infos sur la programmation de driver WDM , chez MS et tu peux télécharger le DDK avec plein d'exemple et de doc.

Des exemples pour créer des drivers WDM sur CodeProject en C

Des exemples pour accéder aux ports USB , série et parallèle en C# toujours sur CodeProject .

A toi de déterminer ce que tu veux faire.

Lien vers le commentaire
Partager sur d’autres sites

Je te remercie de ton aide.

L'interfacage ( c'est à dire un programme qui va utiliser ton périf. ou un type de périf( imprimante ) ) avec ce driver peut lui se faire en presque n'importe quoi ( c# sur , java surement ... ).

peut on faire un interfaçage sans un vrai Driver?

en fait l'utilisateur doit etre capable de choisir ses options d'impressions raison pour laquelle je pense à une interface graphique. vu que programmer une interface graphique en C n'est pas toujours facile est il possible de faire mon pilote en C et de faire une interface graphique en VB qui pourra permetre de cocher des cases d'entrez des options etc que le pilote doit prendre en compte?

Lien vers le commentaire
Partager sur d’autres sites

vois ça comme deux modules séparés : d'un côté un drivers et de l'autre côté une interface, et tu essayes de faire communiquer les deux ensembles.

typiquement tu driver fournit une série de fonctions et ton interface utilise cette série de fonctions.

OK

mais n'est il pas nécessaire d'avoir une compatibilité entre les languages? Par exemple est il possible d'appeler une fonctiondu driver (en C) à partir d'une interface VB?

Lien vers le commentaire
Partager sur d’autres sites

vois ça comme deux modules séparés : d'un côté un drivers et de l'autre côté une interface, et tu essayes de faire communiquer les deux ensembles.

typiquement tu driver fournit une série de fonctions et ton interface utilise cette série de fonctions.

OK

mais n'est il pas nécessaire d'avoir une compatibilité entre les languages? Par exemple est il possible d'appeler une fonctiondu driver (en C) à partir d'une interface VB?

La réponse est OUI :

Il s'agit en fait de la compatibilité des binaires générés : par exemple tu fais un DLL en C, elle est accessible dans tous les langages sous Windows si elle a une interface standard connu du langage.

Une des interfaces standards reconnus par VB6 est COM.

La techno. COM est un des piliers de Windows, par exemple les "fameux" activeX sont basés sur COM.

Et si tu as déjà manipulé un peu VB6, tu as pu constater que tu peux inclure un ActiveX ( par exemple média player) dans ton formulaire vb. Et pourtant les ActiveX ne sont pas forcement en VB .

Par contre utiliser une interface .Net (pure) avec VB6 va être un vrai cauchemard : donc si tu fais une dll en C# il faudra qu'elle soit compatible COM (c'est pas compliqué ( 3 ou 4 lignes de codes ) : MSDN donne pas mal d'info. sur le sujet )

Maintenant, je te conseille de manipuler un peu avec des programmes simples , ou des exemple trouvés sur le web, pour te faire une idée de la difficulté de la chose.

Si tu as choisi les langages à utiliser, et la manière d'implémenter ton driver et ton interface, tu pourrai ouvrir un nouveau sujet sur l'interfaçage entre 2 binaires dans des langages différents.

Bonne continuation

Lien vers le commentaire
Partager sur d’autres sites

Pour windows une "norme" de driver c'est le WDM, je crois que ça a changé pour Vista, mais le WDM doit être compatible

durant mes recherches j'ai vu que Vista utilise umdf et le kmdf.

ce sont des améliorations de WDM qui n'est pas très stable. je voudrais savoir comment les utiliser.

on les inclut en faisant des #include?

quel est la différence entre les deux (UMDF et KMDF).

Lien vers le commentaire
Partager sur d’autres sites

Pour windows une "norme" de driver c'est le WDM, je crois que ça a changé pour Vista, mais le WDM doit être compatible

durant mes recherches j'ai vu que Vista utilise umdf et le kmdf.

ce sont des améliorations de WDM qui n'est pas très stable. je voudrais savoir comment les utiliser.

on les inclut en faisant des #include?

quel est la différence entre les deux (UMDF et KMDF).

Je ne connais pas les modèles de drivers Vista, et je ne comprends pas pourquoi le WDM est instable : tous les drivers actuels sont WDM, non ?

Par contre je peux te conseiller de recuperer les SDK ou DDK pour les drivers Vista qui se trouve sur MSDN. Tu devrais trouver à l'intérieur, des projets vides ( ou presque ) pour chaque type de driver ,

et t'as " plus qu'a remplir "

Sinon, on s'éloigne de ta question initiale "Java ou c#", tu devrais ouvrir un nouveau sujet si veux avoir une chance d'être.

Bonne chance dans ton dev.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...