Ver por etiquetas

Todas las etiquetas » C# (RSS)

[ASP.NET MVC] Controladores con el mismo nombre con MVC y WebAPI en el mismo proyecto

Si estas empezando a usar WebAPI y ASP.NET MVC , una pregunta que se suele hacer la gente es como poder usar el mismo nombre de controlador tanto para nuestra api como para nuestros controladores de mvc. La respuesta es sencilla y nos la da de base .NET: Namespaces Yo en mis desarrollos me creo una nueva carpeta dentro de Controllers llamada Api : Así puedo tener el 2 controladores con el mismo nombre pero en diferente espacio de nombres. namespace Company.Project.Web.Controllers { public class WeatherController...
Publicado por Luis Ruiz Pavón | 1 comment(s)
Archivado en: ,

[Tips] Obtener información de usuarios de un grupo de Active Directory

Si trabajas con SharePoint, sabrás que puedes añadir a un grupo de seguridad de SharePoint un grupo de Active Directory, y al listar los usuarios del grupo de Miembros de un sitio, el modelo de objetos de SharePoint te devuelve ese grupo en forma de SPUser, pero no puedes obtener los usuarios que forman parte de ese grupo, y en mi caso lo necesito. Dese luego que existen muchas maneras de hacer esto, pero para mí la más sencilla para lo que necesitaba es la que os muestro a continuación: var domainName...

[Pregunta] ¿Cuál es la salida de este programa?

class Program { static void Main( string [] args) { var arrayAction = new Action[10]; for (var i = 0; i < 10; i++) { arrayAction[i] = () => Console.Write( "{0} " , i); } foreach (var action in arrayAction) { action(); } Console.Read(); } } a) 0 1 2 3 4 5 6 7 8 9 b) 1 2 3 4 5 6 7 8 9 10 c) 0 0 0 0 0 0 0 0 0 0 d) 10 10 10 10 10 10 10 10 10 10 Un saludo.
Publicado por Luis Ruiz Pavón | 12 comment(s)
Archivado en:

[Pregunta] Sobre métodos extensores II

Dada la siguiente clase: public class Striker { public string Name { get; set; } public int Goals { get; set; } public Look Looks { get; set; } } public enum Look { Handsomd, Ugly } Creamos un método extensor Where : public static class Extensions { public static IEnumerable<Striker> Where( this IEnumerable<Striker> source, Func<Striker, bool > filter) { foreach (var striker in source) { if (filter(striker) && (striker.Looks == Look.Handsomd)) yield return striker;...
Publicado por Luis Ruiz Pavón | 12 comment(s)
Archivado en:

[Pregunta] Sobre métodos extensores

Partiendo de una clase llamada Foo con un método Hello : public class Foo { public void Hello() { Console.WriteLine( "Hello Foo!" ); } } Añadimos un método extensor a dicha clase que se llama también Hello : public static class Extensions { public static void Hello( this Foo foo) { Console.WriteLine( "Hello Foo Extension!" ); } } ¿Que crees que ocurrirá? Error de compilación porque el compilador encuentra 2 métodos que se...
Publicado por Luis Ruiz Pavón | 9 comment(s)
Archivado en:

[SharePoint] La clase SPUtility y su manera extraña de convertir un DateTime al formato ISO8601 ¿Opiniones?

Sí trabajas habitualmente con SharePoint, sabrás que las fechas con las que trabaja SharePoint están en formato ISO8601 algo como esto: yyyy-MM-ddTHH:mm:ssZ Seguro que en alguna CAML Query has tenido que utilizarlo: < Query > < Where > < Eq > < FieldRef Name ="Created" /> < Value IncludeTimeValue ="TRUE" Type ="DateTime" > 2012-03-02T13:46:06Z </ Value > </ Eq > </ Where > </ Query > Pues dentro de la clase SPUtility...

[ASP.NET] Security.Exception usando NHibernateProfiler en nuestra aplicación web

Si trabajáis con NHibernate os recomiendo que uséis NHibernate Profiler para que podáis ver todo lo que está pasando entre vuestra aplicación y la base de datos. Si intentas inicializar el profiler en una aplicación ASP.NET: void Application_Start( object sender, EventArgs e) { HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize(); } puede que te encuentres con esta excepción: Server Error in '/' Application. Security Exception Description: The application attempted...

[Testing] Pruebas de acoplamiento

Por todos creo que son conocidas las pruebas unitarias , integración , aceptación y funcionales , pero no son tan conocidas las pruebas de acoplamiento. A ráiz de este post tenía pendiente escribir un post acerca de este tipo de pruebas y lo que pueden ayudarnos mantener nuestra aplicación desacoplada entre capas o tecnologías. Vamos a ver todo esto con un ejemplo, que pienso que es la mejor manera de entenderlo. Tenemos un proyecto que contiene nuestra lógica...
Publicado por Luis Ruiz Pavón | 2 comment(s)
Archivado en: ,,

AutoMapper (I) Flattening

Antes de escribir sobre este proyecto, he realizado una búsqueda en Geeks.ms y no he encontrado nada, así que empezaremos desde cero para que todo el mundo la conozca. ¿Qué es AutoMapper? Básicamente y sin complicar mucho la definición, sirve para realizar mapeos entre objetos .NET usando fluent interfaces y convention over configuration , o lo que es lo mismo, interfaces fluidas y convenciones predifinidas en su API en vez del uso de ficheros de configuración...
Publicado por Luis Ruiz Pavón | 1 comment(s)
Archivado en: ,,

[Patrones] Intercepción de llamadas a métodos (III) IoC containers

Continuando y para cerrar ya la serie de posts sobre la intercepción de llamadas a métodos (Aquí está el primero y segundo ) vamos a terminar con un ejemplo usando un contenedor de dependencias. Para este ejemplo vamos a usar Castle Windsor . Si intentamos instalarlo usando la consola de NuGet recibiremos este error: La solución a este error la he encontrado en stackoverflow y es usando el pipeline de powershell para instalar todos los paquetes que Castle.Windsor...
Publicado por Luis Ruiz Pavón | 1 comment(s)

[Patrones] Intercepción de llamadas a métodos (II) AOP

Continuando con la serie de posts sobre la intercepción de llamadas a métodos (Aquí está el primero ) hoy le toca el turno a la programación orientada a aspectos , y ya que la seguridad se trata como un aspecto transversal (CrossCutting) a toda la aplicación (Como también los son los logs, las trazas…) vamos a ver como podemos hacer el ejemplo anterior usando AOP y en concreto usando la librería PostSharp (en este post no vamos a entrar...
Publicado por Luis Ruiz Pavón | 9 comment(s)
Archivado en: ,,

[Patrones] Intercepción de llamadas a métodos (I) Patrón Decorator

Ayer a ráiz de un post de Javier Torrecilla salió una discursión acerca de como tratar el tema de la seguridad en nuestras aplicaciones. Javier hablaba sobre el uso la clase PrincipalPermission y mi comentario fue a la hora de ver que el código de Javier, mezclaba un tema como la seguridad en la vista (Entiendo que es un ejemplo) pero yo soy un poco toca… (En el buen sentido de la palabra XD ) y le comentaba que el tema de la seguridad, en mi caso lo trato como...
Publicado por Luis Ruiz Pavón | 2 comment(s)
Archivado en: ,,,

Problemas con DateTime.MinValue en un servicio REST JSON

Buenas, de vuelta de vacaciones y con las pilas cargadas me encuentro que al llamar a mi servicio REST me devuelve un objeto nulo: La clase que devuelve el servicio, tiene un campo de tipo DateTime y al depurar me encuentro esto: El problema es que el valor de DateTime es MinValue porque se me había olvidado asignarle el valor en la clase de mapeos y por defecto su valor es MinValue. El porque de este problema lo podéis encontrar muy bien explicado aquí: http://stackoverflow.com/questions/4025851...
Publicado por Luis Ruiz Pavón | con no comments
Archivado en: ,,

Aplicación para hacer backup de tus post de CommunityServer

Ayer necesitaba recuperar mis post de geeks para un informe de actividad, y ya que alguno por Twitter me comentó que tal vez le interesaba, hoy publico el código con el cual recuperé los post. He de decir que la app es un poco cutre y que la parte de procesar los post recuperados para guardarlos en bd, fichero, xml… no la he implementado y lo he dejado al gusto del consumidor (En mi caso lo almacené en un Excel) y que la parte de descargar imagenes no la he implementado...
Publicado por Luis Ruiz Pavón | con no comments
Archivado en: ,

[EntLib 5.0 Validation Block] Validación encadenada de entidades

Una de las cosas que nos ofrece el Validation Block es la posibilidad de validar entidades que a su vez tienen entidades con validaciones que a su vez… vamos una validación encadenada y que es facilmente configurable a través de los siguientes atributos: ObjectValidator –> Una entidad ObjectValidatorCollection –> Una colección de entidades Y como no, lo mejor es ver un ejemplo sencillo: namespace ConsoleApplicationValidation { class Order { public Guid Id { get; set; } [ObjectCollectionValidator...
Publicado por Luis Ruiz Pavón | con no comments

[ASP.NET] Simular un EmptyDataTemplate en un DataList

Como sabréis, este tipo de template no está disponible en el control DataList (El GridView sí dispone de esta plantilla EmptyDataTemplate ) para mostrar un mensaje informandole al usuario que no hay registros. Así que vamos a ver como con unas lineas de código podemos simularla: Yo en mi caso voy a utilizar el FooterTemplate del DataList como sí se tratase de mi EmptyDataTemplate: < FooterTemplate > < asp:Label ID ="lblNoRecords" runat ="server" Visible ="false"...
Publicado por Luis Ruiz Pavón | con no comments

El mal uso de var

Ultimamente vengo viendo mucho código en el que se hace intensivo el uso de var para declarar todo tipo de variables y me gustaría dar mi opinión sobre este mal uso: El uso extensivo de var dificulta la legibilidad y comprensión del código fuente, porque un buen código (por lo menos para mí) es el que con leerlo lo podemos entender, por ejemplo: var i = obj as string ; En este caso concreto se puede observar claramente que el tipo es string (porque lo vemos), pero y en esta caso: var i = obj; Pues...
Publicado por Luis Ruiz Pavón | 7 comment(s)
Archivado en: ,,

[Tips] Crear nuestras propias directivas de compilación

Una entradita rápida para ser viernes. El otro día un compañero me dijo que sí sabía como se podían crear directivas de compilación para un tipo de configuración especifica como por ejemplo se hace con la directiva DEBUG: #if DEBUG Console.WriteLine( "Debug" ); #endif Los pasos son los siguientes: Nos vamos a las propiedades del proyecto: Una vez creada y configurada y guardada, nos vamos al editor de VS y con la configuración...
Publicado por Luis Ruiz Pavón | 5 comment(s)

Malas prácticas: SQL Injection + Varios I

Buenos días a todos, hace tiempo que no escribo ningún post decente y no es por falta de tiempo, sino por que actualmente estoy inmerso en un gran despliegue y la verdad es que no me da mucho para escribir sobre ello, espero que mi nuevo proyecto sí me de para compartir mis experiencias que creo que serán útiles para muchos ;) A día de hoy Viernes 9 de Octubre de 2009 sigo encontrandome código, bien sea en aplicaciones reales y en blogs (Además sí es un blog de renombre visitado por cientos de personas...
Publicado por Luis Ruiz Pavón | 6 comment(s)
Archivado en: ,,

[iPhone] Download Monotouch Trial

Ya se ha hablado de Monotouch en Geeks: http://geeks.ms/blogs/oalvarez/archive/2009/08/04/mono-para-el-iphone.aspx http://geeks.ms/blogs/eecsaky/archive/2009/08/04/monotouch-c-para-tu-iphone.aspx Ahora ya se puede descargar la trial de Monotouch: http://www.mono-project.com/newstouch/archive/2009/Sep-16.html Salu2
Publicado por Luis Ruiz Pavón | 1 comment(s)
Archivado en: ,,
Más artículos Página siguiente >