in

ASP.NET Weblogs

This Blog

Syndication

ASP.NET Espanol Blogs

Browse by Tags

All Tags » ASP.NET 2.0 (RSS)
  • Integrando CRM en nuestras aplicaciones Web

    Vamos a ver como podemos integrar CRM en nuestras aplicaciones Web utilizando el SDK que nos brinda, que para este caso utilizaremos la fachada de Servicios Web, que en este caso son 2: Crm Web Service Metadata Web Service Nosotros vamos a trabajar con el primero, que nos pemite obtener entidades, crearlas, actualizarlas, borrarlas y realizar consultas XML, que esto lo veremos en otra ocasión. Lo primero que tenemos que saber es la URL del Web Service de CRM, algo como: http://servidor:puerto/mscrmservices/2006/crmservice.asmx y agregarla a nuestra aplicación. Una vez que pongamos la URL nos aparecerá la siguiente información: Como podemos observar, nos muestra los métodos que soporta y una pequeña descripción sobre los mismos. Añadimos finalmente...
  • Evitar problemas de configuración (Web.Config) en nuestros servidores de producción

    Después de más de un mes sin publicar nada de nada debido sobre todo a mi cambio de trabajo y la adaptación a los nuevos proyectos, he decidido retomar la temática de escribir unos cuantos post y no dejar esto abandonado. Una de las cosas que echaba de menos del metro (Aunque eso no quita que lo odie) es el poder volver a leer libros y entre ellos encontré una Best Practice relacionada con los problemas de configuración que se dan en los servidores de producción, que a mas de uno le quitará dolores de cabeza y que yo creo que es 100% recomendable aplicarla en nuestros proyectos. Se trata de añadir al machine.config del servidor/es de producción la siguiente entrada: < configuration > < system.web > < deployment retail =” true...
  • FindControl retorna null/nothing en una MasterPage

    Hoy me he encontrado esta cuestión en las NewsGroup de ASP.NET: Tengo un control de usuario MiControl1.ascx con un boton con este código: TextBox oTxt1 = (TextBox) this .Page.FindControl( "TextBox1" ); Asimismo hay 2 ASPXs: Pagina1.aspx que contiene el TextBox1 pero no tiene definida una MasterPage. Pagina2.aspx que contiene el TextBox1 pero ahora si tiene definida una MasterPage. Pagina1.aspx y Pagina2.aspx tienen MiControl1.ascx. Cuando Pagina1.aspx funciona OK. Pero cuando hago lo mismo en la Pagina2.aspx, FindControl() falla. Dónde está el problema y cómo lo soluciono? La verdad es que es una pregunta frecuente que suelo encontrarme y la solución está en la MSDN: FindControl searches the current naming container for the specified...
  • Tipando el acceso a los controles de nuestra Master Page desde propiedades creadas por nosotros

    Como bien sabéis podemos acceder a los controles de nuestra Master Page por medio del método FindControl , pero esto nos obliga a hacer un casting del tipo de control que queremos acceder y a saber el ID del control. Imaginaros que tenemos un cliente que tiene 2 compañias, Compañía1 y Compañía2 y lo único que debe cambiar de nuestra página maestra es el Logo, dependiendo si el usuario pertenece a una o a otra. Entonces desde la página de inicio podríamos hacer: Image logo = (Image)Master.FindControl( "ImageLogoCorporativo" ); if (PerteneceCompania1(User.Identity.Name)) { logo.ImageUrl = "Compania1.gif" ; } else { logo.ImageUrl = "Compania2.gif" ; } El código es correcto pero el programador debe saber como se llama...
  • Bug o no Bug con UpdatePanel en las templates de un FormView?

    Hoy me encontrado con un problema en el desarrollo de una aplicación con AJAX y ASP.NET 2.0. La cosa es que estaba desarrollando un formulario maestro con un FormView , en el cual se cargan datos de varias tablas que al final componen la tabla maestra y necesito utilizar varios UpdatePanel para renderizar partes del Formulario en las templates EditItemTemplate e InsertItemTemplate y cual ha sido mi sorpresa cuando me dice que: El tipo 'Tipo de la Página' ya contiene una definición para 'Nombre del Control' Me ha extrañado porque yo sé que se puede hacer, es decir, que en ambas templates puedo tener los mismos controles con los mismos ID. Al principio no sabía por donde meterle mano, pero he dicho, voy a quitar los UpdatPanel...
  • Problemas con SetFocusOnError=true en MaskEditValidator

    Hoy me he encontrado con un pequeño problema con un MaskEditValidator en una aplicación Web que estoy desarrollando. El código es el siguiente: < cc1:MaskedEditValidator id ="MaskedEditValidator1" runat ="server" Enabled ="False" TooltipMessage ="Introduzca un número entre 1 y 99999999" SetFocusOnError ="True" MinimumValueMessage ="Valor mínimo 1" MinimumValue ="1" MaximumValueMessage ="Valor máximo 99999999" MaximumValue ="99999999" IsValidEmpty ="False" ErrorMessage ="Introduzca un número entre 1 y 99999999" EmptyValueMessage ="Se requiere un valor" ControlToValidate ="TextBoxNumFact" ControlExtender ="MaskedEditExtender1"...
  • Reescribiendo las URLs de nuestro sitio web

    Las 2 razones que conozco para reescribir las URLs de nuestras aplicaciones Web son: Aportar un poco más de seguridad nuestro sitio web para que el usuario no conozca a simple vista el nombre de nuestras páginas aspx. Para mejorar la indexación de nuestra en página en buscadores. Podemos echar mano de una herramienta bastante fácil de usar para realizar esta labor: URL Rewriter for .NET / IIS / ASP.NET Una vez descargada, los pasos que he seguido para emplearla en mis aplicaciones han sido estos: Configurarla (Aunque en la Web dice que no hace falta, en mi ejemplo sin condigurarla no me ha funcionado) en mi equipo de desarrollo (Windows XP - Visual Studio 2003 v1.1.4322): Ejecutable: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi...
  • Publish Web Site: Allow this precompiled site to be updatable

    Seguro que has publicado varios sitios y nunca te has fijado en este check: Pues te diré que es tremendamente útil para la publicación de un sitio Web en hosting que no son de nuestro dominio (Hosting de terceros) para evitar que el código cliente de nuestra aplicación sea modificado, porque un administrador o quien tenga permiso, puede modificar (Mirar el código cliente no lo podrá hacer sobre la página aspx como veremos mas adelante, pero usando reflector podrá ver el contenido de la assembly) el código cliente de nuestra aplicación Web (aspx), los skin... Para ello vamos a ver la diferencia entre publicar un sitio web marcando esta opción y desmarcándola: MARCADO DESMARCADO Raíz Raíz App_Themes App_Themes bin Como se puede observar la cosa...
  • ¿Es necesario instalar Microsoft AJAX Extension en mi servidor de producción?

    Es una pregunta muy frecuente que me encuentro en foros y NewsGroup. La respuesta es sí y creo que el porqué (sino estoy equivocado) es esta nota que encuentras en la documentación de ASP.NET AJAX sobre el proceso de instalación: The installation process installs the ASP.NET AJAX assembly (System.Web.Extensions.dll) in the global assembly cache (GAC). Do not include the assembly in the Bin folder of your AJAX-enabled Web site. http://ajax.asp.net/docs/InstallingASPNETAJAX.aspx Es lógico no, si tira de la GAC (Ya que la DLL no se incluye en el Bin) y no tenemos la DLL instalada en el servidor, la aplicación fallará (Error J a v a s c r i p t: Sys no está definido creo que dá) puesto que es la que contiene el Framewrok de Cliente: Microsoft AJAX...
  • ASP.NET: Almacenamiento del estado de la sesión (Session State Mode)

    El otro día un compañero me comentó: Luis, estamos desarrollando una aplicación Web y como Session State Mode estamos utilizando InProc, pero no sabemos sí esta va a ser la configuración final. ¿Que debemos tener en cuenta en el desarrollo para que esta modificación no nos afecte? A lo que le respondí: ¿Sabes cual es la diferencia entre los distintos Session State Mode? El respondió: No muy bien, te importaría explicarmelo. ASP.NET soporta 5 tipos diferentes para el almacenamiento de la sesión: InProc : Es el modo por defecto. El estado de la sesión se almacena en la memeria del servidor web y es el que ofrece mejor rendimiento, pero como desventajas se pueden destacar que no se persiste si reinicias la aplicación web o a traves varios servidores...
More Posts Next page »