do more with less
news, esperienze, esempi da condividere e qualcosa su di me

giovedì 13 dicembre 2012

Aggiornare un workspace in TFS

Se vi dovesse capitare di rinominare un computer di sviluppo, in cui avete definito e utilizzato un Workspaces di TFS, vi sarà utile sapere che è possibile riconciliare il vostro ambiente di lavoro con la cache di TFS. Questo vi permetterà di superare il messaggio di errore che vi rende noto che il workspace non è più presente nella macchina corrente. Per poterlo fare basta appoggiarsi al tool da linea di comando tf.exe utilizzando la seguente sintassi:

tf workspaces 
    /updateComputerName:oldComputerName 
    /collection:TeamProjectCollectionUrl
dove:


  • oldComputerName = nome del computer prima della modifica
  • TeamProjectCollectionUrl = Url assoluto della collezione di team project a cui si riferisce il workspace

Un esempio pratico potrebbe essere il seguente:



tf workspaces 
    /updateComputerName:"knodevPc"
    /collection:"http://tfs.knodev.com:8080/tfs/DefaultCollection"

venerdì 7 dicembre 2012

Rilasciata la ALM Virtual Machine aggiornata a Visual Studio 2012 Update 1

Ieri nel suo blog Brian Keller ha comunicato la disponibilità della versione aggiornata della ALM Virtual Machine. Se siete interessati potete scaricarla da qui.

mercoledì 5 dicembre 2012

XE.NET: WinRT Track

XAML/C# vs HTML5/Javascript: Quale strumento usare per sviluppare metro-style applications?
La moltiplicità di linguaggi per sviluppare applicazioni Metro è di sicuro impaccio per chi desidera iniziare e vorrebbe farlo nel modo migliore. Questo cocktail, unito ad alcuni luoghi comuni, può davvero avere un impatto disastroso sui tempi di sviluppo e sull’efficacia dell’applicazione risultante. Ecco quindi la necessità di comparare quelli che a ragion veduta si possono chiamare due accerrimi rivali, XAML e Javascript. In una sessione che promette di mostrare come si  raggiungono i medesimi risultati, ove possibile, con ciascuno dei strumenti.
Speaker: Andrea Boschin

WinRT - Under the hood
In questa sessione vedremmo di capire gli aspetti che stanno dietro le quinte e che compongono WinRT. Vedremmo come scrivere componenti che estendono WinRT stesso e che siano consumabili tra vari linguaggi tramite RCW (Runtime Callable Wrapper), esploreremo le extensions registration che compongono il WinRT registration catalogs e vedremmo come si è evoluta la parte COM. Esploreremo i meccanismi di attivazione delle estensioni e i meccanismi del RPCSS (Remote Procedure Call Services).
Speaker: Mirco Vanini

TFS Dashboard
Team Foundation Sever offre diversi entry point per monitorare il ciclo di vita della propria applicazione. In alcune situazioni potrebbe essere utile estendere le modalità di visualizzazione offerte creando una dashboard in grado di fotografare la situazione di un progetto/prodotto in termini di KPI, performance del team e andamento dell'iterazione in corso. Nella sessione vedremo come sia possibile realizzare una dashboard di controllo utilizzabile da mobile device.
Speaker: Davide Vernole

Giovedi 6/12/2012 ore 19:00 Novotel Castellana Via Alfredo Ceccherini 21 - Venezia Mestre

lunedì 3 dicembre 2012

Linee guida per il Branching e Merging in Team Foundation Server

In questo video Micheal Learned, un membro del team di Visual Studio ALM Rangers, ci illustra la guida “Visual Studio Team Foundation Server Branching and Merging”. Negli ultimi 5 anni questa guida ha subito diverse revisioni grazie ai feedback dei clienti, l’esperienza di consulenza e l’evoluzione funzionale di Team Foundation Server.

giovedì 8 novembre 2012

XE.NET: Mobile Track

Sviluppo di applicazioni mobile con ASP.NET MVC 4
Lo sviluppo di applicazioni mobile stà entrando sempre maggiornmente nella vita dello sviluppatore web.In questa sessione vedremo come ASP.NET MVC 4, con l'aiuto di alcune librerie, possa agevolare lo sviluppo di applicazioni web che dovranno essere consumate da dispositivi mobile. Analizzeremo le problematiche che differenziano lo sviluppo web-mobile rispetto al normale sviluppo web e le affronteremo passo passo.
Speaker: Andrea Dottor

Servizi RESTfull sfruttando le ASP.NET WebAPI
Come realizzare una "completa" API esposta tramite lo standard HTTP applicando a pieno un approccio REST-full per l'accesso e la gestione delle Risorse. Il servizio sarà realizzato sfruttando a pieno le possibilità offerte da ASP.NET WebAPI - l'ultima tecnologia .NET introdotta per gestire una completa pipeline HTTP estendibile e personalizzabile (MassageHandlers, ActionFilters e Formatters) in modo finalmente tipizzato grazie a tutta una serie di oggetti .NET.Oltre agli oggetti tipici del protocollo HTTP: Request, Response, Headers, Media-Types, Methods e StatusCode verranno affrontati anche aspetti più complessi e interessanti come CORS, Token Authentication, OAuth ...
Speaker: Daniele Morosinotto 

Venerdi 9/11/2012 ore 20:00 Novotel Castellana Via Alfredo Ceccherini 21 - Venezia Mestre

SQL Server Data Tools - November 2012 è ora disponibile

Il team dei SQL Server Data Tools (SSDT) ha annunciato il rilascio della versione aggiornata che può essere scaricata qui:

Se siete interessati afli SSDT Power Tools, ecco i link alle versioni compatibili con la versione appena rilasciata:

Per un approfondimento dei contenuti e delle novità cliccate qui

mercoledì 31 ottobre 2012

Finita la Preview di Team Foundation Service

Il team di Visual Studio ALM ha annunciato oggi, durante la Build conference a Redmond, che è terminata la Preview di Team Foundation Service. Il nuovo indirizzo per il servizio è http://tfs.visualstudio.com. Per avere maggiori informazioni sui cambiamenti è possibile leggere quanto riportato qui: http://tfs.visualstudio.com/en-us/pricing/information/

Con questo cambiamento, il vostro account è ora accessibile all’indirizzo http://<youraccountname>.visualstudio.com.  Il vecchio dominio tfspreview.com continuerà a funzionare ma è consigliabile pianificare l’inizio dell’utilizzo del nuovo Url quanto prima. 

Una delle differenze da tenere presente è che è necessario digitare l’Url completo (es: https://knodev.visualstudio.com/) del vostro account all’interno della finestra di dialogo di Aggiunta di un Team Foundation Server in Visual Studio.  Come potete notare è ora necessario utilizzare il protocollo https://.  Probabilmente con uno dei prossimi update questa impostazione potrebbe essere facilitata.

TFS on the cloud è sicuramente una delle novità più gradite soprattutto per le micro realtà informatiche che spesso non utilizzano TFS e non applicano metodologie per la gestione dell’Application Lifecycle Management a causa dei costi delle licenze. Ora possiamo iniziare a ipotizzare scenari di ALM Low Cost.

venerdì 12 ottobre 2012

XE.NET: Windows 8 & Visual Studio 2012

Being authentically digital: I nuovi paradigmi di User Interface nelle metro-style applications
Le metro-style application introducono un modo completamente innovativo di affrontare l'interfaccia utente, per consentire una migliore fruibilità delle applicazioni in un ambiente misto touch e mouse oriented. Questa dualità ha portato all'ideazione di alcuni paradigmi di interfaccia che rappresentano dei veri e propri pattern visuali nella gestioni di specifici casi. In questa sessione affronteremo questi paradigmi con alcuni esempi che evidenziano quando è preferibile usarli.
Speaker: Andrea Boschin 

Building the Internet of Things
In questa sessione vedremmo i concetti fondamentali di "Internet of Things" e come questa stia rapidamento cambiando il nostro mondo. La sessione si fonda sulla realizzazione di un esempio pratico utilizzando micro dispositivi basati su .NET MF e Microsoft StreamInsight. Vedremmo in dettaglio come StreamInsight sia la proposta di Microsoft per l'analisi in tempo reale di flussi di dati senza la necessit di scriverli su disco.
Speaker: Mirco Vanini  

Venerdi 12/10/2012 ore 20:00 Novotel Castellana Via Alfredo Ceccherini 21 - Venezia Mestre

sabato 6 ottobre 2012

Rilasciata la prima versione del Team Foundation Server Word Add-in

Gli ALM Ranger stupiscono ancora! Hanno rilasciato la prima versione (1.0.12.0622) dell’add-in di Word per connettersi a Team Foundation Server. L’add-in permette di importare i work item da un progetto di Team Foundation Server e generare un documento Word professionale partendo dai TFS Work items. Per maggiori informazioni su questo progetto, potete visitare il progetto TFS Word Add-In in Codeplex.

domenica 16 settembre 2012

Gestire il ciclo di vita delle Modern App con Visual Studio 2012

Creare software di qualità richiede molto più che solo sviluppatori di grandi qualità. Visual Studio 2012 ha la soluzione giusta per supportare il vostro team di sviluppo nel definire il vostro progetto, nello sviluppare e testare il software, nel rilasciare e rendere operativo in produzione il vostro applicativo. Brian Harry, in questo video, mostra come con Visual Studio 2012 il nostro team di sviluppo può focalizzarsi nel creare risultati eccezionali garantendo qualità, agilità e riducendo i tempi di rilascio.

venerdì 14 settembre 2012

TSF, Cloud e nuove funzionalità in Visual Studio 2012

Un video in cui Brian Keller e Brian Harry discutono di TFS, cloud, architettura e nuove caratteristiche al lancio di Visual Studio 2012.

giovedì 13 settembre 2012

XE.NET: ASP.NET 4.5, SQL Server 2012 e Visual Studio 2012

What's New in ASP.NET 4.5 and Visual Studio 2012
Il Microsoft .NET Framework è in continua evoluzione, e con la prossima versione verranno rilasciate interessanti funzionalità riguardanti ASP.NET.All'interno di questa sessione conosceremo tutte queste novità, ed andremo invece più in dettaglio in alcune di esse, permettendo a chi conosce già ASP.NET di poter essere più produttivo (Strongly Typed Data Controls, Model Binding, Asynchronous, WebSocket, ... ), mentre, per chi invece non ha molta esperienza con questa tecnologia, potrà vedere come i nuovi template di progetto e Visual Studio 2012 potranno aiutarlo ad approcciare correttamente queste tipologie di applicazioni.
Speaker: Andrea Dottor 

SQL Server 2012 come motore di ricerca semantico
Con l'aumentare del numero di documenti creati, ricevuti e archiviati informaticamente, aumenta di conseguenza la difficoltà e i tempi per reperire tali documenti in base al loro contenuto e significato. Grazie a SQL Server 2012, alle sue nuove funzionalità Filestream e caretteristiche del motore FullText, è possibile andare oltre alla "classica" gestione di parole e frasi chiave collegate al singolo documento. Grazie alla ricerca semantica si è in grado di ricercare i documenti secondo il loro significato, trovare documenti correlati e reperire documenti simili, in modo semplice ed efficace.
Speaker: Emanuele Zanchettin

Venerdi 14/09/2012 ore 20:00 Novotel Castellana Via Alfredo Ceccherini 21 - Venezia Mestre

giovedì 30 agosto 2012

Resettare le credenziali di accesso a Team Foundation Server

Ci sono situazioni in cui può essere necessario connettersi a TFS con un utente differente da quello che utilizziamo abitualmente. Quando ci capita ci scontriamo col fatto che Visual Studio ricorda le credenziali con cui ci siamo connessi a TFS l’ultima volta che lo abbiamo utilizzato. Per ovviare a questo basta ricordarsi dove vengono memorizzare le credenziali (Username e password) in Windows e quindi rimuoverle per far si che Visual Studio ci richieda nuovamente di inserirle. Ecco come è possibile farlo.

TFSCredential

Avviate il Control Panel e avviate la funzionalità Credential Manager seguendo questo path Control Panel > User Accounts And Family Safety > Credential Manager. Qui selezionate il vostro Team Foundation Server e cliccate Remove e il gioco è fatto.

lunedì 20 agosto 2012

mercoledì 1 agosto 2012

Cosa non fa per me…

Ciclicamente mi fisso sull’idea di legarmi come dipendente a una società convinto che quello sia il sentiero lavorativo che devo percorrere. E come sempre alla fine mi pento della scelta. Perchè? Probabilmente ritengo più importante la libertà nel gestirmi l’organizzazione del lavoro che la sicurezza “implicita” che da una relazione lavorativa a tempo indeterminato. Oggi mi trovo nella seconda fase del ciclo, quello in cui mi pento della scelta.

Ho deciso di rivedere il rapporto che mi lega con l’attuale società per cui lavoro cercando di rimodularlo in un rapporto di consulenza. I tempi sono anche quelli corretti, visto che la prima parte del progetto che ci ha portato a collaborare è avviata e abbastanza autosufficiente. C’è ancora molto da fare ma ora posso contare su un team e non su 11 distinti elementi. Team che sta dimostrando di assimilare, giorno dopo giorno, i concetti di SCRUM e dell’ALM e che quindi sarà in grado di meglio seguirmi nella continuazione del progetto anche senza una mia costante presenza in azienda.

Ok, è ora di avviare il processo di distacco.

venerdì 22 giugno 2012

Installare il plug-in di TFS tramite il marketplace di Eclipse

Per le versioni di Eclipse che includono il client del Marketplace di Eclipse, il sistema migliore per aggiungere un nuovo plug-in è sicuramente quello di scaricarlo direttamente dal marketplace. Questo vale anche per il plug-in di TFS così come mostrato in questo post.

giovedì 14 giugno 2012

XE.NET: Playing with gadgets

Are you a Gadgeteer?
Hey there! Are you ready to create something awesome? Microsoft.NET Gadgeteer è un toolkit open source per la costruzione di dispositivi elettronici di piccole utilizzando il .NET Framework Micro e Visual Studio. In questa sessione vedremmo l'evoluzione del .NET MF verso questo nuovo toolkit e come cambia l'approccio si costruttivo che implemntativo verso i micro dispositivi. Durante la sessione saranno esplorati i nuovi strumenti messi a disposizione, il cambi di paradigma per l'accesso all' hw e vedremmo poi come sia possibile integrare nuove componenti sia hw che sw all'interno di Visual Studio e di .NET Gadgeteer.
Speaker: Mirco Vanini 

Playing with Team Foundation Server
L'integrazione di un sistema di gestione del ciclo di vita di un'applicazione come Team Foundation Server richiede, in alcuni casi, l'interazione al di fuori delle normali interfacce utente offerte da Microsoft. Personalizzazioni di applicativi esistenti e nuovi applicativi possono attingere dal repository di TFS per arricchire le informazioni presentate o per fornire strumenti nuovi per monitorare o aggiornare elementi di lavoro di un'iterazione. La sessione fornirà un'indicazione di come sia possibile sfruttare gli entry point che TFS mette a disposizione da applicazioni custom.
Speaker: Davide Vernole 

Venerdi 15/06/2012 ore 20:00 Novotel Castellana Via Alfredo Ceccherini 21 - Venezia Mestre

sabato 9 giugno 2012

Cosa c’è di nuovo in Microsoft Test Manager rilasciato con Visual Studio 2012 RC

Da quando è stato rilasciato la prima volta, il Microsoft Test Manager (MTM) ha fatto notevoli progressi. La versione che si sta consolidando nel rilascio di VS2012 RC è sicuramente un bel passo avanti per tutti quelli che fanno test funionali sulle loro applicazioni. Per sapere cosa contiene di nuovo questa versione potete leggere questo post: What's new for Microsoft Test Manager in VS 2012 RC.

giovedì 24 maggio 2012

XE.NET: Virtual Meeting - Windows and Gaming

Sviluppare un videogame in Windows
Un'esperienza nell'advergaming mi porta ad ampliare e generalizzare il discorso sullo sviluppo di casual games (giochi ʺsempliciʺ, brevi, ma accattivanti) su Windows (XNA, Silverlight, Silverlight 3D, Windows Phone). Verrà descritto il ciclo base (render/update), un modello ad oggetti, le risorse (grafiche, sonoro), l'integrazione con il Web e con gli strumenti social. Per soddisfare il sogno di un programmatore ordinario (di giorno) di sviluppare un videogioco (di notte).
Speaker: Marco Parenzan

Venerdi 24/05/2012 ore 21:00 – Online

venerdì 11 maggio 2012

Estendere l'applicazione per una Tile secondaria

Estendere la propria applicazione Metro UI per Windows 8, con le funzionalità previste dal contratto di Search, è tutto sommato un'operazione semplice (Activating Windows 8 contracts in your app). I problemi potrebbero nascere nel momento in cui la vostra applicazione richieda una o più Tile secondarie. In questi casi il Manifest Editor si limita a estendere l'applicazione richiamata dalla Tile principale mentre non modifica la configurazione delle eventuali Tile secondarie. Per farlo è sufficiente editare il package.appxmanifest con l'editor xml di Visual Studio per far si che anche le applicazioni secondarie siano estese con le funzionalità di Search.

Ecco come procedere:

  • Estendete l'applicazione primaria con il Manifest Editor;



  • Salvate le modifiche
  • Aprite il file package.appxmanifest utilizzando l'editor xml di Visual Studio



  • Individuate l'elemento <Extension> dell'applicazione primaria


  • Copiate tutto l'elemento e il suo contenuto
  • Incollate quanto copiato nella sezione di ogni applicazione secondaria sotto l'elemento </VisualElement> e prima della dell'elemento </Application>.



  • Salvate e il gioco è fatto.

mercoledì 2 maggio 2012

XE.NET: Uno sguardo al futuro

Visual Studio vNext - Application Lifecycle Management
La prossima versione di Visual Studio introduce interessanti novità sulla gestione del ciclo di vita di una applicazione. In questa sessione esploreremo le novità che si prevede saranno introdotte simulando i diversi momenti che compongono il ciclo delle nostre applicazioni ponendo attenzione alle peculiarità che dovrebbero rendere il nostro lavoro più efficiente.
Speaker: Davide Vernole 

Sviluppare applicazioni Metro con Windows 8 e WinRT
La presentazione di BUILD ha evidenziato come Windows 8 sarà un nuovo sistema operativo che connette un ambito prettamente Consumer-oriented con il classico desktop che molti di noi conoscono profondamente sia come utente che come sviluppatore. Windows 8 introdurrà un nuovo modello di sviluppo di applicazioni, denominato METRO, che inizialmente sarà soprattutto dedicato all'ambito Consumer e basato su un Marketplace online simile a quello di windows Phone 7. In questa sessione vedremo i primi rudimenti dello sviluppo con questa piattaforma con particolare riguardo a XAML e C#.
Speaker: Andrea Boschin  

Giovedi 03/05/2012 ore 19:00 Novotel Castellana Via Alfredo Ceccherini 21 - Venezia Mestre

domenica 29 aprile 2012

Il Test Controller di Visual Studio 11 Beta supporta i 64 Bit

Uno dei limiti del Test Controller della versione 2012 era il fatto di funzionare solo in modalità a 32 Bit. Come processo a 32 Bit era limitato nell’uso della ram ai noti 2GB con conseguenti problemi di “Out of Memory” in casi di particolare stress. Il nuovo Test Controller permette di risolvere questo limite e di sfruttare meglio le risorse a disposizione. In questo post trovate un approfondimento sull’argomento.

venerdì 20 aprile 2012

Call RPG Subrutine from .NET

Oggi ho provato a verificare come fosse possibile chiamare una subrutine, scritta in RPG in AS/400 da un programma scritto in C#. Il risultato del test è stato positivo anche se, per il momento, mi sono limitato a una chiamata a un metodo che prevedeva un parametro di input e uno di output (entrambi di tipo stringa). Partendo da un esempio presente in rete (Calling AS/400 (AS400) RPG Programs From ASP.NET) ho realizzato un banale programma in RPG chiamato HELLORPG. Il listato del programma è il seguente:

   1: *-------------------------------------------------------------------------
   2: *                                                                        -
   3: *  Nome Programma . : HELLORPG - Ritorna Hello + string passata          -
   4: *                                                                        -
   5: *-------------------------------------------------------------------------
   6: *?INDICATORI:
   7: *-------------------------------------------------------------------------
   8:  PJNAME          S            128A
   9:  PJRESULT        S            128A
  10:  
  11:                    ExSr      DEFCAM
  12:                    ExSr      ROUT01
  13:                    SetOn                                        LR
  14: *-------------------------------------------------------------------------
  15: ** Flusso principale
  16: *-------------------------------------------------------------------------
  17:      ROUT01        BegSr
  18: *
  19:                    Eval      PJRESULT = 'Hello ' + %Trim(PJNAME)
  20: *
  21:                    EndSr
  22: *-------------------------------------------------------------------------
  23: * Definizione campi base
  24: *-------------------------------------------------------------------------
  25:      DEFCAM        BegSr
  26: *
  27:      *Entry        PList
  28:                    Parm                    PJNAME
  29:                    Parm                    PJRESULT
  30: *
  31:                    Clear                   PJRESULT
  32:                    EndSr
  33:  

Lato .NET ho creato una console application per invocare la subrutine RPG. Il contenuto della classe Program.cs, creata dal template del progetto di tipo Console Application in C# è il seguente:



   1: static void Main(string[] args)
   2: {
   3:     Console.WriteLine(InvokeRPG("from AS/400"));
   4:     Console.ReadLine();
   5: }

Internamente alla classe è presente anche un metodo InvokeRPG che si occupa di predisporre la chiamata al verso AS/400. Il codice del metodo prevede la creazione di un’istanza a una classe di help che si occupa di configurare il sistema di riferimento, predisporre la chiamata, eseguirla e tornare gli eventuali valori di ritorno.


Il metodo InvokeRPG è riportato di seguito:



   1: static string InvokeRPG(string name)
   2: {
   3:     //Istanza alla classe di helper
   4:     AS400Program program = new AS400Program(RPGConsole.Properties.Settings.Default.DVConnection);
   5:  
   6:     //Istanza al converter per le stringhe
   7:     cwbx.StringConverter stringConverter = new cwbx.StringConverter();
   8:  
   9:     //Creazione collezione dei parametri e loro valorizzazione
  10:     cwbx.ProgramParameters parameters = new cwbx.ProgramParameters();
  11:  
  12:     parameters.Append("PGNAME", cwbx.cwbrcParameterTypeEnum.cwbrcInput, 128);
  13:     stringConverter.Length = 128;
  14:     parameters["PGNAME"].Value = stringConverter.ToBytes(name);
  15:  
  16:     parameters.Append("PGRESULT", cwbx.cwbrcParameterTypeEnum.cwbrcOutput, 128);
  17:  
  18:     //Esecuzione della chiamata
  19:     program.Invoke(true, ref parameters);
  20:  
  21:     //Conversione del valore di ritorno
  22:     string result = stringConverter.FromBytes(parameters["PGRESULT"].Value);
  23:  
  24:     program.Close();
  25:  
  26:     return result;
  27: }

La classe di helper è la seguente:



   1: public class AS400Program
   2: {
   3:     private bool as400Configured = false;
   4:     private cwbx.AS400System as400;
   5:     private cwbx.Program program;
   6:  
   7:     //Formato della configurazione: as400;userid;password;library;program
   8:     public AS400Program(string configuration)
   9:     {
  10:         if (!as400Configured)
  11:         {
  12:             string[] settings = configuration.Split(';');
  13:             if (settings.Length == 5)
  14:             {
  15:                 as400 = new cwbx.AS400System();
  16:                 program = new cwbx.Program();
  17:  
  18:                 as400.Define(settings[0]);
  19:                 program.system = as400;
  20:                 program.system.UserID = settings[1];
  21:                 program.system.Password = settings[2];
  22:                 program.LibraryName = settings[3];
  23:                 program.ProgramName = settings[4];
  24:                 as400Configured = true;
  25:             }
  26:             else
  27:             {
  28:                 throw (new Exception(
  29:                     string.Format("Invalid AS400Program configuration string : [{0}]", configuration)));
  30:             }
  31:         }
  32:     }
  33:  
  34:     //Predisposizione e invocazione della subroutine
  35:     public bool Invoke(bool throwInsteadOfReturn, ref cwbx.ProgramParameters parameters)
  36:     {
  37:         bool success = false;
  38:  
  39:         try
  40:         {
  41:             //Gestione della connessione
  42:             if (as400.IsConnected(cwbx.cwbcoServiceEnum.cwbcoServiceRemoteCmd) == 0)
  43:             {
  44:                 //Disconnesione e riconnesione
  45:                 as400.Disconnect(cwbx.cwbcoServiceEnum.cwbcoServiceAll);
  46:                 as400.Connect(cwbx.cwbcoServiceEnum.cwbcoServiceRemoteCmd);
  47:  
  48:                 if (as400.IsConnected(cwbx.cwbcoServiceEnum.cwbcoServiceRemoteCmd) == 0)
  49:                 {
  50:                     //TODO: da gestire
  51:                 }
  52:             }
  53:  
  54:             program.Call(parameters);
  55:  
  56:             success = true;
  57:         }
  58:         catch (Exception e)
  59:         {
  60:             //Gestione errori AS/400
  61:             if (as400.Errors.Count > 0)
  62:             {
  63:                 foreach (cwbx.Error error in as400.Errors)
  64:                 {
  65:                     //TODO: da gestire
  66:                 }
  67:             }
  68:  
  69:             if (program.Errors.Count > 0)
  70:             {
  71:                 foreach (cwbx.Error error in program.Errors)
  72:                 {
  73:                     //TODO: da gestire
  74:                 }
  75:             }
  76:  
  77:             if (throwInsteadOfReturn)
  78:             {
  79:                 throw (e);
  80:             }
  81:         }
  82:  
  83:         return (success);
  84:     }
  85:  
  86:     //Chiusura della connessione
  87:     public void Close()
  88:     {
  89:         as400.Disconnect(cwbx.cwbcoServiceEnum.cwbcoServiceAll);
  90:     }
  91: }

Per poter comunicare con il server AS/400 è necessario mettere in piedi un canale di comunicazione. Per farlo servono alcune informazioni:



  • Nome o indirizzo IP del server AS/400
  • Utente
  • Password dell’utente
  • Libreria
  • Programma da invocare

Le informazioni possono essere gestite nel file di configurazione dell’applicazione. Basterà quindi crearsi una voce nei settings che contenga le informazioni nel seguente formato:


serverAS400;userid;password;library;program


Questa è la formattazione attesa dalla libreria di helper. Ovviamente può essere rivista secondo le proprie esigenze; questo però deve produrre anche una conseguente modifica nel file di helper o nel metodo che istanzia la classe di helper.


Altro punto importante per poter eseguire la connessione è referenziare l’oggetto COM definito nella libreria cwbx.dll; libreria che viene installata dall’IBM Client Access. La libreria si trova, se avete eseguito l’installazione di default, in questa directory:


C:\Program Files (x86)\IBM\Client Access\Shared


I limiti di questa tecnica non mi sono ancora completamente noti e se necessario cercherò di esplorarli più avanti. Al momento posso affermare che potrebbe essere la soluzione ideale per riutilizzare logica di business presente in AS/400 esponendola con dei web services sviluppati utilizzando Windows Communication Server (WCF) per poter fruire delle informazioni virtualmente da qualsiasi dispositivo/interfaccia utente.