PDA

Visualizza la versione completa : Python 2.7 o C# per questo progetto? Aiuto!


ButterflyVip
02-08-2013, 16:17
Saaalve a tutti,
mi sono iscritto su questo forum perchè penso che sia adatto per la domanda che sto per porvi.
Dovrei realizzare un progetto per la mia scuola, una specie di bot che tenga sotto mano tutti i computers della scuola.
Dall'altro lato ci sarà un pannello admin per controllare i pcs.

Il problema non riguarda il pannello admin che va su un solo pc (che potrei anche scrivere benissimo in php e sbatterlo su un sito), ma bensi' riguarda i bots (non so come chiamarli).

Infatti il client dovrà essere su circa 500 pcs, tutti montanti una versione diversa di windows (xp, vista, 7 e 8).

La scelta tra i linguaggi che conosco non è molto vasta: python o c#.

C'è il problema delle dipedenza però. Pochissimi pc hanno python installato, pertanto il sorgente andrebbe compilato e convertito in exe, e non so se sia una buona cosa da fare in python. Dalle mie esperienze col python si può fare quasi di tutto, basta solo trovare le librerie giuste.

Invece col C# le cose risultano un pò più facili dovento lavorare solo su ambiente windows, ma anche qui c'è il problema delle dipendenze: .Net Framework.

Che voi sappiate, questo è preinstallato su tutte le versioni di windows? Nel caso quale versione di .Net dovrei usare?

Le azioni che dovrebbe fare il client sono queste:
-Autodetect di USB per copiare automaticamente files sulla chiavetta dello studente
-Scaricare files
-Lavorare col registro di sistema (autoavvio dell'app allo startup dell'os)

Concludendo: Quale dovrei scegliere tra C# e Python?

Grazie in anticipo a tutti quelli che risponderanno.

Saluti :D

MItaly
02-08-2013, 18:27
Il .NET Framework 2.0 è sicuramente installato su Vista e 7, non so se lo trovi necessariamente installato su XP (ma in genere per un motivo o per l'altro si finisce a trovarlo installato comunque); d'altra parte, come dici, è possibile impacchettare interprete Python & co. in un eseguibile, per cui da questo punto di vista è un non-problema.

Se devi fare task di amministrazione remota in .NET effettivamente hai comodi molti strumenti Windows-specific, come WMI, ma vedo che anche Python ha un modulo apposito :stordita: , e in entrambi i linguaggi hai la possibilità di richiamare le API Win32 (che probabilmente ti serviranno per il primo task che hai specificato).

Alla fine, come spesso accade, tutto dipende dal linguaggio in cui sei più comodo e abituato a lavorare... :stordita:

Tra parentesi,

-Autodetect di USB per copiare automaticamente files sulla chiavetta dello studente
questo un po' mi puzza... a che dovrebbe servire? :confused:

Scara95
02-08-2013, 19:50
Originariamente inviato da MItaly
questo un po' mi puzza... a che dovrebbe servire? :confused:

A copiare un keylogger e un autorun in modo da installarlo sul prossimo pc in cui verrà inserita la chiavetta e spiare il mondo :D

ButterflyVip
02-08-2013, 21:09
Originariamente inviato da Scara95
A copiare un keylogger e un autorun in modo da installarlo sul prossimo pc in cui verrà inserita la chiavetta e spiare il mondo :D

Anche io mentre scrivevo il thread avevo pensato che qualcuno potesse trarre questa conclusioni. Comunque noi.

Il client avrà una funzione particolare per scaricare il software della scuola che racchiude pdf e cagate varie dal server e chiedere all'utente di inserire la propria chiavetta. Una volta inserita serve che il programma autodetecti la usb per copiarci sopra il necessario. Mi è stato chiesto di realizzare questa feature in modo che gli studendi possano portarsi con se il necessario in modo da potersi esercitare pure a casa.

Inoltre il client dovrebbe servire anche per monitorare la situazione, ad esempio: numero dei computer accesi rispetto al numero totale, una funzione per spegnere tutti i computers rimasti accesi prima di staccare la corrente, controllare se qualche utente ha killato il processo di teamviewer per farsi i cavoli suoi, ecc...

Quindi alla fine mi consigliate il C# con .Net Framework 2.0?
Per trasformare i files .py in exe esistono diversi programmi, ma non è che mi convincano molto.

Grazie ancora.
Saluti.

Scara95
02-08-2013, 22:48
I was just joking!
Anyway, i packer per python non fanno altro che impachettare l'interprete e il sorgente assieme, non hanno niente di speciale, paradossalmente potresti "fartelo tu con winrar e gli archivi auestraenti"...

In ogni caso come ha detto giustamente MItaly si tratta semplicemente di scegliere quello con cui ti trovi meglio...

Io ti consiglio di controllare a scuola se (e quale versione di) .NET è installato sui PC...

ButterflyVip
03-08-2013, 21:56
Originariamente inviato da Scara95
I was just joking!
Anyway, i packer per python non fanno altro che impachettare l'interprete e il sorgente assieme, non hanno niente di speciale, paradossalmente potresti "fartelo tu con winrar e gli archivi auestraenti"...

In ogni caso come ha detto giustamente MItaly si tratta semplicemente di scegliere quello con cui ti trovi meglio...

Io ti consiglio di controllare a scuola se (e quale versione di) .NET è installato sui PC...
E' un bel problema...
Alcuni pc montano win xp sp2 con .net framework aggiornato, altri ancora non lo hanno proprio aggiornato. Sono più di 500 pcs e sarebbe un bel macello andarli a vedere uno per uno e fare una media. Forse i pc del laboratorio più vecchio potrebbero rimanere tagliati fuori (256MB di ram e Win Xp sp2), ma di sicuro qualche studente per necessità potrebbe aver aggiornato la versione del framework.

Per me non ci sono problemi nè a sviluppare in C# nè Python, non mi cambia completamente niente.

Sono ancora indeciso sul linguaggio da usare. Voi in cosa lo scrivereste tra i due?

Giusto un'ultima domanda.
Io sul mio PC ho .Net framework 4.5, però tipo alcune applicazioni scritte con .Net 3.5 mi dicono che il 3.5 non è installato sul pc anche se io ho il 4.5. Per fixare sono costretto a disinstallare il 4.5, installare il 3.5 e dopo reinstallare il 4.5.

Quindi con pc che hanno versione >2.0 non è che potrebbe verificarsi lo stesso problema?

Grazie ancora.
Saluti.

Scara95
06-08-2013, 11:10
In teoria più versione di .NET Framework dovrebbero poter convivere sullo stesso PC, almeno così era fino a Windows 7, ora non so...

Loading