martes, 14 de abril de 2015

SSO ADFS 2.0 SalesForce

Abecés es necesario integrar sistemas en la nube con sistemas que están en nuestra corporación. Uno de estos casos es integrar SalesForce "Nube", con ADFS 2 para poder hacer SSO con aplicaciones como SharePoint. En esta guía vamos a ver como hacer esta integración.

1) Exportamos el certificado que generamos en ADFS, esto permitirá a SalesForce decrepitar el token generado por ADFS.

Guardamos el archivo.cer "posteriormente lo vamos a necesitar para SalesFoce"

2) Configuración SalesForce
  1. Iniciamos sección con un usuario administrador en SalesForces.
  2. Ir a Configuración.

 
    3. Control de Seguridad / Configuración de inicio de sesión único
 
 
 
          4. Nuevo



 
       5. Agregar certificado.
 
Elegimos el Certificado que en el paso dos exportamos.
 
 
 
                6. Descargar metadatos
 
 
3 Configuración de ADFS.
 
  1. Agregar relación de Confianza

  2.  
    2. Seleccionamos el XML donde esta la configuración de SalesForce "Esto lo hicimos en el apartado 1-6"
     
    3. Next/Next/Next/Next/Close
     
     
     
     
     
     
    3. Agregar Reglas de Claims
     
     
     
     
    Apply/OK
     
     
    4. Cambiamos el algoritmo SHA-1 en la pestaña Avdvanced
     
     
     
     
    Con esto tenemos configurado SalesForce para que pueda hacer SSO utilizando ADFS 2.0
     
     
     
     
     
     
     
     
     
     
     
    
 
 
 
 

 


 

jueves, 12 de febrero de 2015

OData Entity Framework 6.1.2

Con la nueva versión de Entity Framework 6.1.2 los proyectos de OData tiene una particularidad.
Hace unos meses cree un tutorial de como hacer implementar OData con POCO.
OData POCO.

Algunas cosas han cambiado con la nueva versión de Entity Framework.
Lo primero es que hay una nueva dll. Entity Framework OData Provider.
La forma  de instalar esta dll es desde nuged. Mas adelante veremos como hacerlo.

Para desarrollar este tutorial nos basaremos en las capas de acceso a datos del pasado post.
En este tutorial solo veremos como crear el servicio de OData.
Nota: Este tutorial ser relazara con Visual Studio 2013.

Primero creamos un proyecto Web vacío.

 
 
Después agregamos un proyecto de WCF Data Service 5.6
 
 
Posteriormente agregamos las recrecías de nuestro Contexto
 

Agregamos la referencia de Entity Framework OData provider desdes nuget. con el siguiente comando
Install-Package Microsoft.OData.EntityFrameworkProvider -Pre
 
Posterior mente en el servicio tenemos que cambiar algunas cosas como se muestra a continuación.
 
 
Tenemos que configurar la cadena de conexión "Web.Config" donde estas nuestra Base de Datos.
 
 
Finalmente probáramos el servicio de OData.
 
 

 Como podemos observar podemos acceder a las entidades que tenga nuestro contexto así como sus datos.
 
Espero que sea de ayuda
Aldo Flores Reyes
@alduar
"La nube no es el futuro es el presente"


 
 

martes, 5 de agosto de 2014

Visual Studio 2013 Update 3

Dego el link para la nueva actualizacion de Visual Studio Update 3
http://www.microsoft.com/es-es/download/details.aspx?id=43721
Saludos
Aldo Flores Reyes


lunes, 5 de mayo de 2014

Business Intelligence para Visual Studio 2013

Como saven estamos estrenando visual studio. Y lo que faltaba es que pudueramos desarrollar cosas de BI en VS 2013. Aqui les dejo el link para que lo descargen.

http://www.microsoft.com/en-us/download/details.aspx?id=42313



jueves, 20 de febrero de 2014

Llamar Reporte SSRS desde SSIS

En ocasiones es necesario en una solución de BI, Generar los reportes dentro de un mismo flujo de #SSIS.
En este caso practico veremos como hacer para que desde un Flujo de #SSIS se puedan generar reportes en formato excel ó PDF. En la segunda parte de este post tambien veremos como distribuir estos reportes a #SharePoint 2013 o vía Email.

Para que este componente que vamos a desarrollar sea re utilizable  lo que tenemos que hacer es empaquetar la lógica en un DLL.

1) Creamos un proyecto de tipo Biblioteca de clases.


2) Agregamos la referencia "Microsoft.ReportViewer.WebForms"


3)Agregamos una clase con el nombre Get con el siguiente código.

using Microsoft.Reporting.WebForms;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
namespace Helper.SSRS
{
    public static class Get
    {
        private static void Generate(Dictionary<string,string> parameters,string pathOutPut,string typeFile)
        {
            try
            {
                string url = ConfigurationManager.AppSettings.Get("Url ReportServer");
                string path = ConfigurationManager.AppSettings.Get("Path Report");
                string extention=string.Empty;
                ReportViewer reportViewer = new ReportViewer();
                reportViewer.ServerReport.ReportServerUrl = new Uri(@url);
                reportViewer.ServerReport.ReportPath = path;
                if (parameters!=null || parameters.Count>0)
                {
                    reportViewer.ServerReport.SetParameters(GetParameters(parameters));
                }
                switch (typeFile.ToUpper())
           {
           case "PDF":
                        extention="pdf";
                        break;
                    case "EXCELOPENXML":
                        extention="xlsx";
                        break;
                    case "MHTML":
                        extention="mhtml";
                        break;
                    case "WORDOPENXML":
                        extention = "docx";
                        break;
                        default:
                            break;
           
                }
                string mimeType;
                string encoding;
                string extension;
                string[] streams;
                Warning[] warnings;
                
                byte[] pdfBytes=reportViewer.ServerReport.Render(typeFile.ToUpper(), string.Empty, out mimeType,out encoding, out extension, out streams, out warnings);
                // save the file
                using (FileStream fs = new FileStream(string.Format("{0}.{1}", pathOutPut, extention), FileMode.Create))
                {
                    fs.Write(pdfBytes, 0, pdfBytes.Length);
                    fs.Close();
                }
                
                
            }
            catch (Exception ex)
            {
                Logger.Write(TraceLevel.Error, "", ex);
            }
        }

        public static void Html(Dictionary<string, string> parameters, string pathOutPut)
        {
            Generate(parameters, pathOutPut, "MHTML");
        }
        public static void PDF(Dictionary<string, string> parameters, string pathOutPut)
        {
            Generate(parameters, pathOutPut, "PDF");
        }
        public static void Excel(Dictionary<string, string> parameters, string pathOutPut)
        {
            Generate(parameters, pathOutPut, "EXCELOPENXML");
        }
public static void Word(Dictionary<string, string> parameters, string pathOutPut)
        {
            Generate(parameters, pathOutPut, "WORDOPENXML");
        }
        private static List<ReportParameter> GetParameters(Dictionary<string,string> parameter)
        {
            List<ReportParameter> res=new List<ReportParameter>();
            foreach (var item in parameter)
            {
                res.Add(new ReportParameter(item.Key, item.Value));
            }
            return res;
        }
        
    }
}

Este código nos permite guardar un reporte en los formatos Excel, HTML, Word y PDF.
Como menciona vamos antes este condigo nos permite que configurar el servidor de reportes y el reporte.
También nos permite enviar parámetros si es que nuestros reportes tuvieran parámetros .Con esto podríamos utilizar esta funcionalidad en otros proyectos.
Registramos la ddl con el comando #gacutil.exe "esto se describe post anteriores".
 
4) tenemos que firmar el ensamblado.


Con esto tenemos la parte del el helper que nos ayudara a generar el Reporte.

Los siguiente que nos queda es consumir este componente desde el Flujos SSIS.
Tenemos que hacer los siguiente

1) En el flujo de integración #SSIS agregamos una Script Task

2) Damos click botón derecho en La caja de Scrip Task [Edit] despues en la ventana emergente damos click [Edit...]


Se abrirá un visual estudio donde podemos llamar a nuestro componente Helper.SSRS.

3) Agregamos la referencia del componente Helper.SSRS


4) Agregamos Archivo de configuración


5) Agregamos las siguientes entradas en el archivo de configuración.


6) Finalmente agregamos el siguiente condigo para hacer la llamada al componente.



Compilamos y cerramos con esto ya podemos generar el reporte en formato excel y guardarlo.
En este caso como mi reporte tiene un parámetro que se llama ID_PLAN se agrega en el diccionario de parámetros.
El helper esta diseñado para agregar n parámetros. o bien ninguno.
El segundo parámetro de el método es la ruta con el nombre que queremos que se guarde el reporte.

En la segunda parte de el post agregaramemos la funcionalidad de distribución.
Saludos

Aldo Flores Reyes
@alduar

"La nube no es el futuro es el presente" Aldo Flores Reyes



lunes, 8 de julio de 2013

Debug Trigger desde Visual Studio 2012

Aveces es necesario poder hacer degug en un Trigger cuando la lógica de inserción, eliminación o actualización es compleja en la base de datos. Pues bien veremos como hacer esto fácil mente en Visual Studio 2012.

Primero tenemos que activar en la base de datos que podemos hacer debug.


Después en la herramienta en el menú SQL


En el editor de la consulta, creamos una sentencia (Insert,Update,Delete) según sea el caso. en la tabla donde esta nuestro TRIGGER. agregamos un breakpoint.


Ejecutamos como debug.

Cundo se active el breakpoint pulsamos F11.
Esto hará que entre a nuestro Tigger y podamos ver lo que esta pasando cuando se dispara.

Con estos sencillos pasos podemos depurar nuestros complicados Triggers.

Saludos
Aldo Flores Reyes.
@alduar










miércoles, 19 de junio de 2013

Conectar Xcode 5.0 a Team Foundation Service






Hoy en dia la necesidad  de los proyecto es global, y esto combina barias teológicas.
Como por ejemplo esta caso que necesitamos un proyecto con varios IDS de desarrollo Visual Studio 2012 y el Nuevo Xcode 5.
En este post veremos como conectar Xcode a Team foundation Services.

Lo primero es crear un nuevo proyecto de Tipo Git.


Elegimos la plantilla de proceso Scrum 3.0 y control de versiones "GIT"
Esperamos que TFS cree el proyecto.

Segundo Configuramos cuenta para que pueda conectar Xcode a TFS.
Como regularmente nos conectamos a TFS con nuestra cuenta outlock.com, esta cuenta tiene como id un email por eje "myemail@live.com". Esto no es soportado por Xcode.
Lo que tenemos que hacer es poder contarnos con un simple id "que no tenga @" y un password.

Pues bien para realizar esta configuración nos dirigimos al portal del nuestro proyecto "El cual acabamos de crear". en el punto anterior.

damos click sobre el usuario  usuario/mi perfil


En la pestaña de Credenciales


Con esta configuraciones realizadas podemos conectar Xcode a TFS.

Lo siguiente es saber la url del proyecto que acabamos de crear para eso en la pagina principal del proyecto damos click en la pestaña.


Seleccionamos la Url que aparase en la siguiente imagen.

Con esto tenemos todo lo necesario para configurar Xcode.

Lo primer es abrir el Xcode 


Lo siguiente es seleciona conectar a un repositorio


Después nos aparase una venta emergente en donde tenemos que introducir la dirección que copiamos anteriormente. también tenemos que insertar el usuario y el password.


Seleccionamos el proyecto y la ruta.





Con esto tenemos configurado Xcode conectado a Team Foundation Services.

Saludos
Aldo Flores
@alduar