SQL Server ou Fichiers ?

SQL Server ou Fichiers ? - C#/.NET managed - Programmation

Marsh Posté le 23-12-2006 à 06:17:10    

Bonjour,
 
je viens de faire l'acquisition de Visual Studio 2005, et j'ai un programme PHP/JavaScript que je souhaiterais reproduire en MS C++, histoire de me familiariser avec le Visual nouveau (me suis arrêté au 6, il y a 2-3 ans au moins).
 
Ce programme PHP a été conçu pour un chef d'entreprise spécialisée dans le pilotage de production (càd achat auprès des fournisseurs dans toute l'Europe et gestion de l'acheminement des matières 1ères vers les unités de fabrication dans les pays de l'Est) et la revente en gros des produits finis sur le territoire français principalement (et vive la mondialisation :whistle:).
Il avait en effet besoin de gérer de manière plus automatisée et surtout plus lisible ses relations fournisseurs, le programme lui permettait donc de créer des commandes de produits finis, tous modélisés (càd assemblés avec le bon nombre et la bonne quantité de matières 1ères), et se chargeait de lui calculer les quantités de biens qu'il achète à ses fournisseurs, qu'il consomme via une gestion des stocks, etc... Bref, tout un p'tit bordel qu'il devait se taper à la main avant ça [:skyx@v] tout en continuant de gérer sa boîte... :pt1cable:  
 
Ce programme utilisait par ailleurs une bdd MySql - original - mais lorsque celle-ci plantait (sur un pc pas top top) il se retrouvait comme un con car il ne savait pas relancer le serveur sur sa machine... Je mets tout ça au passé car à force il a fini par abandonner l'appli, pas assez fiable à son goût...
Je tiens à préciser que je lui ai expliqué des dizaines des fois comment relancer ce putain de serveur, ya 2 clics à faire, mais apparemment c'est trop dur pour lui... Bref...
 
Aujourd'hui j'ai du temps et j'aimerais me consacrer à la conversion de ce petit programme qui avait tout d'un grand :sol: Et ce en VC++ 8. Seulement je me retrouve d'entrée face à un problème de taille vis-à-vis de l'utilisateur en question : la gestion des données...
VS se couple facilement avec SQL Server - normal - mais je me vois mal lui dire que si le serveur plante il n'a qu'à le relancer... Et puis l'autre paramètre, nouveau celui-ci, est qu'il aimerait que ses données soient transférables d'une machine à l'autre de manière simple et efficace (ce qui était déjà le cas avec l'appli en PHP mais je ne m'étendrai pas plus sur le sujet... :o).
 
Vala, je pense donc utiliser de simples fichiers (*) à la place de SQL Server, que je formaterai à ma sauce. Tout ce qu'il aura à faire s'il veut transférer l'appli d'un pc à l'autre, c'est de copier-coller le répertoire d'install, et basta. Ctrl-c ctrl-v ça passe pas apparemment, mais j'ai vu qu'il le gère assez bien avec la souris... :sweat:
 
Est-ce totalement stupide de procéder ainsi ? Si oui, quelle autre solution (SIMPLE svp) ?
 
MERCI D'AVANCE :jap:
 
 
Edit
(*) fichiers formatés à ma sauce ou XML


Message édité par lkolrn le 23-12-2006 à 06:20:35
Reply

Marsh Posté le 23-12-2006 à 06:17:10   

Reply

Marsh Posté le 23-12-2006 à 14:09:38    

Comment ça "MySQL plantait" ?
 
Je sais bien que MySQL est de la daube en branche, mais au point de s'arrêter quand on fait une requête qui ne lui convient pas, j'ai un peu de mal à suivre là...
 
En tout cas, j'ai vu une seule fois un SQL Server planter (enfin, deux) et les deux fois c'était du 2000 (2005 n'est plus concerné) car l'admin n'avait pas prévu de shrink des logs (donc disque saturé, proutch).
 
Pour moi, y'a aucun problème pour utiliser SQL Server.
 
Ensuite, grace à la réplication gérée en natif par SQL Server, le transfert vers un autre PC est d'une simplicité enfantine, et tu peux en cacher le fonctionnement derrière ton programme, qui se contentera de lancer les requêtes.
 
Utilise des fichiers si tu veux, mais tu vas pondre une usine à gaz pour rien, et tu vas droit vers les plantages. Sans parler du fait que tu vas rester coincé avec une architecture mono-poste, mono-session, mono-utilisateur si tu utilises des fichiers.
 
A la grande limite, tu peux coller une base Access. Au moins tu seras prêt à passer vers un autre SGBD le jour voulu. Architecturalement parlant, au moins ton appli tiendra la route.

Reply

Marsh Posté le 23-12-2006 à 14:20:28    

si tu ne veux pas déployer de serveur, tu peux toujours prendre une base access, la prise en charge est incluse dans le FWX

Reply

Marsh Posté le 23-12-2006 à 16:19:59    

Merci pour ces réponses pratiques :bounce: SQL Server paraît pas mal donc... Et Access m'a suffisamment lourdé dans ma jeunesse universitaire, j'ai déjà donné merci :o  
 
Sinon les plantages étaient dûs d'abord au système, qui franchement avait tendance à planter tout et n'importe quoi au bout d'un certain temps... Mais j'avais pas le droit d'y toucher, ni d'installer autre chose à la place à cause de l'utilisateur (toute distrib Linux absolument proscrite) et aussi du budget serré (pour un Windows plus récent), donc vala :sweat:
Et puis j'avais cru suffisant de laisser un pov' EasyPhp se charger du boulot... (mea culpa)
 
Bref, SQL Server rulez, on verra bien...

Reply

Marsh Posté le 23-12-2006 à 17:32:16    

Sinon, très franchement, Access, si tu ne t'en sert que comme base de données, y'a aucun souci tant que la base n'est pas trop énorme -plusieurs Go quand même- et que tu n'as pas trop de lignes (genre pas plus de 1 000 000 par table). Le moteur de base de données d'Access est largement suffisant pour faire certaines requêtes assez lourdes.
 
Mais sinon, c'est clair que SQL Server reste un choix largement suppérieur, d'autant que la version Express est gratuite. Ca te permettra notamment de prévoir dès maintenant des transactions et une gestion multi-poste.

Reply

Marsh Posté le 23-12-2006 à 21:43:55    

Sinon y'a SQLite, une BDD standalone comme Access, mais bien plus fiable et performante.
y'a un wrapper pour .NET (SQLite .NET)

Reply

Marsh Posté le 24-12-2006 à 09:48:51    

sinon si tes besoins sont très simples, une bonne vieille collection générique que tu sérialises en binaire...

Reply

Sujets relatifs:

Leave a Replay

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