NET Fuera de la PC

Evento Embedded Development Imagine Cup 2010 (Solo Peru)

banner3

Miercoles 17 de Febrero 2010 6:30 PM-9:30 PM.
Conf Room  Microsoft Peru
Av. Avenida Victor Andres Belaunde #147
Centro Empresarial Lima / Lima / San Isidro


Registrese

Desarrollar sistemas es un tema muy apasionante pero implementar sistemas para dispositivos como por ejemplo televisión, xbox, celulares, equipos industriales , o  el poder desarrollar un programa que controle un robot o implementar un software en el cual podamos intercambiar datos mediante dispositivos móviles, es realmente  aun mas apacionante.
Rumbo al Imagine Cup 2010 en Polonia , esta presentacion mostrara las oportunidades en la categoria Desarrollo Embebido.

Agenda:
6:30-7:00 PM :keynote Microsoft en el mundo de las soluciones industriales

7:00-8:00 PM :Desarrollo Embebido : Windows Embedded CE 6.0 R3

Los dispositivos para desarrollo embebido  son cada vez más inteligentes, poderosos y cada vez más usados en nuestra vida diaria. Prepárate para ir más allá del PC de sobremesa y trabajar tanto con el hardware como con el software para crear nuevas soluciones usando Windows Embedded CE 6.0 R3 más una plataforma empotrada.
windows Embedded CE 6.0 R3 es  la plataforma  del sistema operativo Windows Embedded CE componetizado y en tiempo real ,diseñado para dispositivos con tamaño pequeño de memoria como los dispositivos portátiles del sistema de posicionamiento global (GPS), dispositivos de monitoreo y servidores de medios.

8:00-9:00PM :NET MicroFrameWork

Nueva plataforma que permite a los desarrolladores construir aplicaciones integradas para los dispositivos más pequeños utilizando herramientas .NET y Microsoft Visual Studio.NET Micro Framework amplía la potencia de las ofertas integradas de Microsoft en la esfera de los instrumentos más pequeños, menos caros y de más recurso.
.NET a un nuevo conjunto de aplicaciones como los sistemas de automatización domésticos, sensores industriales, pantallas de venta al por menor y monitores de asistencia sanitaria. Desarrollado en esta plataforma trabaja de forma sencilla con las mismas herramientas que usa la familia de plataformas Microsoft.


Registrese
Unboxing Phidget Intro Kit – Embedded Development y la vuelta de Net fuera dela PC

Esta en marcha Imagine Cup 2010 , la competición a nivel internacional que persigue la aplicación creativa de la tecnología a la vida real.

Algunas de las categorías del  Imagine Cup 2010 son :
Diseño de software
Reto IT,
Desarrollo embebido,
Robótica

Algoritmos,
Desarrollo de juegos
Diseño

Es la segunda vez que participo en el Imagine Cup la primera como jurado y esta segunda oportunidad indirectamente en la difusión de las categorías remarcadas , como digo siempre , si desarrollar aplicativos o software es apasionante para muchos , implementar sistemas para dispositivos como por ejemplo televisión, xbox, celulares, equipos industriales es mucho mas apasionante .

Esta es la crónica de la llegada de este Kit a el laboratorio.

Capitulo 1 : “El día que nunca termina “

Ayer 2 de Febrero  intercambiando unos emails ,mensajes  con Ronald Armas  , me comento que ya se encontraba en las oficinas de Microsoft Peru el Kit de Phidged y que podía pasar por el  para la preparación de algunas demostraciones para lo que se denominara el “Embedded Development Imagine Cup 2010 Demoshow” , bueno después de ver el Kit de MicroFrameWork en manos de Fernando Perez *El Bull” un colega peruano  ,esto se ponía aun mas interesante , otro kit para el laboratorio por fin  en nuestras manos .

Capitulo 2: “El Kit en la mesa”

Casi las 12 am y toca realizar el unboxing respectivo tenemos ya el Phidget Intro Kit  este incluye entre otras cosas RFID Tag ,disc RFID Tags , Credit card sized RFID Tags ,Keyfob RFID Tags , un servo motor , sensores de movimiento , sensores de luz , sensores de rotación , potenciómetros , entre muchas cosas interesantes para el desarrollo de aplicaciones incrustadas.

Les dejo algunas de las fotos , esperando que no se notara la emoción del post jeje , si así espero vuestra compresión .

 

000_0001a000_0002c000_0007h000_0006y000_0005t000_0004f000_0003f\

 

En futuros post estaremos documentado el uso que le daremos a este Kit así como a el Kit de MicroFrameWork y todo lo que tenga que ver con Windows y Net fuera de la PC, Saludos.

Solo para Peru: Interesados en Embedded Development pueden acompañarnos en los diferentes eventos sobre esta categoría , los datos a continuación:

La ruta empieza en:

Conferencia : Embedded Development Imagine Cup 2010 Demoshow

Miercoles 17 de Febrero 2010 6:30 PM-9:30 PM.
Conf Room  Microsoft Peru
Av. Avenida Victor Andres Belaunde #147
Centro Empresarial Lima / Lima / San Isidro

Agenda:

6:30-7:00 PM :keynote Microsoft en el mundo de las soluciones industriales
7:00-8:00 PM :Desarrollo Embebido : Windows Embedded CE 6.0 R3
8:00-9:00PM :NET MicroFrameWork

Todas las PPT y videos de las demostraciones las estaré publicando prometo no dejar el Blog descuidado , lo prometo Saludos CCH

Modelando y Asegurando Servicios {WebCast}

El Domingo 5 , 9:30 am fui invitado a un WebCast sobre como modelar  y asegurar Servicios , donde explicamos paso a paso lo descrito en las anteriores entregas sobre el modelamientode servicios asi como el aseguramiento  de los mismos viendo los principales modelos , en las siguientes entregas veremos como asegurar los Servicios aprovecho para entregar la PPT , un saludo Carlos Chavez.

Implementar Services Software Factory Modeler Edition en nuestras aplicaciones (Parte 2 de 3)

Continuamos con el post acerca de Services Factory Modeler Edition 2-3  los post anteriores podra encontrarlos en los siguientes enlaces:

Modelar servicios con Web Services Software Factory Modeler Edition
Implementar Services Software Factory Modeler Edition en nuestras aplicaciones (Parte 1)

Para continuar con nuestra implementacion abriremos el modelo de contratos de datos creado y generaremos  el codigo como muestra el siguiente grafico:

3407931384

Luego abriremos el modelo de servicio y generaremos el codigo ,lo generado se implementara en la estructura de proyectos generada que vimos en el post Implementar Services Software Factory Modeler Edition en nuestras aplicaciones (Parte 1) ,en el siguiente grafico se muestra el modelo de servicios.

3407123803

Para completar nuestra aplicacion puede descargar las clases que corresponden en las diferentes capas de nuestras aplicacion las puede descargar desde aqui ,Ya que podra descargarlas clases e ir completando la implementacion vale resaltar justo la implementacion “ServicesImplementation” donde toma la informacion de la entidad y la pasa al mensaje y finalmente enviandola ,  el codigo se muestra a continuacion.

public virtual NorthWindWCFService.MessageContracts.ResponseProductsMessage SelectAllOperation()
      {
          ResponseProductsMessage respuesta = new ResponseProductsMessage();
          ProductBusinessLogic objlogic = new ProductBusinessLogic();
          List<Products> listaProductos = objlogic.GetAllFromProducts();
          ProductDataContract objProducto;
          respuesta.ProductDataContractMessagePart = new ProductDataContractCollection();
          foreach (Products item in listaProductos)
          {
              objProducto = new ProductDataContract();
              objProducto.ProductId = item.ProductID;
              objProducto.ProductName = item.ProductName;
              objProducto.CategoryID = Convert.ToInt32(item.CategoryID);
              respuesta.ProductDataContractMessagePart.Add(objProducto);
          }
          return respuesta;
      }

 

Finalmente desde la aplicacion cliente podemos invocar al servicio y hacer la conversion del mensaje a un tipo entidad para poder finalmente mostrar la informacion  , Descargue el ejemplo completo desde este link   , Saludos Carlos

Implementar Services Software Factory Modeler Edition en nuestras aplicaciones (Parte 1)

Siguiendo con la entrega anterior Modelar Servicios con Web Services Software Factory Modeler Edition  ,  en esta parte revisaremos como hacer la implementacion , luego nos dirigimos a la solucion pulsamos un click derecho y seleccionamos WCF implementation Project..

3402693857

en el instante que pulsa el click sobre la opcion WSSF empezara a construir una estructura para su Servicio  , al finalizar la construccion su servicio contara con la siguiente estructura:

3403505854

Por mensionar alguno de los proyectos encontrados en la construccion de nuestro servicio:

1-BusinessEntities .- Que corresponde a nuestras entidades de negocio las entidades que usamos dentro de nuestros proyectos.
2-BusinessLogic .- Nuestro proyecto que contiene la plomeria de la logica de negocio.
3-DataAccess .- Proyecto que implementa los metodos de acceso a datos.
4-Data Contracts .- Son las estructuras m interfaces o clases que permite que el servicio envie informacion que se pasa hacia y desde un servicio , en pocas palabras vealo como la estructura y el tipo de mensaje que se intercambiaran entre servicios.

[DataContract(Name="PersonType")]
public class Person{
[DataMember]
public string Name;

[DataMember(IsRequired=true)] // Por defecto es false
public string Age;
}

5-FaultContracts.-Los contratos de fallas se pueden asumir como las exepciones en nuestra aplicacion , quiere decir son reportes de errores usando Fault Objects.

[OperationContract]
[FaultContract(typeof(System.Exception))]
void MyMethod();

6-MessageContracts- Describe todo el formato de los mensajes SOAP ,También permiten controlar los Head y Body de los mensajes SOAP de forma explicita.

[MessageContract]
public class MyRequest {
[MessageHeader] public string field1;
[MessageBody] public MyClass field2;
}

6-Services Contracts.- Define las operaciones que el servicio soporta y mapea las operaciones en WSDL.

[ServiceContract]
public interface IMyContract { ...}

7-Services Implementation .- Donde se encuentra la implementacion del Servicio es decir aca es donde colocamos la plomeria o el lugar donde podamos amarrarlo a nuestra capa logica y ejecutar nuestros metodos.

8-Host.- Se refiere al entorno en el que se crea y expone el servicio y la forma en que se controla su tiempo de vida.
Pude consultar este interesante Link de como se puede hostear servicios WCF

Resumen.

Si revisamos la documentacion de WSSF Modeler Edition notara como se asocian los diferentes proyectos y su relacion con los modelos elaborados en el post anterior.

3404775793

 

En el Siguiente post veremos la segunda parte de como implementar WSSF en nuestras aplicaciones un saludo , Carlos Chavez

Modelar servicios con Web Services Software Factory Modeler Edition

Para integrar aplicaciones  como en el caso de Dynamics (CRM , AX)  se puede hacer uso de Servicios Web para Windows sea WCF o ASMX .
Web Service Factory  Modeler Edition es un conjunto de herramientas , patrones , codigo  y guias  que ayudara mucho en la creacion de  Servicios ASMX o WCF.

En esta primera parte aprenderemos en como podemos  generar un servicio web mediante la creación de tres modelos diferentes: el modelo de contrato de datos, el modelo de contrato de servicio y el modelo de host.

Bueno luego de instalar Web Service Factory  Modeler Edition , crearemos un nuevo proyecto , el tipo de proyecto sera Guidance Package /Model Project en la vista de templates.

3403502948

 

Luego de crear el proyecto nos dirigimos al menu Tools / Guidance Package Manager /Enable /Disabled Package y seleccionamos Service Factory Modeling Edition.

Nota- Concuerdo con algo que lei  en un post que el nombre correcto es Services Factory sin la palabra Web , “por que todo el trabajo se basa en WCF y uno de los principales objetivos WCF es el constrir servicios independientemente de su implementación en transporte y serializacion.

3403503908

 

En la solucion vera un nodo con el nombre de su proyecto cuando le un click derecho vera que puede agragarle un nuevo modelo , para este caso crearemos un modelo de Datos.

Modelo de contrato de Datos

En este caso estamos agregando un DataContract model ingresamos un ModelNamey un XML NameSpace.

3403509776

El modelo de contrato de datos permite modelar conjuntamente diferentes clases de datos. Además de definir los tipos básicos como elementos de contrato, puede definir también colecciones, enumeraciones y contratos con errores. Los contratos con errores pueden devolverse cuando se produce un error en el servicio.

Para nuestro caso creamos un DataContract Para Product con sus respectivos miembros , luego agregamos un DatacontractCollection que representa la coleccion (Products)  .

3403507256

Finalmente para terminar de revisar  la documentacion de WSSF y revisar el Modelo de Contrato de Datos encontrara con este interesante grafico del sisenio de actividades dentro de este modelo.

 3402697573

 

Modelo de Contrato de Servicios

Ahora crearemos un modelo de Servicio Contract Model de la misma manera agregamos un nuevo modelo ingresamos el nombre y el XML NameSpace.

3403510388

 

En el diseniador creamos nuestro modelo para el servicio en este caso contamos con un servicio “Service” NorthWindService1 , este servicio cuenta con un Service Contract , este cuenta con 2 Operaciones “Operation”de nuestro servicio una es para SelectBy y la otra es SelectAllOperation , la primera nos devolvera un Producto de una determinada categoria por eso tiene un mensaje “Message”  de entrada para pasarle el parametro y un mensaje de salida Response Product que devolvera la coleccion Products.

Sin encambio SelectAllOperation solo devuelve un mensaje de salida de todos los productos ,es este un ejemplo de como modelar nuestros servicios.

3402696861

Cada operación de un modelo de contrato de servicio puede tener un máximo de dos contratos de mensajes asociados: un contrato de mensajes para el mensaje de solicitud y otro para el mensaje de respuesta. Puede agregar partes a un contrato de mensajes haciendo clic en él con el botón secundario del mouse. Una parte puede ser un tipo primitivo, como por ejemplo System.Decimal, o bien un contrato de datos como el definido en el modelo de contrato de datos.

Finalmente para terminar de revisar  la documentacion de WSSF y revisar el Modelo de Contrato de Datos encontrara con este interesante grafico del sisenio de actividades dentro de este modelo.

3403506628

 

En el siguiente Post haremos un resumen y pasaremos a conversar del modelo de host y como generar en base a todo esto nuestro proyecto para el servicio y como implementarlo en una aplicacion.

BITS (Background Intelligent Transfer Service) , Jobs , .NET y una de las respuestas de como pasar archivos grandes por http


Inicio

Hace algunas semanas conversando con mi amigo Ricardo Masabel sobre alternativas de como poder transmitir informacion “Con ciertos kilos de peso” via http , es de repente unas de las preguntas mas frecuentes al hablar de transmitir informacion,  para dar solución  evaluamos  alternativas , una de ellas es  BITS (Microsoft Background Intelligent Transfer Services) para el manejo de transferencia de archivos de forma asíncrona.

Caso:

El marco del problema fue la de procesar y validar  informacion para su manejo local y transmitir los resultados -archivos entre  250mb y 4gb – via http para su posterior ingreso a tablas en el servidor.

3373842193

Detalle del Servicio Utilizado:

Nombre: Servicio de transferencia inteligente en segundo plano.
Nombre en Inglés: Background Intelligent Transfer Service (BITS).
Ejecutable o DLL: qmgr.dll
Modo: Utiliza los espacios disponibles en la conexión para la transferencia de datos.

Comportamiento:

Maneja transferencias de archivos de forma asíncrona en primer plano o de fondo,  y  así preservar la capacidad de respuesta de otras aplicaciones de red, Se  crearan  Jobs o y transferencia para  supervisar el progreso de la transferencia de Jobs  en la cola.

3374697082

Algunas Caracteristicas:

Transferencia Reiniciables - Para transferir archivos, requiere una conexión de red y el usuario que ha creado el Job  que se registran en el ordenador. Si la conexión de red se pierde o el usuario cierra la sesión, se suspende el trabajo. Luego reanuda automáticamente el job desde donde lo dejó previamente cuando la conexión de red se restablece.

Seguridad-La solución podrá ir apoyada  básicamente de  NTLM, Negotiate, Recopilación, y la autenticación de Passport. apoya los protocolos HTTP y HTTPS cuando la privacidad y la integridad del trabajo es una preocupación.

Instalacion y Prueba Inicial

Primero instalaremos las extensiones BITS en el servidor IIS.

1-Nos dirigimos a Add/Remove Programs del panel de control.
2-Luego Add/Remove Programs y click en Add/Remove Windows Components del menú de la izquierda.
3-Click en Application Server y darle un click Details.
4-Click en Internet Information Services (IIS) y click en Details.
5-Marque Background Intelligent Transfer Service (BITS) Server Extensions y click en OK como se muestra en el siguiente grafico.

3375783250

6-Ahora nos dirigimos al IIS y creamos un directorio virtual “upload”, que apunte a un directorio físico “Upload”.

Consideraciones:

a)-El nombre del directorio físico y virtual puede renombrarse.
b)-Se tiene que colocar permisos al directorio virtual “Upload” de lectura y escritura.
c)-En el directorio virtual tomar en cuenta en la ficha Directory Security /Edit Deshabilitar la opción Enabled Anonymous Access , de no tomar en cuenta este paso cualquier usuario sin “autentificarse” podría transmitir archivos al servidor.
e)-Para acompañar la configuración en el paso (c), deberá asignar un usuario o grupo a la carpeta física así solo los usuarios del AD (Active Directory), pueden autentificarse y transmitir archivos al servidor.

*Para nuestro demostracion inicial puede trabajarlo de manera anonima

El siguiente grafico nos muestra  lo indicado en la consideracion (a) verificar que la opción read y write estén marcadas en el directorio virtual.

3374979019

El siguiente grafico nos muestra  lo indicado en la consideracion (c) verificar que el Check enabled anonymous Access se encuentre desmarcada, para que solo los usuarios autentificados puedan transmitir archivos.

Si está realizando pruebas iníciales puede mantenerlo activado para aceptar usuarios anonimos y la carpeta física encontrarse en “everyone”  control total , para que inicialmente pueda ver la prueba de la transmisión de manera anónima.

3374988609

7-para activar la opción de BITS en el directorio virtual nos dirigimos a la ficha BITS Server Extensión y marcamos las siguientes opciones:

a-Allow clients to transfer data to this virtual directory.
b)-Marque la opción Customize Settings
c)-La opción Maximum file Size indica el tamaño máximo de un archivo a transmitir por defecto en el cliente no se definió el tamaño exacto por que el requerimiento era de 300mb , 400mb , 1GB o NGB , no se marca la opción.
d)-Marcamos la opción Delete incomplete Jobs after e indicar en qué momento quiere que se eliminen los Jobs que quedaron suspendidos por algún error, esta configuración tiene como valor por defecto 14 días.

El siguiente grafico nos muestra las propiedades de  BITS en el servidor.

3374992851

8-Verificar en el servidor start/administrative tools/Services , para verificar el servicio de BITS se encuentre activo como se muestra en la siguiente grafico.

3375813668

Pruebas de transmisión

Para realizar las pruebas de transmisión usaremos el comando bitsadmin.exe desde la línea de comandos.

Requisitos:

1-Windows Vista (Incluido)
2-Windows XP (Herramientas de soporte técnico de Windows XP Service Pack 2)
http://www.microsoft.com/downloads/details.aspx?familyid=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=es

3-Windows 2003 (Windows Server 2003 Service Pack 1 Support Tools).
http://www.microsoft.com/downloads/details.aspx?FamilyId=6EC50B78-8BE1-4E81-B3BE-4E7AC4F0912D&displaylang=en

Prueba 1:

Asumiendo que la carpeta está aceptando everyone y el directorio virtual está aceptando autentificación anónima ejecutamos el siguiente comando:

bitsadmin /transfer MEMJob1 /Uploads /priority normal http://MIAMI/Uploads/archivo.dbf "D:\ArchivoOriginal.dbf"

Donde:
/transfer – es el comando de transferencia MEMJob1 el nombre del Job
/Upload o /Download – Parámetro que indica si se sube o descarga un archivo.
/Priority  - Prioridad.
http://MIAMI/Uploads/archivo.dbf - archivo.dbf nombre del archive que tendrá en el servidor.
D:\ArchivoOriginal.dbf – Ruta y archivo original en el cliente.

Resultado de la Prueba:

El grafico siguiente nos muestra la prueba del servicio transmitiendo un archivo de 1GB , cuando termine el proceso de envió en el servidor se deberá encontrar el archivo , con esta prueba tendremos claro que el servicio está corriendo sin problemas.

*Para ver el estado de la transmision solo invocamos al siguiente comando bitsadmin /monitor

3375830204

Prueba 2:

Carpeta física está asociado a un grupo o usuario.
En este caso el directorio virtual desactivaríamos la opción acceso anónimo y ejecutamos de la siguiente manera Bitsadmin con autentificación:

bitsadmin /create /upload PruebaCarga1
bitsadmin /addfile PruebaCarga1 http://MIAMI/Uploads/archivo.dbf "D:\archivooriginal.dbf"
bitsadmin /setcredentials PruebaCarga1 SERVER NEGOTIATE DOMINIO\userCarlos P@$$w0rd
bitsadmin /setpriority PruebaCarga1 NORMAL
bitsadmin /resume PruebaCarga1

Conclusiones:

El servicio BITS ya implementa toda la plomeria de trabajo con Jobs , Colas para temas de disponibilidad , manejo de transferencias reiniciables , el siguiente comando reiniciaria la transferencia.

bitsadmin /resume PruebaCarga1

Con esta prueba solo mostramos el uso del servicio logicamente existen “Background Intelligent Transfer Service .NET Wrapper” para la manipulacion de esta api desde nuestras aplicaciones NET pero segun sus comentarios y si fue de su interes enviamos la segunda parte , Saludos Carlos Chavez

Posted: 22/3/2009 16:35 por Carlos Chavez | con 1 comment(s)
Archivado en:
WebCast IIS 7 De extremo a extremo

El pasado martes 24 estuve invitado por Microsoft TechNet para un WebCast titulado “revision de punta a punta de IIS 7” ,  donde se vio la arquitectura de IIS7 , como desarrollar extensiones personalizadas en IIS 7.0,  mejoras realizadas en IIS 7.0,  analizamos  el nuevo sistema de configuración de IIS 7.0, la nueva administración integrada ,resolución de problemas y diagnósticos en IIS 7.0 .

Comparto con ustedes  el  link del WebCast grabado , la PPT , y el codigo y comandos usados en esta presentacion .

WebCast grabado lo pueden descargar desde  aqui

Iis7
View more presentations from mascodigo.

Los codigos y comandos  que se usaron en esta presentacion en las siguientes lineas.

1-Demo Configuracion XML 
 
    1.1-Crear un AplicationPool desde XML
 
        <applicationPools>
            <add name="Technet 2008 Pool">
                        <processModel identityType="LocalService" />
        </add>
 
    1.2-Agregar Propiedad LocalService    
    
    1.3-Crear un sitio en XML
 
        <sites>
        <application path="/TechNetSummit08site">
                   <virtualDirectory path="/" physicalPath="D:\" />
                   </application>
 
    1.4-Modificar pagina de inicio                                                                                                                                                                                                                                                                                                                        
        <?xml version="1.0" encoding="UTF-8"?>
        <configuration>
             <system.webServer>
                 <defaultDocument>
                          <files>
                               <remove value="Default.htm"/>
                                <add value="technetsummit.aspx" />
                          </files>
                  </defaultDocument>
              </system.webServer>
          </configuration>
 
 
 
2-Ejecutar como administrador el appcmd 
 
C:\Windows\System32\inetsrv
 
    2.1 appcmd list SITE "Default Web site"
    2.2 appcmd list wp    
    2.4 appcmd list config "Default Web Site"
    2.5 appcmd list config "Default Web Site" -section:defaultDocument
 
    *Se estan liberando herramientas de PowerShell  Tech Preview 2 demo por verificar
 
Desde El PowerSheell de IIS 7
 
    PS IIS:\Sites>Dir
    PS IIS:\Sites>Get-Item 'Default Web Site' | Select-Object *
    PS IIS:\Sites>New-Item iis:\Sites\TestSite -bindings @{protocol="http";bindingInformation=":80:TestSite"} -physicalPath d:\test
    PS IIS:\Sites>Remove-Item IIS:\Sites\TestSite
    PS IIS:\Sites>New-Item 'IIS:\Sites\Default Web Site\DemoApp' -physicalPath d:\test -type Application
    
 
        
 
3-Herramientas , Administration Pack , Performance , HTTPs  Administracion Remota Delegable
 
 
4-Extensibilidad  y flexibilidad para desarrolladores y esto reflejado en administradores por que encontraran mas funcionalidad disponible carateristicas fuertes.
    4.1 Ejemplo de el Grafico Handlers 
 
 
---------------------------------------------
ImageConversionHandler.cs
---------------------------------------------
 
using System;
using System.Web;
using System.Drawing;
 
public class ImageConversionHandler:IHttpHandler
{
   
    public bool IsReusable
    {
        get { return true; }
    }
 
    public void ProcessRequest(HttpContext context)
    {
        string path = context.Request.PhysicalPath;
        using ( Bitmap bmp = new Bitmap(path)){
            using (Graphics g = Graphics.FromImage(bmp)){
                using (Font font = new Font ("Tahoma",40)){
                    g.DrawString("IIS Rocks ", font, Brushes.White, 0, 0);
                }                
            }
            context.Response.ContentType = "image/jpeg";
            bmp.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
        }
 
   
    }
 
    
}
--------------------------------
 
    4.2 Ejemplo de Trace Modulo todas las peticiones no una en particular
    DefaultWebSite/Add Managed Handler y listo
    DefaultWebSite/Modules/Add Managed Module y listo
--------------------------------
    
-----------------------------
SqlLogginModule.cs
-------------------------------
 
using System;
using System.Web;
using System.Data.SqlClient;
using System.Web.Hosting;
 
 
/// <summary>
/// Summary description for SqlLogginModule
/// </summary>
public class SqlLogginModule : IHttpModule
{
    public SqlLogginModule()
    {
    }
 
    public void Dispose()
    {
        
    }
 
    public void Init(HttpApplication app)
    {
        app.LogRequest += new EventHandler(app_LogRequest);          
    }
    void app_LogRequest(object sender, EventArgs e) {
        HttpApplication app = (HttpApplication)sender;
        LogRequest(app.Context);
    }
 
    private void LogRequest(HttpContext ctx)
    {
        string connectionString = @"Data Source=CARLOS-PC\SQLEXPRESS;Initial Catalog=Banco;Integrated Security=True";
        using (SqlConnection connection = new SqlConnection(connectionString)) {
            SqlCommand cmd = connection.CreateCommand();
            cmd.CommandText = "Insert into Log(Date,Method,IPAddress,Url,UserName,UserAgent,ResponseCode,SiteName,ApplicationName) Values " +
                "(@Date,@Method,@IPAddress,@Url,@UserName,@UserAgent,@ResponseCode ,@SiteName,@ApplicationName)";
 
            cmd.Parameters.AddWithValue("@Date",DateTime.Now.ToString());
            cmd.Parameters.AddWithValue("@Method",ctx.Request.HttpMethod.ToString());
            cmd.Parameters.AddWithValue("@IPAddress", ctx.Request.UserHostAddress.ToString());
            cmd.Parameters.AddWithValue("@Url", ctx.Request.Url.ToString());
            cmd.Parameters.AddWithValue("@UserName","xx");
            cmd.Parameters.AddWithValue("@UserAgent", ctx.Request.UserAgent.ToString());
            cmd.Parameters.AddWithValue("@ResponseCode", ctx.Response.StatusCode.ToString());
            cmd.Parameters.AddWithValue("@SiteName", HostingEnvironment.SiteName.ToString()) ;
            cmd.Parameters.AddWithValue("@ApplicationName", "xx");
 
            connection.Open();
            cmd.ExecuteNonQuery();
        }
    }
 
 
----------------------------------------------------------------------
 
http://www.iis.net/downloads/default.aspx?tabid=34&i=1682&g=6
 
TechNet Summit 08

El día 25 de Septiembre se llevo a cabo el Technet Summit 08 en el cineplanet Alcazar en Lima Perú , estuve asignado a el track 2 y junto con Jorge Oblitas compartimos con los presentes lo mejor de IIS 7, como siempre me dio gusto compartir nuevamente los escenarios con Elias Mereb de Venezuela , Jose Espinoza (JELP) , Alex Le Bienvenu , Juan Mestas , Eduardo Valdivia , Javier Ron de Ecuador y Jorge Oblitas .
Luego de un par de amanecidas todo quedo OK como siempre , a las 6 am del mismo día del evento todo quedo OK regresamos a Microsoft nos cambiamos y regresamos al evento , ese mismo día no pudimos celebrar solo almorzar y dormir , hasta el día sábado que por fin pudimos reunirnos ya que horas después nuestro amigo Javier Ron tenia que tomar un vuelo, todas las cosa que pasan previos a un evento pruebas y ensayos , para darles a todos un evento que salió a mi parecer muy bueno.


Dejo esta foto para el recuerdo : Centro Cultural Peruano Japones – Lima Perú

 

friends

Elias Mereb,Percy Reyes , Javier Ron,Juan Mestas , Carlos Chavez , Julio Campos , Daniel De La Haza

Posted: 29/9/2008 20:45 por Carlos Chavez | con 2 comment(s)
Archivado en:
WebCasts : Datos afuera vs. Datos adentro

Información general del Evento

Recientemente sea visto mucho interés en SOA (Arquitecturas orientadas al servicio). En estos sistemas, existen diversos servicios cada uno con su propios código y datos, así como la capacidad de operar independientemente de sus compañeros. En particular, las transacciones atómicas con un compromiso de dos fases no pueden ocurrir a través de servicios múltiples porque esto requeriría conservar candados mientras otro servicio decide el resultado de la transacción. Esta plática sugiere que existen varias diferencias seminales dentro de los datos dentro de un servicio y los datos enviados al espacio externo de la frontera del servicio. El acto de desbloquear los datos como una copia y enviarlos en el mensaje significa la interpretación de que el mensaje recibido debe incluir la comprensión de que estos datos están desbloqueados. Esto cambia la forma en que los datos se pueden usar. Después consideramos los objetos, SQL y XML como distintas representaciones de datos. Cada uno de estos modelos tiene fortalezas y debilidades cuando se aplican a la frontera del servicio interior y exterior. La plática concluye que la fortaleza de cada modelo en un área se deriva de las características esenciales subyacentes a su debilidad en otra área.

Duración:    60 Minutos
Fecha de Inicio: martes, 30 de septiembre de 2008 05:00 p.m. Bogotá

Invitado: Carlos Chavez

Link: http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032386303&EventCategory=4&culture=es-AR&CountryCode=AR

 

Nos vemos en el WebCast amigos , saludos

Webcast: Arquitectos: ¿Cómo lo hacen?

El pasado 5 de Setiembre se dio el WebCast para MSDN Latam

“¿Qué es lo que convierte a algunas personas en arquitectos valiosos después de sólo unos pocos años, mientras otras nunca se acercan si quiera? ¿Es posible cultivar arquitectos? ¿Entrenarlos? O ¿simplemente ellos “surgen” espontáneamente? Casi cualquier organización está buscando arquitectos de calidad para los niveles de la empresa, aplicaciones y sistemas. Venga y únase en este debate de naturaleza o educación. Aprenda qué atributos personales debe buscar en sus arquitectos prospecto. Conozca algunas técnicas que funcionan (y otras que no) pues esta información se aplica directamente a su organización en la medida que trata de crear sus propios arquitectos o contratar algunos.” 

Fecha :  5 de Setiembre
Hora: 2:00:00 PM (GMT -5), Bogotá, Quito, Lima, Rio Branco.
Invitado:Carlos Chavez (Lima Peru)

Link de Descarga del WebCast

http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032386315&Culture=es-AR 

Saludos  Carlos Chavez

Microsoft Dynamics y la Identificacion por Radiofrecuencia (RFID) - Parte 1

rdif

 

"Solo porque una solución ERP realice complejas tareas no significa que tenga que ser compleja en sí misma" (Bill Blyth)

La vision de la tecnologia en el 2010 me recordo a un  video creado por IBM que muchos anios atras  habia visto  , la implementacion de RDIF en aplicaiones como Dynamics AX  , CRM y BizTalk lo implementan ahora , bueno para los que no conocen bien por que no tendrian por que ,  el concepto de RDIF es que es una tecnología muy pero muy prometedora para la identificación de objetos mediante técnicas de comunicación de radiofrecuencia.

Hoy en día encontramos diversos tipos de RFID en el mercado, que se diferencian en cuanto a la frecuencia utilizada, esquema de modulación, y otros parámetros. El concepto es similar para todos los sistemas RFID: todos tienen un lector, una antena, y una o más de una etiqueta. Las etiquetas o tags son pequeños módulos de memoria que se comunican con el lector, y que se asocian a diferentes objetos para su seguimiento. Los lectores pueden buscar una etiqueta dentro de su radio de alcance mediante la emisión de una señal de RF predeterminada, a la que la etiqueta responde con su ID única, que ha sido preprogramada en su memoria.

En resumen RFID es transmitir la identidad de un objeto (similar a un número de serie único) mediante ondas de radio. Las tecnologías RFID se agrupan dentro de las denominadas Auto ID

 

Atentados del 11 de Setiembre  dieron a los gobiernos la excusa perfecta para meternos los chips RFID en todos los pasaportes , SAP trabaja en el campo de la RFID desde 1998, con el primer centro de investigación, el SAP Corporate Research , PeopleSoft lo implementa , McDonalds  tambien ya que le permite hacer anticipadamente pedidos y al llegar al local solo sirvan el pedido , existen ya mascota telecontrolada , DigitalAngel , como otras empresas ya implementan en diferentes actividades tecnologias RDIF como el caso mensionado.

 

Microsoft Dynamics y RDIF

Los últimos informes sobre los análisis han indicado que la mayoría de los ERP no se utilizan, principalmente porque el sistema es demasiado complejo y los usuarios invierten mucho tiempo en encontrar información que les sea relevante. Gracias a la imagen y funcionamiento de Microsoft Office, Microsoft Dynamics AX  proporciona a los usuarios un punto de partida, gracias a su experiencia consistente y familiar. La solución permite a los usuarios tomar ventaja de Microsoft Office Excel , que mostrará y analiza la información, y se integraren el análisis empresarial y en las herramientas de información, que servirá para que los usuarios muestren los informes y resultados analíticos directamente en Excel sin que necesiten copiar y pegar entre las aplicaciones. Además, las facturas, declaraciones de los clientes y otros documentos empresariales se pueden enviar directamente por e-mail a través de Microsoft Office Outlook.

Posted: 11/8/2008 6:37 por Carlos Chavez | con 4 comment(s)
Archivado en: ,,
Application Integration Framework (AIF) - Microsoft Dynamics AX y el mundo exterior (1ra Parte)

AIFArch

 

las cosas que me gustan al ir investigando sobre AX es su parte de integracion con otras aplicaciones

Dynamics AX trabaja con AIF(Application Integration FrameWork) que es un FrameWork extendible para  la integracion de AX con aplicaciones B2B , A2A (application-to-application) ,  servicios web  y EAI (Integracion de Aplicaciones Empresariales) , Gracias al Application Integration Framework puede conectarse con otros miembros de su círculo de negocios, clientes y compañías de comercio interno, de manera más sencilla. Además, tanto los partners como los clientes pueden ampliar las funciones utilizando el asistente de desarrollo nuevo para crear documentos personalizados. Además la interfaz de servicios Web ofrece una experiencia de integración sin fisuras para Microsoft .NET y otros clientes Web.

 

AIF soporta multiples transporte asincronos usando WebServices para intercambio de documentos en XML.

El intercambio inicia cuando un documento que es una clase documento definido usando AX business logic . el documento es serializado a XML y es transferido fuera de de Dynamics AX llamando a un endpoint local de AIF .

Con que adaptadores trabaja Microsoft Dynamics AX ?

Trabaja con Microsoft Message Queue (MSMQ) , File system (documents exchanged to and from folders on a computer) , Web Services , AIF BizTalk Adapter.

Pronto estaremos hablando de cada uno de ellos y como ir configurando mientras tanto ya tenemos claro de como es que trabaja la integracion de AX con el mundo exterior en el grafico podremos ver como es la arquitectura completa de AX y trabaja AIF , espero pronto seguir posteando sobre la parte de comunicacion de Dynamics AX un saludo a Todos y a todos los desarrolladores espero que les sea de utilidad el marco teorico sobre la comunicacion de AX un saludo a todos.

Carlos Chavez

Los WebCast de esta Semana

Nota de ComunidadesMicrosoft

Hace un par de meses, Juan Mestas, Carlos Chavez y yo (Jorge Castillo) propusimos la idea de tener una serie de webcast los fines de semana. La reacción fue inmediata: ¿Están locos? ¿Nadie va a ir a un webcast un fin de semana por la noche? ¿Les gusta perder el tiempo? Y cosas por el estilo. Sin embargo, nosotros estuvimos convencidos de que esa es una buena hora… asi que nos lanzamos. Sabemos que las grabaciones van a ser vistos por la mayoría en el horario que a cada uno le parezca mejor, pero las versiones en vivo están dirigidas a un selecto grupo de personas que desea emplear ese tiempo, entre que los niños ya se fueron a dormir y antes de la siesta o de la fiesta un dia sabado , a aprender algo nuevo. Por eso, aunque nos hayan dicho Chiflados o locos , igual los estamos esperando los próximos fines de semana para poder aprender juntos… Y qué es SPG: SOLO PARA GEEKS, porque ser un GEEK no es ser chiflado, es solo estar un poco Loco por la tecnología

Y si la primera semana de esta serie de WebCast fue un exito en ambos dias (sabados y domingos) quiere decir que hay mas como nosotros por ahi.

Comparte junto a nosotros la serie de webcast correspondiente a esta semana.

Fuente:

http://www.comunidadesandinas.com/SPG1/webcast.aspx

 

Manejando estilos y templates en controles con WPF Y XAML (Por Jorge Edison Castillo Lima Peru)

Los datos son el corazón de cada interface de usuario, desde las reservaciones de un hotel hasta el stock de los artículos de un carrito de compras. Las interfaces de usuario generalmente proporcionan una forma de visualizar e interactuar con ellos desde alguna fuente de dato. Escoger como mostrar tales datos desde nuestra interface es un punto muy importante dentro de nuestra aplicación y en este webcast veremos como con XAML y WPF , podremos crear nuevas formas de interactuar y mostrar los datos al usuario utilizando Templates.

 

  • Arquitectura - P&P Enterprise Library 3.1 Data Application Block (Por Carlos Chávez Lima Peru)

Descubre en esta sesión como implementar una arquitectura de acceso a datos recomendada por Microsoft utilizando Enterprise Library para rápidamente construir robustas y seguras capas lógicas de acceso a datos con soporte multimotor (Oracle, ODBC, Mysql) a través del "Abstract Factory implementation" , En esta sesión veremos su implementación en nuestra capa de datos , rendimiento ,tips y análisis .

 

  • WorkFlow Runtime (Por Juan Mestas Lima Peru)

Cuando usas WorkFlow Foundation.. el "WorkflorRuntime" es lo que está supervisando todo lo que esta siendo procesado..el workflowruntime comienza los trabajos individualmente.. impide otros eventos que son de diferente situación que aparecen mientras tus trabajos están haciendo ejecutados. 
WorkflowRuntime sigue la pista de los usos y servicios, que tu usas

 

 

Saludos, Carlos

PPT WebCast: Microsoft ADO.NET Entity Framework
PPT del WebCast de Entity FrameWork
Localizar motivos de carga lenta en nuestras aplicaciones ASP NET con FireBug & YSloW

Hace meses atras se estuvo rumoreando por internet acerca de Microsoft y su intención de adquirir Yahoo , bueno particularmente no me llamo la atencion para nada mas que el monto de la oferta :P , muy poco tuve  la casualidad que estar por yahoo asi qu e me fui un rato a pasear por ahi  y por  ahí sin uno querer estaba por  http://developer.yahoo.net , bueno nadie lo podia evitar creo.


Bueno , leía que en yahoo antes si una pagina  superaba los 50Kb  un robot notificaba y luego se trataba  de reducirla y levantar la performance   de la mensionada pagina, bueno ahora existen pagina de 100 o 200 Kb y en otros casos ni se preocupan en eso -Varios diria yo -  así que estando por Yahoo  busque información sobre Steve Souders quien es Chief Performance Yahoo y autor del libro Hight Performance Web y quien creo las 13 reglas  del rendimiento de aplicaciones Web.

Y de ahí creo algo así como un Fxcop basado en estas 13 reglas (¹) que se llama Yslow para FireBug y una versión limitada Lite para IE , así que dije vamos a bajarlo y a las pruebas me remito quería ver temas sobre Rendimiento, Estadísticas, así que lo descargue de inmediato mientras me seguía documentando ................................100%

 

(¹) Las 13 reglas del Rendimiento Web

1.    Reducir el número de peticiones HTTP
2.    Usar una Red de Distribución de Contenidos (CDN)
3.    Añadir la cabecera «Expires»
4.    Comprimir con Gzip los componentes
5.    Poner los CSS al principio
6.    Mover los scripts al final
7.    Evitar las Expresiones CSS
8.    Hacer que los JavaScripts y CSS sean externos
9.    Reducir las búsquedas en los DNS
10.    Minificar los scripts de JavaScript
11.    Evitar redirecciones
12.    Eliminar scripts duplicados
13.    Configurar los Etags

 

La descripción detallada se las dejo acá http://developer.yahoo.com/performance/rules.html#num_http aunque seria cuestión de otro post poner el laboratorio  cada una de ellas así que la próxima ponemos también bajo el microscopio cada uno de estas reglas.

Primero instalo Firebug y luego YSlow. A partir de entonces, al ir navegando, se capturan todos los datos relativos a las páginas y sus elementos

1-Bueno hice 3 pruebas y quede contento FireBug permite ver variables JavaScript , osea depurar JavaScript , AJAX,Permite  inspecccionar HTML entre muchas cosas .

ywlowgrafico1

2-Monitorizar la actividad de Red Esto si me gusto bastante controlar el tiempo de carga de un aplicación web, mostrandote el tiempo que tardó en procesar toda la página.

ywlowgrafico2

3-YSlow se complementa perfectamente con Firebug para entregarnos un informe sobre el rendimiento y estado de los componentes y localizar más fácilmente algunos de los motivos de que la carga sea lenta.

ywlowgrafico4

 

Las images lo dicen todo muy buena lestos AddOn tiene unas  cosas mas que hacen , tiene sus problemitas como es un Add on para FireFox y tiene incompatibilidades con otros AddOn asi que agregandoles otros y hicieron que mi FireFox se cierre al hacer unas prueba , pero en conclusion super interesante.

Bueno amigos recomendacion final bajenlo peuebenlo y digiten  www.misitioweb.com/default.aspx   y a ver los resultados un saludo a todos.

 

Carlos Chavez

Posted: 1/4/2008 17:58 por Carlos Chavez | con no comments
Archivado en:
Acercando nuestras aplicacion a un mundo Real ADO NET Entity FrameWork Parte 1

Hola amigos una anecdota  antes de empezar ,  ya hace unos meses atras me invitaron a como ponente en una charla  y elegi el tema  "Evolucion ar2_tec_grafde Acceso a Datos" , a decir verdad me parecio un tema muy simpatico  y el publico respondio muy interesado , pasaron unas semanas y por coincidencia pedian el mismo tema para las charlas , y si fuera poco esto en el lauch de VS 2008 {Ciudad de Heroes} , tambien estaba incluido dicho tema ,  por el pedido de un gran amigo Miguel Almeyda acabo de escribir para el siguiente numero de la revista INETA y adivinen que tema (EF) ADO Entity FrameWork ,  y si no bastara ya :S  Origino una serie de WebCast que justo empezo el fin de semana que paso ,entonces pense............100% ,   Los amigos estan realmente muy interesado en esta nueva evolucion de acceso a datos , asi que tome en serio la cosa y puse estas nuevas tecnologias bajo el microscopio que seguro tambien sera una serie de post tambien , bueno amigos esta es mi opinion de La nueva Evolucion de Acceso a Datos y con ustedes para empezar ....... que pase ADO NET Entity FrameWork :P.

 

A mitades de este  2008 Microsoft  lanzara extensiones para el VS 2008 para la cuales se tiene que estar  preparado ,estas son ADO NET Entity Framework (EF)  , ADO NET Services  (ASTORIA) ,  JASPER y  Microsoft  Syncronization FrameWork (MSF ) For  ADO NET , todas estas nuevas tecnologías disponibles para crear las nuevas aplicaciones de acceso a datos y por ende solucionar los desafíos actuales con los que nos encontramos.

 

Desafios Dijistes?

Si y es un tema comun , todas las arquitecturas de desarrollo tienen la necesidad de transformar datos de una forma a otra para tenerlos en el formato adecuado.
Entiendase transformacion=capa de datos en nuestras aplicaciones las las cuales se crean  para minimizar los llamados "desajustes de impedancia" que existe en la relacion quebrantada entre los objetos (Modelo Conceptual) de la aplicación y las filas relacionales (Modelo Datos).


Modelo de Datos Conseptual

La creación de un modelo relacional extendido, llamado Modelo de Datos de Entidades (Entity Data Model - EDM), que engloba las entidades y las relaciones como conceptos de primera clase, se maneja con un  lenguaje de consultas para EDM, un motor de mapeado completo que traduce del nivel conceptual al lógico (relacional), y un conjunto de herramientas guiadas por modelos que ayudan a crear los transformadores entidad-objeto, objeto-xml y entidad-xml.


Todos estos servicios son llamados Marco de Trabajo de Entidades o simplemente Marco de Entidades (Entity Framework). ADO.NET, el Marco de Entidades y el soporte para las Consultas Integradas en los Lenguajes (Language Integrated Query - LINQ) representan lo que se denomina el  acceso a datos de próxima generación para Microsoft.

 

Como hacemos que el Modelo de Datos no se imponga en modelo de nuestras aplicaciones ?

El primer paso es definir un modelo conceptual propio. EDM representa una expresión formal, de diseño y ejecución de un modelo . EDM nos permite describir el modelo en términos de las entidades y las relaciones. Idealmente, debería haber dos vías de definir un modelo desde el principio. Podemos definir el modelo explícitamente de forma manual escribiendo el XML, la otra vía es a través de una herramienta gráfica de diseño .

 

Lo que hace ADO.NET Entity FrameWork  es mapear los objetos de Negocio a tablas relacionales atacando así  directamente a la impedancia de datos entre un modelo entidad relación y un modelo orientado a objetos  La configuración del Framework será out-of-band, es decir externa a la aplicación (.xml).
ADO.NET Entity FrameWork almacena metadatos EF (CSDL,SSDL,MSL content) , en un archivo *.edmx estos están separados en elementos XML :


·    Store Schema Definition Language (SSDL)
·    Conceptual Schema Definition Language (CSDL)
·    Mapping Specificacion Language (MSL)


Como mensionamos Este proceso puede ser manual atravez de archivos XML  o usando el asistente que viene con VS 2008 en nuestro ejemplo creamos un nuevo proyecto web ASP NET y agregamos a nuestro proyecto un nuevo elemento ADO NET Entity Model al cual llamaremos NorthWindmodel.edmx y agregamos 3 tablas relacionadas de nuestra base de datos Northwind.

Antes de usar debemos instalar los siguientes archivos :

VS90-KB945282.exe
EFB3SetupX86.exe
EFToolsSetupX86.exe

Esto para incluir y trabajar con EF en nuestras aplicaciones

 

image002

 

Si notamos en el grafico en la columna inzquierda se encuentra el Modelo de Datos con los campos de la tabla categorias mientras al lado derecho se encuentra el modelo conceptual con los tipos de datos respectivos y al centro el mapeador esta representacion grafica que es en ralidad un XML NorthWindModel.edmx

Si abrimos nuestro archivo NorthWindModel.edmx con un editor XML veremos estas secciones Store Schema Definition Language (SSDL), Conceptual Schema Definition Language (CSDL) , Mapping Specificacion Language (MSL) que representan a las 3 columnas anteriormente mensionadas.

 

image003

 

 

Lo vemos claramente en este grafico el CSDL el SSDL y el mapeador

<!-- CSDL content -->
    
    <edmx:ConceptualModels>
      <Schema Namespace="NorthwindModel" Alias="Self" xmlns="http://schemas.microsoft.com/ado/2006/04/edm">
        <EntityContainer Name="NorthwindEntities">
          <EntitySet Name="Categories" EntityType="NorthwindModel.Categories" />
          <EntitySet Name="Products" EntityType="NorthwindModel.Products" />
          <EntitySet Name="Suppliers" EntityType="NorthwindModel.Suppliers" />
      </Schema>
    </edmx:ConceptualModels>
    
    <!-- SSDL content -->
    
    <edmx:StorageModels>
      <Schema Namespace="NorthwindModel.Store" Alias="Self" ProviderManifestToken="09.00.3042" xmlns="http://schemas.microsoft.com/ado/2006/04/edm/ssdl">
        <EntityContainer Name="dbo">
          <EntitySet Name="Categories" EntityType="NorthwindModel.Store.Categories" />
          <EntitySet Name="Products" EntityType="NorthwindModel.Store.Products" />
          <EntitySet Name="Suppliers" EntityType="NorthwindModel.Store.Suppliers" />          
      </Schema>
    </edmx:StorageModels>
    
    <!-- C-S mapping content -->    

    <edmx:Mappings>
      <Mapping Space="C-S" xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
        <EntityContainerMapping StorageEntityContainer="dbo" CdmEntityContainer="NorthwindEntities">
          <EntitySetMapping Name="Categories">
            <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Categories)">
              <MappingFragment StoreEntitySet="Categories">
                <ScalarProperty Name="CategoryID" ColumnName="CategoryID" />
                <ScalarProperty Name="CategoryName" ColumnName="CategoryName" />
                <ScalarProperty Name="Description" ColumnName="Description" />
                <ScalarProperty Name="Picture" ColumnName="Picture" />
              </MappingFragment>
            </EntityTypeMapping>          
    </edmx:Mappings>

 

Bien y como consulto mis datos ?


Bueno para consultar podemos usar LinQ para ADO NET Entity FrameWork  que ya es tema conocico aunque no lo vimos ante el microscopio lo veremos para consultar la ionformacion para esto ,dibujaremos un Grid y codificaremos con un poco de LINQ para obtener  resultados deseados.

 

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using NorthwindModel;

namespace WebCastEFDemo01
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            NorthwindEntities dc = new NorthwindEntities();
            var query = from c in dc.Categories
                        select new
                        {
                            c.CategoryID,
                            c.CategoryName
                        };
            this.GridView1.DataSource = query;
            this.GridView1.DataBind();
        }
    }
}

 

y tenemos como resultado........

 

image004

 

 

Umm y como agrego nuevos datos  ?

Si quisieramos agregar datos solo interactuamos con NorthWindEntities de esta manera usando su metodo AddtoX y listo donde X es el nombre de nuestra entidad.

 

protected void ButtonGuadar_Click(object sender, EventArgs e)
     {
         //Guardar el Datos
         using (NorthwindEntities mydb = new NorthwindEntities())
         {
             Categories categorie = new Categories();                
             categorie.CategoryName = "Nuevo Registro";
             categorie.Description = "Nuevo Registro";
             mydb.AddToCategories(categorie);
             int count = mydb.SaveChanges();
         }

 

Bueno espero les guste esta primera parte prometo luego empezar a revisar un poco mas alla como la  Arquitectura al detalle del Marco de entidades a fondo y otras dudas hasta la proxima y saludos

Carloc Chavez

WebCast: Microsoft ADO.NET Entity Framework

Hola amigos este Sabado 29 a las 5.00 PM estare con todos en un WebCast  "Microsoft ADO.NET Entity Framework" , les dejo a descripcion del WebCast y el link

Resumen
 
La mayoría de desarrollos actuales son como los de hace 15 o 20 años la representación de almacenamiento se impone en el modelo de aplicaciones a pesar de que el modelo conceptual permite a las aplicaciones usar conceptos del mundo real ,ADO.Net Entity Framework
permitirá a las aplicación usar un modelo conceptual de herencia, relaciones y datos fuertemente tipados, mapeará objetos de negocio a tablas relacionales con esto se elimina la impedancia que existente entre el modelo orientado a objetos y el modelo entidad-relación.
 
Presentador
 
Carlos Chávez Villafuerte

 

El Link es https://www.livemeeting.com/cc/microsoft/join?id=FCJ3RH&role=attend&pw=Comunidades

Saludos


ASP NET 3.5 Client Application Services

Muchas veces tenemos la necesidad de validar usuarios y en muchos lugares se muestran diferentes mecanismos de autenticación, unas de las características que los desarrolladores venían solicitando era poder implementar MemberShips y Role provider den ASP NET que dicho sea de paso es muy útil pero que no estaba disponible en aplicaciones Windows , ahora con FrameWork 3.5 y Visual Studio 2008 si y de eso será lo que comentemos en este ejemplo :

Como se Implementa?

Pues vamos a crear un ejemplo que nos permita implementar la seguridad de ASP NET en nuestra aplicación Windows lo que necesitaremos sea lo siguiente:

1-Usaremos una base Datos SQL  (Que almacenara los usuarios para acceder en ese caso usaremos la base de datos NorthWind).
2-Una Aplicacion Web ASP NET con AJAX (Esto para que exponga los servicios para la autenticación y autorización a través de de la interfaz del proveedor).
3-Una Aplicacion Windows (Que consumirá el servicio y nos muestren la autenticación).

 

Como mencionamos usaremos nuestra base de Datos NorthWind para almacenar la información del usuario ejecutamos C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql
Imagen1
Seleccionamos el Server y la base de Datos en este caso usare una base de datos existente que es NorthWind
Imagen2
Notemos que se creo las SQLProvider tables ,vistas y procedimientos , como sabemos todos estos los reconocemos por el prefijo "aspnet_"
Imagen3
Creamos una solución y 2 Proyectos un Proyecto Win Form y un proyecto ASP NET en el archivo config escribiremos el codigo que se muestra en el apartado web.config

<!-- Agregamos la Cadena de Conexion a nuestra base de Datos NorthWind -->
<connectionStrings>
    <add name="ExampleConnectionString" connectionString="data source=.\SQLEXPRESS;Integrated Security=True;DataBase=NorthWind" providerName="System.Data.SqlClient"/>       
</connectionStrings>

<!-- La Atentificacion es de tipo forms -->
<authentication mode="Forms" />

<!-- Configuramos el MemberShip -->
<membership defaultProvider="ExampleSqlProvider">
    <providers>
        <clear/>
        <add name="ExampleSqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ExampleConnectionString" applicationName="ASPNETApplicationServicesDemo"/>
    </providers>
</membership>

<!-- Configuramos el RoleManager -->
<roleManager enabled="true" defaultProvider="ExampleSqlRoleProvider">
    <providers>
        <clear/>
        <add name="ExampleSqlRoleProvider" connectionStringName="ExampleConnectionString" applicationName="ASPNETApplicationServicesDemo" type="System.Web.Security.SqlRoleProvider"/>
    </providers>
</roleManager>

<!-- Exponemos el Servicio a traves de AJAX -->
<system.web.extensions>
    <scripting>
        <webServices>
            <authenticationService enabled="true"/>
            <roleService enabled="true"/>
        </webServices>
    </scripting>
</system.web.extensions>

imagen4
Para nuestra demo nos iremos a la ventana explorador de soluciones y crearemos 2 usuarios si todo esta bien configurado no deberá ver problemas al crear nuestros usuarios (como se ve en la figura)
imagen5
Bien ahora nos iremos al proyecto Windows y activaremos su ventana de propiedades , en la ventana activamos la opción Services luego habilitamos la casilla "Enable client application services" y en "authentication services location " digitamos
http://localhost:49707/Web y en "Web settings service location" tambien digitamos http://localhost:49707/Web , dirección de nuestra aplicación web
imagen6
Luego agregaremos 2 referencias System.Web y System.Web.Extensions y dibujamos en un formulario Windows nuestra interfaz para validar nuestro usuario y contraseña
imagen7
Y bueno para Finalizar solo implementamos un pequenno codigo para hacer nuestra prueba usando el System.Web.Security.MemberShip.ValidateUser y listo si se fijan en la figura ingreso el nombrendel usuario el password y validamos, bueno ahora podemos implementar la seguridad en ASP NET en nuestras aplicaciones Winforms , este es mi primer post espero que no sean muchos gráficos y espero también que ahora puedan implementar de inmediato esta nueva característica de VS 2008 .

Un Saludo a todos
imagen8
 
Vive Windows !!! Vive Vista , Gira 2008

Uno de los eventos importantes que también quería compartir con ustedes fue el Vive Windows Vive Vista Tour2008 con quienes tuve el honor de participar en 3 de los eventos (Huancayo , Tacna y el cierre en Lima-Peru)  les dejo acá unas fotos

vwvv1

vwvv2vwvv3vwvv4

 

Foto 1 llegando al Hotel con las mimas a desayunar y de ahí al evento Grandes amigos , Juan Pablo Mestas , Daniel De la Haza (Culminis) , Jorge Castillo (MS), Miguel Almeyda (INETA) y su servidor , evento que me permitió no solo conocer excelentes profesionales si no excelentes amigos.

Foto 2   Foto 3En el evento un Exito Total lleno en la universidad continental  muy contentos al finalizar el evento.

vimos temas como ,Porque Windows Vista , Seguridad y Mitos en Windows Vista ,  Windows Vista y Windows Server 2008 "Better Together" , Las reglas de Oro para el Desarrollador sobre Windows Vista , Windows Vista y Net Framework 3.5

Foto 3 Finalmente nos fuimos de paseo con Juan Pablo y Daniel de la Haza mejores amigos los GAVILANES en gira hasta la próxima gira ..

Posted: 16/3/2008 1:25 por Carlos Chavez | con 1 comment(s)
Archivado en:
Más artículos Página siguiente >