Estimado lector de La Liga Silverlight. He estado discutiendo con otros autores de este blog, y observando sitios de otras comunidades como Silverlight.Net y ASP.Net, tratando de darle una forma a nuestra comunidad en linea.
Ciertamente, los blogs son de mucha utilidad, pero creo que nos falta un orden, una guía para saber donde empezar a aprender la gran cantidad de temas relacionados con Silverlight. Yo tengo unas ideas, pero quiero saber, ¿Qué quieren ustedes de esta, su comunidad?
Quisiera recibir sus quejas y sugerencias, ya sea comentando en este post o mandando un correo a Arturo.Molina@ligasilverlight.com, por favor, ayúdenme a hacer de esta, una comunidad útil para todo aquél, principiante y experimentado que quiera aprender más sobre Silverlight.
Muchas gracias.




8 comments
Julio says:
Mar 17, 2010
Hola, me parece q la liga silverlight es un gran recurso, no soy experto en esta tecnologia, pero me gustaria que subiesen ejemplos un poco mas complejos o aplicaciones, las cuales podrian ir divididas en dferentes entregas, para asi poder seguir paso a paso la creacion de la aplicacion, y poder hacer nosotros lo mismo de la mejor manera….
Gracias por sus aportes !!
Felipe says:
Mar 22, 2010
Hola, mira yo soy nuevo en esto, pero ya tengo algunos conocimientos. como sugerencia a este blogs me gustaria que ubiera un articulo de que es lo que hay que tener instalado o los pasos para instalar bien el visual estudio y los componentes de silverlight ya que cuando instale no sabia que era primero y que despues.
igual seria interesantes que pusieran mas ejemplos y por niveles osea varios ejemplos para nosotros los nuevos y que vaya subiendo el nivel de complejidad.
a y muchas gracias por tu trabajo que nos ayuda a todos!
Salvador Vidal says:
Apr 26, 2010
Muy buenas, os comento el problema que tengo.
Con la beta 2 consegui crear una autenticacion a medida, ya que tengo mi propia tabla de usuarios y roles.
Cree un modelo con EF, y con varias pruebas lo consegui.
Al instalarme la version oficial de VS2010, ya o me funciona.
Podriais publicar un articulo sobe esto?
Gracias.
Enhorabuena por lo que haceis, ayuda muchisimo.
Arturo Molina says:
Apr 26, 2010
Salvador, ¿Qué error obtienes? o ¿Qué es lo que no funciona?
Salvador Vidal says:
Apr 27, 2010
Asi es como antes me funcionaba, ahora me da errores de espacios de nobres que no esta, etc..
Pero he visto lo que hay ahora, y no se como montar para que me funcione con mi tabla de bd.
Yo he generado un EF contra una vista de los usuarios.
Y me gustaria que validara contra ella.
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Security.Permissions;
using System.Web;
using System.Web.DomainServices;
using System.Web.DomainServices.Providers;
using System.Web.Ria;
using System.Web.Ria.ApplicationServices;
using System.Web.Security;
using System.Runtime.Serialization;
using System;
namespace Principal.Web.Autentication
{
[EnableClientAccess]
public class AuthenticationService : LinqToEntitiesDomainService, IAuthentication
{
private static Auser DefaultUser = new Auser()
{
Name = string.Empty,
apellido1 = string.Empty,
apellido2 = string.Empty,
login = string.Empty,
password = string.Empty,
pregunta = string.Empty,
respuesta = string.Empty,
fecha_creacion = DateTime.Now,
dbroles = string.Empty,
};
public Auser Login(string userName, string password, bool isPersistent, string customData)
{
if (this.ValidateUser(userName, password))
{
FormsAuthentication.SetAuthCookie(userName, isPersistent);
Auser pp;
pp = this.GetUser(userName);
return pp;
//return this.GetUser(userName);
}
return null;
}
/*
* It is preferrable to use an existing ASP.NET MembershipProvider or write one for your application
* as it improves security and makes reuse easier. This sample only uses rudimentary validation.
*/
private bool ValidateUser(string username, string password)
{
//var lll = from n in this.ObjectContext.Auser
// select n;
return (username == password) &&
this.ObjectContext.Auser.Any(u => u.login == username);
}
public Auser Logout()
{
FormsAuthentication.SignOut();
return AuthenticationService.DefaultUser;
//return null;
}
public Auser GetUser()
{
if ((this.ServiceContext != null) &&
(this.ServiceContext.User != null) &&
this.ServiceContext.User.Identity.IsAuthenticated)
{
return this.GetUser(this.ServiceContext.User.Identity.Name);
}
return AuthenticationService.DefaultUser;
}
private Auser GetUser(string userName)
{
return this.ObjectContext.Auser.First(u => u.login == userName);
}
public void UpdateUser(Auser user)
{
// Ensure the user data that will be modified represents the currently
// authenticated identity
if ((this.ServiceContext.User == null) ||
(this.ServiceContext.User.Identity == null) ||
!string.Equals(this.ServiceContext.User.Identity.Name, user.Name, System.StringComparison.Ordinal))
{
throw new UnauthorizedAccessException(“You are only authorized to modify your own profile.”);
}
this.ObjectContext.AttachAsModified(user, this.ChangeSet.GetOriginal(user));
}
}
public partial class Auser : IUser
{
[DataMember]
public IEnumerable Roles
{
get
{
if (this._dbroles != null)
return this.dbroles.Split(‘,’);
else
return null;
}
set { }
}
}
}
Arturo Molina says:
May 12, 2010
Hola Salvador, tu problema con los nombres de espacio pueden ser por los cambios que uso de entre la versión Beta y RC de RIA Services, puedes bajar un documento con todos los cambios hechos a los nombres de espacio en esta dirección: http://code.msdn.microsoft.com/RiaServices/Release/ProjectReleases.aspx?ReleaseId=3570
Salvador Vidal says:
May 13, 2010
OK ya la tengo funcionando, ahora tengo otro problema.
Cuando me identifico, adquiero mis roles.
En cliente le hago la pregunta:
WebContext.Current.User.IsInRole(“Managers”)
y me devuelve true. Corecto. entonces en una query del doamin service le pongo:
[RequiresRole("Managers")]
public IQueryable GetGen_bancos()
Y me da error de que no tengo permisos.
Por que puede ser?
En cambio el [RequiresAuthentication] si funciona bien.
Salvador Vidal says:
May 21, 2010
Entity Framework.
Nos faltaria saber un poco de filosofia de como trabajar con RF. Hasta ahora trabajamos con procedimientos almacenados.
Nos falta luz para saber donde usar cada cosa.
Por otro lado, si tengo un procedimiento para dar de alta, y se lo aplico a una entidad, si este procedimiento quiero que de un error personal, ¿como lo capturo desde el domaindatasouce? he probado con el RAISERROR y no lo captura.
Sabeis como se podria hacer?
Grcias