Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Chiariamoci idee e dubbi su LightSwitch - parte 4 (e fine)

Eccoci alla quarta e ultima parte di questa serie di post dedicata a chiarire alcuni dubbi e aspetti su Visual Studio LightSwitch.

Probabilmente è la parte più complicata da affrontare, ma ci proviamo. Parleremo infatti di come uno sviluppatore Access/VBA/VB 6 dovrebbe ragionare approcciando LightSwitch, con particolare riguardo a chi viene da Access e utilizza tipicamente le procedure guidate.

Al riguardo, alcuni feedback emersi nella survey anonima che abbiamo lanciato in LightSwitch Tips & Tricks:

Feedback 1: "Supporto per Access"

Feedback 2: "premesse buone, ma se voglio sostituire access ho bisogno anche di componenti di reportistica di buon livello!!"

Indubbiamente LightSwitch è un prodotto molto appetibile per chi proviene da Access e vuole migrare a .NET con uno sforzo contenuto; ed è giusto che sia così, ma bisogna dare dei chiarimenti importanti perché LightSwitch non è il successore di Access e non si comporta come Access. Per migrare con successo, sono necessari alcuni accorgimenti nell'approccio.

Perché Visual Studio LightSwitch

Visual Studio LightSwitch nasce con un intento: semplificare e velocizzare lo sviluppo di applicazioni gestionali. I progettisti di LightSwitch sanno che esistono molti pattern che si ripetono nella creazione di questo tipo di programmi (es. relazioni master-details) e quindi hanno creato un tool che si occupi di gestire questi pattern per conto dello sviluppatore. E' chiaro che LightSwitch non può essere adatto a ogni cosa; è dedicato a risolvere specifici problemi di business, ma non può essere adatto a ogni scenario. Tutto ciò che esula da quei pattern ricorrenti andrà probabilmente risolto con altri tool e tecnologie, come ad esempio WPF o i RIA Services in Silverlight per parlare in termini moderni, laddove lo sviluppatore potrà scrivere tutto quello che gli serve per rispondere a esigenze più complesse.

Già, lo sviluppatore. Visual Studio LightSwitch è un tool per sviluppatori, questo è un dogma. Che lo sviluppatore in questione sia molto esperto o un principiante, non ha importanza. L'importante è che si metta nell'ottica di dover scrivere codice, ma solo quel codice che appartiene alla c.d. business logic, senza preoccuparsi di scrivere il codice che accede ai dati o che genera l'interfaccia. Ricordate: in LightSwitch the code you write is the only code you write.

Come ti accedo ai dati: ovvero, perché non c'è supporto per Access

Ben sappiamo che Access consente di creare ottime applicazioni, non solo come database portabile da un pc all'altro come singolo .mdb, ma anche come frontend utilizzato nei confronti di database SQL. Insomma, cosine anche complesse. Il problema, però, è che se considerato nella sua ottica di partenza Access è ottimo come database di tipo single-user, ma è totalmente inadeguato in ambienti aziendali dove i dati sono gestiti da più client simultaneamente.

Provate a staccare il concetto di Access come ambiente di sviluppo e pensate ad Access come database. Provate a confrontare un .mdb con un database di SQL Server. Non sta a me insegnarvi le differenze, quello che importa è che LightSwitch ha come target gli scenari multi-user anche in realtà aziendali particolarmente articolate e complesse, dove SQL Server è l'unico engine che abbia veramente un senso. Che poi scriviate un'applicazione LightSwitch da usare su una singola macchina, poco importa: potete tranquillamente avvalervi di SQL Server Express edition senza tanti problemi.

I più coraggiosi potranno tentare di scrivere un WCF RIA Service personalizzato per accedere a un database Access, poiché Silverlight (la tecnologia-cuore di LightSwitch) non ha supporto diretto per i database Access e questa è un'altra ragione per il non supporto. Ma ne vale davvero la pena? Perché non considerare di importare dati esistenti da un database Access in uno SQL avvalendomi di quanto poi LightSwitch mi offre?

Per chi migra

Indubbiamente LightSwitch rappresenta una ghiotta occasione per migrare a .NET per coloro che scrivono codice in VB 6/VBA, e sappiamo che sono moltissimi. Non ultimi anche coloro che hanno usato Visual FoxPro. In questi contesti si fa meno fatica a capire, soprattutto in VBA, la logica di LightSwitch. Supponendo di usare Access e VBA da una parte e VB 6 dall'altra, ho un tool che mi aiuta a generare dati e interfaccia tramite wizard ma poi vado a personalizzare il comportamento dell'applicazione tramite codice, scrivendo azioni e interrogazioni personalizzate.

Da questo punto di vista LightSwitch è una crema, perché l'approccio è analogo ma con tecnologie molto più moderne e avanzate. Ci si focalizza sulla business logic ma non ci si perde a scrivere interfaccia e data access, cosa che invece è necessario fare in altri contesti (tipo VB 6). Tra l'altro, non è necessario conoscere le tecnologie sottostanti poiché fa tutto LightSwitch e noi utilizzeremo lo stesso codice nella business logic indipendentemente dagli strati sottostanti.

Chiaro, in LightSwitch il codice che scrivo non è VB 6 o VBA, ma è VB 2010 o C# 4. E' però sicuramente il modo più rapido e meno costoso per passare a .NET avvantaggiandosi di tecnologie moderne e affidabili.

Non solo: con uno (e uno solo) click, posso decidere di distribuire la mia applicazione come desktop client, Web, o nel cloud. Quali altri tool lo fanno?

Per chi usa Access senza scrivere codice

Non nascondiamoci dietro un dito: Access ha avuto un gran successo per almeno le tre seguenti ragioni:

  • ci sono utenti con una certa attitudine all'informatica che si costruiscono i propri database per velocizzare il lavoro. Non sono sviluppatori, ma hanno a disposizione le procedure guidate che sono sufficienti. Quindi, sono produttivi senza scrivere codice.
  • ci sono utenti con una certa attitudine all'informatica a cui viene imposto (per loro fortuna o sfortuna) di creare strumenti per la propria azienda volti a velocizzare il lavoro, pur non avendo la benché minima esperienza come sviluppatori. Quindi, realizzano strumenti senza scrivere codice.
  • i database di Access sono tendenzialmente portabili, nel senso che un singolo file .mdb contiene tutto, inclusa l'interfaccia

Da un punto di vista prettamente di utilizzo, Access non è un tool per soli sviluppatori mentre LightSwitch lo è, indipendentemente dall'esperienza che hanno. Che poi sarà usato dai cosiddetti Excel super-users... è un altro paio di maniche

Anche in questo caso LightSwitch rappresenta una ghiotta occasione per passare a un qualcosa di più moderno, scalabile, tecnologicamente avanzato. Però non gli si può chiedere di essere quello che non è, ossia un evoluto sostituto di Access. Microsoft stessa, per bocca del Team di LightSwitch, non ha mai presentato il nuovo tool come un sostituto di Access e anzi ha sempre sostenuto che non va considerato come tale poiché sarebbe un errore.

In LightSwitch non esistono procedure guidate, al contrario di Access. Non c'è un singolo file di database, al contrario c'è una complessa infrastruttura che non bisogna conoscere per forza (grande benefit per i poco esperti) ma che c'è. In LightSwitch scrivere codice è necessario; alcune demo mostrano come creare applicazioni senza scrivere codice, che è figo da vedere ma se non scrivo una funzione che verifichi che la data di consegna della merce non sia anteriore a quella in cui è stata ordinata beh... LightSwitch non può (e non deve) saperlo!

Ergo: se usate Access senza altro codice perché non siete sviluppatori ma vi semplificate la vita o perché ve l'hanno imposto, prima di fare un salto approfittate della Beta 2 per capire cosa avete davanti e date un'occhiata ai contenuti di LightSwitch Tips & Tricks e del LightSwitch Developer Center. Più che altro per non chiedere a LightSwitch cose per le quali non è nato o per evitare di dire "eh ma in Access..." quando sono due prodotti con scopi decisamente diversi.

Reportistica

Ne ho parlato nel post precedente. Proprio perché Access è diretto anche a non sviluppatori è dotato di componenti di reporting che coprono esigenze generiche. LightSwitch ha obiettivi diversi e per quanto avere componenti di reportistica integrati fosse auspicabile e gradito, se non altro si ha la possibilità di utilizzare i componenti esterni che soddisfano le nostre esigenze in modo effettivo e non approssimato.

Conclusioni

Alla fine di questa serie di post spero di aver contribuito a chiarire in che modo LightSwitch dovrebbe essere approcciato da chi proviene da altri ambienti. Se avete altri dubbi o perplessità, saremo ben lieti di rispondere nei forum di LightSwitch Tips & Tricks.

Alessandro

Print | posted on martedì 3 maggio 2011 18:11 | Filed Under [ Visual Studio LightSwitch ]

Powered by:
Powered By Subtext Powered By ASP.NET