44 messaggi dal 14 gennaio 2014
Salve,
ho iniziato da poco a programmare nell'ambito di Windows Phone VB.NET e vorrei realizzare un'applicazione che preleva i dati da un database *.mdb all'interno di un sito ASP.NET.
Avevo pensato a realizzare una pagina "Mobile.aspx" e prelevare da essa i dati richiesti in base ad un'interrogazione (per esempio usando le querystring e realizzando una pagina del tipo: Mobile.aspx?Nome=pinco&Cognome=pallino)
Ma ancora non so come fare...e sinceramente non so se è la soluzione giusta...sapete indicarmi come potrei fare e cosa poteri utilizzare?
Grazie in anticipo
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

lucachat ha scritto:

Avevo pensato a realizzare una pagina "Mobile.aspx" e prelevare da essa i dati richiesti in base ad un'interrogazione (per esempio usando le querystring e realizzando una pagina del tipo: Mobile.aspx?Nome=pinco&Cognome=pallino)

Meglio un httpHandler .ashx ma ok, funzionerà.

Da windows phone dovrai inviare una richiesta HTTP al server. Ci sono vari modi per farlo. Ad esempio puoi usare la classe HttpClient. Qui hai degli esempi, se vuoi scrivere una Universal App. Per WP 7.5, leggi qui.

Hai già pensato al formato che userai per esporre i dati letti dal database access? XML? JSON?

lucachat ha scritto:

e sinceramente non so se è la soluzione giusta.

Per una singola pagina di dati può andar bene questo approccio. Per il futuro, tieni presente ASP.NET WebAPI, che ti permette di disinteressarti (quasi) dal formato di output e concentrarti invece sulle operazioni e sui dati che queste espongono.
Ecco un articolo introduttivo di Andrea Colaci.
http://www.aspitalia.com/articoli/asp.net-mvc/scrivere-servizi-rest-asp.net-web-api.aspx
E una presentazione video di Stefano Mostarda.
http://media.aspitalia.com/events/aspilive-asp.net-mvc-webapi.media

ciao,
Moreno
Modificato da BrightSoul il 13 agosto 2014 12.01 -

Enjoy learning and just keep making
44 messaggi dal 14 gennaio 2014
Grazie mille!!!!
Ho visto gli articoli e il video di Stefano Mostarda...
Come tipologia di output vorrei utilizzare JSON ,ma il problema che ho è che non conosco come poter implementare access!
Hai per caso qualche snippet di codice?
Modificato da lucachat il 14 agosto 2014 15.57 -
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
ok, dunque hai deciso di voler usare WebApi? Sappi che non ti obbliga a creare un nuovo progetto di tipo ASP.NET MVC, ma puoi sfruttarla anche da un progetto WebForms, che immagino tu abbia già dato che parlavi di pagine aspx. In questo caso segui questi passi.
http://www.asp.net/web-api/overview/creating-web-apis/using-web-api-with-aspnet-web-forms

Assicurati che WebAPI funzioni nel tuo progetto prima di procedere con lo sviluppo. Provalo in locale e provalo anche nel servizio di hosting a tua disposizione (Aruba)? Solo quando ti sei accertato che tutto funzioni, procedi ad implementare il tuo scenario.

lucachat ha scritto:
non conosco come poter implementare access!

Prendi l'esempio del ValuesController che vedevi nel video: la sua action Get (e per ora implementa solo questa) si aspetta che tu restituisca un IEnumerable<T>, dove T è il tipo di una tua classe.

Crea questa tua classe in modo che abbia tante proprietà quanti sono i campi che vuoi esporre dal database. Per il momento, dagli anche lo stesso nome.

Quindi, se hai una tabella "Prodotti" e vuoi esporre i suoi campi "Nome", "Prezzo" e "Quantita", allora creati una classe così:
public class Prodotto {
  public string Nome {get;set;}
  public decimal Prezzo {get;set;}
  public int Quantita {get;set;}
}


All'interno dell'action Get, quel che dovrai fare è collegarti ad access come fai sempre, fare una query e, per ogni ciclo del DataReader costruire una nuova istanza di prodotto. Esempio (non testato):
//qui effetto la connessione con un OleDbDataReader
//invio una query con il metodo ExecuteReader di un OleDbCommand
//poi leggo il datareader e ad ogni ciclo restituisco un'istanza di Prodotto
while (dataReader.Read()){
yield return new Prodotto {
  Nome = dataReader["Nome"],
  Prezzo = dataReader["Prezzo"],
  Quantita = dataReader["Quantita"]
};
}


Come vedi non c'è nessun codice che si occupa di serializzare le istanze di Prodotto in JSON. Questo avviene automaticamente grazie ai media formatters di WebAPI. Semplice, no?

Diventa ancora più semplice produrre le istanze di Prodotto se ti avvali di un Micro ORM tipo Dapper, che si sobbarca il noioso lavoro di plumbing (ovvero l'assegnare ogni campo alla rispettiva proprietà).
In questo esempio, farlo a mano è stato semplice perché avevo solo 3 proprietà. Ma immagina di averne a decine: Dapper ti aiuterà a tenere il codice compatto. Ecco un articolo che ti mostra come usarlo.
http://www.codeproject.com/Articles/212274/A-Look-at-Dapper-NET
Ed ecco un esempio specifico per access.
http://stackoverflow.com/questions/12322023/dapper-ms-access-read-works-write-doesnt

ciao,
Moreno
Modificato da BrightSoul il 16 agosto 2014 09.57 -

Enjoy learning and just keep making
44 messaggi dal 14 gennaio 2014
Grazie mille!!!
Appena posso lo provo e ti faccio sapere
Inviato dall'app per Windows 8
44 messaggi dal 14 gennaio 2014
Ho provato e funziona tutto correttamente...
quello che volevo chiederti è se questo procedimento vale anche per il metodo POST,PUT e DELETE...
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Luca,
certamente, devi giusto creare delle altre actions chiamate Post, Put e Delete.

Fai in modo che Post e Put, in particolare, accettino un oggetto come parametro, in modo che tu possa esaminare i valori che il client ti ha inviato. Un po' come vedevi nella presentazione di Stefano, al minuto 17:00 quando fa una POST.

Ti mando anche un paio di link che ti mostrano il funzionamento del model binding (cioè il processo di valorizzazione dei parametri delle tue action in base alla richiesta del client) e come inviare dati da jQuery.
http://stackoverflow.com/questions/19093603/simple-post-to-web-api#answers-header

ciao,
Moreno

Enjoy learning and just keep making
44 messaggi dal 14 gennaio 2014
Grazie Moreno...
appena posso lo testo

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.