Scelta delle Tecnologie per applicativo

di il
3 risposte

Scelta delle Tecnologie per applicativo

Buona Domenica a tutti,

vorrei realizzare un applicativo desktop (windows) per la gestione dell'attività di famiglia. Ho buone conoscenze informatiche, sono laureato in informatica, ma premetto e sono certo che tutti voi sappiate che l'università fornisce soltanto le fondamenta dell'informatica, poi quando ci si trova di fronte ad una realtà aziendale ci si rende conto che è tutta un'altra cosa.

Conosco abbastanza bene la maggior parte dei linguaggi che si studiano in facoltà (C++, Java, C#, php, etc) ma premetto che la curva di apprendimento sarà molto alta nel caso dovessi acquisire conoscenze su un qualsiasi altro linguaggio di programmazione esistente (difficile elencarli tutti). Stesso discorso vale anche per i database, sviluppo di applicazioni web e mobile. Inoltre sono molto ferrato sul paradigma OOP, per me è un sacro.

Premesso ciò, ritornando alla realizzazione dell'applicativo desktop, sono su questo fourm per avere dei consigli e dei riscontri sulle tecnologie da usare, quindi pareri da persone esperte che sul campo hanno più esperienza di me.

La prima scelta che mi son posto è stata quella di scegliere tra un applicativo completamente desktop (che potrebbe fungere tranquillamente da client nel caso in futuro ci sarà la necessità di far girare l'applicativo su più host e quindi centralizzare dati su un server) e un applicazione web.

Quindi Indeciso tra
1) un'applicazione web non accessibile dall'esterno, quindi un web server interno e come client i browser che girano sugli host della rete privata.

2) l'applicazione desktop client, quindi da installare sulle macchine client.

Ho optato per la scelta 2. Motivi? E' una gestione interna e quindi non è necessario sfruttare le web app, nel caso in futuro si vorrebbe estendere questa cosa si può sempre creare la parte web-based che accede ai dati sul DB server con le dovute attenzioni in termini di sicurezza,

Consigli e pareri su questa scelta sono ben accetti, anche pareri che evidenziano i miei errori di scelte progettuali.

Ipotizzata la scelta 2, una mia idea per la scelta delle tecnologie potrebbe essere questa:

Per la GUI

- Windows Form e WPF di .net 4.5 o .net 4

Middleware

- C#
(creare un framework utile per consentire la gestione delle operazioni di persistenza in maniera rapida e soprattutto automatica. Attraverso i meccanismi di astrazione, creare un sistema capace di gestire tutte le operazioni di lettura, scrittura e modifica di un database)

Database

- Mysql
- SQL Server

Anche in questo caso sono ammessi tutti i tipi di considerazione.

Grazie mille e sono fiducioso del fatto che potrò trovare tante risorse utili frequentando questo forum, ma in particolare potrò imparare tanto.

Saluti
Roby

3 Risposte

  • Re: Scelta delle Tecnologie per applicativo

    Ciao Roby, buona Domenica anche a te!

    Ho letto le tue riflessioni e fermo restando che entrambe le tecnologie andrebbero bene, ti confermo che la scelta 2 è la migliore.
    Le interfaccie utente dei gestionali sono sempre ricche di elementi quindi per velocità di sviluppo, prontezza di risposta e stabilità meglio un'interfaccia desktop che web.
    Se un domani devi rendere il sistema accessibile all'esterno della tua rete, non è detto che devi implementare una nuova interfaccia web, ti basta implementare un Web Service.

    Puoi benissimo utilizzare quest'architettura stratificata:

    (lato client)
    Lev 1. GUI: Windows Form - WPF

    (lato server)
    Lev 1. Web Service o WCF
    Lev 2. Business Logic
    Lev 3. Data Access Layer
    Lev 4. Database

    Per quanto riguarda il database puoi usare sia SQL Server che MySQL, nel secondo caso se usi MS .Net dovrai integrare nella soluzione il connettore per piattaforma .Net: http://dev.mysql.com/downloads/connector/net

    Per qualsiasi dubbio chiedi pure, un saluto
  • Re: Scelta delle Tecnologie per applicativo

    Le interfaccie utente dei gestionali sono sempre ricche di elementi quindi per velocità di sviluppo, prontezza di risposta e stabilità meglio un'interfaccia desktop che web.
    Infatti, effettivamente essendo un gestionale, è molto più rapido creare la GUI con Wondows Form e WPF che realizzare un'interfaccia web e quindi curare anche la parte grafica.
    Puoi benissimo utilizzare quest'architettura stratificata:

    (lato client)
    Lev 1. GUI: Windows Form - WPF

    (lato server)
    Lev 1. Web Service o WCF
    Lev 2. Business Logic
    Lev 3. Data Access Layer
    Lev 4. Database
    Grazie mille per il consiglio, mi attengo a questa stratificazione, nel momento in cui sorgeranno dubbi e avrò bisogno di chiarimenti mi rivolgerò a voi gentilissimi.

    Saluti
    Roby
  • Re: Scelta delle Tecnologie per applicativo

    Salve a tutti,

    Per ora sto facendo uno studio delle varie tecnologie che potrebbero essermi utile per implementare il Data Access Layer.

    Nel caso in cui volessi utilizzare un DB SQL Server ho visto in rete che ci sono queste possibili soluzioni
    - NHibernate
    - LINQ to SQL
    - Entity Framework 5 (per cortesia correggetemi se non cito le ultime versioni)

    ovviamente nel caso in cui ci fossero (ma sicuramente ci sono) altre soluzioni sono ben graditi consigli.

    Nel caso in cui volessi usare MySQL ho visto che ce ne sono meno in giro, quindi è più opportuno crearne uno ad-hoc utilizzando il connector per accedere al db?

    Comunque girando in rete, un framework che si appresta a fare questo è DALC4NET.

    Nel frattempo aspetto qualche consiglio, inizio a dare uno sguardo più dettagliato a NHibernate.

    Grazie in anticipo e Buona serata.
Devi accedere o registrarti per scrivere nel forum
3 risposte