Arquivo

Archive for the ‘T.I.’ Category

Acessanod dados na MasterPage

Outubro 29, 2009 Diego Publicar um comentário

1) Na “pagina filha”, adicionar uma tag indicando a master:

<%@ MasterType VirtualPath="~/ProjectMaster.master" %>

 

2) Adicionar na “master” um metodo para fazer o acesso:

public string testString testString
{
    get { … }
    set { … }
}

 

3) Acessar com :

this.Master.testString = “valor”

Categories: C#, T.I.

Problem with IE8 and VS – yey Microsoft \o/

Outubro 29, 2009 Diego Publicar um comentário

    I had this problem a few times when I started debugging my applications and VS simply stopped the debug after the "build". It really started annoying me because I couldn’t use my breakpoints. So I goggled it and found this simple solution:

    If you opened multiple instances of IE8 and you attempt to debug your project, you mostly will have the issue where VS debugger just stops and ignores your break points!  Why was that?

     Well, IE 8 has a feature called Loosely-Coupled Internet Explorer (LCIE) which results in IE running across multiple processes.
http://www.microsoft.com/windows/internet-explorer/beta/readiness/developers-existing.aspx#lcie

     Older versions of the Visual Studio Debugger get confused by this and cannot figure out how to attach to the correct process.
To overcome this issue, you need to disable the process growth feature of LCIE by follow the below steps:

1)  Open RegEdit
2)  Browse to HKEY_LOCALMACHINE -> SOFTWARE -> Microsoft -> Internet Explorer -> Main
3)  Add a dword under this key called TabProcGrowth
4)  Set TabProcGrowth to 0

    If you run into the same problem on Vista or newer, you will also need to turn off protected mode.

Original article source:
http://weblogs.asp.net/abdullaabdelhaq/archive/2009/06/01/VS-Debug-Problem-with-IE8.aspx

Categories: T.I.

Sort e BinarySearch

            Me deparei nesses ultimos dias com uma situacao em que eu precisava procurar um nome numa lista com 900 mil elementos e pra piorar, havia 1 milhao e 700 mil nomes pra procurar. Para fazer procuras, eu sempre utlizei o metodo “Find” da classe “List”, que apesar de funcionar estava “um pouco” demorado (cerca de 2 segundos cada procura). Como o programa ia ser rodado uma vez a cada morte de papa mais ou menos, ate nao teria problema mas eu preferi buscar uma solucao mais rapida….ou pelomenos menos demorada J

            Pesquisando na net, descobri o metodo BinarySearch que supostamente eh o tipo de pesquisa mais rapida, entao eu resolvi testar ele. O resultado foi bom, eu diminui o tempo de execucao em mais ou menos 1/3 a 2/3 (eu fiz uma estimativa com base no numero de comparacoes por minutos de cada um dos metodos. Na verdade ficou dificil de saber a real melhora pq a rotina de comparacao envolvia insercoes na base de dados, entao dependia do trafego da rede, do servidor, etc…mas definitivamente ficou mais rapido).

            Segue abaixo uma explicacao de como o metodo funciona. Vale lembrar que foi a primeira vez que eu implemente esse metodo e talvez nao seja a maneira mais correta…mas funciona hehe.

Bom, primeiro segue o construtor da classe que estou usando (nao vou colocar todo codigo da classe pq eh desnecessario):

public JPGFile(string name, string path, double bytes)

e a lista em questao:

List<JPGFile> listUsedCars = new List<JPGFile>();

Para o metodo funcionar, eh necessario que a lista esteja ordenada, o que deve ser feito com o metodo sort desse jeito:

listUsedCars.Sort(new CarComparer());

o detalhe eh que como estamos comparando objetos, temos que dizer como que essa comparacao vai ser feita. Para dizer isso usamos uma classe que deve implementar a interface Icomparer:

public class CarComparer : IComparer<JPGFile>
     {
     public int Compare(JPGFile x, JPGFile y)
     {
          int RetVal = String.Compare((x as JPGFile).Name, (y as JPGFile).Name, true);
          return RetVal;
     }
}

Depois de usar o Sort, podemos usar o metodo BinarySearch para procurar um elemento dentro da lista:

int achou = listUsedCars.BinarySearch(new JPGFile(name, photopath, 0), new CarComparer());

onde “name” eh o nome que queremos procurar se existe na lista. Se o “achou” for maior que zero, o elemento existe na lista.

Categories: C#, T.I.

Datasets manuais

Agosto 27, 2008 Diego 1 comment

mais um post…esse sobre C#.
Otro dia um colega me perguntou no msn como adicionar linhas manualemnte num dataset. Na hora eu não sabia pq nunca precisei fazer, mas fiquei curioso e depois de uma pesquisada, descobri uma maneira…segue abaixo

        public DataSet selectAll()
        {          
            DataSet d = new DataSet(“Usuario”);
            DataTable dtUsuarios = new DataTable(“Usuario”);
            d.Tables.Add(dtUsuarios);

            //Colunas da tabela
            dtUsuarios.Columns.Add(“codigo”);
            dtUsuarios.Columns.Add(“nome”);
            dtUsuarios.Columns.Add(“telefone”);

            DataRow linha;
            //Linhas da tabela
            linha = dtUsuarios.NewRow();
            linha["codigo"] = “1″;
            linha["nome"] = “Carlos”;
            linha["telefone"] = “(12) 3456-7890″;
            dtUsuarios.Rows.Add(linha);

            linha = dtUsuarios.NewRow();
            linha["codigo"] = “2″;
            linha["nome"] = “Cézar”;
            linha["telefone"] = “(09) 8765-4321″;
            dtUsuarios.Rows.Add(linha);

            return d;
        }

Categories: C#, T.I.