Retroalimentación en Visual Studio .NET

El sitio de soporte de Raúl Guerrero

CSS Selectors

October4

Los selectores en css, son reglas con las que puedes aplicar estilos a elementos en un documento html.

1.- Tu puedes aplicar estilos a cualquier elemento usando el “*”.

2.- Tu puedes aplicar estilos a todos los elementos del mismo tipo indicando nombre del tipo del mismo.

ej:
div {}  <- Aplica el estilo a todos los divs
ol {} <- Aplica el estilo a todos los ol

3.- Tu puedes aplicar un estilo a todos los elementos que cumplen con un selector que están dentro de otro selector independientemente de los niveles de profundidad separándolos por un espacio.

ej:
div ol {} <- Aplica el estilo a todos los ol dentro de un div, independientemente de la profundidad. En este caso si un div tuviera un hijo que fuera otro div y dentro de el existiera un ol. Le aplicaría el estilo.

div > ol {} <- Aplica el estilo a todos los ol dentro que son hijos directos de div, independientemente de la profundidad. En este caso ol deberá ser hijo directo de ol.

Si quieres mas información de selectores css, revisa la siguiente liga:

http://www.w3.org/TR/CSS2/selector.html

Deshabilitando identity map en Linq to Sql

September29

Nota: Identity Map es un patrón de diseño que es parte fundamental del funcionamiento de cualquier ORM, deshabilitarlo tiene sus consecuencias ya que es necesario cuando vas a hacer actualizaciones a la base de datos.

Para mas información al respecto, puedes leer:

http://codebetter.com/blogs/ian_cooper/archive/2008/03/09/architecting-linq-to-sql-applications-part-7.aspx

Martin Fowler’s Patterns of Enteprise Application Architecture

Por favor, si no entiende las consecuencias de lo que aquí recomiendo, o no le gusta leer, no siga los siguientes pasos.

Para que se usa el Identity Map:
El objetivo de Identity Map consiste en siempre devolver la misma instancia del objeto, aun cuando sea el resultado de 2 operaciones distintas de nuestro DataContext (en el caso de linq). Lo cual significa que la primera vez que se obtiene una entidad de la base de datos esta es persistida en el mapa de identidad y en próximas consultas, en lugar de crear una nueva instancia devuelve la que ya tienes en memoria. Esto es realizado así con el fin de mantener la unidad de trabajo (patron: unit of work), de tal manera que no pierdas los cambios que hayas realizado al objeto en memoria.

Cuando esto puede tener un efecto no deseado:
Cuando quieres obtener el valor tal cual esta en la base de datos, mismo que pudo haber sido modificado en el management studio, por otro sistema u otro usuario en tu mismo sistema.

Que puedo hacer
Si tu objetivo es la lectura exclusivamente de información de la base de datos.  Puedes indicarle a tu contexto que no de seguimiento a los objetos.

ObjectTrackingEnabled=false

O si tu objetivo es solo para el objeto u objetos que vas a utilizar, existe un metodo Refresh en el DataContext que te permite actualizar la entidad en el identity map con los valores de la base de datos.

Obtener parte de la fecha en Sql Server

December15

Puedes usar una conversión para realizar la operación

SELECT CONVERT(nvarchar(7), myDate, 126) FROM Table
Group By CONVERT(nvarchar(7), GETDATE(), 126)

Pregunta Original
I have a datefield that basically represents its date in this format.

2009-12-15 16:20:44.930

I need to extract the date part ie ’2009-12′ for a group by and order by section of a query.

Can someone show me how this could be done.

Liga a la pregunta original

Como borrar un proyecto de equipo del Team Foundation Server

September10

El otro día queria borrar un proyecto de equipo del team foundation server e investigando encontre que se puede hacer por medio de la linea de comandos de visual studio con el siguiente comando:

TfsDeleteProject /server:mitfsserver.empresa.com “Nombre del Proyecto“

Saludos

Como definir un boton por default en una forma ASP.NET

August28

Solo tienes que poner el siguiente código en el evento From_Load

this.Form.DefaultButton = Button1.UniqueID

Donde Button1 es tu boton.

Saludos

Customizando tu terminal en leopardo: alias

July2

Despues de un buen rato de investigación.

Encontre que para persistir tus alias en terminal, necesitas crear un archivo llamado “.bash_profile” y guardarlo en la carpeta de tu usuario
con tus alias escritos de la siguiente manera
alias dir=’ls’
alias newip=’sudo ipconfig set en1 BOOTP;sudo ipconfig set en1 DHCP’
Saludos

Como identificar si el código se esta ejecutando en modo diseño en WPF (DesignMode en WPF)

June19

Existen ocaciones en las que un aplicativo corre bien en tiempo de ejecución, pero manda un error ‘Could not create an instance of type ‘userControlName’ cuando estas en el diseñador.

Esto puede ser provocado porque parte de tu código necesita ejecutar algunas operaciones que no son permitidas en tiempo de diseño durante la construcción del control.
Para ello puedes usar la siguiente validación para verificar si estas ejecutando en tiempo de diseño.

if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))

{

//Código que no se puede ejecutar en tiempo de diseño

}

Espero les sirva, saludos

Como puedo generar el script que me permita insertar los registros de una tabla por medio de TSQL

January31

En muchas ocasiones requerimos generar un script que te permita por cada fila generar un insert que puedas aprovechar para por ejemplo distribuir tus catálogos entre tus desarrolladores, si bien no he revisado a profundidad este script me ha funcionado bastante bien para mis catálogos, por lo que les dejo la siguiente liga bajo la premisa de ejecutelo bajo su propio riesgo.

http://vyaskn.tripod.com/code/generate_inserts_2005.txt

Workaround a la navegación entre relaciones en Dynamic Data

November18

Si se te presenta el error A property with name ‘Entidad.Campo’ does not exist in metadata for entity type ‘WebAppDataEntitiesA.EntidadDestino’.

Es muy probable que lo puedas resolver con este workaround disponible en Codeplex.

http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16367

Para mis lectores que desean saber la implementación en español aquí les va.

Dynamic Data Entity Web Application

1. Botón derecho sobre la aplicación web y seleccionen “Agregar Referencia”, Seleccionan Browse y seleccionan Microsoft.Web.DynamicData.dll del archivo zip que descargaron de CodePlex.
2. Cuando registran su Entity Framework Model en el Global.asax realicen el siguiente cambio:

En lugar de esto:

model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false });

Usen esto:

C#
model.RegisterContext(new Microsoft.Web.DynamicData.EFDataModelProvider(typeof(YourDataContext)), new ContextConfiguration() { ScaffoldAllTables = false });

VB
model.RegisterContext(New Microsoft.Web.DynamicData.EFDataModelProvider(GetType(YourDataContext)), New ContextConfiguration() With { .ScaffoldAllTables = False })

Noten que la diferencia es reemplazar typeof(YourDataContextType) con new Microsoft.Web.DynamicData.EFDataModelProvider(typeof(YourDataContext)).

3. Abran el DynamicData\FieldTemplates\ForeignKey.ascx. Y remplacen el método GetDisplayString con este método:

C#
protected string GetDisplayString() {
try {
return FormatFieldValue(ForeignKeyColumn.ParentTable.GetDisplayString(FieldValue));
} catch (Exception) {
return ForeignKeyColumn.ParentTable.DisplayName;
}
}

VB
Protected Function GetDisplayString() As String
Try
Return FormatFieldValue(ForeignKeyColumn.ParentTable.GetDisplayString(FieldValue))
Catch ex As Exception
Return ForeignKeyColumn.ParentTable.DisplayName
End Try
End Function

Saludos y espero les sirva.

Como acceder desde tortoise al repositorio de control de código de TFS

June29

Para aquellos que alguna vez trabajamos con tortoise para realizar el acceso al control de código, en algunos escenarios extrañamos su manejo que es relativamente sencillo, sobre todo cuando no cuentas con un el IDE de Visual Studio y deseas administrar algunos proyectos en diversas plataformas.

Pues para que puedan romper esta barrera existe un proyecto OpenSource de CodePlex que les permite realizar esa función llamado SvnBridge. El cual les permite configurar un puerto en su maquina cuyo objetivo es hacer la interpretación de las llamadas que hace el cliente de Tortoise, en operaciones a TFS. De tal manera que puedan romper la barrera que algunos desarrolladores de Java tienen para implementar TFS, como su herramienta de control de código.

Pruebenlo, a mi me ha resultado toda una delicia jugar con el, y revisar su código ya que internamente esta muy interesante.

Para mas información les dejo las ligas.

http://tortoisesvn.tigris.org/

http://www.codeplex.com/SvnBridge

« Older Entries