2010-03-08 9 views
5

Così ho scritto un programma di gestione del progetto per una piccola impresa che utilizza Microsoft Access 2007.volendo passare dall'accesso ms, pensando .net? studio visivo?

sacco Ora hanno richiesto di funzionalità aggiuntive (cronometraggio, i livelli di dati privilegiati ...)

io personalmente uso di Linux , ma l'intero ufficio utilizza Windows.

Sono relativamente nuovo per la programmazione, ma, come per insegnare a me stesso che usano progetti come questo.

Sono proprio al limite di questo - Non posso davvero dire quale sia il percorso di minor resistenza qui: rimango in accesso + VBA e mi insegno un linguaggio morente e fastidioso - mentre sto lottando contro tutte le limitazioni di accesso? O mi trasferisco a qualcos'altro?

Python sembra abbastanza semplice ... Qualunque cosa che uso, ho bisogno di essere in grado di offrire una GUI.

screenshot in modo da poter ottenere il jist: http://img707.imageshack.us/img707/9360/screenshot1fi.jpg

http://img707.imageshack.us/img707/7338/screenshotmh.jpg

- note: progetto di Access corrente utilizza separato frontend-backend per la condivisione multiutente su una LAN

compatibilità cross con Linux non è così importante per me, sto usando virtualbox da un po 'di tempo.

--UPDATE-- le mie peregrinazioni mi hanno convinto che avrei dovuto procedere in IronPython - comunque - mentre provo ad installare la suite sia in XP che in 7, e fallisco ... Mi chiedo se anche questo sia qualcosa di obsoleto ... soprattutto, iv'e state leggendo su di esso e mi piace Python 3 - ma ho bisogno di offrire un'interfaccia grafica per Windows non sai da dove cominciare con quello (compreso che IDE da utilizzare, ecc)

+2

il percorso di minore resistenza è rimanere con Access + VBA ... C'è una curva di apprendimento piuttosto ripida che si sposta da Access a .NET Winform –

+0

Perché l'ostilità verso VBA? È solo una parte dell'ostilità generale a VB in generale? Direi di rimanere con Access/VBA e un paio di versioni da qui probabilmente sarete in grado di utilizzare .NET al posto di VBA. Questa è solo la mia ipotesi, ma non riesco a vedere MS continuare a mantenere Access esclusivamente con un linguaggio di programmazione legacy. –

+0

l'ostilità verso VBA viene dalla mia esperienza personale + ciò che altri hanno detto. php mi ha reso molto più sensato. ho trovato sia VBA e ASP molto più frustrante di PHP, che sento sintatticamente simile a C? –

risposta

0

VB e C# sono certamente simile a quella di accesso, e sarebbe bene se si sta cercando di non spostare troppo lontano.

Python è brillante ma non come Access. È semplicemente un linguaggio di programmazione che ha buone librerie db. Le librerie della GUI sembrano piuttosto buone anche se non le ho mai usate. Il design della GUI sarà più difficile in Python di C#/VB. Python è gratuito e può valere la pena solo sperimentare con ie. costruire una GUI, connettersi a un database SQLite. Probabilmente otterrai una buona indicazione della fattibilità dell'uso di Python per i tuoi scopi.

Non rimanere esclusivamente con Access. L'accesso è abbastanza buono per le piccole applicazioni e puoi fare alcune cose molto velocemente. D'altra parte VBA è brutale e sta limitando severamente. Prova sia C# che Python se puoi.

+0

Downvote per l'assoluta ridicola ostilità verso VBA. VBA è un SUPERSET di VB regolare e la versione di Access è estremamente ben adattata ai fini del database. –

+0

Abbastanza giusto. Molte delle mie critiche potrebbero essere collegate alla mia incapacità di navigare efficacemente nella libreria msdn e alla inesperienza con VB/VBA. Trovo molto più facile la ricerca dei documenti per la documentazione di Python, java e non-msdn C#. Qualsiasi informazione richiesta è di solito trovata con una rapida ricerca su google. Non ho trovato questo con VBA. Ogni volta che uso personalmente VBA mi sento estremamente frustrato, ma questo certamente non ha garantito la designazione "brutale". – mfperzel

+0

Non si desidera una guida VBA generica quando si programma in Access: si desidera avere soluzioni specifiche per database e Access ha il proprio modello di oggetto specifico e il proprio insieme specifico di funzioni/comandi. I punti di partenza sono http://mvps.org/Access/ i gruppi Usenet con "accesso" nel nome e siti Web come http://UtterAccess.com e http://www.access-programmers.co.uk. Troverai una grande quantità di aiuto specifico per database con VBA, ma onestamente, utilizzando Access, dovresti iniziare puntando e facendo clic per creare l'interfaccia utente anziché immergerti direttamente nel codice. E i file HELP sono in realtà abbastanza buoni. –

5

In un ambiente del genere, non si può sbagliare con VB/C#. Prova le varie edizioni VS Express.

Se si desidera qualcosa che si traduca in Linux un po 'di più, Python e praticamente qualsiasi framework GUI multipiattaforma (QT o wxpython) funzionerebbe.

MODIFICA: Poi c'è il database. Probabilmente suggerirei sqlite se vuoi imparare qualcosa di multipiattaforma. Rimanendo nel mondo Microsoft, c'è SQL Server Compact.

In un ambiente aziendale simile, un'applicazione .NET è probabilmente più manutenibile (dopo che sei sparito, ecc.) Quindi tutto ciò che non è completamente Microsoft.

0

Fintantoché i client non condividono un database, un'applicazione .NET WPF/WinForms con un DB incorporato sembra funzionare correttamente.

Probabilmente potresti anche sviluppare qualcosa che funziona su entrambi i PC Windows e la tua macchina Linux usando Mono (verrai bloccato con un sottoinsieme di WinForms ... ma per una semplice app business, non c'è davvero niente di sbagliato in questo) .

0

Hai pensato a Appcelerator Titanium oa qualcosa di simile? Si crea una GUI ricca utilizzando tecniche web (HTML, CSS, javascript e o python) e la si compila in un'applicazione desktop.

Il vantaggio è che è possibile sviluppare su Linux e eseguire solo la distribuzione finale del test & su Windows.

Detto questo, scrivere un software di produzione come principiante non è facile. Soprattutto gli errori di gestione possono essere difficili. Sii intelligente e pensa a "Cosa può andare storto quando l'utente fa questo" fino in fondo e convalida l'input.

2

direi web app (C#) con SQL Express sul back-end - ma questo è solo me

+0

ho provato a scrivere un'app Web in php un po 'di tempo fa, ma i fastidi come dover scrivere il mio calendario personale a tendina mi hanno motivato ad accedere allo –

+0

se ti preoccupi è solo un controllo a parte ci sono molti di loro là fuori per aiutarti, se tu scegli il percorso delle app Web il mio prefrence sarebbe ASP.net MVC, C#, SQL Express, IU/Plugin Jquery - http://www.asp.net/mvc/learn/ – Rony

1

WPF ha una curva di apprendimento piuttosto ripida, soprattutto provenienti da Access. WinForms sarebbe un percorso più semplice, ma è ancora un salto da Access. Tuttavia, sia WPF che WinForm hanno una costruzione di moduli drag-and-drop e, presumendo che tu abbia imparato abbastanza VB.NET per convertire la logica di business VBA, sei più che a metà strada. :)

Se si implementa il progetto in WPF, è possibile renderlo abilitato per Silverlight, ma si tratta di un intero tipo di worm.

3

MS Access è un'applicazione di database desktop. Probabilmente un passo avanti è SQL Server Compact Edition (SQLCE), che funziona come parte della tua applicazione (a differenza di SQL Server Express o superiore, che vengono eseguiti come servizi di sistema). Ho usato SQLCE con un grande successo in alcune applicazioni e Microsoft lo sta usando in Visual Studio 2010 per la nuova cache IntelliSense di Visual C++ perché è leggero e funziona alla grande.

Nonostante ciò che ho letto su alcune fonti, SQLCE non collabora bene con Entity Framework. Lo fa tuttavia funziona alla grande con LINQ-to-SQL e il progettista corrispondente. Detto questo, il mio consiglio personale è di prendere in considerazione che unisce il seguente come sostituzione:

  • dati: SQL Server Compact Edition
  • dati/Codice: LINQ to SQL
  • Linguaggio di programmazione: C#
  • Quadro dell'applicazione: WPF
    • Nota personale: WPF ha una curva di apprendimento, ma è principalmente difficile per le persone che hanno lavorato con altri framework (MFC, WinForms, ecc.) Per un lungo periodo. Raccogli una buona referenza e sarai produttivo in pochissimo tempo, in più sarai esperto in una tecnologia che le persone si stanno muovendo verso invece di via.
+0

ho familiarità con SQL e SQL Server (mysql, mssql2000) .... ho sentito parlare di C# (se sembra qualcosa di simile a php, mi piacerà molto, e con gli sguardi voglio dire, il codice sembra carino alle 4 del mattino quando il mio cervello è fritto) ... il resto .. "linq" & wpf - sono totalmente nuovi per me - eventuali consigli come da dove iniziare –

+0

E, per i rapporti, cosa viene proposto qui? –

1

ho detto in un commento, ma lo ripeto come una risposta:

Se si guarda al futuro di Access, è luminoso. La SM sta investendo molto in essa. Access 2010 in collaborazione con Sharepoint 2010 offre alcuni vantaggi incredibili, e lo fai tutto senza VBA (invece usi i nuovi, potenti macro, che hanno variabili, branching e error trapping). È possibile farlo con Accesso client e senza SharePoint, oppure è possibile pubblicarlo su Sharepoint e l'applicazione viene eseguita nel browser web.

La mia supposizione è che una delle due cose stanno per accadere per quanto riguarda il linguaggio di programmazione in Access nell'arco di tempo delle versioni di Access 2-3 dopo il 2010:

  1. VBA rimane sostenuta e tutta la il lavoro va in macro. Alla fine, le macro diventano il metodo preferito per tutte le programmazioni in Access, con VBA alla fine deprecato e infine eliminato. Perché da quel punto i macro sono così versatili e robusti, non il linguaggio di programmazione sostituirà VBA.

  2. lo stesso scenario, tranne che .NET è stato introdotto come sostituzione per VBA.

spererei per 2 #, ma dipende interamente dal punto di vista di Microsoft di ciò che Access è, vale a dire, in primo luogo e strumento di utenti finali con estensibilità verso l'alto (# 1) o entrambi uno strumento di utenti finali e un strumento di sviluppo versatile con estensibilità illimitata (n. 2).

Il mio punto è che si può stare con Access, evitare VBA per ora (se proprio lo si odia), e probabilmente finire con un'app stabile e praticabile.

Tuttavia, le mie riserve sui macro sono molto forti, in quanto le trovo molto difficili da mantenere a causa della loro natura autonoma. Il codice VBA è abbastanza facile da navigare e capire, perché è compilato e perché c'è un IDE completo. I macro sono molto più compartimentati e difficili da tracciare le interrelazioni tra loro e gli oggetti in cui sono utilizzati. Aggiungi le macro incorporate aggiunte in A2007 e diventa ancora più complicato. Non so se il team di Access stia affrontando questo o no, ma per me è un vero passo indietro in termini di gestibilità, in particolare se il rafforzamento delle macro finisce per provocare la deprivazione di VBA e quindi non viene sostituita con un potente corrispondente linguaggio di programmazione con un buon IDE.

Infine, non ho detto nulla sul motore del database, poiché Access è completamente agnostico a questo riguardo, in grado di utilizzare Jet/ACE per iniziare e quindi di eseguire l'upsize sul motore di propria scelta. È un non-problema, mi sembra, dato che le tue opzioni sono spalancate quando usi Access come front-end.

+0

vorrei che avessero inserito. Net alcune versioni fa.tutto quello che ho visto è scritto in .net è bello e veloce. Non sapevo che le macro fossero ora preferite su vba (ho beta 2010) - darò un'occhiata - in questo momento ho un bel po 'di codice vba ma, e questo è uno dei motivi per cui per passare a qualcos'altro - la maggior parte delle cose che ho cercato sono state scritte per .net –

+0

Dirò che da quando avremo una versione a 64 bit di VBA in accesso 2010, allora un vero investimento è avvenuto in VBA. Quindi, sicuramente non c'è ancora niente che dice che un "coperchio" viene messo su VBA. –

+0

@Tristan Lear: non ho affermato che i macro sono preferiti. Ho suggerito che potrebbero un giorno essere. E la "bellezza" di .NET è negli occhi di chi guarda. Per la maggior parte delle applicazioni di database desktop, mi sembra di usare un bulldozer per piantare calendule. –

1

In base ai vostri criteri, vorrei utilizzare PyGtk e Glade. Gtk è ben supportato su Windows e Linux, e ho ottenuto più risultati in meno tempo con Python e GTK, che con qualsiasi altra combinazione di linguaggio/toolkit.

Se si è disposti a ripensare a farlo sul web, dare un'occhiata a ExtJS, che fornisce un sacco di desktop come controlli web, e hanno un costruttore GUI.

Per il database vorrei utilizzare Postgresql o SQLite. Siate consapevoli del fatto che SQLite presenta alcune limitazioni severe in termini di concorrenza, il che potrebbe essere un problema a seconda della progettazione dell'applicazione e del numero di utenti.

0

Se sono solo piccole applicazioni interne su cui stai lavorando, dai un'occhiata a Visual WebGUI - ottieni un ambiente di sviluppo molto simile a VB6 per le app web.Non lo consiglierei comunque per applicazioni grandi e/o pubbliche.

Problemi correlati