Ver por etiquetas

Todas las etiquetas » .net (RSS)
Hola! Un post cortito, sobre un error que me he encotrado… Al compilar un proyecto, marcado para interoperabilidad COM VS.NET se me ha quejado con el siguiente error: c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(3019,9): error MSB3217: Cannot register assembly "C:\Teamserver\Phoenix\Refactoring\Core\DevelopmentCore-WI5825-SIO4\bin\Debug\PhoenixContainer.dll". Method 'GetDefaultIWorkspace' in type 'CaixaPenedes.Phoenix.Core.CompositeUI.ShellUserControl'...
con no comments
Archivado en:
Una capacidad de la que no se habla mucho es de TxF, que apareció junto con Vista: es la capacidad de tener transacciones sobre ficheros NTFS. Esas transacciones pueden afectar a uno o a varios ficheros… y no solo eso: gracias al poder de DTS podemos coordinar una transaccion TxF con otros tipos de transacciones como SQL Server o MSMQ! Como pasa con muchas de las características avanzadas de windows, sólo se puede usar en .NET a través de p/invoke (si obviamos C++/CLI claro)… vamos a ver un ejemplo...
1 comment(s)
Archivado en: ,
Te has preguntado alguna vez la diferencia de rendimiento que pueda haber entre el método extensor Count() proporcionado por LINQ y la propiedad Count de la interfaz IList<T>. Es decir dado el siguiente código: List< int > lst = new List< int >(); // Añadimos ints a la lista... // Qué es más rápido? var count = lst.Count; var count2 = ((IEnumerable< int >)lst).Count(); A veces hacemos suposiciones sobre como funciona LINQ to objects. Uno puede pensar que el método Count()...
2 comment(s)
Archivado en:
Buenas! Como prometí en el post anterior sobre el CodeCamp , en mi charla sobre Code Contracts, quedaron por ver algunos temillas que aprovecho para comentar ahora. Pruebas Unitarias Primero remarcar que no realiceis pruebas unitarias para validar que vuestros contratos están bien, es decir, si teneis un método: public void Foo( int arg) { Contract.Requires(arg > 0); } No hagáis una prueba unitaria que compruebe que el contracto falla si se le pasa cero a arg. ¿Por...
con no comments
Archivado en: ,
Hola a todos! En el post anterior os comenté algunas cosillas sobre STM.NET, un “experimento” de los DevLabs de Microsoft para introducir conceptos transaccionales dentro de .NET. En este segundo post quiero extenderme un poco más con algunos ejemplos un pelín más elaborados. Ejemplo 3 En el ejemplo 2 (del post anterior) vimos como lanzar una excepción dentro de una transacción definida por Atomic.Do() hacía un rollback de todos los cambios...
con no comments
Archivado en:
Uno de los retos más importantes a los que se enfrenta en breve el desarrollo de aplicaciones tiene que ver con la programación paralela. Ahora que se empieza a vislumbrar el acercamiento del fin de la Ley de Moore , si queremos seguir el espectacular aumento de potencia debemos irnos a entornos multi-procesador o multi-core. Hace unos años eran coto reservado a entornos de investigación, y ahora ya están encima de nuestra mesa… Hay varias visiones sobre...
3 comment(s)
Archivado en:
Hola! ¿Como ha ido el verano? A todos los que hayais disfrutado de unas buenas vacaciones, espero que os hayan sido provechosas… Pero como dicen, todo lo bueno se acaba, y toca volver al tajo. En el proyecto en el que estoy, nos hemos visto en la necesidad de comunicarnos con la ventana principal de otro proceso, realizado en Visual Basic 6. Sobre ventanas, HWNDs y demás… Los que conozcais un poco como funciona internamente Windows, podéis saltaros este apartado...
3 comment(s)
Archivado en: ,
Hola... qué tal? Imagina que en algún proyecto que estés haciendo, quieres ofrecer una combo para seleccionar colores. De acuerdo, ya se que hay otros métodos para hacer que el usuario seleccione un color, como usar el ColorDialog , pero a lo mejor te interesa que el usuario sólo pueda escoger colores de una lista predeterminada... Por suerte en .NET hacer que una combo dibuje sus elementos como nosotros queremos, es realmente simple... ¿quieres tener una...
3 comment(s)
Archivado en: ,
A veces hay aspectos de C# que no pensamos hasta que nos encontramos con ellos… A mi me pasó con un código parecido a este: class Program { static void Main( string [] args) { Baz baz = new BazDerived (); new Foo ().Bar(baz); Console .ReadLine(); } } class Foo { public void Bar<T>(T t) { Console .WriteLine( "Bar<T> typeof(T) = " + typeof (T).Name); } public void Bar( object o) { Console .WriteLine( "Bar o.GetType() = " + o.GetType().Name); } } class Baz { } class BazDerived...
4 comment(s)
Archivado en:
Imaginaos que teneis una solución con varios proyectos, y que estos compilan en un directorio concreto, llamésmole Q:\bin. En otra solución teneis varios proyectos más, con referencias a los assemblies que estan en Q:\bin (no son referencias de proyecto porque estan en distintas soluciones). Y ya puestos, imaginad también que estáis usando Code Contracts. Y cuando compilais los proyectos de la segunda solución visual studio se descuelga con un bonito error: Unresolved assembly reference not allowed...
con no comments
Archivado en:
Hola a todos… después de que Jorge (en http://geeks.ms/blogs/jorge/archive/2009/04/26/precondiciones-y-microsoft-code-contracts.aspx ) yo mismo (en http://geeks.ms/blogs/etomas/archive/2009/05/04/pexcando-errores-en-nuestro-c-243-digo.aspx ) comentasemos algo de Code Contracts, voy a comentar algunas cosillas más que me he encontrado con Code Contracts usándolos en un proyecto real. Aunque están en fase “beta”, la tecnología está lo suficientemente...
2 comment(s)
Archivado en:
Que XmlSerializer es una clase curiosa es evidente, hay multitud de maneras de controlar la serialización de un objeto y varios trucos más o menos ocultos (os recomiendo el blog de jmservera que tiene algunos posts interesantes)… … Lo que quiero comentaros ahora es un caso que me encontré el otro día (valeeee… ayer), en concreto con las auto-propiedades que se incorporaron en C# 3.0. En la msdn se dice que XmlSerializer es capaz de serializar propiedades ICollection o IEnumerable que sean read-only...
5 comment(s)
Archivado en:
Un post rápido para decir sólo dos cosas: DllImport y clases genéricas no se llevan bien. Meter un DllImport en una clase genérica (o derivada de alguna genérica) lanza un TypeLoadException. Más importante que la anterior : No nos habríamos topado con el error de haber seguido las recomendaciones de uso de DllImport. Y ni siquiera podemos alegar desconocimiento de ellas, ya que si hubiesemos usado el análisis estático de código...
con no comments
Archivado en:
Hola! Ayer un compañero de trabajo me comentó un problema con el que se encontró trabajando con propiedades ocultadas y el serializador xml. En concreto, quería serializar dos clases tales como las que siguen: public class FOO { private List < FOO > _items; public List < FOO > Items { get { return _items; } set { _items = value ; } } } public class DerivedFOO : FOO { private List < DerivedFOO > _items; public new List < DerivedFOO > Items { get...
3 comment(s)
Archivado en:
¿Conoceis el BOM? Los que no, teneis suerte… los que sí, seguro que lo habeis sufrido… :) Para los que no, contaros que el BOM, o Byte Order Mask que es lo que significan sus siglas, no es nada más que una marca (de entre 2 y 3 bytes) al principio de un archivo Unicode que indica el formato de los datos… si están en little endian o big endian p.ej. Quereis verlo en acción? Abrid el bloc de notas y teclead cualquier palabra, como p.ej. Agüero...
8 comment(s)
Archivado en: