tip ASP.NET: reducir el tamanio de las paginas Web generadas

leyendo a Edgar Sánchez, me encontre con un post interesante: Consejos para reducir el tamaño de las páginas Web en ASP.NET.


Y como menciona el post fuente, hay algunas cosas que son obvias, pero también es obvio que muy pocas veces lo aplicamos.


Algunas ya las recomendaba en las charlas, otras aún no, pero será hora de hacer un tasklist de mejores prácticas para reducir el tamanio de del HTML generado.


Si alguién tiene mas tips, los deja en los comentarios.


P.D.: Si es que por ahi hay un tiempito, y si los comentarios lo ameritan, haré un howto aplicando y comprobando las reglas mencionadas.


Saludos,


Post cruzado desde starrillo blog

llego la hora de aprender SharePoint (bajo demanda)

ya habíamos mencionado los grandiosos webCast en espaniol que íbamos tener en MSDN WebCast.


Comentarles a todos los interesados en SharePoint, que ya están disponibles los videos bajo demanda, si es que llegaron tarde, o se perdieron algo por salir, o no lo vieron por el trabajo, ahora pueden ver la repetición con las comodidades que gusten. Esperemos que pronto nuestros amigos Luis Du Solier, y Haaron Gonzalez, publiquen las diapositivas.


Cuando este descargando el contenido para verlo offline, puede también descargar «Contenido adicional de redifusión Live Meeting 2005», para poder ver los WebCast con Q & A, además de tener la agenda de la charla y navegar sobre ella. Es un skin que instala en WMP.


Dejo los links de los WebCasts:



Particularmente las que me gustaron más, porque aún no las había visto en acción es el manejo de InfoPath y SharePoint, es más, como usarlas con Workflows. Estoy preparando un prototipo académico usando estas tecnologías y estos webCast calleron a pelo; por otro lado estaré publicando en mi post como me va con el prototipo vía howto, todo lo que vaya viendo y tropezando.


A por cierto, casi me olvido, si es que queremos usar MOSS 2007, hay disponible un trial para usarlo y probarlo, si es que deseamos hacer algún prototipo. La noticia la encontramos en el blog de Cristian.


P.D.: La información está ahí, el resto depende de ustedes, si desean saber más sobre sharepoint, puede revisar los primeros post en la categoría SharePoint de mi blog.


Saludos,


Post cruzado desde starrillo blog

Vista de un desarrollador de la Gestion de Proyectos

Recientemente inicie un curso de Desarrollo de Aplicaciones, en la Célula de mi Universidad. A comparación de cursos anteriores, ahora antes de entrar a ver conceptos de Smart Clients, Desarrollo en Capas, o manejo de Patrones, u otro tema. Primero hablo sobre la Gestión de Proyectos Informáticos, la idea es darle más valor al curso, y sobre todo que les sirva para que lo apliquen en la vida real, y no sólo sea el curso por dictar.


Muchas veces al ser estudiantes, de todas maneras siempre recibimos ofertas para realizar algún Sistema de Información, ya sea por un amigo, un familiar, o porque lo buscamos nosotros mismos. Claro que algunas empresas se aprovechan de que la condición de estudiantes para reducir costos, en fin ese es otro tema.


En esas ocasiones, a mi me paso, muy poco sabemos de los roles de un jefe de Proyecto, un tester, y hasta muchas veces un analista, lo que sí sabemos es programar o desarrollar. Aunque no conozcamos estos roles, tendremos que hacer propuestas, algunos por probar, otros por necesidad, y otros por pasión.


Y ese es el motivo por el cual incluyo este tema dentro del curso. Ojo, no me considero un jefe de proyectos, bueno aún no, hay expertos en ello como Rodrigo Corral, o mis jefes en 3Dev. Mi punto de vista es como desarrollador, y en base a algunas experiencias que he tenido: Cuando me iniciaba hace años y en en mis etapas de practicante me rechazaron una propuesta de proyecto que hice, participe en otro proyecto donde faltaban algunos roles y se termino a medias, y después migre de ciudad y participe en un proyecto basado en la una solución Information Worker para una corporación. Adicionalmente a la poca experiencia que tengo, aún, lo que mostraré también será fruto de algunas conversaciones con amigos con los cuales he trabajado, algunos webCast que he visto, y leyendo blogs. Espero la validación, críticas, comentarios de Rodrigo Corral, y los han vivido la Gestión de Proyectos :$.


Los temas en la presentación adjunta son:



  • Conceptos previos

  • Ciclo de Vida del Desarrollo de Software

  • Gestión de Proyectos de Software

  • Evolución de los Sistemas de Información

  • Recomendaciones

  • Q & A

Conceptos previos


Como temas básicos primero debemos conocer la definición de un programa, y lenguajes de programación, y de partir ahí definir que es un Sistema de Información, normalmente conocido sólo como Sistema. No sé como será en otros países, pero por acá, cuando se dice quiero que me hagas mi Sistema, lo que está pidiendo es la realización de un Sistema de Información.


Y en cuanto a Sistemas de Información, resaltar algunos de sus beneficios: obtiene, procesa, almacena y distribuye información para apoyar en la toma decisiones y control de procesos en una organización; contiene información de sus procesos y entornos, entre otros. Recordar que existen tres tipos, eso dice la teoría: Transaccionales, de Apoyo en la toma de decisiones, y Estratégicos.


Al iniciarnos, no en todos los casos, siempre empezaremos viendo Sistemas Transaccionales, que no son otra cosa que los Sistemas de Ventas, Compras, Contabilidad, Logística, y todos esos. Los sistemas transaccionales son el primer tipo de información a implantarse en una organización; automatizan tareas operativas de la organización; son fáciles de justificar ante la dirección general, ya que sus beneficios son visibles a corto plazo.


Ciclo de Vida del Desarrollo de Software


Que en la práctica es Análisis, Planeación o Diseño, Desarrollo, Pruebas e Implantación del Sistema. Y la gestión de proyectos que está en torno a todo esto. En muchos casos las propuestas que hagamos serán de dos o tres personas, y bueno hacer el reconocimiento de quién hace qué cosa, muchas veces no es tomado en cuenta. Pero lo que sí no debe faltar es un tester y lo que siempre digo, es que, el desarrollador no sea su mismo tester, sino como :S. En estos casos podríamos conversamos con nuestro amigo que siempre le gustaba bajar sistemas, siempre hay uno en cada promoción, y retarlo e invitarlo a vulnerar nuestro sistema. En cuanto a los demás roles, por ser el primer proyecto, tendremos que asumir ser analistas, desarrolladores, y arquitectos; que hace el arquitecto?, pues a groso modo es el que define la infraestructura de la solución, y el modelo lógico y físico de la aplicación, se usará Cliente/Servidor, o un Sistema en Capas, y si se usará algún framework para crear la aplicación.


Gestión de Proyectos de Software


Aquí viene lo bueno, empiezo mostrando un gráfico, sobre ¿por qué fallan los proyectos?. Según las estadísticas es por elaborar requerimientos incompletos. Y algo que siempre recalco, es que software no es sólo codificar.


En cuanto a la duración del proyecto, que no sea mayor a 4 o 5 meses, eso creo que fue una de las puntos por lo cual rechazaron mi primer proyecto :(. Los clientes no pueden esperar más de 2 o 3 meses para ver resultados, si un proyecto es muy grande hay que dividirlo por módulos. Y establecer entregables cada dos o 3 meses.


Debemos tratar de que nos queden claro los requerimientos del cliente, él puede pedir un Sistema de Contabilidad, y nosotros haremos un sistema de Contabilidad, pero lo que quería era un Sistema integrado, es decir ventas, compras, inventario, etc. Debemos de tener claro lo que quiere el cliente, y siempre estar preguntando, para que no pase, que cuando estemos haciendo la instalación, te diga, NO, eso no es, lo que yo quería.


Realizar un documento de requerimientos, y hacer que los usuarios lo validen y aprueben. Esto principalmente te servirá para dos cosas: la primera será saber qué hacer, que tareas tienes que hacer, y en general para planificar la solución. Ahora la segunda cosa importante para la cuál te servirá, es que sucede si estas en la etapa de pruebas y vienen los usuarios, y te dicen que se dan dado cuenta que en un requerimiento no es lo que quisieron decir, y hay que hacer cambios, y te dicen: «pero es un cambio chiquitito», pero no saben que eso de repente puede hacer que tomes unas semanas más, es ahí donde sacas tu documento de requerimientos y dices eso no estaba, y puedes justificar que el proyecto tome unas semanas más si es el cambio así lo requiera, y si quieren algo más de lo que se había pedido, y como diría un amigo: ese es otro precio :D.


Si bien en la presentación se ven los roles de Jefe de Proyecto, Arquitecto de la Solución, Arquitecto de Infraestructura, Analista, Desarrollador, y Tester. No es necesario tener un usuario por cada rol, muchas veces sólo presentan el proyecto tres amigos, y tendremos que completar entre nosotros los otros roles, pero eso sí, si eres desarrollador no debes ser tester, si alguien sólo hace de jefe de proyecto, puede ser el tester, pero si sólo son dos usuarios compartiendo los roles, como comente arriba podemos acudir a un amigo para el rol de tester. Hay un cuadro de Roles, donde te dice que roles se pueden combinar, no recuerdo donde lo vi, creo que fue en una presentación, cuando lo encuentre, lo adjunto en los comentarios.


Asignar tiempo exclusivo a los proyectos. Esto es importante sobre todo para los que aún son estudiantes y ya están dentro de un proyecto o están haciendo la propuesta. Si el horario de nuestros estudios es el ideal, ósea, estudiamos o bien en la mañana o bien en la tarde, o bien en la noche. Esto nos permitirá darle un horario aceptable al proyecto. Pero qué pasa si tienes cursos en la mañana y en la tarde, y muy variado. Para estos casos sólo le dedicamos el tiempo que podemos al proyecto, y muchas veces esto hace que sumemos a las estadísticas de porqué fallan los proyectos. También evitar desarrollador en nuestra casa, en lo posible, y si la organización lo permite, trabajar en la misma organización. Algunos directores, sólo te ven una vez a la semana, y no les entrega nada, causa suspicacias sobre tu trabajo, además que cuando tienes un problema, ellos no saben que te estás tomando tiempo resolviendo el problema, sólo saben que estas atrasado. Pero si estas en la misma organización verán todo el trabajo que estas realizando.


En cuanto a la metodología a usar, en el primer proyecto que hice, presente, y no se aprobó, no sabía que debía usar una metodología para el desarrollo del proyecto. En cuanto a recomendar una metodología todavía no lo puedo hacer, ya que no he aplicado muchas, y sólo sería recomendación en base a lecturas. Lo que sí puedo recomendar es que revisen las diversas metodologías que hay, con respecto a metodologías ágiles podemos encontrar mucha información en el blog de Rodrigo, sobre todo de Scrum, también puedes revisar XP como metodología ágil, imagino que algunos llevaron en algunos de sus cursos RUP, y si no también lean, y bueno también esta MSF. Ahora la recomendación es leer estas, y ver cuál puedes aplicar más, a tu proyecto, que combines y vayas viendo su utilidad, no se dejen llevar mucho por la teoría, por ejemplo si usas RUP, no hagas todos los diagramas UML, sólo por hacer, hazlo porque realmente lo necesitas, y te ayudan a entender mejor el modelo. Lo que si debes tener claro es que de todas maneras debes tener Documento de Requerimientos, y si sólo con esto entiendes el modelo de la organización no hay porque gastar el recurso tiempo, haciendo diagramas que no nos servirán. Si estás haciendo escenarios ya conocidos, Sistema de Contabilidad, Ventas, Compras, etc, revisa en los trabajos o tesis de tu Universidad, muchas veces estos modelos ya están resueltos, y no hay porque perder el tiempo tratando de volver a inventar la rueda. Si ellos ya resolvieron el modelo, aprovechémoslo.


Las herramientas no son el fin, son los medios. Que en un proyecto no dejes que te motive la idea de usar la herramienta o entorno X, ya que las herramientas con el tiempo cambian, lo que te debe motivar es aprender el modelo del negocio, ya que eso cambiará muy poco con el tiempo, y entre las diversas organizaciones. Pero ojo, esto no quiere decir que no sea importante escoger una buena herramienta de desarrollo, mientras más productivo te hace la herramienta, mucho mejor, que esta demás mencionar, que uno de los objetivos de VS2005, es incrementar tu productividad.


Asuman con compromiso cada proyecto en el que participen, si van estar en proyecto por probar, o porque no tienen otra cosa que hacer, y a medio proyecto lo vas a dejar, mejor no se metan. Desde el momento que presentaron el proyecto, su nombre está en juego, dependiendo si se termina o no el proyecto. A corto plazo no afecte mucho, pero cuando retomemos el hacer proyectos, y ahora si estemos motivados, será difícil volver a obtener la confianza de las organizaciones o personas. Recuerden que si hacen bien un proyecto será un referencia más, pero sino, puede ser mala fama sobre nuestra persona.


Ahora la pregunta del millón, cuánto tiempo durará el proyecto, y cuánto costará. Rodrigo ya nos hablo sobre las estimaciones. Yo les recomendaría en cuanto al costo y el tiempo, que en un primer proyecto se la jueguen, consulten con amigos o docentes, o mentores, sobre cuánto podría durar el proyecto. Y sobre el costo, negócienlo con la organización, y traten de que este primer proyecto salga de todas maneras, aunque no ganemos mucho. Y porque arriesgarnos tanto en nuestro primer proyecto, y es que a partir de este, formaremos nuestro sentido común, de estimar tiempo de duración, y costo del proyecto. Aunque no será «la experiencia», será nuestra propia experiencia y conoceremos como respondemos a un proyecto. Indudablemente que puede que trabajemos mucho y demás en este proyecto, pero el siguiente ya no nos volverá pasar.


Evolución de los Sistemas de Información


Esto es como parte complementaria y teórica. En muchas organizaciones grandes, lo que se desea es un sistema integrado, que al realizar una venta automáticamente, se descuenta el producto de abastecimiento, y se registre en contabilidad. En organizaciones grandes el desarrollo de estos sistemas puede durar mucho tiempo, y en ese tiempo perder dinero, y entre otras razones, es porque las organizaciones optan por un ERP. En la presentación encontrarán más detalles.


Recomendaciones


Y para finalizar, aunque cuando hago la presentación esto lo acompañe con algunos «videos», acá sólo dejo las recomendaciones, trataré de buscar «imágenes» que se presten para las recomendaciones :D:



  1. No siempre lo que pensamos, son los requerimientos del cliente.

  2. Escoger bien a los miembros de nuestro equipo de trabajo.

  3. Usar la persuasión, en lugar de la imposición.

  4. Calcular el riesgo en los proyectos que participemos.

  5. Si vamos a trabajar en un proyecto, pues trabajemos.

  6. No todos los trabajos son buenos.

  7. Si vamos hacer algo, hagámoslo bien.

  8. Vivan los proyectos, motívense.

Presentación Adjunta: starrillo_DesarrrolloSoftware.pdf – 2.50 MB.


P.D.: Y nada, espero que les sea útil, y se inicien en los proyectos :).


Saludos,


Post cruzado desde starrillo blog

cadenas de conexion desde .NET para SQL Server 2005

[2010-Abr-30] NOTA: Si están recibiendo el error: «Error mientras se establecía la conexión con el servidor. Al conectar
con SQL Server 2005, el error se puede producir porque la configuración
predeterminada de SQL Server no admite conexiones remotas
«. Por favor, revisen la siguiente entrada: habilitando (o administrando) las conexiones remotas en SQL Server
2005
.

si es que estamos usando SQLExpress, y estamos creando una aplicación .NET para el acceso a datos, hay que tener algunas consideraciones adicionales a la hora de conectarnos a la base de datos.

Dentro de las aplicaciones Windows, con VS2005, hay la opción de agregar un Ítem SQL Database, pero sólo está disponible si has instalado SQLExpress. En este caso la cadena de conexión ha cambiado ligeramente. Como nos mantenemos actualizados? visitando: http://www.connectionstrings.com/.

Aquí pondré algunos resúmenes de las cadenas para SQL Server 2005, desde .NET:

  1. Seguridad Estándar
    «Data Source=Aron1; Initial Catalog=pubs; User Id=myUsername; Password=myPassword;»
  2. Conexión Segura
    «Data Source=Aron1; Initial Catalog=pubs; Integrated Security=SSPI;»
  3. Conexión via IP
    «Data Source=190.190.200.100,1433; Network Library=DBMSSOCN; Initial Catalog=pubs; User ID=myUsername; Password=myPassword;»
  4. Adjuntando una base de datos, para conectarnos a SQL Express (caso mencionado arriba)
    «Server=.SQLExpress; AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname; Trusted_Connection=Yes;»

Ahora con respecto a las conexiones hay algunas cosas que hay que tener en cuenta, y mejores prácticas que aplicar:

En el caso 01 y 03,  la conexión al contener el usuario y password, hace que este sea altamente inseguro, imaginemos en el hipotético de los casos que alguien tiene acceso a la cadena conexión, tendrá automáticamente el login de SQL, bueno las cosas que pueda hacer dependerá del usuario que la encontró. En estos casos hay ciertas prácticas que debemos seguir, como es la encriptación de archivos de configuración, que es generalmente donde se guardan las conexiones, aunque algunos prefieran guardarlo en el Regedit:

Con respecto a la cadena de conexión para SQLExpress, he recibido algunas consultas sobre donde se debe colocar el archivo, en la raíz de la aplicación o en el bin?, ya que ha estado generando algunos problemillas. En el post que hice usando SQL Express, el asistente genero la ruta absoluta del archivo, lo ideal es trabajar con la relativa para hacer que la aplicación sea portable. Para más detalles podemos revisar los siguientes post del equipo de Smart Client:

Saludos,

Post cruzado desde starrillo blog

calmando la sed de postear con WLW (Windows Live Writer)

hace 8 días, 10 horas, y 33 minutos aproximadamente que no envío un post a mi blog. He estado con algunos pendientes que debía terminar para el trabajo si o si, y también porque he estado preparando un nuevo curso para la Celula.Net de mi Universidad, en fin….


Por hoy día, ya termine con lo que tenía pendiente, así que ahora a postear se ha dicho. Compartir información a través del blog, se ha vuelto una adicción para mí. El otro día camino a la U, perdí el carro por estar pensado que iba postear cuando me hiciera un tiempito, también cuando estaba realizando unos trabajillos, he encontrado unos resources sobre SSRS 2005, y más cosas que surgieron para postear…

En otros tiempos esta información se hubieran perdido, ya sé que se puede guardar información sin postearla en los blogs, pero simplemente no me acostumbro o no me gusta usarlas. Como dije en otros tiempos esta información se hubiera perdido, ya me ha pasado y creo que tengo un post que guarde de febrero y nunca lo termine, y tampoco lo terminaré creo :D.

Pero eso ya no pasará, hace meses leí en el bruno, que estaba usando Windows Live Writer, bueno lo descargue y ahora simplemente, no puedo de dejar de usarlo, es la herramienta ideal para los que deseen calmar su sed de postear, ahora les cuento porque:


  1. Fácil acceso, para abrir el programa:


  2. Seleccionamos el blog sobre el cuál vamos a postear:


  3. Tipeamos nuestro mensaje, y si por alguna razón ya no podemos continuarlo, lo guardamos y lo abrimos después. También alternativo, es abrir un draft que ya teníamos guardado:


  4. Terminamos nuestro post, y escogemos las categorías del post:


  5. Y por último publicamos el post :), también podemos publicarlas al Draft del blog:


¿qué les parece?, ¿qué mas se puede pedir?, hay varios cosas interesantes en los plugins para WLW, revisen la página de abajo. Lo que si espero que traiga más adelante es que tenga el corrector ortográfico para espaniol, aunque no se si ya esté, no lo he buscado :$.


P.D.: También podemos visitar: Writer team blog, Windows Live Writer Plugins,

Saludos,
Post cruzado desde starrillo blog

y Dios dijo: que se haga la luz, y la luz se hizo… y dijo: que se haga sergiotarrillo.net, y se creo www.sergiotarrillo.net

bueno, contarles que ya soy duenio del dominio www.sergiotarrillo.net, así que ahora ya no tendrán problemas para apuntar o recordar la url de mi blog. Sólo deben actualizar el link de mi blog, claor los que lo tenían linkeado, o cambiar la referencia en sus bookmarks.

En cuanto al feed de mi blog, también lo tengo centralizado en: http://feeds.feedburner.com/sergiotarrillo.

Y nada, estos serán los links para llegar a mi blog durante mucho tiempo.

Saludos,

Post cruzado desde starrillo blog

hablando de WebCasts … y se viene la serie de SharePoint 2007

hablando WebCasts, esta se semana empieza los WebCast de SharePoint 2007.

Será por dos semanas, dos Lunes (6 y 13), y dos Viernes (10 y 17), y que es lo mejor?, que son en espaniol.

Las charlas serán impartidas por nuestros amigos Luis Du Solier, y Haaron Gonzalez, a esté último ahora también lo encontramos en geeks.ms.

Los temas de los cuatro WebCast son los siguientes, en orden ASC by DateTime:

  1. Arquitectura e implementación de la herramienta de colaboración Microsoft SharePointRegistro (esta, será dentro de unas horas)
  2. Como habilitar una estrategia integral de colaboración empresarial haciendo uso de la Plataforma MicrosoftRegistro
  3. Introducción a la funcionalidad nativa y visión de colaboración empresarial de Microsoft SharePoint Registro
  4. Construyendo Clientes Inteligentes con Microsoft Office InfoPath 2007 y Windows SharePoint Services 3.0Registro

P.D.: Después no digan, que no les avise xD.

Saludos,

Post cruzado desde starrillo blog

es hora de ponerse al dia con IIS 7.0, WebCast a la Vista…

 

todos los que tienen Vista y han estado haciendo desarrollo web o usando el web server con Reporting Services o ClickoOnce, se han habrán podido dar cuenta que hay un nuevo entorno en IIS, claro los que encontraron los pasos para hacerlo funcionar con lo ya mencionado, y eso por no leer mi blog :D.

Ya comentado en unos post anteriores como usar IIS 7.0 con Reporting Services 2005, y con Visual Studio. Pero ha llegado la hora de entender que más es IIS 7.0.

Podemos revisar el site del equipo de IIS, en www.iis.net. En este sitio también encontraremos información completa de IIS 7.0, como por ejemplo el core, configuración, administración, instalación, seguridad, diagnostico, virtual labs, y un FAQ.

También tenemos algunos videos en Channel 9: An hour discovering IIS 7, Chatting about IIS 7's security, Talking ASP.NET and IIS 7.0, y Talking ASP.NET and IIS 7.0, Part II. Estos dos últimos con Scott Guthrie. El cuál en uno de sus post nos habla de IIS 7.0 y RC1.

Bueno, pero por qué llego la hora de ponerse al día?, pues habrá un Web Cast de Introducción a Internet Information Server 7 en espaniol :p. El WebCast será en el jueves 21 de diciembre, así que tenemos tiempo para ponernos al día en IIS 7.0, y ese día llevar nuestras dudas, inquietudes, o cualquier pregunta marciana que tengamos sobre IIS 7.0.

Además Iván González, invito a comentar que más temas nos gustaría ver en el WebCast de Introducción a IIS 7.0.

Saludos,

Post cruzado desde starrillo blog

usando las nuevas APIS de ASP.NET 2.0 con SQL Server 2000

en la mayoría de conferencias que he dado, mostrando el manejo de Seguridad con las nuevas apis: Membership, y Role;  la mayoría de los asistentes siempre salen satisfechos con la facilidad de hacer segura una aplicación web con asp.net 2.0 y VS2005. Ojo que sea fácil de hacer, no quiere decir que es más inseguro o más seguro. Aunque por defecto las nuevas APIS ya tiene el uso de caracteres especiales para las claves, manejo de claves seguras, bloqueo de cuentas bajo un máximo de intentos y muchas cosas más interesantes. Las herramientas puede ser muy buenas, pero si no las configuras bien, y no tienes politicas de seguridad es lo mismo que nada.


Ya hablando del modelo de seguridad, es que este puede extender. Y entiéndase por extender, por ejemplo usar como fuente de datos no solo SQL Server 2005, sino Oracle, Access, archivos XML, entre otros. Bueno algunas funcionalidades con algunos proveedores ya están implementadas en VS2005, otras hay que hacerlas.


Ahora, si quiero usar SQL Server 2000, es de la misma manera que con SQL Server 2005. Hay que ejecutar la herramienta que se encuentra en la carpeta %root%/Windows/Microsoft.Net/Framework/v2.0.xyz, aspnet_reqsql.exe. Esta funciona para SQL Server 2000 y SQL Server 2005.


Si han tenido algún problema en la creación pueden revisar las consultas del ejecutable, que se encuentran en la misma carpeta:



Otro problema que se puede presentar después de instalar, es más, se presentará, es que por defecto tiene el provider configurado con SQLExpress. Debido a esto muchas veces se piensa :$, q hay errores en la instalación de VS, SQL o la herramienta, o todo es puro cuento, o como se diría popularmente es «cebo de culebra«.


Adicionalmente después ejecutar la herramienta, o directamente los querys, debemos «configurar» en nuestra Aplicación Web nuestro proveedor usando el archivo web.config. O si deseamos lo hacemos en todo el equipo en el archivo machine.config. Al hacerlo en el machine.config, por defecto eso se usará en todas las aplicaciones web de manera implícita.


Este artículo está mas claro y detallado: Utilizar la autenticación de formularios con SQL Server en ASP.NET 2.0, y este post de Scott Gu’s también es muy claro: Configuring ASP.NET 2.0 Application Services to use SQL Server 2000 or SQL Server 2005.


P.D.: Esta configuración también se aplica para el manejo de perfiles y personalización (web Parts).


Saludos,


Post cruzado desde starrillo blog

que paso con el SqlConnection, el OleDBConnection y los XConnection, XDataAdapter en VS2005?

¿quién no ha usado el SqlConnection, SqlDataAdapter, SqlDataReader?. ¿quién, no los uso desde el caja de herramientas?. Pero, ¿dónde estas estos controles en VS2005?


En principio iba a responder solo con los pasos, por unos pendientes que tengo, pero no puedo evitarlo voy hacer un how to, no tan detallado, pero con algunos pantallazos.


En este caso usaré Visual C# Express y SQL Express, sobre Windows Vista RC2. ¿por qué?, por que esas versiones estan al alcance de todos por ser gratuitas ;). Y obviamente son aplicables a las versiones superiores.


Ahora que estuve instalando SQL Express, me percate de una opción interesante, no se, si no la vi antes (en las versiones beta), o no tenía, y es la posibilidad de hacer una instalación avanzada.



Con una instalación avanzada, podemos configurar el nombre de instancia, en mi caso es .miSQLExpress, pero si no tienen planeado instalar una versión superior de SQL, pueden usar la instancia por defecto, y para que, al conectarse solo pongan el nombre de equipo, (local), localhost, o sólo «.».


Ah por cierto trabajaré con Adventure Works, la cuál se puede descargar desde esta página: SQL Server 2005 Samples and Sample Databases (July 2006).


Vamos a los pasos, supongo que ya tienen instalado AdventureWorks, Managment Studio Express, SQL Express, y C# Express:



  1. Creo mi aplicación Windows con C#.

  2. Agrego un nuevo conjunto de datos: dsAdventure.xsd.

  3. Ahora agrego una nueva coneción a mi base de datos, puedo escoger entre Access vía OleDB o SQL:

  4. En el caso de los que han cambiado el nombre de la instacia por defecto (SQLExpress), el mio por ejemplo, al agregar la conexión hay que probarla, si obtenes error, hay que hacer clic en propiedades avanzadas, y cambiar el nombre de la instancia (por defecto viene con SQL Express), indepientemente que instancia le hayas puesto de nombre a tu servidor de base de datos. Ah por cierto se usará el modelo attach DB, en el cuál para la conexión no es necesario el nombre del server y la db, sino el archivo mdf, que esta dentro de la carpeta Data de MSSQL.

  5. Ahora arrastro una nueva tabla desde la conexión agregada, nos pedira agregar una conexión local dentro del proyecto, hacemos clic en SI o YES, depediendo del idioma de la instalación del Csharp Express (como se han habrán podido dar cuenta, tengo al versión en espaniol):

  6. Como pueden apreciar ahora el objeto a parte del dataset es el TableAdapter, que yo lo veo como un DataAdapter tipificado:

  7. Lo que es interesante es que que las consultas generadas de Insert, Update, Delete, y Select, la podemos cambiar por Store Procedures, además podemos personzalizar más el TableAdapter, agregando métodos de búsqueda, etc.

  8. Ahora a lo nuestro agregar la data, para esto abrimos el formulario, y mostramos los orígenes de datos, si no esta, lo hacemos desde el menú Data, Show DataSource, y en espaniol, Datos, Mostrar Orígenes de Datos:

  9. Ahora cambiamos la vista a Detalles, y arrastramos ProductCategory al formulario:

  10. Antes de que digan wow…., ejecuten, no lo piensen tanto, no miren el código, solo ejecuten..

  11. Ahora si, digan wow… :

Ahora si, espero que todo haya quedado claro?, no prueben el update .


A los que probaron el update habrán notado que no hace update, en este punto deberían comerzar a silvar, y a pedir su plata. Pero tranquiloss…., todo esta bajo control, no hubiera publicado el post, si previamiente no hubiera soluciado esto, aunque tome varias horas, aunque no coma, aunque no…; según la regla Nº13 del manual buen programador, si vas hacer algo, hazlo bien, sino, mejor no lo hagas . Y nada, vamos, primero les explico que ha pasado, y después les explico como solucionarlo.


El problema se presenta, por el quicktranslate que hice de este post, que al momento de decir SI en el mensaje de arriba que les dije que pulsarán SI, lo que hace es adjuntar el archivo mdf a nuestro proyecto. ¿pero, eso es lo que debía hacer?. Aja, pero el problema es que la conexión agregada se queda referenciada a la ruta del archivo original (la carpeta Data de MSSQL). Y resumidamente ese es el problema.


La solución, «cuanto más tiempo te demore un problema, mayor es el éxtasis alcanzado al solucionarlo«:



  1. Tenemos que cambiar la cadena de conexión dentro del archivo de configuración de la aplicación, app.config, y en el datatable ProductCategory, esto lo hacemos desde el diseñor del dataSet. Lo reemplzamos por la actual ruta del archivo *.mdf adjuntado dentro de nuestra aplicación.

  2. Ejecutar nuevamente.

  3. Modificar un registro, ej., cambiar el nombre de la categoría a bicicleta.

  4. Cerrar.

  5. Volver a ejecutar.

  6. Y por último decir wow…:

Con una versión de SQL, NO Express, no deberíamos tener este problema.


Cabe resaltar que esta, es una demo básica, nosotros podemos usar StoreProcedures, podemos extender la funcionalidad del TableAdapter dentro de una capa de Negocio, usando WebServices, y todo el tipo de cosas arquitectónicas que se les ocurran.


De más esta decir sobre todo lo que ha generado, los controles, la presentación, validaciones del tipo de dato, asignación del autonumerico, entre otras… es, siendo cualitativos, espectacular; y cuantitativos, es productivo.


Links útiles:



P.D.: Una vez más, muchas gracias por sus preguntas, aunque a veces demore en responder, siempre respondo todas. De todas las pregunta recibidas, siempre hay algo que aprender de ellas :D. Y recuerden que si tienen algún problema, con este howto, me dejan un comentario en el post. Y si tienen preguntas de otro tema, haganlas en el foro, y si el problema es medio marciano, como el de este post me envían un mail, previamente haber echo la consulta en el foro, con el link del post en el foro.


Saludos,


Post cruzado desde starrillo blog