Modelando el negocio
Leyendo el libro de ASP.NET MVC 1.0, a parte de aprender un poco de MVC, estoy refrescando algunos conceptos de modelado de datos. Uno que me ha parecido muy interesante es la manera de modelar el acceso a datos. Para ello recomiendan que lo que actualmente en mi modelado es una clase entidad (aún sigo usando el motor de persistencia Gentle.NET), se recomienda que se divida en 3, siguiendo el patrón Repositorio.
- DomainClass
- IRepository
- RepositoyClass
Otro punto interesante es como se incluyen las reglas de validación y reglas del negocio en las clases del dominio.
public partial class Dinner { public bool IsValid { get { return (GetRuleViolations().Count() == 0); } } public IEnumerable<RuleViolation> GetRuleViolations() { if (String.IsNullOrEmpty(Title)) yield return new RuleViolation("Title required", "Title"); if (String.IsNullOrEmpty(Description)) yield return new RuleViolation("Description required","Description"); if (String.IsNullOrEmpty(HostedBy)) yield return new RuleViolation("HostedBy required", "HostedBy"); if (String.IsNullOrEmpty(Address)) yield return new RuleViolation("Address required", "Address"); if (String.IsNullOrEmpty(Country)) yield return new RuleViolation("Country required", "Address"); if (String.IsNullOrEmpty(ContactPhone)) yield return new RuleViolation("Phone# required", "ContactPhone"); if (!PhoneValidator.IsValidNumber(ContactPhone, Country)) yield return new RuleViolation("Phone# does not match country", "ContactPhone"); yield break; } partial void OnValidate(ChangeAction action) { if (!IsValid) throw new ApplicationException("Rule violations prevent saving"); } } public class RuleViolation { public string ErrorMessage { get; private set; } public string PropertyName { get; private set; } public RuleViolation(string errorMessage) { ErrorMessage = errorMessage; } public RuleViolation(string errorMessage, string propertyName) { ErrorMessage = errorMessage; PropertyName = propertyName; } }
ASP.NET Mobile
Este es un post que me va a servir para hacer un pequeño recopilatorio de enlaces y revisar las distintas tecnologías disponibles para el desarrollo de mobile web usando ASP.NET. Además de poseer un enlace para poder usarlo en diversos foros.
En principio me gustaría incluir enlaces a los conocimientos y recursos básicos: GAP un tuturial de Luca Passani, creador de WURFL, w3c Mobile Web Best Practices, dotmobi Mobile Web Developer´s Guide.
La primera aproximación y actualmente no recomendable sería usar controles móviles (System.Web.Mobile), aunque estos controles soportan renderizado en WML, cHTML, HTML y xHTML MP, están muy anticuados y no permiten usar características que cualquier móvil actual soporta. La detección de móviles por defecto se puede mejorar usando WURFL, siempre me gusto Marg.Wurfl.
En este último año parece que Microsoft ha comenzado a tener en cuenta la web móvil, y ha liberado su herramienta de detección de dispositivos: mdbf.
Debido a que los actuales dispositivos han mejorado muchísimo, creo que es mucho mejor usar ASP.NET para la web (webforms) que controles móviles. Para ello tendremos en cuenta que el renderizado sea xHTML MP y controlaremos el código generado para que no se abuse de javascript y el tamaño de las páginas no se haga muy elevado.
En la actualidad la mejor manera de desarrollar aplicaciones mobile web es usar MVC: Mobile Web Application toolkit. También son recomendables los siguientes videos. Incluso podremos desarrollar aplicaciones web para el iPhone.
Detectar si es un dispositivo móvil usando WURFL
Un simple recordatorio, via
if(is_wireless_device=false and device_claims_web_support=true) {
the request is from web browser
}
Webkit en móviles
ppk ha publicado unas tablas en las que se comprarán las distintas versiones de webkit. Esto ha provocado la resupuesta Alex Russell y la posterior respuesta de ppk. En mi opinión, aunque el mundo de los navegadores móviles no se ha hecho perfecto, si que está mejorando bastante y seguramente se alcancen pronto características que yo desearía.
El final de ASP.NET WebForms
Parece que no sólo los controles móviles estaban muertos, sino que la tecnología de ASP.NET WebForm ha alcanzado su madurez y es posible que no pueda desarrollarse mucho más para solucionar los inconvenientes que tiene. Al menos eso es lo que afirma Dino Esposito.
En mi opinión los WebForms han alcanzado su principal cometido: permitir una migración sencilla de desarrolladores de aplicaciones en Visual Basic a desarrolladores Web,con la intención de cubrir la demanda de aplicaciones de intranets coorporativas.
Mobile Web Application Toolkit
Microsoft a liberado los Web Application Toolkit para aplicaciones móviles, y un video. En ellos se muestra el desarrollo para aplicaciones web móviles usando ASP.NET MVC.
¿Están los controles móviles de ASP.NET muertos?
Si hace unos días respondíamos en el siguiente blog, que con casi con toda seguridad lo estaban. Ahora hemos encontrado un post en la misma opinión. Aunque parece que sí se pondrán usar desde VisualStudio 2008.


