Web Framework for Education Management System [chiuso]

4

Tieni presente che sto trasferendo la mia domanda originale da StackOverflow a qui, perché penso che sia più pertinente qui

Quindi, sto lavorando a un'idea e ne farò una breve panoramica, ma la mia domanda è: quali sono alcuni buoni framework web per questa situazione? Ho una certa esperienza nelle seguenti lingue:

  • C #
  • Python

Ho molta più esperienza in C # di Python, tuttavia mi aspetto di imparare nuove cose.

La mia idea è questa, un sistema di gestione dell'educazione orientato alla comunità completamente basato sul web che si concentra sul rendere più facile la vita quotidiana degli studenti e degli insegnanti. Per gli studenti fornirà un posto centralizzato per fare i compiti, studiare per i test e rafforzare i concetti appresi precedentemente in classe. Per gli insegnanti darà loro un posto centralizzato per gestire compiti, frequenza, compiti, test e tutte le altre parti principali della gestione della classe. Tutto ciò, ma in una moda orientata alla comunità. Tutto ciò che fa un insegnante è condiviso e aperto a critiche costruttive, consentendo ad altri insegnanti di usare i loro compiti / test e agli studenti o altri insegnanti di commentare, valutare e criticare i loro compiti. Ciò incoraggia un ambiente di apertura che consentirà all'insegnante di concentrarsi sull'insegnamento e allo studente di concentrarsi sull'apprendimento. E quella comunità non sarebbe limitata a una scuola oa un distretto scolastico, questo sistema sarebbe completamente indipendente dalla scuola.

Si noti inoltre che non ho alcun problema con l'ascolto di critiche costruttive su questa idea, tuttavia preferirei che questo post fosse più focalizzato sulla mia domanda.

Ho in qualche modo studiato le seguenti opzioni:

  1. Django
  2. ASP.NET
  3. Ruby on Rails
  4. Silverlight

(1) Ho installato Django e l'ho giocato per un po ', mi piace molto la facilità di impostazione dei database e il modo in cui gestisce il database completamente per te. Non so davvero come usarlo molto bene e non capisco ancora il paradigma Model-View-Controller (?), Ma non ci ho pensato molto. Mi piace anche il fatto che usi Python.

(2) Non mi piace molto Visual Studio per lo sviluppo in ASP.NET, odio il modo in cui funziona il web-designer e sembra solo goffo e vecchio. Mi piace la parte di sviluppo lato server però. Non mi piace quanto siano costosi ASP.NET e Visual Studio in generale, anche se lo ottengo gratuitamente per ora utilizzando DreamSpark

(3) Non sono stato in grado di esplorare molto con questo, non ho potuto installare correttamente Rails (o forse Ruby). L'ho installato per la prima volta in RadRails e non funzionava, quindi ho disinstallato RadRails e installato l'ultima versione di Ruby dal Windows Installer ufficiale, quindi ho installato Ruby on Rails tramite gem e anche dopo tutto ciò non funzionava ancora, quindi Ho installato Netbeans e ho tentato di usarlo lì, ma ancora non ha funzionato

(4) Mi piace Silverlight in qualche modo, ho giocato con questo più, è molto simile a WPF (che ho usato di più) in molti modi, ma non mi piace come database la connettività funziona, almeno in confronto a Django. Inoltre, non mi piace quanto sia costoso tutto con Microsoft, anche se ora lo trovo gratuitamente con DreamSpark.

Mi piacerebbe sentire alcuni suggerimenti da esperti sviluppatori web su cosa dovrei usare e perché, o almeno quali sono alcune buone opzioni per il mio scenario

    
posta Jarred Sumner 24.12.2010 - 07:01
fonte

2 risposte

2

Coding too soon?

Quando hai appena iniziato con un'idea, è meglio non passare molto tempo a programmare. @Bitoff ha assolutamente ragione nei suoi commenti che ti guidano verso la creazione di un prototipo che mostri come funzionano le diverse storie degli utenti. In che modo gli studenti raccolgono un nuovo lavoro? Come viene premiato un insegnante per i loro contributi? Come gestisco le reimpostazioni della password? Come gestisco i pagamenti online? E così via.

Questo tipo di design può essere fatto usando schizzi di carta e matita che mostrano come un utente (un insegnante, uno studente o un amministratore) si fa strada attraverso il sistema. Non hai bisogno di una riga di codice. Non hai bisogno di un quadro. Devi solo convincere il tuo altro significativo che non stai sprecando il tuo tempo.

Quanto controllo vuoi?

Ora arriva il punto di decisione. È necessario decidere il livello di controllo dell'applicazione Web desiderata:

  1. Controllo completo. Tu e il tuo team avete scritto tutto (a parte le librerie open source - Spring, Hibernate, ecc.).
  2. Controllo della configurazione. Tu e il tuo team avete ottenuto un framework (Django, Joomla, Silverlight, Flex, ecc.) E l'avete configurato per soddisfare le vostre esigenze, soprattutto, con un po 'di clunkiness ma, ehi?
  3. Nessun controllo. Hai esternalizzato l'intero sviluppo tecnico a una software house e hanno fatto tutto il materiale tecnico che ti ha permesso di concentrarti sul lato business.

Dato che questo è un forum per programmatori, presumo che tu scelga l'opzione 1. Lo so, ma è perché ho molta esperienza nello sviluppo di applicazioni web e posso mettere insieme qualcosa molto rapidamente. Tuttavia, esistono argomenti di business convincenti per le opzioni 2 o 3 a seconda di come vedi il tuo piano aziendale di sviluppo e il tuo desiderio di abilità tecnica.

Crea prima i livelli aziendali e di persistenza

Nel punto in cui sei felice di avere un design che funzioni, dovresti essere in grado di far cadere rapidamente un semplice prototipo perché hai già pensato alle difficoltà. Ciò implica che stai codificando in una lingua con la quale sei familiare.

Al loro interno, la maggior parte dei linguaggi consente uno sviluppo molto rapido, ed è solo quando viene introdotto il livello web che si verifica una grande quantità di complessità. Quindi, mantieni la semplicità: crea un test di integrazione (un test unitario che interagisce con molte entità) che dimostra una semplice user story e si costruisce da lì. Il tuo codice seguirà il test di integrazione e vedrai come le diverse entità iniziano a interagire.

Progetta tutto come stateless.

Questo significa che non tieni nulla in sospeso da usare la prossima volta che viene chiamata una funzione. Ogni volta che chiami una funzione, sa solo cosa hai passato e nient'altro.

Nel corso del tempo creerai una suite di test di integrazione e avrai un dominio aziendale completo e forse anche un dominio di persistenza. Avrai un modello di database che funziona in modo efficiente per te.

Avrai anche affinato le tue abilità nella lingua scelta abbastanza da essere preparato per l'assalto che è il livello web.

Crea il livello web

Quando inizi a costruire il livello web, ringrazierai le tue stelle fortunate che hai progettato per il funzionamento senza stato, perché dovrebbe semplicemente fare clic su insieme.

Il tuo livello Web funzionerà probabilmente sotto un modello Model-View-Controller in modo che il controller riceva la richiesta web, la elabora passando al dominio aziendale in qualche modo e quindi riceva un modello contenente dati che è quindi presentato come XHTML, JSON, XML o qualcosa dalla vista nella risposta.

A questo punto ci si trova nel regno della progettazione dell'esperienza utente, quindi è necessario assicurarsi di avere qualche input da un grafico professionista. Ti aiuteranno a superare rapidamente i problemi di progettazione di front-end che potrebbero impedire alle persone di provare il tuo sito.

Riepilogo

  1. Lavora con una lingua che ti piace ed hai esperienza in
  2. Scegli i framework e gli strumenti di sviluppo liberi e open source per evitare a) costi elevati in seguito, se dovessi aumentare e b) reinventare la ruota
  3. Crea innanzitutto i tuoi livelli di attività e persistenza
  4. Disegna il tuo front-end sul Web e chiedi a un professionista di farlo bene

Buona fortuna con il tuo progetto.

    
risposta data 24.12.2010 - 12:42
fonte
0

Prima di tutto, sono di parte, Python è il più grande linguaggio imperativo mai progettato e se non sei d'accordo, non lo hai usato abbastanza.

Sono entrato nello sviluppo web attraverso Django e ho trovato che Django è perfetto per scrivere i tipi di siti per i quali è stato progettato: pubblicare siti. Se vuoi scrivere ancora More Blogging Software ™, o stai iniziando e scrivi qualcosa di abbastanza semplice, non puoi batterlo.

Tuttavia, alla fine è inflessibile. Ho trovato i modelli, orm, moduli e sistema di autenticazione tutti per essere inflessibili. L'altro problema è che, poiché è così monolitico, è difficile sostituire semplicemente i componenti più adatti.

Quindi suggerirei contro Django, ma ciò non significa che dovresti rinunciare a MVC.

Ho guardato un po 'gli altri framework di Python e ho scoperto che non c'erano quelli che mi hanno conquistato. Quindi, per realizzare lo sviluppo web, ho effettivamente creato il mio framework, è facile trovare buoni componenti in pypi, ma non lo suggerirei, è molto lavoro. In futuro, quando sarà più lucido, lo aprirò.

Ma per ora, non sono sicuro di poter pensare a qualcosa che posso veramente raccomandare.

    
risposta data 24.12.2010 - 10:14
fonte

Leggi altre domande sui tag