Wrong version of ISDeploymentWizard in SSMS 17.8.1

Wrong version of ISDeploymentWizard in SSMS 17.8.1

The problem

Years ago, with SQL Server 2016 release, Microsoft came up with a separated brand new version of SQL Server Management Studio. It’s been a happy day for the SQL Server community and database developers.

Shortly afterwards, our company started to migrate every instances from older version of SQL Server to the 2016, using SSMS 17.*. Developers have already jumped into Visual Studio 2017 and everything seemed to work like a charm, until we started deploying integration services via the new SSMS, after we converted them to 2016 TargetServerVersion (which is NOT the Project Version).

The TargetServerVersion is the SSIS version, also for the deploy operations, while the Project Version setting tells to Visual Studio how to open projects based on .dtproj specifications on the XML projects definitions.

Some days ago I’ve realized that after updating to the latest build of SSMS (17.8.1), the .ispac deployment is actually executing the latest build of the Integration Services Deployment wizard (aka ISDeploymentWizard.exe). As a result every deploy of .ispac files, regardless trying double click or deploying directly from the Integration Services Catalog, the SSISDB, failed with one of the most scaring error message ever:

“[…] The Script Task <unique_name> uses version 15.0 script that is not supported in this release of Integration Services […]

What? Why? I’ve a workstation with SQL Server 2016 and the related Integration Services 13.0:

blog_ssis_error_001

The computer I’m speaking of has the same build of mine, nobody has installed any other Integration Services versions anywhere. Andy Leonard explained this behavior in this blog post. Unfortunately, in my scenario, I cannot solve the problem.

Let’s try to explain better.

Scenario

The workstation I’m working on has SQL Server 2016 (build 13.0.5149.0) and Integration Services 13.0 on Windows 10 Pro. I’ve got a simple package with a single script task which does literally anything:
blog_ssis_error_002bAs Andy suggested us, I’ve changed the TargetServerVersion to SQL Server 2016, so I’ve got C# 2015 compiler for scripts:

First execution and deploy

Executing it locally, nothing happens, but it happens in a green way (success):

blog_ssis_error_002a.PNG

Ok, now we’re going to deploy to the other machine, generating the .ispac file and double clickin on it. It’s important to make sure that you’re double-cliking the .ispac file. Do not right click on the Integration Service Catalog project folders because SSMS will execute the latest build of ISDeploymentWizard.exe by design.

blog_ssis_error_008b

deploy from SSMS 17.8.1

 

When double clicking, the app selector should use the version related to the TargetServerVersion setting of the .ispac. This works for many of my other computers. But for one of them, here is the screen:

blog_ssis_error_005

double click on .ispac file

Hey! This is 2017 also when clicking on .ispac file. Let’s try to deploy using the new tool. The deploy succeeded.

blog_ssis_error_006.PNG

And now, let’s try to validate the package execution via SSISDB, right clicking on the project itself and selecting “Validate…”. This is the result of the empty script package validation:

blog_ssis_error_007.PNG

I’ve tried on six different machines, five ran successfully and ONLY ONE returned the above error message. Still stuck in the middle.

What have we changed?

Just the setup of SSMS (17.8.1) updating the 17.7 one. Once again, the same setup on all six machines. Five by six worked, this one is trying to kill me.

For some strange reason, something (I assure you all, not someone) has changed the registry in the .ispac application association, maybe when double clicking for the first time the file in a pending reboot (?). We’re still investigating, since we used to avoid any change in production without permissions and processes. That said, it’s weird. And it was so difficult to get.

Solution

Easy to say, now that we’ve figured out the root consequence. Not so good, but changing the registry on the key HKEY_CLASSES_ROOT\.ispac with the 130 executable (IntegrationServices.ProjectDeploymentFile.130) fixed the unwanted behavior. The key has been set to IntegrationServices.ProjectDeploymentFile.140 right after the update from 17.7 and 17.8.1.

Instead of changing it via regedit, you can try an “open with…” with “use default” checked in order to force the association between .ispac file and the right ISDeploymentWizard.exe version. But this time, in this machine, it didn’t work. This is the reason why I tried the regedit action.

Conclusions

I have to say a big thanks to Andrea Amantini, one of my peer, which is well known for his ability to find out “a needle in a haystack.”. Strange things happened here. A combination of Murphy’s law, a sort of “black” friday and a pending reboot. Hopefully this helps someone, at least.

SQL Server Latest Updates (Jun. Jul. 2018)

Directly from the SQL Server Release Service blog, here the latest updates for SQL Server 2016 SP1, SP2, 2017 RTM and 2014 SP2:

Cumulative Update #12 for SQL Server 2014 SP2

Cumulative Update #10for SQL Server 2016 SP1

Cumulative Update #2 for SQL Server 2016 SP2

Cumulative Update #9 for SQL Server 2017 RTM

…Stay Tuned! 🙂

Agile @ School – Anno Terzo – Presentazione dei Progetti e Conclusioni

Agile @ School – Anno Terzo – Presentazione dei Progetti e Conclusioni

Anche quest’anno Agile@School è giunto al termine. Il percorso è stato come sempre ricco di nuove esperienze, imprevisti e soddisfazioni; un modo per osservare come le classi di studenti siano in grado di applicare gli insegnamenti portando a termine progetti fatti, finiti e funzionanti.

Sarà proprio questo il tema centrale del post: la presentazione dei progetti. Non ci soffermeremo sui singoli team perchè ognuno di essi, con i propri pregi e difetti, è stato in grado di mostrarci quanto di meglio potesse creare e di esporlo a tutta la classe.

Presentazione dei progetti

Ciascun team è stato chiamato ad esporre sotto forma di *pitch* il proprio lavoro, immaginando di avere di fronte i propri investitori (Gabriele, i professori e il sottoscritto) da convincere, sia dal punto di vista del valore tecnico che da quello commerciale. In 20 minuti, tutti hanno avuto il compito di mostrare le funzionalità del prodotto in termini hardware e software, con l’aggiunta di un possibile piano di vendita a sostenere il tutto. Grazie a quest’ultimo punto, anche i team non tecnicamente eccelsi avrebbero potuto “tenere il passo” puntando di più sul lato vendita e di design.

Per rafforzare quanto detto poco fa, il codice non è nemmeno stato preso in considerazione al momento della presentazione: Gabriele, tuttavia, se n’è occupato in prima persona confrontandosi faccia a faccia con i ragazzi consigliando loro eventuali migliorie, solo per determinare i punti deboli lato sicurezza, ottimizzazione e qualità dei listati.

Per ogni squadra, abbiamo deciso di valutare con il seguente questionario:

quest01

quest02

Giudizi, non voti. Focalizzazione su attitudini, non su skill. Tutto quanto di ottimistico (o critico costruttivo) che possa aiutare i docenti nella valutazione finale.

Guardate qui alcuni estratti di quanto visto durante la giornata:

 

Conclusioni di fine percorso

Vi è da dire che più l’edizione di Agile@School si ripropone e più diventa evidente l’importanza di focalizzarsi sugli aspetti della gestione del team. Ricordo ancora il primo anno, quando tutto era in fase embrionale, momento in cui ci siamo prestati ad aiutare i ragazzi sul codice vero e proprio, dimenticando il motivo per cui questo progetto è nato: fornire ai ragazzi gli strumenti e le attitudini per affrontare un qualsiasi progetto, personale o di team, che può prendere vita in un contesto lavorativo come nella sfera privata (time management).

Ecco, fare una retrospettiva su questo, sempre in puro stile agile, ci rende orgogliosi dei passi fatti fino ad oggi e di quanto ne potremmo ancora fare, affinando tecniche ed organizzazione al fine di lasciare ai ragazzi un’impronta il quanto più possibile ispiratrice per il loro futuro.

Per quest’anno è tutto, grazie per averci letto fino a questo punto.

E stay tuned! 🙂

IoTeams 2018 a Parma, il workshop introduttivo sull’Internet of Things

IoTeams 2018 a Parma, il workshop introduttivo sull’Internet of Things

L’Internet of Things è un argomento di grande interesse ai giorni nostri. Quasi per gioco anche io che non sono un esperto in materia ma più un appassionato, ho iniziato tempo fa a “divertirmi” con un Raspberri Pi3. Il gioco si è trasformato in un tentativo di prototipo che potesse risolvere un problema reale (vedi la gestione della stagionatura dei salumi o delle galline nel pollaio, ecc.). Il prototipo mi ha spinto a comprare una mille fori, una breadboard estesa, dei sensori diversi da quelli disponibili nello starter kit e a studiare meglio in generale l’elettronica legata al Raspberry. Insomma, dalla curiosità ad un interesse di quella che è, come mi piace definirla, l’informatica “tangibile con mano”.

Da qui siamo arrivati all’evento IoTeams a Parma, presso il Fab Lab. Organizzato da Engage IT Services, MF Labs e Officine On/Off, con la sponsorizzazione di Assitek, la giornata di workshop si è rivelata molto interessante. Insieme agli altri organizzatori abbiamo deciso di creare due percorsi, uno introduttivo basato su Windows ed uno interamente dedicato a Linux. Questo per coprire un po’ tutti i modi di accedere al mondo dell’IoT. 13 persone presenti distribuite sulle due track.

20180609_095613

Speaker della track Microsoft sono stati Marco Dal Pino (Microsoft MVP, Nokia Developer Champion, Intel Black Belt and Software Innovator) e Marco Minerva (Microsoft MVP, Co-Founder of DotNetToscana User Group). Con una sessione in co-speech hanno approfondito i concetti legati a Windows IoT Core, all’IoT negli scenari reali e a come in verità tali scenari fossero già presenti da tanto tempo. È importante capire come sistemi embedded avessero una larga distribuzione, soprattutto nel mondo dell’automazione industriale. Dopo la prima parte si è passati alla pratica sul sistema operativo e sulle varie “board” (passatemi il termine) per far capire ai partecipanti quali possono essere le innumerevoli applicazioni possibili. Alla fine si è arrivati alle applicazioni Universal Windows Platform (UWP). Una mattina di panoramiche per arrivare ad un pomeriggio divertente ed interattivo, come si può vedere dai video sottostanti:

Lo speaker della track Linux è stato Mirco Ferrari (CEO & Founder at MF Labs, tech enthusiast) ed ha portato con se un kit Arduino ed una serie di sensori per realizzare, durante l’arco della giornata, una sorta di stazione metereologica. Anche in quest’aula, la prima parte della mattina si è focalizzata sull’introduzione all’argomento. Nella seconda parte sono stati illustrati i protocolli di comunicazione nell’ambito dell’IoT. Di grande interesse è stata la parte in cui Mirco ha mostrato quali sistemi gratuiti esistono per poter allestire un prototipo IoT nel cloud. La dimostrazione ha coinvolto NodeMCU e una monitorizzazione interattiva diretta sui sensori. Anche questo percorso si è rivelato di estremo interesse e, come per l’altra track, oltre che l’utilità, si è proprio percepita la parte di “interazione” e “divertimento tecnico” dei partecipanti.

20180609_103403

Nonostante l’evento fosse un pilota devo dire che è andato piuttosto bene. I partecipanti si sono presentati tutti, puntuali e interessati alla materia, i gadget sono stati graditi, gli speaker sono stati ineccepibili.

001

Un buon progetto, che spero sia destinato a contunuare già a partire dal prossimo anno. Ottimo risultato, insomma.

Stay tuned!

 

 

SQL Server Latest Updates (May 2018)

Directly from the SQL Server Release Service blog, here the latest updates for SQL Server 2016 SP1, SP2 and 2017 RTM:

Cumulative Update #7 for SQL Server 2017 RTM

Cumulative Update #9 for SQL Server 2016 SP1

Cumulative Update #1 for SQL Server 2016 SP2

…Stay Tuned! 🙂

Agile@School – Anno terzo – Apertura del progetto

Agile@School – Anno terzo – Apertura del progetto

Siamo già al terzo anno consecutivo. Il tempo vola, ma devo dire che i progetti che sono nati in Engage IT Services sono anche solidi, graditi e duraturi. È successo con gli eventi (quest’anno ben tre per coprire i trend topic IoT, DevOps e il nostro SQL Saturday) e accade anche con Agile@School. Pensate che nel 2017 abbiamo “aperto” anche una nuova realtà in quel di Rovigo, grazie a Michele Ferracin (qui i suoi post in reblog e le statistiche finali). Insomma, il motore gira, forte e non dà cenni di arresto. Quindi siamo qui, 2018 nuovo vestito per il progetto e la scelta di scrivere i post ad esso relativi in italiano, anche per rispettare quanto fatto nel nostro Paese.

La nostra azienda è finalmente entrata a far parte di un progetto più ampio di Alternanza Scuola Lavoro per la nostra scuola di riferimento (I.I.S.S. Gadda di Fornovo, Parma) per cui, a differenza delle edizioni precedenti, quest’anno potremo sfruttare un intero mese. Gli studenti non avranno più incontri isolati ma una serie di giornate consecutive di lavoro “sul pezzo”, senza dispersioni e senza includere ore extra scolastiche, sulle quali è piuttosto difficile investire per gli adolescenti. Ma non solo, quest’anno abbiamo anche un “corpo docenti”: non mancherà chi ci ha supportato fin dall’inizio (la prof. Pinella Pedullà, informatica e tecnologia) ma avremo anche importanti aggiunte, come il prof. Stefano Saccani (informatica), la prof. Enrica Groppi, il prof. Graziano Maniello e tutti quanti hanno supportato il progetto “donando” le ore del normale programma di studi.

Edizione 2018

Partiamo con la descrizione di Agile@School 2018. Due anni fa, l’edizione pilota, spiegammo ad una decina di ragazzi di quinta superiore come affrontare un singolo progetto in agile (Scrum), mentre l’anno scorso abbiamo optato per un’idea multi-progetto e multi-team con supporto di kanban board. In entrambi i casi, la base è stata Visual Studio Team Services utilizzato con template differenti.

L’approccio

Quest’anno Gabriele Etta (lo ringrazio per essermi sempre di aiuto) ed io abbiamo optato per lasciare libertà agli studenti, concentrando l’iter sulla self-organziation e sul principio di responsabilità. L’obbiettivo è in definitiva quello di raggiungere un approccio “dal basso verso l’alto” (bottom-up) in cui scelte e proattività vincono su comando e controllo. Come? Ponendo gli studenti di fronte ai problemi, lasciandoli fare, sempre nell’ottica della realizzazione di un prodotto/servizio. Ovviamente la nostra presenza è quella che consente loro di ottenere consigli pragmatici su comportamenti e strumenti disponibili.

img_20180517_083248.jpg

Le novità

Questa edizione porta con sé differenze anche per la classe ed il numero di persone. Una ventina di ragazzi di terza, che molto probabilmente incontreremo ancora nel 2019 e, perché no, anche nel 2020. Ed è questa la vera novità. Agile@School sarà un progetto a lungo termine, non dedicato ad un solo anno scolastico. Approfondiremo la conoscenza con gli studenti e potremo valutarli anche su più aspetti, nel tempo. A mio modo di vedere ciò corrisponde ad un grande valore aggiunto per gli studenti, per la scuola e per noi. Un percorso da seguire tutti insieme.

Il primo incontro

Nella prima “puntata” abbiamo affrontato un punto delicato della comunicazione. Il farsi conoscere, capire le proprie attitudini ed esporre i propri interessi. Ma non solo, uno dei primi passi per responsabilizzare i ragazzi è stato quello di selezionarsi a vicenda, di lasciar costruire i team naturalmente, senza imporre nulla. Certo, abbiamo cercato di far capire che un team può essere costituito da ruoli diversi e che non è una cattiva idea far crescere anche persone che non sono “forti” in particolari ambiti, ma quello è stata l’unico consiglio. Abbiamo in poco tempo ottenuto cinque team, due dei quali da cinque elementi e tre da quattro.

I progetti

I professori prima dell’incontro hanno creato un elenco di cinque idee, tutte orientate al mondo dell’IoT e, per essere più precisi, al rapporto tra l’informatica e l’elettronica ai giorni nostri. Tutti i progetti sono basati su Arduino e sul kit di sviluppo con esso fornito. Ogni idea è vista come una “partenza”, che corrisponde al requisito minimo e necessario ma che, allo stesso tempo, può essere estesa e resa “personalizzata” a scelta del team, con analisi, implementazioni, studi e rischi annessi. Nel prossimo post descriveremo meglio i contenuti, ma possiamo affermare che la base è tendenzialmente la gestione di sensori di vario genere e la presentazione su web con utilizzo di storage per il salvataggio degli eventi che si verificano. Il prof. Saccani, dopo la presentazione dei progetti, ha osservato con noi i ragazzi procedere alla creazione autonoma dei team e all’assegnazione di progetti. Dopo un primo conflitto di preferenza (ogni idea poteva essere assegnata ad un solo team) e dopo aver capito la possibilità infinita di estensioni applicabili in ogni ambito, le squadre hanno concordato le assegnazioni finali.

img_20180517_101351.jpg

Le cerimonie

Il primo meeting che è stato suggerito ai ragazzi è il daily meeting. Con un’occasione del genere (tutti i giorni a lavoro per un mese, ricordo) non potevamo fare altrimenti. Abbiamo spiegato le tre fatidiche domande, illustrando i modelli di risposta accettabile e non, ponendo l’attenzione sui tempi e sul livello di dettaglio. Fare il daily meeting è stato uno dei compiti assegnati a tutti.

La gestione delle attività

Come strumento per il task management abbiamo suggerito Trello e come chat collaborativa Slack, cercando di non consigliare altro. Come compito, alla fine della settimana, ogni team dovrà aver ideato un nome per il proprio “prodotto”, un’analisi iniziale, soprattutto funzionale, e una relazione per descrivere i casi d’uso. E chiaramente dovrà presentarlo, simulando una sorta di “ricerca fondi” da investire nella produzione concreta del prodotto stesso. Proprio come una piccola startup.

Per chiudere

Tutti ci aspettiamo soddisfazioni da Agile@School 2018 e confidiamo nel fatto che sia una buona base per i prossimi anni. Le premesse sono più che soddisfacenti, ma dovremo valutare passo dopo passo, cercando di adattarci al cambiamento. Al prossimo appuntamento…

Stay tuned! 🙂

SQL Server Latest Updates (Mar.-Apr. 2018)

Directly from the SQL Server Release Service blog, here the latest updates for SQL Server 2014 SP2, 2016 SP1 and 2017 RTM:

Cumulative Update #5 for SQL Server 2017 RTM

Cumulative Update #6 for SQL Server 2017 RTM

Cumulative Update #11 for SQL Server 2014 SP2

Cumulative Update #8 for SQL Server 2016 SP1

The SQL Server 2016 Service Pack 2 is available here.

You can also download the new OLE DB driver for SQL Server.

…Stay Tuned! 🙂