Discussione:
Aggiungere livello di astrazione
(troppo vecchio per rispondere)
Riddler ?
2009-02-03 17:25:41 UTC
Permalink
Buona sera,
mi scuso anticipatamente a MOLTI la domanda che sto per porre sembrerà
banale e lo sembrava anche a me ... almeno sulla carta ma ... :-(

Lo scenario è il seguente:
- webservice "classico" .asmx
- accesso al WS via ASP.NET (C#)

Vorrei astrarre i metodi del WS con una classe a cui l'applicazione
web accede e che si occupa di richiamare i metodi restituendo i
risultati ...

Ho aggiunto una classe test_Class() in cui i vari metodi sono public
ed inclusa nel WS, compilo il tutto ...

Referenzio lato web application ... vedo i metodi del WS ( che al
momento sono ancora public ... ) ma NON la classe o i metodi anche
aggiungendo un oggetto di tipo test_Class() nel corpo del WS.

Vedo correttamente altri tipi definiti nel WS ( se resi pubblici ), ma
la nuova classe no...

Classe
public class test_Class()
{
public string test_WCS()
{
return "OK by Class";
}
}

WS
public class my_WS : System.Web.Services.WebService
{
test_Class my_test = new class test_Class();

[WebMethod]
public string test_WS()
{
return "OK by WebService";
}

}


Se lato client faccio il riferimento adl WS
my_WS WS = new my_WS(); // WebService

WS.test_WS ---> lo vedo

WS.my_test.test_WCS ---> NON lo vedo ...


So che sto clamorosamente toppando ...
sono fuso come se fosse venerdì ( sono mesi che è SEMPRE lunedì
mattina :-(( ... )


dove sbaglio?

Grazie anticipatamente

saluti

--
Riddler ?
Mauro Servienti [MVP]
2009-02-03 17:49:08 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
So che sto clamorosamente toppando ...
sono fuso come se fosse venerdì ( sono mesi che è SEMPRE lunedì
mattina :-(( ... )
dove sbaglio?
l'intento è lodevole ma l'approccio è completamente sbagliato ;-)

Io procederei così, nella Solution metterei:

- 1 progetto che ospita il servizio, nel tuo caso un web service
tradizionale (asmx);
- 1 progetto che è il client, nel tuo caso l'applicazione web. Questo
*non* *ha* *nessuna* web reference al servizio;
- 1 progetto che è una class library ed è l'SDK del servizio, ed è qui
la "magia";

nel SDK aggiungi una web reference al servizio e crei una classe tua
che esponga le varie operazioni esposte dal servizio sottoforma di
metodi, la tua classe in ogni metodo non farà altro che istanziare il
proxy del web service (quello generato da visual studio) e rinculerà le
chiamate facendo gli opportuni aggiustamenti.

Il client, l'applicazione web, avrà una reference all'SDK e basta.

Ho colto?

.m

P.S. io migliorerei anche il naming degli oggetti ;-) perchè test_Class
scritto con questo casing e con "_" fa veramente paura ;-)
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-03 18:35:55 UTC
Permalink
On 3 Feb, 18:49, Mauro Servienti [MVP] <***@online.nospam>
wrote:
Ciao Mauro,
grazie come sempre della velocità, disponibilità e competenza ;-)
Post by Mauro Servienti [MVP]
Post by Riddler ?
So che sto clamorosamente toppando ...
sono fuso come se fosse venerdì ( sono mesi che è SEMPRE lunedì
mattina :-(( ... )
dove sbaglio?
l'intento è lodevole ma l'approccio è completamente sbagliato ;-)
E' un pò che l'idea è lì lì ...
ne abbiamo parlato anche nel post sui tipi List ;-)
Adesso volevo cominciare pian piano a svilupparlo, ma mi sono SUBITO
incartato :-(
TROPPA inesperienza, troppe cose da portare avanti e tutte
assieme ...
Post by Mauro Servienti [MVP]
- 1 progetto che ospita il servizio, nel tuo caso un web service
tradizionale (asmx);
OK
Post by Mauro Servienti [MVP]
- 1 progetto che è il client, nel tuo caso l'applicazione web.
OK
Post by Mauro Servienti [MVP]
Questo *non* *ha* *nessuna* web reference al servizio;
- 1 progetto che è una class library ed è l'SDK del servizio, ed è qui
la "magia";
mmm sono TUTTO orecchi!
Post by Mauro Servienti [MVP]
nel SDK aggiungi una web reference al servizio e crei una classe tua
che esponga le varie operazioni esposte dal servizio sottoforma di
metodi, la tua classe in ogni metodo non farà altro che istanziare il
proxy del web service (quello generato da visual studio) e rinculerà le
chiamate facendo gli opportuni aggiustamenti.
ok
Post by Mauro Servienti [MVP]
Il client, l'applicazione web, avrà una reference all'SDK e basta.
ah bene
un pò come ho fatto per il DAL?
un progetto ( ho poi generato una DLL ) a cui il WS fa riferimento per
accedere al DB
Post by Mauro Servienti [MVP]
Ho colto?
direi proprio di sì ;-)

Indi ... ripeto come la lezione ;)

Prj WS <---> SDK <---> Clinet

Dove SDK si riferisce a WS
Client si riferisce a SDK

Indi come se fosse una deduzione logica anche il Clinet si riferisce
al WS ( indirettamente )
;-)

ho capio bene?

grazie ancora

saluti
Post by Mauro Servienti [MVP]
P.S. io migliorerei anche il naming degli oggetti ;-) perchè test_Class
scritto con questo casing e con "_" fa veramente paura ;-)
sì sì era solo per non sbrodolare tutto il codice ;-)
cerco sempre di dare un nome comprensibili alle classi tipo
ManageWRK ---> gestione working area

Ma almeno sul webbe diventa evidemte il nome my_Class
;-)
--
Riddler ?
Mauro Servienti [MVP]
2009-02-04 07:18:49 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
ho capio bene?
si tutto giusto

.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-04 07:30:57 UTC
Permalink
On 4 Feb, 08:18, Mauro Servienti [MVP] <***@online.nospam>
wrote:
Ciao Mauro,
ci siamo quasi sovrapposti le risposte ;-)
Post by Mauro Servienti [MVP]
Post by Riddler ?
ho capio bene?
si tutto giusto
BENE!
:-)

Almeno in teoria ho capito ;-)

--
Riddler ?
Riddler ?
2009-02-04 07:21:01 UTC
Permalink
On 3 Feb, 18:49, Mauro Servienti [MVP] <***@online.nospam>
wrote:
Ciao Mauro,
sistemate un pò di cose mi sto mettendo sul "SAL"
ho deciso di chiamarlo così ;-)

Visto che DAL ---> Data Access Layer
allora SAL ---> Service Access Layer
Post by Mauro Servienti [MVP]
l'intento è lodevole
intanto ti ringrazio per le lodi, ieri nella fretta ... "am sòn
smantià" ;-)
fanno SEMPRE piacere :-)

ti chiedo un pò di dritte...
Post by Mauro Servienti [MVP]
- 1 progetto che è una class library ed è l'SDK del servizio, ed è qui
la "magia";
Fatto come Class library
Post by Mauro Servienti [MVP]
nel SDK aggiungi una web reference al servizio
mi permette SOLO di aggiungere una Service Reference e con questa
avevo già visto con dei tentativi Silverlight ... NON ho a
disposizione tutto quello che mi interessa ...

Come faccio per poter referenziare una "web reference" ?
Post by Mauro Servienti [MVP]
e crei una classe tua che esponga le varie operazioni esposte dal servizio sottoforma di
metodi, la tua classe in ogni metodo non farà altro che istanziare il
proxy del web service (quello generato da visual studio) e rinculerà le
chiamate facendo gli opportuni aggiustamenti.
OK quì se non prendo un altra cantonata dovrebbe essere come ale altre
classi che ho sviluppato quindi avrò

namespace my_SAL
{
public class Service
{

public List metodo()
{
// collegamente a WS
return lista;
}

public void metodo2()
{
}
}
}


Il clien avendo una referziazione a SAL
farà un Service.metodo2;

OK?

graSSSie ancora!
:-)

saluti

--
Riddler ?
Mauro Servienti [MVP]
2009-02-04 08:07:24 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
mi permette SOLO di aggiungere una Service Reference e con questa
avevo già visto con dei tentativi Silverlight ... NON ho a
disposizione tutto quello che mi interessa ...
Come faccio per poter referenziare una "web reference" ?
Service Reference --> Advanced --> in basso a sinistra Web Reference
Post by Riddler ?
Post by Mauro Servienti [MVP]
e crei una classe tua che esponga le varie operazioni esposte dal servizio
sottoforma di metodi, la tua classe in ogni metodo non farà altro che
istanziare il proxy del web service (quello generato da visual studio) e
rinculerà le chiamate facendo gli opportuni aggiustamenti.
OK quì se non prendo un altra cantonata dovrebbe essere come ale altre
classi che ho sviluppato quindi avrò
namespace my_SAL
{
public class Service
{
public List metodo()
{
// collegamente a WS
return lista;
}
public void metodo2()
{
}
}
}
Il clien avendo una referziazione a SAL
farà un Service.metodo2;
OK?
Si, però okkio che:

Supponiamo che il Web Service abbia un metodo del tipo

[Webmethod()]
public *WebServiceNamespace*.MyClass[] GetObjects(){ ... }

il proxy genrato da Visual Studio avrà una cosa _simile_ ma non proprio
uguale:

public *VisualStudioProxyNamespace*.MyClass[] GetObjects(){ ... }

Noti la differenza dei namespace? da questo ne consegue che MyClass che
hai sul client (il tuo SDK) e MyClass che hai sul server non sono la
stessa cosa. E' in questo senso che MyClass *deve* essere solo un DTO,
cioè qualcosa deputato al trasporto dei dati e nulla di più. Quindi:

namespace MyDSK
{
public class MyClass
{
internal MyClass( VisualStudioProxyNamespace.MyClass dto )
{
//Copy data...
}
}

public class Service
{
public List<MySDK.MyClass> GetObjects()
{
var returnValue = new List<MySDK.MyClass>();
var data = myWebServiceProxy.GetObjects();
foreach( var dto in data )
{
var local = new MySDK.MyClass( dto );
returnValue.Add( local );
}

return returnValue;
}
}
}

in questo modo il client (la Web App) non ha nessun problema se
qualcosa nel dialogo tra web service e SDK cambia, perchè il client non
sa proprio nulla.
Post by Riddler ?
saluti
.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-04 09:22:15 UTC
Permalink
On 4 Feb, 09:07, Mauro Servienti [MVP] <***@online.nospam>
wrote:
Ciao Mauro,
google groups ... oggi ha una refresh ... "ritardato" :-(
Post by Mauro Servienti [MVP]
Post by Riddler ?
Come faccio per poter referenziare una "web reference" ?
Service Reference --> Advanced --> in basso a sinistra Web Reference
focca la bindella!
proprio brutto essere ignoranti :-(

GRAZIE!
Post by Mauro Servienti [MVP]
Post by Riddler ?
OK quì se non prendo un altra cantonata dovrebbe essere come ale altre
classi che ho sviluppato quindi avrò
namespace my_SAL
{
  public class Service
  {
    public List metodo()
    {
      // collegamente a WS
      return lista;
    }
    public void metodo2()
    {
    }
  }
}
Il client avendo una referziazione a SAL
farà un Service.metodo2;
OK?
Supponiamo che il Web Service abbia un metodo del tipo
[Webmethod()]
public *WebServiceNamespace*.MyClass[] GetObjects(){ ... }
il proxy genrato da Visual Studio avrà una cosa _simile_ ma non proprio
public *VisualStudioProxyNamespace*.MyClass[] GetObjects(){ ... }
Noti la differenza dei namespace?
sì ho capito cosa intendi, nel mio caso sarebbe il name space del
SAL.nomeproxy.nome metodo

ho capito bene?
;-)
Post by Mauro Servienti [MVP]
da questo ne consegue che MyClass che
hai sul client (il tuo SDK) e MyClass che hai sul server non sono la
stessa cosa. E' in questo senso che MyClass *deve* essere solo un DTO,
mmm sì sono diversi certo, perchè quello nel mio SDK ( perchè
SDK ... ? Service Data Kit? ... mi ricorda tanto Software Development
Kit ... se è meglio passo anKa me a SDK ) si riferisce a quella sul WS
e fa lui la chiamata ricevendo i dati dalla client applicatione e
restituendone quelli ricevuti dal WS...
Post by Mauro Servienti [MVP]
namespace MyDSK
{
   public class MyClass
   {
       internal MyClass( VisualStudioProxyNamespace.MyClass dto )
       {
            //Copy data...
       }
   }
ecco forse quì ho creato io una non comprensione ...
volevo dire che la classe Service fa parte del livello di astrazione
che ha accesso diretto con il WS
Post by Mauro Servienti [MVP]
   public class Service
   {
      public List<MySDK.MyClass> GetObjects()
      {
           var returnValue = new List<MySDK.MyClass>();
           var data = myWebServiceProxy.GetObjects();
           foreach( var dto in data )
           {
              var local = new MySDK.MyClass( dto );
              returnValue.Add( local );
           }
           return returnValue;
      }
   }
}
in questo modo il client (la Web App) non ha nessun problema se
qualcosa nel dialogo tra web service e SDK cambia, perchè il client non
sa proprio nulla.
ok quì ci sono ;-)

quindi ... la mia SDK al metodo Y crea il collegamento ed
interrogazione al metodo X del WS
il client (web app ) richiama il metodo il metodo Y della SDK, la
quale interroga WS.X riceve i risultati e li gira alla web app

OK?

Client
ris = SDK.Y

SDK
metodo Y
collegamento a WS
curr_value = WS.X
return curr_value

WS
metodo X
return "CIAO"

ho dimenticato qualcosa?

ri-ri-ri-GraSSSie!

--
Riddler ?
Mauro Servienti [MVP]
2009-02-04 10:06:25 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
mmm sì sono diversi certo, perchè quello nel mio SDK ( perchè
SDK ... ? Service Data Kit? ... mi ricorda tanto Software Development
Kit ... se è meglio passo anKa me a SDK ) si riferisce a quella sul WS
e fa lui la chiamata ricevendo i dati dalla client applicatione e
restituendone quelli ricevuti dal WS...
SDK: Software Development Kit
ma è solo un namespace di esempio, io non l'ho mai usato, serviva per
intenderci sulle aree.
Post by Riddler ?
quindi ... la mia SDK al metodo Y crea il collegamento ed
interrogazione al metodo X del WS
il client (web app ) richiama il metodo il metodo Y della SDK, la
quale interroga WS.X riceve i risultati e li gira alla web app
OK?
giusto.

.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-04 10:20:31 UTC
Permalink
On 4 Feb, 11:06, Mauro Servienti [MVP] <***@online.nospam>
wrote:
Ciao Mauro,
Post by Mauro Servienti [MVP]
Post by Riddler ?
SDK ... ? Service Data Kit? ... mi ricorda tanto Software Development
Kit ... se è meglio passo anKa me a SDK )
SDK: Software Development Kit
ma è solo un namespace di esempio, io non l'ho mai usato, serviva per
intenderci sulle aree.
ok ;-)
allora battezzo SAL ;-)
Service Access Layer ;-)
Post by Mauro Servienti [MVP]
Post by Riddler ?
quindi ... la mia SDK al metodo Y crea il collegamento ed
interrogazione al metodo X del WS
il client (web app ) richiama il metodo il metodo Y della SDK, la
quale interroga WS.X riceve i risultati e li gira alla web app
OK?
giusto.
BENE
procedo

Ancora Grazie

alla prossima!


saluti

--
Riddler ?
Riddler ?
2009-02-04 12:40:58 UTC
Permalink
On 4 Feb, 11:06, Mauro Servienti [MVP] <***@online.nospam>
wrote:
Ciao Mauro,
... ultima domanda ;-)

... acci quì mi assalgono i dubbi ...
sarà mica perchè son quì dalle 5:30 ...
:-(
Post by Riddler ?
quindi ... la mia SDK al metodo Y crea il collegamento ed
interrogazione al metodo X del WS
il client (web app ) richiama il metodo il metodo Y della SDK, la
quale interroga WS.X riceve i risultati e li gira alla web app
Il mio WS attualmente DEVE ricevere via SoapHeader ad ogni chiamata
UserName e Password

da SAL a WS in pratica è quello che fa ora il client fittizzio per le
prove con il WS ...
ma da client a SAL ( che NON è un WS ) come faccio a passare ad ogni
chiamata via SoapHeader user e password?

grazie anticipatamente

saluti

--
Riddler ?
Mauro Servienti [MVP]
2009-02-04 13:25:42 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
Il mio WS attualmente DEVE ricevere via SoapHeader ad ogni chiamata
UserName e Password
ok
Post by Riddler ?
da SAL a WS in pratica è quello che fa ora il client fittizzio per le
prove con il WS ...
esatto
Post by Riddler ?
ma da client a SAL ( che NON è un WS ) come faccio a passare ad ogni
chiamata via SoapHeader user e password?
Come avviene l'autenticazione sulla Web Application?

.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Mauro Servienti [MVP]
2009-02-04 13:48:49 UTC
Permalink
Ciao Riddler ?,
Post by Mauro Servienti [MVP]
Come avviene l'autenticazione sulla Web Application?
Dunque prima di inserire il SAL il client di test si collegava al WS
via HTTPS, forniva le credenziali ( classico form ), ed il WS
attraverso i membership su SQL Server dava l'autorizzazione.
A questo punto sul client come da una nostra vecchia discussione
instanzio il Singleton che "tiene a mente" user, password e roles
dell'utente.
Dalla chiamata successiva recupero dal Singleton, "farcisco" il
SoapHeader e chiamo il metodo X del WS
la classe che maschera il servizio (quella che sta nel SAL) diventa il
tuo singleton, e ci metti anche le informazioni sulla connessione
corrente.
saluti
.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-04 14:10:09 UTC
Permalink
Post by Mauro Servienti [MVP]
Ciao Riddler ?,
Post by Mauro Servienti [MVP]
Come avviene l'autenticazione sulla Web Application?
Dunque prima di inserire il SAL il client di test si collegava al WS
via HTTPS, forniva le credenziali ( classico form ), ed il WS
attraverso i membership su SQL Server dava l'autorizzazione.
A questo punto sul client come da una nostra vecchia discussione
instanzio il Singleton che "tiene a mente" user, password e roles
dell'utente.
Dalla chiamata successiva recupero dal Singleton, "farcisco" il
SoapHeader e chiamo il metodo X del WS
la classe che maschera il servizio (quella che sta nel SAL) diventa il
tuo singleton, e ci metti anche le informazioni sulla connessione
corrente.
Capito logicamente, ma praticamente ... avrei più client che accedono
a SAL che accede a WS ...

lato client prima il Singleton era ed operava in quella determinata
sessione ...

Come fa ora il SAL ad identificare da chi proviene la richiesta?

... mi sono perso
:-(

--
Riddler ?
Mauro Servienti [MVP]
2009-02-05 05:23:27 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
Come fa ora il SAL ad identificare da chi proviene la richiesta?
... mi sono perso
risposta breve:
se il sal è un singleton per http session ilproblema non esiste
proprio..

risposta articolata:
* l'utente si connette
* è la prima volta che lo vedi: lo sai perchè in sessione non hai il
SAL
* crei un'istanza del SAL (in cui metti user id e password) e lo sbatti
in sessione
* fai quello che vuoi con il SAL che fa da proxy verso il web service

altra possibilità completamente stateless (così ti tiro un po' matto e
ti faccio pentire di lavorare così tanto :-D)
* l'utente si connette
* realizzi un bel HttpModule che:
- ad ogni HttpRequest cerca tra i cookie dell'utente un cookie con
un security token
- se lo trova crea un'istanza del SAL passandogli il token e lo
piazza nei Context Items della richiesta Http
- altrimenti crea un SAL senza security token --> l'utente non è
autenticato
* se l'utente non è autenticato pagina di logon
- richiesta di Logon al SAL --> WS
- se va a buon fine --> il WS --> SAL --> Security Token --> cookie

a questo punto hai lo stesso sistema di prima ma totalmente stateless
senza bisogno di usare la sessione.

.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-05 04:35:50 UTC
Permalink
On 4 Feb, 14:48, Mauro Servienti [MVP] <***@online.nospam>
wrote:

Ciao Mauro,
dicono che la notte porta consiglio ...
Post by Mauro Servienti [MVP]
la classe che maschera il servizio (quella che sta nel SAL) diventa il
tuo singleton, e ci metti anche le informazioni sulla connessione
corrente.
... a me ha portato un ulteriore dubbio :(

Inizialmente avevo pensato ad una apposita classe all'interno del
webservice che richiamasse i metodi interni perchè il client DEVE
operare attraverso HTTPS ...

Ora con l'aggiunta di SAL abbiamo

DB <--> DAL <--> WS <--> SAL <--> client

Tra SAL e WS ora è come era il client di test quindi via HTTPS ... ma
tra il client e SAL no :-(

sulla carta filava ùtto bbbene ... ùtto bbbene :-(

ancora grazie

saluti

--
Riddler ?
Mauro Servienti [MVP]
2009-02-05 05:14:41 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
DB <--> DAL <--> WS <--> SAL <--> client
Tra SAL e WS ora è come era il client di test quindi via HTTPS ... ma
tra il client e SAL no :-(
...ti fa male lavorare così tanto, SAL è una class library quindi vive
all'interno del processo che ospita il client e come tale comunicherà
con il web serivice come decidi tu, quindi via ssl

.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-05 05:28:11 UTC
Permalink
On 5 Feb, 06:14, Mauro Servienti [MVP] <***@online.nospam>
wrote:
Ciao Mauro,
Post by Mauro Servienti [MVP]
Post by Riddler ?
DB <--> DAL <--> WS <--> SAL <--> client
Tra SAL e WS ora è come era il client di test quindi via HTTPS ... ma
tra il client e SAL no :-(
...ti fa male lavorare così tanto,
ultimamente è una frase ricorrente ...
ma se mi fermo proprio adesso ... credo di non ripartire più ...
finche resito ... tiro ... se non lo faccio io non me lo fa
nessuno ...
quindi via il dente via il dolore ;-)
Post by Mauro Servienti [MVP]
SAL è una class library quindi vive
all'interno del processo che ospita il client e come tale comunicherà
con il web serivice come decidi tu, quindi via ssl
scusa il mio continuo approfittarmi ... ma vorrei capire bene questa
cosa ;-)

Se io faccio la mia classe come class library e la referenzio dal
client ...
ci sono sul fatto che SAL comunichi via HTTPS ...

sul resto una vlta referenziata è come se fosse al suo interno
giusto?

Quindi il singleton fatto per i dati li passa direttamente alla classe
che fa la comunicazione al WS ...
:-)
:-))

ci sono !!!

forse ho capito cosa intendevi ieri ... forse ;-)

Il dubbio che mi è venuto è perchp vedevo
<---> SAL <---> client

Come se comunicassero via rete INVECE è una cosa simile

WS <--> SAL
client

Come se fosse "assieme" al client

giusto?

Grazie per la pazienza Mauro, alzarsi a quest'ora ed avere SUBITO uno
spaccamaRoni fra i piedi NON è il massimo ;-)

--
Riddler ?
Mauro Servienti [MVP]
2009-02-05 05:35:00 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
giusto?
giusto.
Post by Riddler ?
Grazie per la pazienza Mauro, alzarsi a quest'ora ed avere SUBITO uno
spaccamaRoni fra i piedi NON è il massimo ;-)
:-D, il probllema a quest'ora non sono gli spaccamaroni ma la non
voglia di fare allenamento... stamattina poi non parliamone che...

.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-05 05:52:23 UTC
Permalink
Post by Mauro Servienti [MVP]
Ciao Riddler ?,
Post by Riddler ?
giusto?
giusto.
oooh bene mi merito la pausa caffè ;-)
ed uno "virtuale" anche per te, se avrò la possibilità e fortuna di
incrociarti da qualche parte ce ne sarà anche uno reale ;-)
Post by Mauro Servienti [MVP]
Post by Riddler ?
Grazie per la pazienza Mauro, alzarsi a quest'ora ed avere SUBITO uno
spaccamaRoni fra i piedi NON è il massimo ;-)
:-D, il probllema a quest'ora non sono gli spaccamaroni ma la non
voglia di fare allenamento... stamattina poi non parliamone che...
allenamento?
anche se un pò OT che fai di bello?

Io rimpiango i tempi in cui correvo in moto :-(
enduro e motocross, palestra, piscina bici corsa...
manutenzione settimanale al mezzo...
ma era bellissimo!!!
:-)

Purtroppo poi si cresce e per magnà ... la moto ( YZ426F 4T ) ora è a
prender polvere in garage :-(

fine OT
saluti e grazie ancora

--
Riddler ?
Mauro Servienti [MVP]
2009-02-05 08:09:46 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
allenamento?
anche se un pò OT che fai di bello?
ho insegnato, e fatto gare a livello agonistico, per 19 anni step e
aerobica (e non solo) e siccome da 1 anno circa a questa parte sono in
"pensione" cerco di mantenermi in forma lo stesso quindi stamattina
bicicletta da corsa... che con sto tempo da lupi è una vera gioia ;-)

.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-05 08:28:53 UTC
Permalink
Post by Mauro Servienti [MVP]
Ciao Riddler ?,
Post by Riddler ?
allenamento?
anche se un pò OT che fai di bello?
ho insegnato, e fatto gare a livello agonistico, per 19 anni step e
aerobica (e non solo)
wow!
trovo sempre più attinenze in giro
informatica-sport
alla faccia di chi ci crede nerd brufolosi con il panino sulle
ginocchia ed i piedi appoggiato sullo sgabello ;-)
Post by Mauro Servienti [MVP]
e siccome da 1 anno circa a questa parte sono in
"pensione" cerco di mantenermi in forma lo stesso quindi stamattina
bicicletta da corsa... che con sto tempo da lupi è una vera gioia ;-)
eh eh :-)
appena chiudo con "sta cosa" cercherò di riprendere anche io un pò più
di attività fisica, la moto, le mulattiere ed i campi da cross ormai
sono un ricordo, ma il fisoco mi deve durare finche campo ... indi
meglio tenerlo oliato a dovere e fare tutti i tagliandi necessari ;-)

Ancora grazie e buona continuazione

saluti

--
Riddler ?
Mauro Servienti [MVP]
2009-02-05 08:40:11 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
ma il fisoco mi deve durare finche campo ... indi
meglio tenerlo oliato a dovere e fare tutti i tagliandi necessari ;-)
parole sante, qualità della vita in primis! ecco perchè dico che lavori
troppo :-D

.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-05 08:48:24 UTC
Permalink
Post by Mauro Servienti [MVP]
Ciao Riddler ?,
Post by Riddler ?
ma il fisoco mi deve durare finche campo ... indi
meglio tenerlo oliato a dovere e fare tutti i tagliandi necessari ;-)
parole sante, qualità della vita in primis! ecco perchè dico che lavori
troppo :-D
hai ragione adesso mi faccio un imprinting e cerco di riorganizzarmi e
riordinarmi a dovere :-)

Alla prossima Mauro


Grazie ancora

saluti

--
Riddler ?
Mauro Servienti [MVP]
2009-02-05 09:47:22 UTC
Permalink
Ciao Riddler ?,
Post by Riddler ?
Alla prossima Mauro
Volentieri! buona giornata
Post by Riddler ?
Grazie ancora
A te :-)
Ciao!

.m
--
Mauro Servienti
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
http://blogs.ugidotnet.org/topics
whynot [ at ] topics [ dot ] it
Riddler ?
2009-02-04 13:38:49 UTC
Permalink
On 4 Feb, 14:25, Mauro Servienti [MVP] <***@online.nospam>
wrote:
Ciao Mauro,
non ti è ancora scappata la pazienza ;-)
Post by Mauro Servienti [MVP]
Post by Riddler ?
Il mio WS attualmente DEVE ricevere via SoapHeader ad ogni chiamata
UserName e Password
ok
Post by Riddler ?
da SAL a WS in pratica è quello che fa ora il client fittizzio per le
prove con il WS ...
esatto
BENE almeno questa parte la riutilizzo ;-)
Post by Mauro Servienti [MVP]
Post by Riddler ?
ma da client a SAL ( che NON è un WS ) come faccio a passare ad ogni
chiamata via SoapHeader user e password?
Come avviene l'autenticazione sulla Web Application?
Dunque prima di inserire il SAL il client di test si collegava al WS
via HTTPS, forniva le credenziali ( classico form ), ed il WS
attraverso i membership su SQL Server dava l'autorizzazione.

A questo punto sul client come da una nostra vecchia discussione
instanzio il Singleton che "tiene a mente" user, password e roles
dell'utente.

Dalla chiamata successiva recupero dal Singleton, "farcisco" il
SoapHeader e chiamo il metodo X del WS

Anche se sono su HTTPS ho utilizzato un algoritmo a chiave simmetrica
( AES ) per mascherare la password ... proprio NON mi paceva farla
passare in chiaro ;-)

N.B.
questo NON vuol, essere una soluzione definitiva, ma solo un
abbozzo ...

Il WS ad OGNI chiama DEVE sapare da chi proviene e se è autorizzato e
questo lo risolvo in un attimo con una riga di codice ;-)
ha necessariamente bisogno anche dello user ( che è UNIVOCO ) per
poter sapere dove andare ad operare sul filesystem e fare le sue
cose ...

Ora con l'inserimento del livello SAL ... ho la necessità di fare
avere anche a lui ad ogni chiamata user e password che verranno
recapitate al WS il quale procederà come sopra...

cheddici?

saluti

--
Riddler ?
Loading...