¡Bienvenid@ a La bloguera.net! Iniciar sesión | ÚNETE a la web | Ayuda

Modo Dios en Windows 7

¿Quieres tener accesibles toda la configuración del sistema en un único sitio? ¿Sin menús? ¿Sin opciones? ¿Organizado por categorías? ¿Y donde tu quieras?

Pues es tan sencillo como habilitar el “Modo Dios”, para ello es tan sencillo como coger tu teléfono, llamar a Bill Gates, te transferirá al FBI que te contará las puertas secretas de Microsoft para saber toda la información del sistema.

Realmente es más “sencillo” que todo eso, simplemente:

  1. Vete a la carpeta donde quieras tener accesible esa configuración.
  2. Crea una nueva carpeta
  3. Llámala: GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
  4. Y ábrela:

clip_image002

Y así, solo con eso, de forma tan intuitiva, activamos el “Modo Dios” de nuestro Windows 7.

http://twitter.com/eugenioestrada

enviado por eecsaky | 1 comentarios
Archivado en: ,

2009, the final countdown

Ha llegado el momento, no lo podía retrasar más. Termina el 2009 y ahora hay que mirar atrás. Remontarse al 1 de enero de 2009 y ver que nos ha traído este año hasta llegar al día de hoy a todos los niveles: personal, profesional, académico, etc.

Este año es difícil esta tarea, ya que antes de empezar a escribir tengo la ligera sensación de que por primera vez creo que el balance es negativo.

Mirando hacia atrás

El 2009 comenzó con muchas esperanzas en el mayor cambio en mi vida de los últimos años: primer año universitario. Pero a la par un hecho que no se podía obviar: la situación económica de este país estaba cada vez más empeorando, hecho que en mi ciudad ha dejado huella. A nivel profesional he tenido la suerte de ir en la cresta de la ola, viendo madurar Silverlight para proyectos empresariales.

La despedida de este año, para mi, tiene más implicaciones. No es solamente la despedida del 2009, es la despedida de la década del 2000 y a su vez me quedan 14 días de teenager, ya que el 13 de enero cumplo los 20 años (si… aunque parece imposible, yo también crezco :P).

Como antes he citado, la situación económica se ha traducido en el cierre de cientos de PYMEs que se encontraban en nuestra ciudad, han abierto 3 centros comerciales en 2009 (en A Coruña viene en 2010 el 3º más grande de Europa…) y eso se ha notado en nuestra ciudad. Las ofertas, la caída de precios, etc. es el pan de todos los días durante 2009, pero eso que al consumidor le “gusta” tiene una tragedia detrás de cada puerta, con cierres, cuentas que no cuadran a final de mes, etc.

El primer año universitario… bueno… como todo buen primer año universitario :-) Cambios… de horarios… de costumbres… Hay que acostumbrarse… Organizarse… Hay esperanza en 2010 y más aun en 2011 con la implantación del plan Bolonia que tanto he defendido y cuyos resultados (teóricos) en la Facultad de Informática de A Coruña me parecen impresionantes. En este primer año he creado el FIC.NET Club, dotNetClub orientado a difundir tecnologías de Microsoft, donde contamos actualmente con 200 miembros (cosa que no está mal sabiendo que somos 2000 alumnos aproximadamente) y subiendo.

Como he dicho, a nivel profesional me ha tocado pelearme con Silverlight y menos con ASP.NET como hasta ahora. Comenzando un proyecto con Silverlight 2.0 + ADO.NET Data Services + E.F. 1.0, migrando posteriormente a Silverlight 3.0 + RIA Services, posteriormente a Silverlight 3.0 + WCF RIA Services Beta. Pensando ya en la migración a Silverlight 4.0 + WCF Ria Services + E.F. 4.0, para cuando llegue Visual Studio 2010. Además nos hemos convertido en Microsoft Partner y Silverlight Partner.

Entre los eventos que he tenido el honor de acudir están la final de la Imagine Cup española y el CodeCamp de Tarragona.

Además he tenido la suerte de ser colaborador de Ontuts. Un sitio web de tutoriales y recursos de calidad sobre diseño web. Donde he empezado introduciendo qué es Silverlight y en breve tendremos la segunda parte lista para empezar a ahondar en el asunto.

Al fin y al cabo, no parece tan negativo como parecía en un principio, ¿no?

Mirando hacia delante

¿Qué esperamos de 2010? Pues de forma muy breve y resumida. En 2009 dije que sería el año de la sincronización, no terminó de cuajar del todo pero quedamos a medias. Este año se continuará en la misma tendencia. Sistemas operativos conectados, móviles inteligentes, internet móvil.

¿Qué opináis?

En fin…

¡FELIZ AÑO 2010!

enviado por eecsaky | 1 comentarios

Google Chrome OS, el movimiento estratégico

Mucho se ha hablado durante estos días sobre “el nuevo rival de Windows” (El Mundo), “está pensado inicialmente para miniportátiles, zona donde Windows tiene más problemas de penetración” (El País). Solamente en pocos sitios como en Error500, “me ha recordado mucho a los terminales tontos”, se acercan a lo que, a mi parecer, es el movimiento estratégico que Google que llevar a cabo con este movimiento.

Desde el inicio del desarrollo de Google Chrome lo he seguido especialmente de cerca. De hecho, llevo tiempo haciendo un seguimiento de todo lo que se mueve al rededor de Google. Esa friendly-empresa que cada día me pone más nervioso. Me extraña que el mediático Enrique Dans no haya escrito ningún post al respecto. Él, que parece saber todo lo que en esta empresa se cuece, no ha visto (o no ha tenido tiempo de compartir), la estrategia que Google pretende llevar dentro de los próximos meses y años.

Ya hace tiempo que defiendo que Google no es una empresa de desarrollo de software, la innovación y crecimiento tecnológico no está dentro de sus objetivos, otra cosa muy diferente son los objetivos de sus investigadores. Esto lo demuestra con que los desarrollos tecnológicos de Google pasan por el aglutinamiento y mejora de software de terceros, creando un producto único por la mezcla y no por la innovación, cosa que le reduce el coste de desarrollo. Es una empresa de servicios y concretando más de publicidad. Intenta llevar su publicidad a todas partes. Dentro de su decálogo incluye no usar medios tradicionales de publicidad (cosa que incumplió hace un año). De todas formas, lo que pretendo comentar aquí es el objetivo estratégico que tiene Google con este sistema.

Comencé haciendo alusión a citas extraídas directamente de los dos principales periódicos de nuestro país. Y quería comentar el erróneo concepto que tienen de Google Chrome OS, y lo que es más importante a quien afecta directamente y como usuarios a quien beneficia. De la presentación de Google Chrome OS, podemos extraer varias premisas, sobre el sistema operativo:

  • Es sólo para netbooks (mercado en auge hace un año y en decadencia actualmente)
  • Sólo aquellos netbooks que Google diga (o que cumplan sus especificaciones de hardware)
  • Es obligatorio tener una cuenta en Google
  • Imprescindible Internet
  • Será gratuito

Todos estos puntos tienen algo en común y es que siempre que usemos el sistema operativo, estaremos conectados a Google. Como he dicho es gratuito porque Google no valora el desarrollo tecnológico. Lo que le interesa es eso una puerta directa a sus servicios.

Pero esto va más allá, ya que Google a lo largo del 2010 va a presenta dos grandes bombas (conocidas), Google Books como portal de venta de libros. Y va a crear su propia “Itunes”, para la venta de música. Si eso lo sumamos a su “propio” dispositivo tenemos el bombazo del año.

Esto puede ir más allá, Google Chrome OS tendrá juegos.

Por tanto, Google está imitando la estrategia de Apple con Itunes y Iphone, pero con un netbook y el de Amaazon con el Kindle.

Seguramente una de las especificaciones de hardware que pidan los Google netbooks sea que integren 3G. Además también han anunciado que funcionará con dispositivos externos como cámaras, pendrives, etc.

Entonces es normal que Microsoft no se sienta amenazada con esto.

¿Qué opináis?

Sígueme en http://twitter.com/eugenioestrada

enviado por eecsaky | 1 comentarios
Archivado en:

Silverlight para Windows Embedded

En la próxima versión de Windows Embedded CE 6 (la R3), incluirá una versión de Silverlight. Aclaro esto, porque hay que coger la noticia con cuidado.

Va a incluir una maquina de renderizado de XAML (de un subconjunto de Silverlight 2 XAML), para ello debes diseñar la aplicación con Blend / Visual Studio y luego hacer un programa nativo en C++ para poder usar el ejemplo.

Más información: http://blogs.msdn.com/obloch/archive/2009/11/17/xaml2cpp-the-missing-tool-for-silverlight-for-windows-embedded-developers.aspx

enviado por eecsaky | 0 comentarios
Archivado en: ,

Bing Maps Silverlight Control publicado

Ha sido liberado el control de Silverlight para Bing Maps! Ya podemos incluir mapas con la tecnología DeepZoom dentro de nuestras aplicaciones Silverlight.

image

Nos permite establecerle la cultura, el centro del mapa y un montón de cosas más.

Un ejemplo:

Además viene con el nuevo SDK interactivo, con el que podemos diseñar el mapa que queremos poner:

http://www.microsoft.com/maps/isdk/silverlight/

Y por último debemos usar el portal de Bing Maps para obtener un key para publicar nuestro mapa:

https://www.bingmapsportal.com/

Descarga: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=beb29d27-6f0c-494f-b028-1e0e3187e830

 

Sígueme en http://twitter.com/eugenioestrada

enviado por eecsaky | 1 comentarios
Archivado en: ,

Facebook Developer Toolkit 3.0, ahora con Silverlight

Se acaba de hacer publico el Facebook Developer Toolkit con soporte oficial a las cuatro tecnologías front-end estrella de Microsoft: WPF, ASP.NET, ASP.NET MVC y, como no, Silverlight.

Este Toolkit lo desarrolló originalmente Clarity Consulting Inc para el equipo de Microsoft Visual Studio Express, pero actualmente está hospedado en su sitio dentro de CodePlex:

http://www.codeplex.com/FacebookToolkit

Sígueme en: http://twitter.com/eugenioestrada

enviado por eecsaky | 1 comentarios
Archivado en: ,

Ontuts: Introducción a Silverlight: Parte I

En colaboración con ontuts.com, acabo de publicar el primer artículo de una serie introducctoria a Silverlight, totalmente desde cero. En este primer artículo contesto preguntas como qué y para qué es, entre otras muchas cosas.

Las aplicaciónes Web de última generación son una combinación entre aplicaciones Web y aplicaciones de escritorio que ofrecen al usuario una buena experiencia de usuario. Y alrededor de ellas, es donde nace Silverlight. Una tecnología que se puede… ver… oír… !tocar! ¡sentir!

El artículo puede ser leído en:

http://web.ontuts.com/tutoriales/introduccion-a-microsoft-silverlight-parte-i/

Sígueme en:http://twitter.com/eugenioestrada

enviado por eecsaky | 1 comentarios
Archivado en: ,

Despliegue distribuido de clientes en .NET problemas y futuro

Desde la beta 1 de Visual Studio 2010 llevo testeándolo, pero aun no me había atrevido a escribir nada. Pero esta mañana leí una cosa que me pareció bastante interesante.

Para aquellos que tenemos aplicaciones distribuidas usando .NET 3.5 SP1 tenemos bastantes problemas a la hora de la distribución o inclusión de nuevos clientes.

Estos problemas derivan de que .NET 3.5 SP1 es una recopilación de bastantes actualizaciones partiendo de .NET 2.0 como base:

image

Lo que supone instalar 6 actualizaciones acumulativas, esto sobre una instalación base de XP sin .NET. Sobre todo la última actualización .NET 3.5 SP1 se hizo más pesada de lo habitual. Ya que incluía parches para el .NET 2.0, para el .NET 3.0 y para .NET 3.5. Ya que aun que en el gráfico yo lo puse en ese orden, no fue ese el orden real de publicación, ya que el .NET 2.0 SP2 y el .NET 3.0 SP2 fueron publicados junto al .NET 3.5 SP1 y durante un tiempo solo se podían instalar con el .NET 3.5 SP1 (el gráfico de publicación lo podéis ver a continuación).

image

Esto supuso un gran problema. Si nosotros nuestro proyecto de .NET 2.0 (con Visual Studio 2005) lo migrábamos a Visual Studio 2008 SP1 (liberado junto a .NET 3.5 SP1) y compilábamos con .NET 2.0, realmente estaría compilando con .NET 2.0 SP2 y en nuestros clientes no funcionaría. El problema se vio agravado ya que el paquete de .NET 2.0 SP2 no estuvo disponible hasta 6 meses después de la liberación de .NET 3.5 SP1. Cosa que obligaba instalar en todos los clientes el monumental .NET 3.5 SP1 (que ocupaba 3 veces más que su original 2.0). No solo eso, la instalación de dicho paquete se hacía eterna (aproximadamente entre 45 min y 1 hora dependiendo de la máquina). Esto en una máquina, ni en diez, es problema. Pero si hablamos de un sistema distribuido con un número considerable de clientes, si que podría ser un problema, sobre todo garantizando el funcionamiento del sistema durante la implantación y su mantenimiento.

Otra solución posible sería el planteamiento del uso del Client Profile de .NET Framework, que es una versión reducida para clientes distribuidos. Pero, solo era posible la opción si partíamos de una instalación limpia (sin .NET) y solo disponible en XP (ya que Windows Vista trae consigo .NET 3.0 y Windows 7 tiene .NET 3.5 SP1).

Pero .NET 4.0 tiene grandes novedades en su .NET Framework 4 Client Profile. Como gran novedad, al contrario que su antecesor, se puede instalar en cualquier SO y plataforma donde .NET 4 Framework esté soportado. Siendo Client Profile un subset de .NET 4 completo y el .NET 4 completo es un superset del primero. No solo eso, además han conseguido reducir el Client Profile a un distribuible de apenas 30 MB, incluyendo las tecnologías más comunes de los clientes como Windows Forms o WPF. Por otra parte, Visual Studio 2010 Beta 2 en sus proyectos de escritorio tiene por defecto el Client Profile activado.

Siendo esta la tabla comparativa (extraída de un post de Scott Guthier):

 

 

.NET Framework 4 Client Profile (NEW)

.NET Framework 3.5 SP1 Client Profile

Supported OS

Supported on all platforms and  OSs that are supported by the .NET Framework (excluding IA64 and the Server Core role in W2K8)

Supported only on Windows XP 32-bit machines that did not have any .NET Framework version installed.

(Client Profile setup silently installs the full 3.5 SP1 Framework otherwise)

Redistributable

Supports redistributable as well as web download

Supports web download only

Add Remove Programs entries

The full Framework comprises the Client Profile and another part called “Extended”. Thus it has two entries in the Add/Remove Programs dialog (or Programs and Features window).

If you installed the Full Framework, you can switch to the Client Profile by simply removing “Extended” from Add/Remove Programs.

Single entry in Add Remove Programs

Visual Studio

Improved support for Client Profile targeting in Visual Studio 2010.

By default many Visual Studio 2010 Beta2 Client project target the NET4 Client Profile.

Single checkbox in Visual Studio 2008 Service Pack 1 “Application” Project properties for .NET Framework 3.5 projects. Client Profile support unavailable in out-of-the-box VS 2008.

Features

Includes new .NET 4  features (such as Managed Extensibility Framework (MEF), C# 4 Dynamic Keyword,etc) as well as features previously included in NET 3.5 SP1 Full (Speech, WPF Spell Check, etc)

Subset of features in .NET 3.5 SP1 Full

Espero que os sea útil e interesante :-)

Follow me: http://twitter.com/eugenioestrada

enviado por eecsaky | 1 comentarios
Archivado en:

Microsoft e Intel anuncian Silverlight para Moblin

Microsoft e Intel acaban de anunciar el desarrollo de una implementación especifica de Silverlight para el S.O. basado en Linux de Intel, Moblin. Dicho sistema operativo tiene un repositorio de aplicaciones similar al del iPhone, donde sería distribuída dicho paquete.

Ha llamado especialmente la atención este anuncio ya que ya existe una implementación de Silverlight para Linux, Moonlight, tras el amparo de Novell. Pero Microsoft e Intel han justificado una nueva implementación en que mientras que Novell, con Moonlight, su target son S.O. de escritorio. Microsoft seguirá desarrollando implementaciones especificas, como puede ser la de Moblin, la de Nokia, etc. Ya que está sería con la ayuda de Intel para conseguir una mejor experiencia en equipos basados en Atom.

Para más información:

Programa de desarrollo de Intel Atom: http://appdeveloper.intel.com/en-us/
Moblin: http://moblin.org/
Moonlight: http://www.mono-project.com/Moonlight
Noticia: http://www.theregister.co.uk/2009/09/24/silverlight_to_linux/

enviado por eecsaky | 0 comentarios
Archivado en: ,

RIA Services, parámetros con colecciones

Para quien no conozca RIA Services, son un conjunto de servicios que mejoran mucho el desarrollo de aplicaciones con Silverlight. Desde el propio equipo la definen así:

Microsoft .NET RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations.

image

Esta gráfica de Nikhil Kothari explica muy bien donde se encuentra los RIA Services.

Las principales ventajas de RIA Services contra otras tecnologías de Servicios presentadas por Microsoft, son su integración con ASP.NET (por temas de autenticación, roles, etc.) como su ligera serialización usando Json.

El principal problema es que está muy centrado en las entidades tanto de la base de datos (Linq to SQL, Entity Framework, etc.) como las que nosotros podamos crear a mano. Centrándose así en las operaciones Add, Update, Delete, Get, etc. de las propias entidades.

El problema nos lo encontramos cuando queremos enviar del cliente al servidor una colección de entidades del servicio (entendamos como entidades del servicio aquellas que se exponen con un método Get, Update, Delete Add, etc.).

Las limitaciones de RIA Services se extienden hasta el punto de que un método solo puede devolver una colección de entidades, una entidad o un tipo serializable “built-in” (como los tipos básicos, el guid y poco más). Y los parámetros del método solo soporta los tipos básicos serializables “built-in” y una entidad.

¡No colecciones!

Para solucionar eso, primero debemos crear un Custom Operation y donde queríamos poner una colección he puesto un objeto serializado en Json. Y así lo serializo antes de llamar al método y justo en el manejador del método en el servicio.

La extension method que he usado para serializar la he publicado en mi proyecto SilverBox, que liberé la semana pasada en CodePlex:

http://silverbox.codeplex.com

Debéis obtener el último commit subido al Source Control y compilar la librería. Luego solo debéis referenciar la librería SilverBox.dll y en el archivo de código añadir la directiva “using SilverBox.Extensions”.

Y los tipos string y object tendrá un método SerializeToJson y Deserialize.

enviado por eecsaky | 0 comentarios

MonoTouch, C# para tu iPhone

Miguel de Icaza, lider del proyecto Mono, acaba de anunciar de que en septiembre van a publicar la primera versión de MonoTouch. Una implementación de Mono en tu iPhone.

Tal cual nos los cuenta Miguel de Icaza es un “A C# API for building Cocoa applications”, vamos que no vamos a contar con todas las herramientas de .NET, ni su sandbox, ni su JIT, ni nada. Pero para aquellos que usamos C# y .NET, es un acercamiento que de otra forma no sería posible.

Para la segunda versión están pensando en preparar un cliente de Silverlight y una implementación de LinQ, pero el propio Miguel reconoce que puede ser complicado debido a las limitaciones que Apple pone.

De todas formas, creo que es muy interesante.

Miguel de Icaza está intentando reunir una serie de programadores que estén interesados en probar la plataforma. Así que ya sabéis sumaros a la nueva iniciativa en:

Formulario de inscripción

Y para más información:

Proyecto MonoTouch: http://www.mono-project.com/MonoTouch
Anuncio de Miguel de Icaza: http://tirania.org/blog/archive/2009/Aug-03-3.html

enviado por eecsaky | 0 comentarios

Gestalt Beta, azúcar para la web

Desde los MIX Online Labs, nos traen un nuevo producto beta que tiene muy buena pinta. La descripción oficial es:

“Gestalt es una librería liberada por MIX Online Labs que te permite escribir código Ruby, Python y XAML en tus páginas (X)HTML. Te permite construir aplicaciones ricas y más poderosas casando los beneficios de lenguajes expresivos, modernos compiladores, AJAX y RIAs con el modelo de desarrollo escribe>guarda>refresca de la Web”

Sus características nos las venden así:

Haz hueco para Ruby y Python, Javascript

XAML para gráficos avanzados

Compilación transparente y flamante velocidad

Mira mamá, ¡sin herramientas!

Llevando el SEO (Optimización de Motores de Búsqueda) al siguiente nivel

Yo soy un Mac, yo soy un PC

Para ver que dicen de ellos, pasaros por la página del proyecto.

Un primer ejemplo que nos enseñan es el siguiente:

<html>
<head>
  <script src="js/jquery.js" type="text/javascript"></script>
  <script src="js/gestalt.js" type="text/javascript"></script> 
</head>
<body>

<input id="say_hello" type="button" value="Say, Hello!" />

<script language="ruby">
document.say_hello.onclick do |s,e|
  window.alert "Hello, World!"
end
</script>
</body>
</html>

Y esa es la forma de crear un botón que dice “Hello, World!” usando Ruby.

Sinceramente es una pasada, se pueden crear animaciones con XAML y todo.

Proyecto Gestalt: http://www.visitmix.com/Labs/gestalt/

enviado por eecsaky | 0 comentarios

.NUGG: Speed of Light: Optimizaci&#243;n de SQL Server

Esta sesión está dedicada a detallar las técnicas y herramientas que nos permitirán exprimir el rendimiento de nuestro SQL Server al máximo, haciendo un repaso por la teoría implicada, y pasando directamente a ejemplos del Mundo Real™. Se abordarán buenas prácticas de indizado, las consideraciones de almacenamiento más relevantes, el análisis de planes de ejecución, así como la utilización de nuevas características de SQL Server 2008 para optimizar cargas de trabajo.

1.- Arquitectura general de SQL Server

2.- Metodología Waits & Queues: Monitorización de Esperas en SQL Server

3.- Optimización de Almacenamiento

4.- Optimización del Uso de Memoria

5.- Aislamiento Transaccional

6.- Optimización de Consultas

Fecha y hora:

17 de julio de 2009 : 17:00 a 19:00

Dirección:

Edificio Xoana Capdevielle
Campus de Elviña s/n
A Coruña – 15071

Registro:

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032421168&Culture=es-ES

Cómo llegar:

http://maps.google.es/maps/ms?ie=UTF8&hl=es&msa=0&msid=112446040967221334224.00044475947d03a539b25&t=h&z=15

enviado por eecsaky | 0 comentarios

MCTS .NET 3.5 WPF : Examen 70-502 aprobado!!!

Esta tarde he aprobado el examen 70-502 que corresponde al MCTS de .NET Framework 3.5: Windows Presentation Foundation.

El examen consta como el libro de preparación explica, de seis partes:

  • Creación de una aplicación WPF
  • Creación de interfaces de usuario
  • Agregar y administrar contenido
  • Enlace a origenes de datos
  • Personalización de la apariencia
  • Configuración e implementación de aplicaciones de WPF

Con esto he obtenido la ceritficación de MCTS. Las próxima será la de ASP.NET que haré el examen en los proximos días.

enviado por eecsaky | 2 comentarios

Problemas y soluciones: Entity Framework, vistas y claves

Uno de los grandes problemas que me he encontrado a la hora de trabajar con Entity Framework (EF) es la de mapear una vista.

¿Dónde está el problema?

El problema está que una entidad de EF debe tener una clave primaria y las vistas no tienen claves primarias.

image

En una vista como la anterior realmente no tenemos una clave definida en la base de datos ya que los datos filtrados por Entidad generaría una gráfica como la siguiente:

image

Por defecto EF infiere que Entidad es una clave, lo infiere a partir de aquellos campos que SQL Server dice que no pueden ser nulos. En principio no da ningún problema, pero tenemos dos casos en los que ya encontramos conflictos.

  1. Obtenemos más de un resultado con Entidad idéntica. Al rellenar los objetos EF, presupone que al tener la misma clave primaria son el mismo objeto por lo que siempre tendríamos el primer objeto creado.
  2. Si filtramos por Entidad exclusivamente, EF presupone que solo vendrá un resultado por lo tanto se produce una excepción.

Hasta aquí bien, la solución podría ser quitar esa clave, EF no nos deja:

“Toda entidad tiene que tener una clave primaria”

¿Solución?

Para ello debemos de crear una clave artificial, el rowcount de nuestra vista puede ser una opción, ya que todas las claves deben ser distintas. Pero como aun así nuestro Entity Framework no lo detecta como clave debemos emergernos en el EDMX y modificar el XML a mano.

Para ello cabe destacar que el fichero XML tiene un elemento llamado <edmx:Runtime> que es el que a nosotros nos interesa y que éste consta de tres partes:

  1. SSDL: StorageModels: El modelo importado de la base de datos
  2. CSDL: ConceptualModels: El modelo generado a partir del importado y el que representará cada una de las entidades que luego usaremos por código
  3. C-S: Mappings: Es la que une ambos modelos

Nosotros primero debemos modificar el SSDL, el siguiente es el :

<EntityType Name="vXXXX">
  <Key
    <PropertyRef Name="Entidad" /> 
  </Key
  <Property Name="IDPK" Type="bigint" /> 
  <Property Name="Entidad" Type="int" Nullable="false" /> 
  <Property Name="FechaPrevista" Type="datetime" /> 
  <Property Name="Sobres" Type="int" />
</EntityType>

Este sería el modelo importado tal cual lo importó el diseñador. Como veis hemos creado el campo IDPK con el rowcount para establecerlo como clave. Para poder hacerlo se debe de hacer lo siguiente:

 

<EntityType Name="vXXXX"
  <Key
    <PropertyRef Name="IDPK" /> 
  </Key
  <Property Name="IDPK" Type="bigint" Nullable="false" /> 
  <Property Name="Entidad" Type="int" /> 
  <Property Name="FechaPrevista" Type="datetime" />
  <Property Name="Sobres" Type="int" />
</EntityType>

Entonces en el modelo de la base de datos ya tenemos IDPK como clave. Ahora solo nos queda cambiarlo en el diseñador. Y para ello debemos hacer click derecho en el campo y establecerlo como clave:

image 

Y así ya podremos trabajar normalmente con nuestra entidad.

Problemas posteriores

Problemas tendremos después cuando actualicemos el modelo desde la base de datos, porque el SSDL se modificará y tendremos que hacer a mano los cambios que ahora hemos hecho. En cambio en el diseñador no tendremos que hacer nada.

enviado por eecsaky | 0 comentarios
Archivado en:
Más envíos Página siguiente >