XBox and .Net Framework

News relacionadas con el .Net Framework. En este caso, desde Microsoft Press Pass, donde nos cuentan que XNA Framework contiene una implementación de .Net Framework, para que los desarrolladores puedan aprovechar las ventajas de C# para el desarrollo de juegos.

 

XNA Framework Simplifies Cross-Platform Game Development

 

The XNA Framework contains a custom implementation of the Microsoft® .NET Framework and new game-development-specific libraries designed to help game developers more easily create cross-platform games on Windows® and Xbox 360 using the highly productive C# programming language. Using the XNA Framework, game developers will benefit from the ability to re-use code and game assets in developing multiplatform titles, without sacrificing performance or flexibility.

 

"We’ve been writing games for the last 15 years as monolithic, single code bases that are growing unwieldy and complex," said Chris Butcher, lead developer at Bungie Studios. "C# on Xbox 360 lets us think about new modes of programming. It lets us get back to creating a game rather than wresting with code, while maintaining the real-time performance that we need."

 

With millions of developers worldwide proficient in C#, the XNA Framework is designed to make game development significantly more approachable for independent and aspiring game developers, while enabling rapid prototyping and concept iteration.

 

"We were proud to be a launch partner with Microsoft for Xbox 360 Live Arcade, and we’ve been pleased with its success so far," said James Gwertzman, director of Business Development at PopCap Games Inc. "Anything that simplifies the process of creating great casual games and lowers the development complexity for Windows and Xbox 360 is something we’re happy to support."

 

La conclusion interesante, es que finalmente podremos utilizar .Net dentro de nuestra XBox. Obviamente, en mi caso, para eso primero necesito la XBox, pero ese es un problema que mi chica se propone arreglar.

 

Saludos

El Bruno

Microsoft Visio – Diferentes Templates para diseñar una base de datos

Un par de experiencias en la fase de diseño técnico. Por ejemplo, un detalle interesante a tener en cuenta cuando diseñamos una base de datos con Visio 2003 for Enterprise Architects.

Los diferentes tipos de documentos que podemos crear pueden ser basicamente:

·         Database Model Diagram

·         ER Source Model Diagram

·         Etc.

 

 

En mi caso, en particular, por restricciones del negocio, tuve que comenzar a trabajar con el template de ER Source Model Diagram. Este template, permite, entre otras cosas, realizar una ingenieria inversa desde una base de datos existente y modelar la misma en Visio. Pero no permite exportar luego la definción a una base de datos, Microsoft Sql Server por ejemplo.

El template Database Model Diagram, si permite esta funcionalidad y además puede generar un archivo DDL con el script necesario; o actualizar directamente la base de datos con los cambios.

Despues de investigar un poco, he terminado descubriendo que el template ER Source Model Diagram es un “subset” del template Database Model Diagram y que oculta algunas funcionalidades del mismo. Pero que tranquilamente se puede crear un template Database Model Diagram y trabajar como si fuese ER Source Model Diagram (obteniendo además las ventajas del primer template).

El problema, me surgió cuando tuve que “migrar” mi documento ER Source Model Diagram a un template Database Model Diagram. Despues de tratar de modificar el xml generado por visio, y de utilizar algunos productos de terceros, la mejor opción que encontré fue exportar el modelo a un archivo ERWin ERX, y luego crear un nuevo template del tipo Database Model Diagram e importar la definicion desde el archivo ERWin ERX. De esta manera, obtenemos todas las definiciones de las entidades y sus relaciones, pero no la parte visual; asi que de nuevo a “acomodar” cajitas en visio; pero la parte importante esta finalizada. Un workaround interesante.

Saludos.

El Bruno

Office 2007 – Software Visual Studio Tools For Office “v3” – March Community Technology Preview (CTP)


 

Hace un tiempo que esperaba esta noticia. Microsoft ha liberado

 

Microsoft Pre-Release Software Visual Studio Tools For Office "v3" – March Community Technology Preview (CTP)

http://www.microsoft.com/downloads/details.aspx?FamilyID=2e85132b-7370-4137-a19a-15752ea83952

 

Ahora podremos comenzar a probar realmente las caracteristicas de integración de desarrollo de la nueva versión de Office 2007. He aquí algunas de las caracteristicas principales de este SDK.

 

·         Support for the new Office Open XML file formats in Microsoft Office 2007

·         Support for the new UI ( “ribbon”) extensibility model in Microsoft Office 2007

·         Add-In projects for Microsoft Access 2007, Microsoft Excel 2007, Microsoft SharePoint Designer 2007, Microsoft InfoPath 2007, Microsoft Outlook 2007, Microsoft PowerPoint 2007, Microsoft Project 2007, Microsoft Publisher 2007, Microsoft Visio 2007, and Microsoft Word 2007

·         Support for the new application-level customizable taskpane

 

Saludos

El Bruno

PD: Si si si, han leido bien, addins para TODOS los productos de la familia Office 2007.

 

Visual Studio 2005 – Asp.Net 2.0, compiling with partial class

Recién me preguntaron, como se podia modificar el acceso de un control dentro de un WebControl para que sea publico. Esta accion en Visual Studio 2003, era bastante simple, ya que simplemente modificabamos el atributo protected por public del mismo, en la sección Web Designer Generated Code Por ejemplo la declaracion de un TextBox;

 

  Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox

 

 

Se modificaba por

 

  Public WithEvents TextBox1 As System.Web.UI.WebControls.TextBox

 

 

De esta manera, luego se podia acceder al control interno del WebControl desde la pagina que contenia al WebControl.

 

  Me.WebUserControl11.TextBox1.Text = "Hola"

 

 

Sin embargo, en Visual Studio 2005, esto no es posible ya que la clase de código asociado al WebControl es parcial y no contiene la definicion de los controles del WebControl (las definiciones se generan dinamicamente al momento de compilar). Esta caracteristica es nueva del compilador de ASP.NET 2.0.  El compilador de ASP.NET (aspnet_compiler.exe) fue introducido originalmente en ASP.NET 2,0 como manera totalmente de precompilar un sitio entero, permitiendo no desplegar nada salvo assemblies.  Esto es interesante porque elimina cualquier compilación a pedido cuando se hacen las peticiones, eliminando el primer post deployment.  Pero de esta manera también se hace más difícil que las modificaciones sean hechas a un sitio ya desplegado (puesto que no se puede editar archivos aspx y modificarlos).

El compilador liberado con ASP.NET 2,0 soporta este modelo de despliegue, pero lo también se ha modificado para soportar un modelo actualizable del despliegue.  Este modelo es posible debido a la reintroducción de la herencia en el modelo del codebehind, para poder ser generado y compilar las clases parciales del WebControl que contienen declaraciones del control independientemente de las definiciones reales de la clase.

Despues de probar varias opciones (5 min.) se me ocurrio que tal vez el migrador de proyectos a Asp.Net 2.0, me podria dar la respuesta, y asi fue. Una vez migrado el proyecto, en el log de migracion, me encontré con el siguiente mensaje:

=========================ERRORS===================

ERROR: The member declaration for ‘TextBox1’ was removed and its accessibility has been changed from ‘public’ to ‘protected’. To access this member from another page you should create a public accessor property for it.    WebUserControl1.ascx.vb

 

 

Asi que siguiendo las recomendaciones de Microsoft, la solución fue publicar este control en una nueva propiedad en el WebControl. Por ejemplo:

 

       Public Property myTextBox1() As System.Web.UI.WebControls.TextBox

             Get

                    Return Me.TextBox1

             End Get

             Set(ByVal value As System.Web.UI.WebControls.TextBox)

                    Me.TextBox1 = value

             End Set

       End Property

 

Todos los días aprendemos algomas de los interesanes cambios de Asp.Net 2.0.

Saludos

El Bruno

Internet Explorer 7 – Beta 2 new Build (instalation issues)

Si si si, no tengo derecho a quejarme si estoy probando Betas, pero que problemitas que puede traer el nuevo Build del IE 7.

Por suerte, un MVP se tomo la molestia de explicar los pasos “no documentados” para no tener problemas. He aquí un pequeño resumen de los mismos.

 

·         Deshabilitar antivirus, antispyware.

·         Deshabilitar Automatic Updates (esto parece una locura, pero si no lo tienen en cuenta, desp les traerá muchos problemas)

·         Desinstalar el anterior Build de la Beta 2 y reiniciar 2 veces (esto parece de locos, pero es importante. Ahora entiendo porq me dio el 1er error de svchost.exe).

·         Instalar IE7 Beta 2.

·         Reiniciar 2 veces again.

·         Habilitar antivirus, antispyware, automatic updates.

 

Saludos.

El Bruno

 

PD: también puede ser util revisar el checklist oficial de Microsoft para desarrolladores.

PD2: lindo el nuevo font en Office 2007; "calibri", ustedes me contaran como lo ven

Leyendo …

Después de leer un post del amigo ppino, me di cuenta de que últimamente yo también he estado leyendo mucho. Entre el metro, el tren y los aviones, durante el 2005 me he devorado una gran variedad de libros.

Por suerte este space me ha servido de repositorio como para no repetirme y la lista es:

 

  • Dan Brown: Ángeles y Demonios
  • Isaac Asimov: Cuentos Completos I
  • Stephen King: Desesperación
  • Katherine Neville: El Círculo Mágico
  • Lev Grossman: El Códice Secreto
  • Dan Brown: El Código DaVinci
  • Dustin Thomason y Ian Caldwell: El Enigma del Cuatro
  • Malba Tahan: El hombre que calculaba
  • Katherine Neville: El Ocho
  • Jim Hougan: El Ultimo Merovingio
  • J. K. Rowling: Harry Potter y el Cáliz de Fuego
  • J. K. Rowling: Harry Potter y la Orden del Fénix
  • Vicente Ramírez: La Biblia de Dragon Ball
  • Dan Brown: La Conspiracion
  • Stephen King: La Tienda
  • Stephen King: Las Cuatro Estaciones
  • James Luceno: Star Wars: El Laberinto del Mal

 

(Desde junio aproximadamente)

 

Como verán, no he incluido los libros técnicos, ya que los mismos son casi siempre de referencia y son bastantes; en cambio los anteriores son historias completas y mucho mas llevaderas para un paseito en metro.

Una cosilla que podrían agregar fácilmente al editor de listas de libros de MSN Spaces es un pequeño ranking, para poder presentar nuestras opiniones sobre los libros (para que todo el mundo sepa que debe leer “El hombre que calculaba”), petición anotada para Mike Torres.

 

El 2006 viene más movidito, dedicado 100% a los best seller y al Sudoku

 

  • J. K. Rowling: Harry Potter y el misterio del príncipe
  • J. K. Rowling: Harry Potter y el prisionero de Azkaban
  • J. K. Rowling:: Harry Potter y la Cámara Secreta
  • J. K. Rowling: Harry Potter y la Piedra Filosofal
  • Dan Brown: La Fortaleza Digital
  • Elizabeth Kostova: La Historiadora

 

Por ejemplo, en este momento estoy “releyendo” Harry Potter y la prieta filosofal, pero en inglés, como para practicar un poco. Además tengo pendiente una lista con películas en el cine … pero esa llegará mas adelante.

 

Saludos

El Bruno

Network Sniffer

Después de una semana de desconexión total (no internet), estoy tratando de ponerme un poco al día.

 

Y after una instalación sucesfull de un servidor público, siempre hace falta una herramienta para controlar los sniffers en la red. Justamente Haaron Gonzalez ha blogueado sobre un soft que alguna vez me fue de utilidad, el Promqry. El mismo se puede bajar desde Microsoft Downloads en http://www.microsoft.com/downloads/details.aspx?FamilyID=1a10d27a-4aa5-4e96-9645-aa121053e083&DisplayLang=en, y esta disponible en 2 versiones; command line one y otra para windows.

 

Por ejemplo, este es el resultado de un scan en la subnet compartica con ICS

 

Query start time: 12/03/2006 1:15:40

 

pinging 192.168.0.215…success

 

Querying 192.168.0.215…

Active: True

InstanceName:

Intel(R) PRO/100 VE Network Connection

NEGATIVE: Promiscuous mode currently NOT enabled

 

Active: True

InstanceName:

WAN Miniport (Network Monitor)

NEGATIVE: Promiscuous mode currently NOT enabled

 

Active: True

InstanceName:

WAN Miniport (IP)

NEGATIVE: Promiscuous mode currently NOT enabled

 

Active: True

InstanceName:

Realtek RTL8139 Family PCI Fast Ethernet NIC

NEGATIVE: Promiscuous mode currently NOT enabled

 

System Summary

NEGATIVE: no interfaces on system found in promiscuous mode

 

======================================

 

Query end time: 12/03/2006 1:15:41

 

Despues de utilizarlo un poco, la verdad es que me dio bastantes alegrias, se los recomiendo.

 

Saludos.

.Net – Mitos Urbanos

Tratando de optimizar un poco la perfomance de un par de aplicaciones Asp.Net, me reencontré con este artículo de Rob Howard de la MSDN magazine de Enero del 2005. Al revisar un poco del “sentido común” que propone al momento de diseñar, codificar e implementar aplicaciones Asp.Net, me encontré con este pequeño sidebar que acompaña al articulo.

 

Como los puntos que trata son interesantes y hace unos días estuve en una agitada conversacion al respecto, creo que es buen momento para refrescar estos temas:

 

·         C# es más rápido que Visual Basic .Net.

 

One of the most common myths  is that C# code is faster than Visual Basic code. There is a grain of truth in this, as it is possible to take several performance-hindering actions in Visual Basic that are not possible to accomplish in C#, such as not explicitly declaring types. But if good programming practices are followed, there is no reason why Visual Basic and C# code cannot execute with nearly identical performance. To put it more succinctly, similar code produces similar results.

 

·         Codebehind es más rápido que code inline.

 

Another myth is that codebehind is faster than inline, which is absolutely false. It doesn’t matter where your code for your ASP.NET application lives, whether in a codebehind file or inline with the ASP.NET page. Sometimes I prefer to use inline code as changes don’t incur the same update costs as codebehind. For example, with codebehind you have to update the entire codebehind DLL, which can be a scary proposition.

 

·         La ejecución de los omponentes es más rápida que la de una página.

 

Myth number three is that components are faster than pages. This was true in Classic ASP when compiled COM servers were much faster than VBScript. With ASP.NET, however, both pages and components are classes. Whether your code is inline in a page, within a codebehind, or in a separate component makes little performance difference. Organizationally, it is better to group functionality logically this way, but again it makes no difference with regard to performance.

 

·         Todas las comunicaciones entre aplicaciones deben ser implementadas a través de WebServices.

 

The final myth I want to dispel is that every functionality that you want to occur between two apps should be implemented as a Web service. Web services should be used to connect disparate systems or to provide remote access to system functionality or behaviors. They should not be used internally to connect two similar systems. While easy to use, there are much better alternatives. The worst thing you can do is use Web services for communicating between ASP and ASP.NET applications running on the same server, which I’ve witnessed all too frequently.

 

Interesantes conceptos.

Saludos.

 

PD: la fuente es MSDN, no la he escrito yo 😀

Internet Connection Sharing

Fin de semana interesante, después de tener una pila de complicaciones con W2003 R2 para compartir una conexión a internet en una pequeña red local; decidí empezar a probar otras opciones. Algunas freeware como ezProxy, Proxy+, 602 LanSuite y otras no tanto como WinGate.

Las primeras me dieron excelentes resultados, pero 602 LanSuite destaca entre todas, ya que posee un muy buen servidor de Mail, un servidor DHCP, NAT, etc. Ofrece casi todos los servicios que podemos encontrar en un server y con una excelente consola de administración y muy buena relacion entre rendimiento y consumo de recursos.

Pero para mi sorpresa, descubrí que dentro de W2003 también podemos utilizar Internet Connection Sharing (algo que use hace mucho con XP). Ovbiamente, antes que utilizar un producto de 3ros, esta opción me pareció la más práctica. ICS se encarga de supervisar todos los aspectos en las comunicaciones que pasan por el mismo y como esta integrado en el Firewall de Windows, podemos configurar las opciones que queremos compartir y controlar con el mismo.

 

 

Este artículo en Technet explica brevemente algunos de los conceptos que podemos manejar con ICS. Y personalmente lo recomiendo 100% ya que no es necesario ningun tipo de administración y su implementación es muy simple.

 

Saludos