110 messaggi dal 04 settembre 2010
Si può andare, nel caso mi chiedessero qualcosa di più economico? Pensi che ci sarebbe margine?
427 messaggi dal 13 novembre 2009
Questo è quello che fa per te, costa poco e tutti sono soddisfatti. Verifica se legge i QR se ti interessano. Di solito in un magazzino merce i QR si utilizzano poco perché solitamente contengono link a pagine o cose piu complesse rispetto ad un mero codice alfanumerico
http://amzn.eu/d/84aVW8I

Detto questo non voglia intromettermi o fare analisi per te, ma secondo me la cosa dovrebbe funzionare così:
webapi (aspnet/core) jwt per gestire il core business: un servizio per alimentare client web come app mobile (in futuro).
JWT: vedi tu quale wrapper utilizzare se per Azure, Code First o Database First. Io non mi vincolo a nulla e ho deciso una libreria standard https://github.com/jwt-dotnet/jwt per la sola gestione del token e poi una tabella per la gestione degli utenti.
dashboard web: vedi se ti è piu comodo usare la webapi (json) per ottenere dati dal DataLayer (Dapper NET) o se collegarti direttamente a questo. Io come scritto uso DapperNET che è un wrapper per adonet che semplifica le query, non è EF. http://dapper-tutorial.net/ https://stackexchange.github.io/Dapper/. Stiamo parlando di stackexchange, quelli di stackoverflow, immagino tu lo conosca, è ottimo, lavori con gli oggetti e fai query anche complesse, splittando join e costruendoti classi padre/figli (lazyloading).
Database: userei SQL Server 2016 per due motivi: ha il supporto in Json e colonne mappate su campi Json e ricordati che da SQL Server 2012 hai la paginazione semplificata (anche se meno performante, ma di poco) OFFSET FETCH, altro che With
Nlog: server per logging e tracing

Ci sarebbero tante altre cose, tante altre librerie ecc.
Come vedi io VS 2017 lo uso come IDE, per organizzare i progetti i tenere distinti i Layers in base alle esigenze, ma non mi vincolo troppo al mondo MS utilizzando EF e MVC. Preferisco gestire Callbacks lato client con javascript e framework specifici per il mapping e la gestione del dato: una volta Knockoutjs e jquery, oggi Angular, Vuejs, Ember ecc...Se non conosci questi framework ti consiglio ovviamente Angular ma devi sapere di TypeScript oppure il vecchio ma per sempre valido e ancora supportato AngularJS.
AngularJS è semplice da apprendere e usare e ci fai cose spaziali. Tieni presente che se sai programmare in javascript, usare promise, callback, mapping ecc...ottieni due cose: webapp robuste, analoga architettura e codice per produrre Hybrid app e PWA (progressive web app)

Se ti serve altro chiedi pure
Modificato da flaviovb il 08 settembre 2018 16.06 -
110 messaggi dal 04 settembre 2010
Ok studio e ti faccio sapere
Grazie
369 messaggi dal 08 dicembre 2006
flaviovb ha scritto:
Io di solito da un bel po faccio questo
- webapi REST con auth jwt che espone richieste per interfaccia web o app mobile
È più complesso di una normale aspnet Mvc ma con una unica soluzione ho un motore da sfruttare una per un sito web, sia per una app. Si potrebbe avere una aspnet Mvc con api REST incluse ma poi avrei 2 modi differenti di programmare. Quindi mi trovo meglio con
Web api REST
Website html5 Angular per fase di gestione anagrafiche, statistiche ecc
Hybrid app html5 Cordova per Android/IOS

Quindi se dovessi fare io
Hybrid app installata che tramite bar code plugin legge codice a barre come fa oggi una normale app o funzione integrata nel cellulare o tablet. Alla lettura realtime o successivamente in batch trasmetterò ad una action api la lettura che viene salvata in una tabella delle letture magari inserendo la data ad esempio, letture del giorno.
A webapp presenta una maschera a consultazione della tabella con filtri. Una action sulla webapi riceve le richieste. Questa cosa là poi quindi replicare anche sul dispositivo mobile.
Di solito ritengo la app mobile una app di servizio e di solo minima gestione come ad esempio tentata vendita agenti ecc
È la webapp il vero gestionale per tante ragioni
Ti fila?
Modificato da inactive il 08 settembre 2018 18.46 - Ciao Flavio,
non voglio abusare della tua gentilezza e disponibilità, ma potresti postare su un cloud drive un tuo progetto ridotto all'osso MA funzionante? Sarebbe molto utile per studiarlo. Io in prima persona, ma sicuramente anche Mau67, ti ringraziamo in anticipo ;)

Gianni
427 messaggi dal 13 novembre 2009
Per progetto di esempio cosa intendi? Io ad oggi ho un progetto che è composto da
Hybrid app con gestione del barcone per il magazzino, tentata vendita, insoluti ecc
Dashboard web aspnet AngularJS
Webapi per sincronizzazione anagrafiche, invio ordini, chiusura insoluti ecc per Hybrid app
Console app per sincronizzazione batch notturna via ftp di archivi ecc
Ovviamente il progetto è per vari clienti. Quello che potrei fare è spiegare l’architettura della mia soluzione con una descrizione delle parti e eventualmente su Git una soluzione di esempio ma naturalmente mi ci vuole un po’
110 messaggi dal 04 settembre 2010
Daresti un grande aiuto
427 messaggi dal 13 novembre 2009
Domani mi adopero per dare maggiori dettagli ma aspettatevi innanzitutto un elenco di librerie usate e poi una soluzione di esempio di massima
427 messaggi dal 13 novembre 2009
Buongiorno,
di seguito architettura e librerie:
- auth: https://www.nuget.org/packages/JWT fatto bene ed essenziale, la tabella utenti ve la create direttamente su SQL Server o MySQL come vi pare.
- validation: https://www.nuget.org/packages/FluentValidation/ libreria per la validazione da studiare, la piu usata mi risulta
- tracing: https://www.nuget.org/packages/NLog/ Nlog e eventuali plugins per tracciare l'attività dei vari progetti
- database: SQL Server 2016 per supporto json e paginazione offset/fetch (dal 2012)
- orm database: https://www.nuget.org/packages/Dapper/. Attenzione ovviamente i progetti che lo implementano devono essere compliant con async/await per sfruttare i relativi metodi.
- ftp: https://www.nuget.org/packages/FluentFTP/ mi trovo molto bene con questa libreria in alternativa a WinSCP.
- serializzatore json: https://www.nuget.org/packages/Newtonsoft.Json/ ovviamente la libreria per json. Attenzione ad utilizzarla correttamente nella webapi ad esempio in WebApiConfig
- webapi: essendo il mio progetto un po vecchio, se dovessi iniziare oggi lo svilupperei core, ma finora non ho trovato grossi problemi ad utilizzare ancora aspnet alternativo precedente. Tenete peraltro conto che non tutti gli sviluppatori magari hanno fatto il porting delle proprie librerie per essere compliant con Core Framework Standard
- webapp: io ho sfruttato all'epoca l'architettura MVC per un semplice motivo: BundleConfig, iniezione di configurazione in base all'ambiente (DEV, COLL, PROD) con alcune partial views e una index.cshtml. Fondamentalmente è una SPA con AngularJS, Bootstrap 3.3.7, Fontawesone ecc..e qualche libreria js come il fondamentale MomentJS with locales. Sviluppata in questa maniera, sebbene vincolata al template MS è molto simile a come poter sviluppare una Hybrid app per Android/IOS. In essa dunque le viste son in realtà template html richiamate tramite il sistema di routing angularJS e callback http vs webapi. Non tutto è comunicazione con la webapi, ci sono poche viste che sono RAzor MVC per la gestione ad esempio della reportistica.
- reportistica: DevExpress Reporting. Ovviamente questa libreria è a pagamento ma una volta acquistata si ottiene un anno di supporto e aggiornamenti. Alla scadenza non si hanno piu aggiornamenti se non si rinnova l'abbonamento, ma si può continuare ad utilizzarla senza vincoli. Telerik e altri come alternativa ma funzionano in maniera simili. Sono carrozzoni pieni di callback nei controlli aspnet, ma sono ottime librerie per disegnare i report, programmarli con c# e soprattutto hanno esportazioni in PDF, Excel ecc...
- Hybrid app: ambiente a parte con IDE in cloud, ma il servizio che utilizzo si interfaccia anche a VS. E' completamente gratuito (alcune limitazioni) o a pagamento, ma con la versione free si fa sviluppo, compilazione in debug, pubblicazione e con la versione a pagamento anche il deploy sul market. Ovviamente Android/IOS/WP ecc...

Logica di sistema:
- il database SQL Server domina la struttura delle tabelle, niente Code First, non mi piace! Tabella gestione utenti e ruoli, analoga a Identity/Membership piu qualche altro campo. Io ho avuto a che fare con Gestionale1 Zucchetti (dbf) o ERP2 CentroSoftware (SQL Server). Nelle tabelle ci sono campi che richiamano chiavi provenienti da cui repository. Nel livello Database c'è il namespace Zucchetti o CS_Erp2 in base al sistema contabile, magazzino utilizzato dal cliente
- la webapp gestisce le anagrafiche dei clienti, fornitori, articoli, fatture in mera lettura perché è il sistema contabile che detiene la responsabilità di trattare questi dati ai fine fiscali e contabili. Io non mi sostituisco a sw contabile perché un mondo. Ovviamente questi dati li leggo tramite chiamata al provider del database, le stesse chiamate che la fa la webapi se interrogata, ad esempio dalla Hybrid app. Chiaro? Il risultato è json e sia sulla webapp, sia sulla app mobile utilizzo AngularJS, codice molto simile se non uguale in taluni casi. A quel punto se modifico qualcosa nell'html/controller/service AngularJS, faccio poi copia/incolla nei rispettivi file della app mobile e rilascio l'aggiornamento. Sono poche le situazioni in cui faccio questo, pochissime, perché l'app mobile è, come dicevo nei precedenti post, una app di servizio.
- ftp: di notte con console app che si interfacciano al provider del database e fluentFTP sincronizzo i dati sul repository web scelto dove gira la webapi. La quale quindi per quanto riguarda i dati anagrafici di base non è relatime, ovvero non legge il database del gestionale contabile perché il gestionale contabile gira in intranet in azienda e magari per problemi aziendali e/o sicurezza la macchina server su cui girano gli archivi contabili non è esposta su internet se non per aggiornare l'OS ecc...Quindi generalmente opto per la modalità di sincronizzazione giornaliera notturna: quante volte capita che le cose cambino nell'arco di 24 ore? Per la mia esperienza mai.
- hybrid app: l'app con una maschera a richiesta interroga la webapi che legge le estrazioni batch notturne degli archivi e li mette a disposizione. La app mobile quindi lavora offline (no internet): clienti, articoli, listini, insoluti. Gli agenti, ad esempio, creano ordini e li inviano quando serve e quando c'è campo. Molto spesso capita che gli agenti non possano essere collegati a internet mentre producono un ordine perché non c'è campo (cantina, wifi mancante, zona non coperta). Quindi salvano gli ordini e poi sparano tutto al sistema contabile tramite webapi. Ovviamente partono mail al cliente con conferma inoltro ordine ecc. La webapi ad esempio genera quando l'ordine viene salvato sul databse e inoltrato con flusso elettronico al sistema contabile, una mail con allego un PDF (DevExpress Reporting) dell'ordine.
Cosa analoga con la chiusura degli insoluti: essendo mandatari gli agenti prendono soldi e chiudono le partite. Parte la chiusura di queste partite che tramite webapi vengono segnale al sistema contabile e all'amministrazione. Parte una mail al cliente con la quale si dichiara di aver preso soldi per quelle partite.
- magazzino: la webapp, tramite plugin cordova per barcode mette a disposizione dell'addetto la funzione di lettura dei codici a barre. Nel report dell'ordine stampato ci sono i codici a barre degli articoli per riscontro con quelli letti direttamente sulle confezioni in magazzino o se queste mancano leggendoli proprio dal report d'ordine. Il magazziniere raggruppo gli articoli e chiude la gestione della preparazione della spedizione inoltrando le letture. Una routine chiamata dalla webapi verifica quantita e discrepanze e se tutto ok segnala al magazziniere e alla contabilità che l'ordine è in fase di spedizione. E poi tante altre belle cose concordate con il cliente di turno.

Spero sia tutto chiaro, ovviamente non ho parlato di analisi del dato ai fini statistici, rendicontativi, di business planning ecc...quelle sono cose che per altro sono anche abbastanza legate al cliente. Sebbene la statistica come la matematica non è proprio una opinione, a parte alcuni grafici standard, cliente che trovi, soluzione che adotti...
Modificato da flaviovb il 10 settembre 2018 09.07 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.