Para quem estiver precisando de fazer acesso a dados com o Silverlight primeiramente precisa saber que não há como acessar o banco de dados diretamente, mesmo podendo utilizar linq dentro do silverligth. Ou seja, o acesso se faz da seguinte forma:
Silverlight –> Webservices –> Database
E neste post há um tutorial de como se faz: http://timheuer.com/blog/archive/2008/03/14/calling-web-services-with-silverlight-2.aspx
Abaixo segue um trecho de código como exemplo:
public Page()
{
InitializeComponent();
BasicHttpBinding bind = new BasicHttpBinding();
EndpointAddress endpoint = new EndpointAddress("http://localhost:49751/webservice.asmx");
ServiceReferenceEZWebsite.WebServiceSoapClient asmx = new SilverlightApplication.ServiceReferenceEZWebsite.WebServiceSoapClient(bind, endpoint);
asmx.CategoriesCompleted += new EventHandler<CategoriesCompletedEventArgs>(asmx_HelloWorldWithAsmxCompleted);
asmx.CategoriesAsync();
}
void asmx_HelloWorldWithAsmxCompleted(object sender, CategoriesCompletedEventArgs e)
{
var categories = e.Result;
foreach (Category category in categories)
{
this.StackPanelMenu.Children.Add(new ButtonEZ(category.name));
}
}
Segue trecho do webservice:
/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
[WebMethod]
public List<Category> Categories()
{
try
{
var dc = new DataClassesEZWebsiteDataContext();
return dc.Categories.ToList();
}
catch (Exception ex)
{
EZUtil.Util.ErrorTreatment(ex);
return null;
}
}
}
Nenhum comentário:
Postar um comentário