viernes, 28 de abril de 2017
Expresiones regulares .net
Las expresiones regulares son un método perfecto para hacer validaciones de cadena. El problema reside en definirlas bien.
Ya no tienes excusas para no hacer las pruebas correspondientes , instala
Regular Expression Tester Extension
viernes, 21 de abril de 2017
SharePoint CSOM -ServerLibraryVersion has not been initialized.
Un error tonto pero para volverse loc@
Tenia una app web con una prueba de llamada al sharepoint y decidí poner la función en mi dll real.
El mimos código y con las "mimas" librerías me daba el errror ServerLibraryVersion has not been initialized.
El problema lo tenia justo en en suponer que tenia las misma librerias, eran la mismas pero no de la misma versión

Mi problema estaba en que Microsoft.SharePoint.Client que tenia no era el 16.0 como en la imagen sino el 15.0
Tenia una app web con una prueba de llamada al sharepoint y decidí poner la función en mi dll real.
El mimos código y con las "mimas" librerías me daba el errror ServerLibraryVersion has not been initialized.
El problema lo tenia justo en en suponer que tenia las misma librerias, eran la mismas pero no de la misma versión
Mi problema estaba en que Microsoft.SharePoint.Client que tenia no era el 16.0 como en la imagen sino el 15.0
viernes, 10 de marzo de 2017
Documentación 1.1
Es complicado hacer una documentación del código, aunque no imposible ( siempre que todos los implicados pongan de su parte).
Tengo un varios proyectos que documentar y muchos de ellos hacen referencia a un servicio web.
Al activar la documentación, salen un monto de advertencias que indican que el sw no tiene sus correspondientes comentarios de código.
Mirando por internet hay varias soluciones pero la que me parece mejor es añadir en el fichero Reference.cs del servicio web
Al inicio del fichero : #pragma warning disable 1591
Al final del fichero: #pragma warning restore 1591
Desactivar la advertencia en todo el proyecto también es posible, pero es arriesgado en equipos no acostumbrados a escribir documentación técnica
Yo personalmente para sacar la documentación uso el Sandcastel
viernes, 17 de febrero de 2017
Cuando tu aplicación es multi-idioma
Estoy es un proyecto
que es .net 4.5 en asp web forms, nada
de mvc
Quiero que las propiedades de mis clase sean multi-idioma, por ejemplo que las validaciones sean multi-idioma.
Yo tengo mi clase :
public class Foo
{
public Int32 Id { get; set; }
[Display(ResourceType = typeof(PropertyNames), Name = "Descripcion")]
public string Descripcion { get; set; }
}
Tengo una función
public static string GetDisplayName(Type type, string property)
{
var members =
type.GetMember(property);
if (members.Length == 0) throw new ArgumentException(String.Format("Propiedad '{0}' no esta en el tipo '{1}'", property, type.Name));
var member = members[0];
var attributes =
member.GetCustomAttributes(typeof(DisplayAttribute), false);
if (attributes.Length == 0) throw new ArgumentException(String.Format("'{0}.{1}' no tiene display
property",
type.Name, property));
var attribute = (DisplayAttribute)attributes[0];
return attribute.GetName();
}
Por supuesto tengo un resource PropertyNames.res donde tengo
escrito el texto para los usuarios de la propiedad Descripcion
Y en la función validar
private void Validar (Foo oFoo)
{
if (String.IsNullOrWhiteSpace(oFoo.Descripcion))
throw new Exception(Resource.msgCamposObligatorios + Comun.GetDisplayName(typeof(Foo), "Descripcion") )
}
Un pasito más. Tengo varios enum que por puesto también quiero
sea multi-idioma y que si tengo que sacarlos en un combo o radiobuton list no
tenga que llenar el código de id o case.
public static List<KeyValuePair<string, string>> ObtenerTextosEnum(Type tp)
{
List<KeyValuePair<string, string>> oret = new List<KeyValuePair<string, string>>();
if (!tp.IsEnum)
throw new Exception("No es un tipo Enum
reconocible ");
Array items = Enum.GetNames(tp);
foreach (string item in items)
{
oret.Add(new KeyValuePair<string, string>((string)item, GetDisplayName(tp, item)));
}
return oret;
}
Acepto que las validaciones de una web puede estar perfectamente
por JavaScript, siempre que no sean validaciones complejas o funciones que en
un futuro se vayan a llamar creando un sw o una app de móvil o escritorio.
Acepto también que se hacen muchas aplicaciones preparadas para el multiidioma con ficheros de recursos que nunca se traducen.
Para mcv esto ya está resuelto http://www.variablenotfound.com/2014/03/soporte-para-enums-en-aspnet-mvc-51.html
viernes, 9 de diciembre de 2016
Directorios utiles
Mi memoria cada dia va peor
Donde está la GAP de .Net
C:\Windows\Microsoft.NET\assembly\GAC_32
C:\Windows\Microsoft.NET\assembly\GAC_64
Donde está el host.in
C:\Windows\System32\drivers\etc
Donde está la GAP de .Net
C:\Windows\Microsoft.NET\assembly\GAC_32
C:\Windows\Microsoft.NET\assembly\GAC_64
Donde está el host.in
C:\Windows\System32\drivers\etc
viernes, 25 de noviembre de 2016
Oracle,
Consultas de Oracle para conocer la conexiones
http://deckerix.com/blog/consultas-sql-utiles-que-todo-dba-de-oracle-deberia-conocer/
http://deckerix.com/blog/consultas-sql-utiles-que-todo-dba-de-oracle-deberia-conocer/
viernes, 2 de septiembre de 2016
Suscribirse a:
Entradas (Atom)