Charla MSDN del jueves 18/01
Muchas gracias a todos los asistentes a la charla sobre c?mo ser m?s productivos con Visual Studio 2005. El evento se replet? haciendo falta agregar m?s sillas de las propias de la sala. Y el calor que hac?a no era menor. Solo espero que haya valido la pena para todos el sacrificio. Adjunto ac? los ejercicios que realizamos junto con la presentaci?n. Muchos saludos a todos.
![]() |
| ? |
![]() |


Jaime wrote,
Hola Profe Rodrigo…
Escribo para agradecer su buen trabajo y disposici?n en el transcurso de la charla. Esta es la segunda a la cual asisto, pues estuve presente tambi?n en aquella que realiz? en Inacap recientemente y me ha motivado a investigar las tecnolog?as .Net, en lo cual soy absolutamente nuevo.
S?lo quisiera acotar que el tema de la charla lo encontr? demasiado amplio como para poder ser abordado en las 3 horas que dispuso. Creo que ser?a m?s conveniente realizar charlas de misma duraci?n pero con temas mas especificos y acotados para que as? no se le vea tan presionado por el tiempo, que es aquello que not? muy latente.
Espero reciba esta opini?n de forma constructiva pues es mi forma de poder retribuir
De todas formas muchisimas gracias
Saludos
Jaime
Link | 2007-01-22 at 1.08 pm
marlo wrote,
Es primera vez que asisto a una charla de este tipo y agradecezco el excelente tema, pues, me sirvi? para concer aun mas la poderosa herramienta que es visual studio y por supuesto el hecho de ampliar el desarrollo en capas.
gracias.
Link | 2007-01-22 at 3.30 pm
Rodrigo Salinas wrote,
Gracias por la cr?tica Mario. Lo que ocurre es que por m? dar?a charlas por separado de cada uno de los temas que tratamos. Pero cuando propongo esos temas me dicen que son demasiado avanzados y que a la mayor parte de la gente no les interesar?. De modo que los muestro as? de pasada para que la gente le pida a Microsoft charlas con m?s profundidad acerca de esos temas.
Por ejemplo, si les gust? el tema de Object-Relational Mapping, ahora pueden pedirle a Microsoft una charla exclusivamente de eso. Algo que yo no lo lograr?a simplemente dici?ndole a Microsoft que la impartamos.
De todos modos lamento el efecto contraproducente.
Link | 2007-01-22 at 6.21 pm
Jaime wrote,
Perfecto Profe Rodrigo. Supuse que algo como lo que ha expresado usted, es aquello que impide realizar charlas m?s especializadas. Pues bien podr?a darme alguna direcci?n de correo a la cual pueda aportar con la misma cr?tica directamente a Microsoft.
De todas formas y con mucho respeto deseo si es posible por este medio, proponer a aquellos compa?eros asistentes a esta ?ltima charla y que est?n interesados como yo, en profundizar con los temas de tecnolog?as .Net, patrones de dise?o u otros, contribuir con alg?n mensaje dirigido a Microsoft para lograr estas charlas, pues est? claro que el profesor tiene total disposici?n.
De todas formas gracias y hasta la pr?xima…
Saludos
Jaime
Link | 2007-01-22 at 8.20 pm
Rodrigo Salinas wrote,
Hola Jaime. Los comentarios a Microsoft los pueden hacer cuando les llegue el formulario de evaluaci?n de la charla. Muchos saludos.
Link | 2007-01-22 at 11.38 pm
jhormaza wrote,
Rodrigo. Como estas, espero que bien.
Enmpec? hacer un proyecto desde cero orientado a capas y a?n no puedo mostrar los datos en la grilla, y me sale el siguiente error, que no est? en las aplicaciones hechas por mi sino en las aplicaciones generadas por el Aplication Block.
Porfavor te pido que le dees un vistaso para que me ayudes:
El error est? en:
id = mapper.MapName(id, GetConfigurationSource(context));
y el depurador me indica:
Nose control? NullReferenceException
referencia a objeto no establecida como instancia de un objeto.
Te lo agradecer?a
Jorge..
//===============================================================================
// Microsoft patterns & practices Enterprise Library
// Core
//===============================================================================
// Copyright ? Microsoft Corporation. All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED “AS IS” WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================
using System;
using System.Configuration;
using Microsoft.Practices.ObjectBuilder;
namespace Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder
{
///
/// Implementation of which maps null instance names into a different name.
///
///
/// The strategy is used to deal with default names.
///
///
///
public class ConfigurationNameMappingStrategy : EnterpriseLibraryBuilderStrategy
{
///
/// Override of . Updates the instance name using a name mapper associated to type
/// so later strategies in the build chain will use the updated instance name.
///
///
/// Will only update the instance name if it is .
///
/// The that represents the current building process.
/// The type to build.
/// The existing object. Should be .
/// The ID of the object to be created.
/// The created object.
/// when the configuration required to do the mapping is not present or is
/// invalid in the configuration source.
public override object BuildUp(IBuilderContext context, Type t, object existing, string id)
{
if (id == null)
{
ConfigurationReflectionCache reflectionCache = GetReflectionCache(context);
IConfigurationNameMapper mapper = reflectionCache.GetConfigurationNameMapper(t);
if (mapper != null)
{
id = mapper.MapName(id, GetConfigurationSource(context));
}
}
return base.BuildUp(context, t, existing, id);
}
}
}
Link | 2007-01-24 at 3.17 pm
pmackay wrote,
Saludos Don Rodrigo.
Un gusto participar en su presentaci?n y espero no haber fastidiado demasiado con mis comentarios.
Espero verlo pronto en otra oportunidad.
Saludos.
Patrick.
Link | 2007-01-25 at 11.30 pm
Rodrigo Salinas wrote,
Para m? es un honor recibir su comentario Don Patrick. Hasta la pr?xima.
Link | 2007-01-25 at 11.44 pm
Rodrigo Salinas wrote,
Jorge, debo preguntarte si configuraste correctamente el archivo .config en el proyecto principal de tu soluci?n.
Link | 2007-01-25 at 11.46 pm
jhormaza wrote,
Rodrigo:
Configur? mi aplicacion con el aplication Block, me generer? las etiquetas en d?nde est? el string de conecci?n, yo creo que estuvo bien, y para asegurarme hice una aplicaci?n en ASPX le puse una grilla y le configur? una conecci?n con el asistente, claro como yu hab?as dicho toda la conecci?n qued? en la p?gina principal y no en l .vb y compar? el mismo string que me gener? automaticamente y estaba igual…
De otra forma no sabr?a en d?nde ubicar el error
Muchas gracias.
Link | 2007-01-30 at 4.32 pm
Rodrigo Salinas wrote,
Jorge, no entend? si te funcion? bien al final.
Link | 2007-01-30 at 6.02 pm
jhormaza wrote,
Solamente me funcion? BIEN en la conecci?n que hice atrav?s del asistente del ejemplo en ASPX que le cree una grilla para visualizar la informaci?n…
y a?n NO me funciona la aplicaci?n
que se configura con el Enterprise Library – January 2006, si pensamos que es un problema de configuraci?n en el Web.config
gracias
Link | 2007-01-31 at 12.29 pm
Rodrigo Salinas wrote,
Jorge, recuerda que adem?s de configurar tu conexi?n en el web.config tambi?n debes definir cu?l es la conexi?n por defecto.
Eso lo haces seleccionando el nodo “Data Access Application Block”. La propiedad DefaultDatabase debe estar apuntando a la conexi?n que definiste.
Si no es eso, ind?came en qu? parte de tu c?digo se est? cayendo. Porque el c?digo que me enviaste es del ELAB. Saludos.
Link | 2007-01-31 at 2.35 pm
jhormaza wrote,
Rodrigo: Efectivamente ocurr?a lo que tu me dec?as me faltaba definir la base de datos por defecto en la configuraci?n del app.config,
la prob? y me funcion? bien…Pero tengo otra duda, el proyecto que estoy realizando accesa la misma base de datos – de una aplicaci?n de escritorio y otra de internet en ASPX. Pregunta
Si tengo configurado el app.config con la conecci?n a mi base de datos tengo que configurar el web.config para poder accesarla de ?nternet (Todo est? dentro del mismo proyecto distribuido en capas).
Si la respuesta es no me arroja un error:
gracias.
El c?digo de usuario no control? System.NullReferenceException
Message=”Referencia a objeto no establecida como instancia de un objeto.”
Source=”Microsoft.Practices.EnterpriseLibrary.Data”
StackTrace:
en Microsoft.Practices.EnterpriseLibrary.Data.DatabaseConfigurationView.get_DefaultName()
en Microsoft.Practices.EnterpriseLibrary.Data.DatabaseMapper.MapName(String name, IConfigurationSource configSource)
en Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.ConfigurationNameMappingStrategy.BuildUp(IBuilderContext context, Type t, Object existing, String id)
en Microsoft.Practices.ObjectBuilder.BuilderBase`1.DoBuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies)
en Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp(IReadWriteLocator locator, Type typeToBuild, String idToBuild, Object existing, PolicyList[] transientPolicies)
en Microsoft.Practices.ObjectBuilder.BuilderBase`1.BuildUp[TTypeToBuild](IReadWriteLocator locator, String idToBuild, Object existing, PolicyList[] transientPolicies)
en Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp[T](IReadWriteLocator locator, IConfigurationSource configurationSource)
en Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.EnterpriseLibraryFactory.BuildUp[T](IConfigurationSource configurationSource)
en Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ObjectBuilder.NameTypeFactoryBase`1.CreateDefault()
en Microsoft.Practices.EnterpriseLibrary.Data.DatabaseFactory.CreateDatabase()
en SegundoProyecto.CramerInforme.dao.datalogic..ctor() en C:\Documents and Settings\jhormaza\2-Visual Studio 2005\Ejemplos VB\SegundoProyecto.CramerInforme\SegundoProyecto.CramerInforme.dao\datalogic.cs:l?nea 17
en SegundoProyecto.CramerInforme.Business.importacion.GetInformePorNumeroCarpeta(String nombre) en C:\Documents and Settings\jhormaza\2-Visual Studio 2005\Ejemplos VB\SegundoProyecto.CramerInforme\SegundoProyecto.CramerInforme.Business\importacion.cs:l?nea 14
en _Default.Button1_Click(Object sender, EventArgs e) en c:\Documents and Settings\jhormaza\2-Visual Studio 2005\Ejemplos VB\SegundoProyecto.CramerInforme\SegundoProyecto.CramerInforme.Web2\Default.aspx.cs:l?nea 24
en System.Web.UI.WebControls.Button.OnClick(EventArgs e)
en System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
en System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
en System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
en System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
en System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Link | 2007-02-06 at 12.55 pm
Rodrigo Salinas wrote,
Hola Jorge. La respuesta es s?. Debes definir un archivo .config por cada aplicaci?n distinta.
En tu caso, aunque tienes tu sitio web y tu aplicaci?n de escritorio dentro de la misma soluci?n de Visual Studio, cada una es una aplicaci?n diferente.
Saludos.
Link | 2007-02-06 at 1.00 pm
jhormaza wrote,
Hola Rodrigo como estas, espero que bien, la aplicaci?n que estaba desarrollando en capaz me funcion? super, pero se me ocurri? hacer lo mismo pero en Oracle 10g, y la verdad que he tenido unos problemas para echarlo andar.
y creo que el problema basicamente est? en el app.config, lo he configurado de una y otra forma pero no me resulta.
y me da un error: No se puede encontrar la informacion de esquema para el elemento dataConfiguration, ademas par el atributo default.Database.
Aqui te env?o el config para que le des un vistaso. te lo agradecer?a bastante.
****************************************
y este es datalogic que toma la coneccion:
**********************************************
public List GetInformePorNumeroCarpeta(string nombre)
{
List informes = new List();
string sql = “Select cod_carpeta, codigo_articulo, ind_estado, fec_audita, nro_linea,cod_usuario,”
+ “cod_empresa,cantidad from imp_det_informe where cod_carpeta= + @nom”;
DbCommand cmd = _db.GetSqlStringCommand(sql);
_db.AddInParameter(cmd, “nom”, DbType.String, nombre);
DataSet ds = _db.ExecuteDataSet(cmd);
foreach (DataRow dr in ds.Tables[0].Rows)
{
informe informe = new informe();
informe.cod_carpeta = Int32.Parse(dr["cod_carpeta"].ToString());
informe.codigo_articulo = Int32.Parse(dr["codigo_articulo"].ToString());
informe.ind_estado = dr["ind_estado"].ToString();
informe.fec_audita = DateTime.Parse(dr["fec_audita"].ToString());
informe.nro_linea = Int32.Parse(dr["nro_linea"].ToString());
informe.cod_usuario = Int32.Parse(dr["cod_usuario"].ToString());
informe.cod_empresa = Int32.Parse(dr["cod_empresa"].ToString());
informe.cantidad = Int32.Parse(dr["cantidad"].ToString());
informes.Add(informe);
}
return informes;
}
Muchas gracias.
Espero tu comentario….
Link | 2007-03-26 at 5.36 pm
Rodrigo Salinas wrote,
Hola Jorge. No me lleg? la informaci?n de tu archivo de configuraci?n. Y es porque este sitio filtra los tags de XML. Env?a nuevamente por favor pero reemplazando los signos Mayor-Que y Menor-Que por Corchetes. Saludos.
Link | 2007-03-26 at 8.13 pm
jhormaza wrote,
Listo aqu? te env?o el archivo de configuraci?n
[?xml version="1.0" encoding="utf-8"?]
[configuration]
[configSections]
[section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" /]
[/configSections]
[dataConfiguration defaultDatabase="Nombre_Base" /]
[connectionStrings]
[add name="Nombre_Base" connectionString="data source=Nombre_Base;User Id=Clave1;Password=password1;"
providerName="System.Data.OracleClient" /]
[/connectionStrings]
[/configuration]
Link | 2007-03-27 at 8.28 am
Rodrigo Salinas wrote,
Jorge. Al parecer tu connectionString no est? correctamente armado como para conectarse a una base de datos Oracle. Conectarse a Oracle no es tan simple como a una base de datos SQL Server.
Debes tener instalado el cliente Oracle en primer lugar (que no es lo mismo que simplemente tener el Provider de Oracle). Luego debes asegurarte de agregar el DNS de tu conexi?n ya sea directamente al archivo tnsnames.ora o mediante la herramienta que proporciona Oracle mismo. Y finalmente debes referenciar a ese DNS desde tu connectionString.
En este minuto no recuerdo de memoria c?mo armarlo pero puedes probar usando el asistente para crear conexiones de Visual Studio. Una vez que hayas logrado desde ah? conectarte, puedes copiar esa cadena de conexi?n hacia tu archivo de configuraci?n.
Suerte.
Link | 2007-03-27 at 5.24 pm
Charla Msdn Chile, Mayor Productividad con Visual Studio 2005 - la visión de un ingeniero de campo wrote,
[...] La url de la información publicada por Rodrigo Salinas es http://www.rodrigosalinas.cl/?p=34 Posted: Feb 02 2007, 06:58 PM by pmackay | with no comments Filed under: Charlas [...]
Link | 2007-11-12 at 9.23 pm