miércoles, 30 de julio de 2014

Responsive web design

Buenas amigos , este fin de semana charlando con uno mis compañeros y muy amigo mio,me comento sobre Responsive web design, una tecnologia que nos va a ayudar muchisimo a los que desarrollamos aplicaticos web windows y mobiles, pero porque ?? pues por el simple hecho que esta tecnologia nos permite desarrollar paginas de tal manera que se pueda adaptar de manera facil y sencilla a los celulares y de esta manera evitar estar creando aplicativos extras para los celulares, como yo recordaba, ya hace unos mas de 4 años aproximada, que desarrolle un aplicativo para tomar pedidos, gestion de cobranza, entre otros, en J2ME,pero ahora ya con Responsive web design sera cosa del pasado ,pues ya no sera necesario.

Saludos ,

martes, 22 de abril de 2014

La gran importancia de UML en los proyectos

Buenas amigos y colegas, esta vez hablaremos un poco acerca de la gran importancia de UML en nuestros proyectos....

UML como sabemos en un Lenguaje Unificado para el modelado de sistemas ORIENTADO A OBJETOS, como por ejemplo .NET , JAVA entro otros, seria un delito desarrollar una aplicacion empresarial en .NET o java sin usar UML, porque??? la respuesta es simple todo esta basado en el paradigma de orientacion a Objetos, ademas UML nos ayuda a comunicar tanto a los analistas con los programadores, que hablen el mismo idioma, documentar, para que sepamos que es lo que esta bien y lo que esta mal ANTES DE METER MANO AL CODIGO!!!!!, de esta manera tenemos un proyecto mucho mas ordenado mas analisado, y con mucho menos probabilidades de errores cuando se ponga a produccion, ademas de que es validado en los diferentes diagramas, los errores se encuentran mientras estamos modelando el dominio y se va mejorando aun mas al legar al modelado de clases, si hubieron errores estos ya fueron detectados en procesos anteriores , obteniendo  de esta manera una menor probabilidad de errores, veamos el caso contrario a los señores que no usaron UML, al no tener los diagramas adecuados e irse directamente al codigo (LO DIGO PORQUE HAY GENTE QUE LO HACE) hay mucho mayor probabilidad de obtener los horribles errores ya sea  a nivel tecnico o funcional , porque estan programando a ciegas , sin un camino a donde ir y en muchos casos sin tener idea de lo que estan haciendo, en conclusion si el proyecto es de gran envergadura o mediano grande es indispensable el uso de UML en el proyecto.


Saludos................

miércoles, 5 de marzo de 2014

RegisterForEventValidation can only be called during Render();


Buenas ,


cuando tengan este error que tipicamente se da cuando queremos exportar un archivo nos suele mostrar este mensaje de error 

RegisterForEventValidation can only be called during Render();

Para ello  en el lado aspx de nuestra pagina debe de estar asi 

<%@ Page Language="C#" AutoEventWireup="true"  EnableEventValidation ="false"  CodeFile="Con_ComprobanteVenta_Listar.aspx.cs" Inherits="App_Ventas_Consultas_Con_ComprobanteVenta_Listar" %>
 

 de esta manera no tendriamos problema alguno 

 Asi mismo en el lado .cs debe de estar asi

public override void VerifyRenderingInServerForm(Control control)
    {

    }

 protected void btnExportarExcel_Click(object sender, EventArgs e)
    {
        Funciones.fn_ExportarExcel(this, GridFamiliaProductos, "Comprobantes " );
    }

Saludos , 


lunes, 27 de enero de 2014

request for the permission of type 'system.data.sqlclient.sqlclientpermission

Hoy estuve implementando en una sucursal de una de las empresas que realizo consultoria,  por algun motivo cuando modifique el directorio virtual me mostró este mensaje "request for the permission of type 'system.data.sqlclient.sqlclientpermission" , este error al parecer sale porque en el IIS no encuentra los permisos suficientes cuando el Application Pool Identity se encuentra en el modo  ApplicationPoolIdentity, qie al parecer no tiene los permisos suficientes para ser modificados en red el cual lo cambie a NetWorkService , con esto di solución a mi problema , espero les ayude a ustedes también  ,


Saludos


lunes, 6 de enero de 2014

error durante la serialización o deserialización mediante javascriptserializer de json

Buenas ,

Despues de un tiempo estoy de regreso, esta vez veremos un error clasico cuando trabajamos con la serializacion json , o mejor dicho cuando intentamos obtener un volumen mayor al que por defecto trabaja json , en estos casos nos muestra un error asi

error durante la serialización o deserialización mediante javascriptserializer de json..............

como ya sabemos es porque sobrepasamos la longitud permitida por defecto

Modificamos en nuestro web config lo siguiente


<scripting>
            <webServices>
                <jsonSerialization maxJsonLength="500000000">
                </jsonSerialization>
            </webServices>
        </scripting>



Y listo arreglado el asunto.




domingo, 17 de noviembre de 2013

OBTENER TODOS LOS STORE PROCEDURE DE UNA BASE DE DATOS

Buenas en esta ocasion veremos como obtener todos los sp de una bd, para esto genero un store procedure.


CREATE PROC MAESTROS.PA_OBTENER_STOREPROCEDURE 'Relacionado'
@NameSp VARCHAR(50)
AS
select name  from sysobjects where type='P' and  name  like '%' + @NameSp  +'%'
Order By Name

y de esta manera podemos obteneros de una manera sencilla.



sábado, 9 de noviembre de 2013

VARIABLE TABLE SQL SERVER 2008

 Buenas en esta ocasion veremos el uso de la variable tipo TABLE , conbinandose con otras sentencias dentro del Transact SQL.


/*

Autor                 :     Martin Cox R.
  */
CREATE PROC [FINANZAS].[PA_ESTADOCUENTA_CLIENTES] --1, 24,1 , '21/01/2013','21/08/2013'     
@IDCompania numeric ,      
@IDCliente numeric  ,      
@IDMoneda numeric  ,     
@FechaInicio datetime ,     
 @FechaFinal datetime      
AS     
declare @FechaRegistro DateTime        
declare @NumeroComprobante varchar(100)       
declare @TipoDocumento varchar(100)       
declare @Total decimal(18,4)       
declare @Flag  char(1)       
declare @Contador numeric = 1       
 declare @Saldo decimal(18,4)= 0       
declare @RazonSocial varchar(200)=''     
declare @Ruc varchar(15)=''     
     
      
       
DECLARE @tempEstadoCuentaFinal table(       
FechaRegistro DateTime ,       
NumeroComprobante varchar(100),       
 TipoDocumento varchar(100),       
Debito decimal(18,4),        
Credito decimal(18,4),        
Saldo decimal(18,4)  ,      
RazonSocial varchar(200) ,      
Ruc varchar(15)        
)     
     
select        
 FechaEmision as FechaRegistro ,NumeroDocumento as NumeroComprobante ,        
 tipDoc_cNombreTipoDocumento as TipoDocumento ,       
Total  , 'H' AS Flag ,  RazonSocial , Ruc     
     
into #tempDoc from MAESTROS.VIEW_DOCUMENTOSCOBRAR_LISTAR     
    where MAESTROS.VIEW_DOCUMENTOSCOBRAR_LISTAR.FormaPago = 2     
      and IDPersona =@IDCliente and IDMonedaDocumento = @IDMoneda     
Union All     
SELECT     FINANZAS.COMPROBANTECAJA.FechaRegistro, FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.NumeroComprobante,      
                      FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.TipoDocumento, FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.ImportePagar AS Total,      
                       'D' AS Flag , MAESTROS.MAE_CLIENTES.cli_cNombreCompletoCliente as RazonSocial ,MAESTROS.MAE_CLIENTES.cli_cRucCliente as Ruc     
FROM FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR      
INNER JOIN FINANZAS.COMPROBANTEENTRADACAJA ON FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDCompania = FINANZAS.COMPROBANTEENTRADACAJA.IDCompania AND  FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDTipoDocumento = FINANZAS.COMPROBANTEENTRADACAJA.IDTipoDocumento AND      
                       FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDSede = FINANZAS.COMPROBANTEENTRADACAJA.IDSede AND      
                      FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.IDCentroFinanciero = FINANZAS.COMPROBANTEENTRADACAJA.IDCentroFinanciero AND      
                       FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.NumeroComprobanteCaja = FINANZAS.COMPROBANTEENTRADACAJA.NumeroComprobante AND      
                      FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.NumeroSerieCaja = FINANZAS.COMPROBANTEENTRADACAJA.NumeroSerie      
 INNER JOIN              FINANZAS.COMPROBANTECAJA ON FINANZAS.COMPROBANTEENTRADACAJA.IDCompania = FINANZAS.COMPROBANTECAJA.IDCompania AND      
                      FINANZAS.COMPROBANTEENTRADACAJA.IDTipoDocumento = FINANZAS.COMPROBANTECAJA.IDTipoDocumento AND      
                       FINANZAS.COMPROBANTEENTRADACAJA.IDSede = FINANZAS.COMPROBANTECAJA.IDSede AND      
                      FINANZAS.COMPROBANTEENTRADACAJA.IDCentroFinanciero = FINANZAS.COMPROBANTECAJA.IDCentroFinanciero AND      
                       FINANZAS.COMPROBANTEENTRADACAJA.NumeroComprobante = FINANZAS.COMPROBANTECAJA.NumeroComprobante AND      
                      FINANZAS.COMPROBANTEENTRADACAJA.NumeroSerie = FINANZAS.COMPROBANTECAJA.NumeroSerie     
 inner join MAESTROS.MAE_CLIENTES on FINANZAS.COMPROBANTEENTRADACAJA.IDCliente =MAESTROS.MAE_CLIENTES.cli_nCodigoCliente     
                           
                           
WHERE  (FINANZAS.COMPROBANTECAJADOCUMENTOCOBRARPAGAR.FormaPago = 'CREDITO') and (FINANZAS.COMPROBANTEENTRADACAJA.IDCliente = @IDCliente)     
 and FINANZAS.COMPROBANTECAJA.IDMoneda = @IDMoneda    and RTRIM( FINANZAS.COMPROBANTECAJA.EstadoEntrega) != 'ANULADO' 
        
DECLARE CursorEstadoCuenta CURSOR     
FOR       
select *  from  #tempDoc     
--where FechaRegistro between  CONVERT(CHAR(10),@FechaInicio,103) and CONVERT(CHAR(10),@FechaFinal  ,103)     
  where CONVERT(CHAR(10),FechaRegistro,103) between  CONVERT(CHAR(10),@FechaInicio,103) and CONVERT(CHAR(10),@FechaFinal  ,103)     
     
       
OPEN CursorEstadoCuenta       
FETCH CursorEstadoCuenta        
        
INTO  @FechaRegistro ,@NumeroComprobante ,@TipoDocumento ,@Total ,@Flag ,@RazonSocial ,@Ruc     
       
WHILE (@@FETCH_STATUS = 0)       
       
 begin       
   if(@Flag = 'D')       
     begin       
      set @Saldo  =  @Saldo  -  @Total - 0 ;         
       insert into @tempEstadoCuentaFinal values (@FechaRegistro ,@NumeroComprobante ,       
      @TipoDocumento ,@Total ,0,@Saldo,rtrim(@RazonSocial) ,@Ruc )       
             
     end       
          
  else if(@Flag = 'H')       
       begin       
      set @Saldo  =  @Saldo  +  @Total - 0 ;        
       insert into @tempEstadoCuentaFinal values (@FechaRegistro ,@NumeroComprobante ,       
       @TipoDocumento ,0 ,@Total,@Saldo ,RTRIM( @RazonSocial),@Ruc)       
               
      end         
   FETCH CursorEstadoCuenta INTO  @FechaRegistro ,@NumeroComprobante ,@TipoDocumento ,@Total ,@Flag    ,@RazonSocial     
                                ,@Ruc     
   set  @Contador =@Contador +1;       
           
 END -- end loop while       
       
CLOSE CursorEstadoCuenta       
DEALLOCATE CursorEstadoCuenta       
       
select * from  @tempEstadoCuentaFinal       
drop table #tempDoc