Cadastre-se Revistas DevMedia Cursos
  Live chat by Netwatts

Space de NELSON BORGES
Busca Autor


Últimas 20 atualizações de NELSON BORGES

Artigo - Criando um VSPackage no Visual Studio

Olá, hoje iremos falar sobre a possibilidade de estender as features do visual Studio.

Anteriormente falamos em um artigo no meu blog sobre a possibilidade de criar templates de projetos e distribuir para os desenvolvedores, evitando repetição de tarefas, também falamos em outro momento sobre o Power Command, uma extensão do visual Studio que adiciona várias funções novas para a IDE. No caso da extensão do Power Command que nada mais é que pacotes de extensibilidade do visual Studio.

Bom hoje iremos aprender a adicionar um menu no visual Studio que chama um formulário qualquer, com este exemplo será possível ver como é fácil estender funcionalidades do visual Studio e ainda integrar sua aplicação na IDE de desenvolvimento.

Para trabalhar com os tipos de projetos de extensibilidade do visual Studio é necessário baixar o SDK, no nosso caso como iremos trabalhar com a versão 2008 iremos baixar o SDK 2008, para baixar acesse: http://www.microsoft.com/downloads/details.aspx?FamilyID=30402623-93ca-479a-867c-04dc45164f5b&displaylang=en

- Após instalar o SDK no Visual Studio vá em New Project/Other Project Types/Extensibility e repare que novos tipos de projetos foram adicionados na sua IDE.

Escolha o tipo de projeto Visual Studio integration Package, e posteriormente, deixe o nome do projeto como MeuPrimeiroPacoteVS, na tela que irá aparecer (Wizard VS Integration Package) clique em Next.

Selecione a linguagem Visual C# e marque a opção Generate a new key file to sign the assembly e clique em Next.

Preencha as informações do pacote (caso queira você pode colocar um ícone personalisado), é importante notar a versão do pacote e o edição mínima do visual Studio (para deploy do Pacote) no nosso caso estamos trabalhando com a versão mínimo Standard ou estamos dizendo que nosso pacote irá funcionar em edições standard para cima do visual studio.

Escolha o Menu Command, neste estamos dizendo que a funcionalidade será inserida dentro do contexto do menu do VS.

Vamos inserir na tela de Command Options o nome que irá aparecer no menu (Command name) e o Id do comando na tela.

Por fim, clique em Next desmarque as opções de teste (não iremos utilizar testes unitários neste exemplo), e clique em Finish.

Pronto nosso pacote, esta pronto, para testarmos de um F5 (Start Debugging), e veja que uma versão diferente da IDE (Experimental Hive) que você esta utilizando será chamada para você, vá em Tools e procure o comando que acabou de criar.

            Após clicar no menu Chamar tela repare que um messageBox será chamado:

NOTA: O Experimental Hive permite que você debug os seus pacotes sem registrar nada na IDE de desenvolvimento, pois cada VSPackage contém um registro no Register da máquina. Falaremos mais sobre isso no segundo post onde iremos fazer o deploy deste VSPackage.

""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
1/29/2010 10:41:00 PM





Artigo - Dicas: C# 3.0/3.5 - Anonymous Types

Para facilitar o desenvolvimento na versão 3.0/3.5 do C# podemos utilizar um tipo anônimo, mas a final o que seria isso ?! Simples, o tipo anônimo é um encapsulamento de propriedades em um único objeto sem ter que definir explicitamente o tipo, o nome é gerado pelo compilador e não esta disponível a nível de código fonte (intellisense), em outras palavras imagine uma classe que é construída automaticamente pelo compiler (lembra os tipos dinâmicos do Framework 4.0, porém não é a mesma coisa.)

Para declarar um objeto do tipo dinâmico basta apenas utilizar a palavra chave new acompanhada das propriedades que você quer inserir no objeto veja um exemplo abaixo.

var person = new { Name = "Nelson", Age = 23 };

""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
10/11/2009 2:10:00 AM





Artigo - Método em C# para ler arquivo de Texto

Olá, estou disponibilizando aqui, um simples método em C# para ler um arquivo txt do disco, ele faz a leitura linha a linha e joga os valores em um array, desta maneira você pode obter informações sobre quantidade de linhas do arquivo, qual frase/texto estava em um determinada linha.. e etc.
 
Detalhe estou usando a classe OpenFileDialog para abrir a caixa de dialogo no momento de importação do arquivo.
 
private string arquivo;
private string mensagem;
private void MetodoParaLerLinhaArquivo()
{
   
List<string> mensagemLinha = new List<string>();
   
using (OpenFileDialog openFileDialog = new OpenFileDialog())
    {
         openFileDialog.Title =
"xxxxxxxxxo";
         openFileDialog.InitialDirectory =
@"c:\Program Files"; //Se ja quiser em abrir em um diretorio especifico
         
openFileDialog.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
         openFileDialog.FilterIndex = 2;
         openFileDialog.RestoreDirectory =
true;
        
if (openFileDialog.ShowDialog() == DialogResult.OK)
         arquivo = openFileDialog.FileName;
    }
   
if (String.IsNullOrEmpty(arquivo))
    {
        
MessageBox.Show("Arquivo Invalido", "Salvar Como", MessageBoxButtons.OK);
    }
   
else
   
{
    
using (StreamReader texto = new StreamReader(arquivo))
     {
        
while ((mensagem = texto.ReadLine()) != null)
        {
            mensagemLinha.Add(mensagem);
        }
     }
   
int registro = mensagemLinha.Count; //total de linhas do arquivo.
   
for (int i = 0; i < mensagemLinha.Count; i++)
   {
    
TextBox textbox1 = new TextBox();
     textbox1.Text += mensagemLinha[i];
    
File.WriteAllText(arquivo, mensagemLinha[i] + "1");
   }
 }
}
""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
7/18/2009 6:57:00 PM





Artigo - Criando um sistema de BI para web - Parte 1

Olá, neste artigo iremos fazer uma introdução ao Business Intelligence, conhecendo seu surgimento e as práticas recomendadas para iniciar um projeto de B.I.

 

1- Business Intelligence

 

1.1 - BI

Business Intelligence (inteligência de negócio) é o conceito de coleta, organização, compartilhamento e análise de informações que oferecem suporte ao negócio. As organizações tipicamente recolhem informações com a finalidade de avaliar o ambiente empresarial, completando estas informações com pesquisas de marketing, industriais e de mercado, além de análises competitivas. Organizações competitivas acumulam "inteligência" à medida que ganham sustentação na sua vantagem competitiva, podendo considerar tal inteligência como o aspecto central para competir em alguns mercados. Para simplificar o conceito, imaginemos que nossa empresa ficticia necessita criar um plano estratégico de vendas, o primeiro passo, é descobrir quais produtos são mais vendidos, e em seguida para que região ocorrem estas vendas, veja que com apenas duas informações podemos imaginar um plano de desenvolvimento para nossa empresa, lembrando que ainda existem várias outras informações que podemos analisar em nosso planejamento estratégico.

  

1.2 - Surgimento do BI

Não se tem uma data exata do surgimento do B.I., na década de 70, com o surgimento de armazenamento e acesso a dados – DASD (Direct Acess Storange Device) e SGBD (Sistema Gerenciador Banco de Dados), siglas cujo principal significado é de estabelecer uma única fonte de dados para todo o processamento. A partir daí, o computador passou a ser visto como entidade central de atividades corporativas e o banco de dados considerado recurso básico para a vantagem competitiva. Na década de 90 surgiu o Data Warehouse, uma grande base de dados informativos, ou seja, um repositório único de dados consolidados e transformados.

Yves-Michel Mart, cientista, professor e fundador da Egideria, uma das maiores empresas européias de consultoria ...

Exibição do post interrompida. Para ler conteúdo completo, clique aqui
7/8/2009 6:30:00 PM





Artigo - Criando um sistema de BI para web - Parte 2

Olá, neste artigo iremos conhecer o caso de uso de nosso projeto, instalaremos o componente Analysis Service  do SQL – Server e iremos entender o que é consulta OLAP.

 

Para acompanhar este artigo será necessário ter a versão SQL Server 2000 ou superior , é recomendável a leitura do artigo anterior, criando um sistema de BI para web - parte 1.

 

Baixe a versão gratuita do SQL Server: http://www.microsoft.com/express/download/default.aspx

 

 

 

2 – Conhecendo o caso de uso da empresa.

 

2.1 - Ambiente de análise atual

         

Neste projeto iremos usar o caso de uso da empresa NewForm Call Center, uma empresa fictícia.  A NewForm Call Center é uma grande empresa multinacional de Call Center, sua sede é em Franca - SP, onde a empresa emprega 500 trabalhadores diretos e 300 indiretos,  o banco de dados da mesma é SQL Server , e o ambiente é Windows Server. Atualmente a equipe de administração e programação de banco de dados está com  3 (três) pessoas, e o sistema de controle das operações é desenvolvido internamente pela equipe de desenvolvimento que hoje é composta por 5 (cinco) pessoas, o sistema interno é desenvolvido usando tecnologias .net e web-Services .

         

         Na criação do sistema interno da empresa, foi criado o banco de dados BD_NewForm este banco contém todas as informações e transações efetuadas pela área de operação da empresa (área que efetua ligações para os clientes) iremos chamar ele de banco de dados Analítico, no entando devido ao grande número de dados inseridos neste banco de dados, consultas como relatórios mensais, semanais começaram a interferir no desempenho da aplicação, por isso a equipe de DBA's (Database Administrator) da empresa projetaram o banco de dados da DW_NewForm um  data warehouse relacional que recebe os dados da BD_NewForm limpos e preparados para a extração nos relatórios, sendo sempre D-1 (Dia anterior – o dia atual).

- Os relatórios são estáticos, os usuários não têm como explorar os dados de maneira interativa para obter informações mais detalhadas, como eles fariam com uma tabela dinâmica de uma planilha eletrônica. Embora o conjunto existente de relatórios predefinidos seja suficiente para muitos usuários, os usuários mais avançados precisam do acesso de consulta direta ao banco de dados para consultas interativas e relatórios especializados. Entretanto, devido à complexidade do banco de dados DW_NewForm, é preciso muito tempo para que esses usuários possam criar consultas eficientes;

- O desempenho da consulta é amplamente variável. Por exemplo, algumas consultas retornam resultados muito rapidamente, em apenas alguns segundos, enquanto outras precisam de muitos mais tempo;

- Tabelas agregadas são difíceis de gerenciar. Na tentativa de aprimorar o tempo de resposta da consulta, a equipe de DBA da NewForm criou várias tabelas agregadas no banco de dados do data warehouse. Por exemplo, foi criada uma tabela que resume as vendas por mês. Entretanto, enquanto essas tabelas agregadas melhoram amplamente o desempenho da consulta, a infra-estrutura criada para manter as tabelas ao longo do tempo é frágil e suscetível a erros;

- A lógica de cálculo complexa foi descartada nas definições de relatório e o compartilhamento entre relatórios torna-se difícil. Como esta lógica corporativa é gerada separadamente para cada relatório, às vezes as informações de resumo são diferentes entre os relatórios. Portanto, o gerenciamento apresenta confiança limitada aos relatórios do data warehouse;

- É difícil combinar conjuntos relacionados de informações. Consultas especializadas que combinam dois conjuntos de informações relacionadas, como vendas e cotas de vendas, é um processo difícil para os usuários criarem. Como as consultas sobrecarregam o banco de dados, a empresa requer que os usuários solicitem os conjuntos de dados a partir da área de estudo da equipe do data warehouse. Como resultado, foram definidos apenas alguns dos relatórios predefinidos que combinam dados de várias áreas de estudo. Além disso, os usuários estão relutando em tentar modificar esses relatórios devido à complexidade.

 

2.2 - Solução

Foi realizado a revisão do banco de dados DW_NewForm, a revisão incluiu a análise de lacunas nos assuntos atuais e futuras demandas, posteriormente o design do banco foi alterado pelos DBA’s projetando as dimensões adequadas e chaves substitutas. As dimensões permitem que a informação sejam usada em vários data marts, exemplo dimensão de tempo e/ou serviço. As chaves substitutas são chaves artificiais que vinculam a dimensão e as tabelas de fatos, e são usadas para garantir a singularidade e para melhorar o desempenho. E decidiram extrair os dados da base de dados DW_NewForm através de cubos dimensionais, e então se inicia nosso projeto. 


3 – Analysis Services Olap (On-line Analytical Processing

 

3.1 – Microsoft Analysis Services

O Microsoft Analysis Services é um conjunto de serviços e recursos usados para gerenciar um banco de dados Data Warehouse e/ou Data Mart. O Analysis Services organiza os dados, é com este recurso que iremos criar nossos cubos dimensionais, pois ele permite todo o gerenciamento, desde o design do cubo até o processo de carga de dados.

 

3.2 – Conceito de OLAP

Olap foi um termo criado por E.F. Codd & Associates quando publicou um white paper em 1994, commissioned by Arbor Software (became Hyperion Solutions)(now Oracle), entitulado ‘Providing OLAP (On-line Analytical Processing) to User-Analysts: An IT Mandate’.

O OLAP (processamento analítico on-line) é uma ferramenta que fornece para as organizações um método de acessar, visualizar, e analisar uma grande quantidade de dados corporativos com alta flexibilidade e performance, permitindo assim o uso de relatórios gerenciais para sistemas de apoio a tomada de decisões (SAD).

A tecnologia OLAP faz uso de dados já consolidados da que serão armazenados para futura criação dos cubos e posteriormente análise dos mesmos.

As informações são conceitualmente organizadas em cubos que armazenam valores quantitativos ou medidas. As medidas são identificadas por duas ou mais categorias descritivas, denominadas dimensões que formam a estrutura de um cubo.

Uma dimensão pode ser qualquer visão do negócio que faça sentido para sua análise, como produto, departamento ou tempo. Este modelo de dados multidimensional simplifica para os usuários o processo de formular pesquisas ou "queries" complexos, criar relatórios, efetuar análises comparativas, e visualizar subconjuntos (slice) de maior interesse. Por exemplo, um cubo contendo informações de vendas poderá ser composto pelas dimensões tempo, região, produto, cliente, cenário (orçado ou real) e medidas. Medidas típicos seriam valor de venda, unidades vendidas, custos, margem, etc.

""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
7/8/2009 6:13:00 PM





Artigo - Colocando restrições em Genéricos C#

Olá pessoal,
 
Vou falar um pouco sobre as classes genéricas , eventualmente é recomendável assegurar que o parâmetro de um tipo utilizado por uma classe genérica identifique um tipo que fornce certos métodos. Por exemplo, se estiver definindo uma classe Carro, você pode querer que todos os objetos armazenados na classe contenham os métodos de carro, como Ligar, Desligar, Andar, Parar e etc.
 Se utilizar restrição no genérico, você limita os parâmetros de tipo de uma classe genérica para aquelas que a implementam um conjunto específico de interfaces e, portanto, fornecer os métodos definidos por essas interfaces. Por exemplo, imagine uma Interface para carro que tivesse os métodos acima (Ligar, Desligar etc), como ficaria a definição da minha classe no C#.
 
Simples, basta declarar a classe genérica da seguinte forma:
 
class Carro where T : ICarro -> Neste caso o compilador irá verificar se os tipos utilizado por T implementam as interfaces e consequentemente os métodos das interfaces, pois com a palavra Where eu apontei que minha classe generica terá que herdar de ICarro.
 
Veja outro exemplo utilizando uma classe e interface chamada Familia:
 
interface IFamilia
{   void reuniao();""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
7/5/2009 7:11:00 PM





Noticia - Visual Studio 2010 and .NET Framework 4 Training Kit - May Preview

 
 
Interessante:

Alguns post´s anteriores coloquei link´s para download do visual studio 2010 no meu Blog, para complementar segue o link para baixar o Training kit do mesmo, bem bacana para quem quer já ir estudando todas as novidades do visual studio.

Também disponibilizei uma lista de link´s de videos do portal Channel 9, veja..(clique aqui).
 
 
 
 
Para baixar o Training Kit, acesse ->

 

Overview do Training Kit

The Visual Studio 2010 and .NET Framework 4 Training Kit includes presentations, hands-on labs, and demos. This content is designed to help you learn how to utilize the Visual Studio 2010 features and a variety of framework technologies including:

  • C# 4.0
  • Visual Basic 10
  • F#
  • Parallel Extensions
  • Windows Communication Foundation
  • Windows Workflow
  • Windows Presentation Foundation
  • ASP.NET 4
  • Entity Framework
  • ADO.NET Data Services
  • Managed Extensibility Framework

 

[]´s
 
 
Nelson Borges
 
-->">
6/27/2009 10:16:00 PM





Artigo - SiteMap com UrlRewriting no Asp.NET

Como configurar um SiteMap em páginas que estão utilizando o URLRewriting, vou descrever uma das formas que você pode utilizar em sua solução?
 
Primeiramente, para quem não conhece o URLRewriting nada mais é que reescrever as url de forma mais amigavel (em resumo) ocultado ou alterando alguns detalhes, para saber mais sobre URLRewriting no asp.net consulte -> http://msdn.microsoft.com/en-us/library/ms972974.aspx.
 
Veja um cenário abaixo:
 

Olá, usei o UrlRewritingNet para converter as Urls de uma aplicação web, agora ao invés de www.site.com/pagina/pagina.aspx?Id=7&SubApp=8 endreço fica: www.site.com/pagina7/detalhe8.aspx

O problema é que é no sitemap, imaginei algo como por exemplo:  mas não funciona. Como devo fazer ?

""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
6/3/2009 12:46:00 AM





Artigo - Google Map - Reverse-Geocoder

Alguma vez, você já deve ter utilizado o serviço do Google Map como usuário, serviço tão útil que o Google disponibiliza algumas bibliotecas para integrar o Google Map em suas aplicações .NET, até aqui nada de novidade, e até na web existem vários artigos e exemplos de como consumir estas bibliotecas ou serviço do Google:

Veja alguns exemplos:

Google Maps Control for ASP.Net - Part I
http://www.c-sharpcorner.com/UploadFile/shabdarghata/google-maps-user-control-for-ASP-Net-part103232008234414PM/google-maps-user-control-for-ASP-Net-part1.aspx

Lat Lays Flat - Part 1 : A Google Maps .NET Control
http://www.codeproject.com/KB/custom-controls/LatLaysFlat-Part1.aspx

Os exemplos acima mostram uma aplicação web utilizando o Google map da seguinte forma: você passa o endereço para o serviço e ele redireciona  você  a imagem de referência no mapa, em que momento isso é útil, quando você quer visualizar o mapa de um endereço especifico. Bom mas como tem necessidades de deixar as coisas mais complexas, imagine a seguinte situação.

- Você precisa disponibilizar um mapa no site, o usuário escolhe (clica) em um ponto do mapa, e você captura o endereço (latitude e longitude) do ponto no gráfico selecionado. Como fazer isso ?

Simples, o Google também possui um serviço chamado reverse-geocoder,  e este serviço simplesmente resolve o problema acima, ou seja você gera o mapa e consegue pegar  latitude e longitude do ponto selecionado.

A url do service é: "http://maps.google.com/maps/geo?q="; e para implementar no seu código é simples, veja um exemplo de uma classe consumindo este serviço:

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Web;

using System.Net;

using System.Web.UI;

 

 

namespace GoogleGeocoder

{

   public interface ISpatialCoordinate

   {

      decimal Latitude {get; set; }

      decimal Longitude {get; set; }

   }

 

   ///

   /// Estrutura da Coordenada

   ///

   public struct Coordinate : ISpatialCoordinate

   {

      private decimal _latitude;

      private decimal _longitude;

 

      public Coordinate(decimal latitude, decimal longitude)

      {

         _latitude = latitude;

         _longitude = longitude;

      }

 

      #region ISpatialCoordinate Members

 

      public decimal Latitude

      {

        get

        {

            return _latitude;

        }

        set

        {

            this._latitude = value;

        }

      }

 

      public decimal Longitude

      {

        get

        {

            return _longitude;

        }

        set

        {

            this._longitude = value;

        }

      }

 

   #endregion

   }

 

   public class Geocode

   {

      private const string _googleUri = "http://maps.google.com/maps/geo?q=";

      private const string _googleKey = "yourkey";

      private const string _outputType = "csv"; // Opções de exportação: csv, xml, kml, json

 

      private static Uri GetGeocodeUri(string address)

      {

         address = HttpUtility.UrlEncode(address);

         return new Uri(String.Format("{0}{1}&output={2}&key={3}", _googleUri, address, _outputType, _googleKey));

      }

 

      ///

      /// Metodo para Pegar a Coordenada de um endereço

      ///

      /// Endereço

      ///

      /// Rua Libero Badaró , SP

      ///

      ///

      /// Latitude e longitude do endereço.

      public static Coordinate GetCoordinates(string address)

      {

         WebClient client = new WebClient();

         Uri uri = GetGeocodeUri(address);

 

 

         string[] geocodeInfo = client.DownloadString(uri).Split(',');

 

         return new Coordinate(Convert.ToDecimal(geocodeInfo[2]), Convert.ToDecimal(geocodeInfo[3]));

      }

 

   }

}

 

 

""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
5/24/2009 12:32:00 AM





Artigo - Indexadores C#

Olá,

Hoje irei falar de um recurso bem interessante, trata-se dos indexadores, o indexador é um array inteligente, ele pode ser usado tanto em classes como estrutura. Iremos criar um pequeno form que irá atuar como uma agenda, iremos gravar Nome e Telefone e posteriormente iremos pesquisar tanto o Nome quanto o Telefone que inserimos, utilizando os indexadores.

Requisitos para o Exemplo: Neste nosso exemplo iremos usar o Visual Studio 2008 com Framework 3.5, caso não tenha instalado, efetue o download gratuitamente no seguinte site :  http://www.microsoft.com/Express/

 

1-      No Visual Studio, crie um novo projeto do tipo WPF Application, o nome da solução pode deixar como Indexer, o nome do projeto escolha AgendaTelefonica conforme imagem abaixo:

 
1- Novo Projeto

 

 

2-      Dentro do Projeto Crie 3 arquivos do tipo Class, com os seguintes nomes :

-Agenda (Agenda.cs)

-Nome (Nome.cs)

-NumeroTelefone (NumeroTelefone.cs)

      3-   Abra o arquivo Nome.cs, a primeira alteração que iremos fazer é no construtor da classe, no construtor iremos definir um parâmetro de entrada, este valor irá preencher um campo da classe, conforme o código abaixo:

private string nome;

public Nome(string text)

{

      this.nome = text;

}

""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
5/9/2009 1:32:00 AM





Artigo - Enviando e-mail no Asp.NET usando o provedor GMAIL

         Neste curto artigo estarei demonstrando com enviar e-mail através de uma página ASP.NET utilizando o provedor Gmail, este artigo têm como foco estudantes que estão iniciando em desenvolvimento de sistemas.

Requisitos para o Exemplo: Neste nosso exemplo iremos usar o Visual Studio 2008 com Framework 3.5, caso não tenha instalado, efetue o download gratuitamente no seguinte site :  http://www.microsoft.com/Express/

Primeiramente abra o Visual Studio 2008, vá em File -> New -> Project, na tela de New Project escolha o projeto de C# -> Web,o nome do projeto e da solução deixe como SendMail, conforme imagem abaixo(Imagem1).

Imagem1 – New Project

Agora vá em Solution Explorer e veja os itens que o Visual Studio criou, procure o arquivo Default.aspx e dê um duplo clique nele. A página irá abrir em branco insira os seguintes controles dentro da página conforme tabela abaixo.

Nota: (Procure os controles na aba ToolBox se a mesma não estiver visível pressione CTRL+ALT+X)

""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
4/25/2009 4:01:00 PM





Artigo - Login C# com Autenticação LDAP com ADAM

Olá,
Com o crescente aumento da tecnologia, cada vez mais as empresas estão informatizando todos seus processos e suas áreas, por isso nesse cenário é comum você encontrar em uma empresa com mais de um sistema operando, e caso esta empresa não tenha uma arquitetura da infra-estrutura correta, a mesma irá ter dificuldades em controlar todos estes sistemas. Um grande desafio dos administradores de sistemas é unificar operações comuns, e uma das operações  é a que iremos abordar neste artigo, trata-se de um sistema de login integrado com o ADAM LDAP, dessa forma você poderá usar o mesmo usuário do Windows para se autenticar no sistema.
Requisitos para o Exemplo ->
Neste nosso exemplo iremos usar o Visual Studio 2008 com Framework 3.5, caso não tenha instalado, efetue o download gratuitamente no seguinte site :  http://www.microsoft.com/Express/  Será necessário baixar o ADAM este poderá ser baixado  em http://www.microsoft.com/downloads/details.aspx?FamilyId=9688F8B9-1034-4EF6-A3E5-2A2A57B5C8E4&displaylang=en, e por ultimo iremos utilizar em nosso cenário autenticação do tipo LDAP e por isso iremos usar uma API chamda Client.NET LDAP ele é bem intuitiva o que torna este exemplo simples de compreender, para baixar acesse o seguinte endereço: http://www.ldapservices.com/Products/LdapClient.Net/default.aspx.
Antes de ir direto para o código é necessário que tenhamos um conhecimento do processo de autenticação do Windows. O Microsoft ADAM (Active Directory Application Mode) é um servidor LDAP para aplicação de desenvolvedores ele é  gratuito e fácil de instalar e pode “crescer” em full-Blown, e também é simples de usar uma vez que ele é executado em um ambiente Windows com a autenticação NTLM e/ou com LDAP.
Instalando o ADAM  ->
1-) Criando uma instancia no ADAM : Após efetuar o download e instalar os pré-requisitos acima, inicie o ADAM Setup Wizard, clicando em Iniciar -> Programas -> ADAM -> Create an ADAM Instance.

Imagem 02 – Criando Instancia do ADAM
2-) Coloque o nome da Instancia como LDAP1, o número da porta LDAP deixe como 389 e a porta para o SSL deixe como 636, conforme imagem abaixo.

Imagem 03 – Portas da Configuração do ADAM
3-) Crie uma partição para sua aplicação conforme imagem 04 abaixo,

Imagem 04 – Partition ADAM
4-) Após configurar o ADAM, clique em Avançar e aguarde que o ADAM crie a Instancia LDAP. Quando este processo estiver concluído, você terá um diretório vazio com o MS-User  Schema instalado. Você poderá se conectar a ele apenas com o ADSI.
Criando uma conta de usuário no ADSIEdit ->
1-) Nós usaremos o ADSIEdit para criar dois novo usuários. O primeiro usuáio será administrador e o segundo usuário terá uma conta de serviço para a aplicação asp.net.
2-)  Vá em Iniciar -> Programa -> ADAM -> ADAM ADSI Edit, clique com o botão direito em ADAM ADSI Edit e selecione Connecto to -> Seleciona Configuration na tela que irá se abrir deixe conforme a imagem abaixo, importante estar no modo Distinguished name (DN) or naming context e no textbox estar desta forma: cn=Sandbox, dc=ITOrg.

Imagem 05 – Connection ADAM
3-)  Agora, precisamos criar um Container para armazenar o nossos usuários. Vá para o CN= Sandbox, DC=ITOrg container, botão direito e selecione New Object, selecione Container e clique em Next. Na tela que irá abrir preencha o value como PEOPLE, e clique em next posteriormente Finish para criar o container.
4-) Vá até o container CN=PEOPLE  criado anteriormente, botão direito e escolha a opção New Object , selecione usuário e clique em Next. Na tela que irá abrir preencha o value como SUPERUSER, e clique em next posteriormente Finish para criar o usuário.

Nota: Por padrão no Windows Server ADAM quando se cria um usuário sempre irá criar a conta desabilitada, para usar modifique o atributo do usuário sua msDS-UserAccountDisabled atributo para false
""> ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
4/4/2009 10:52:00 PM





 

cromoborges@bol.com.br

Desenvolvedor .NET & SQL Server (MCP-MCTS-MCPD)

Blog Pessoal..Clique para acessar

Arquivo de atualizações
 2010
 2009

Estatísticas do Autor:
Número de posts: 12
Total de visualizações: 18999
Características dos posts deste autor:
Conteúdo:
Didática:
Utilidade:
23 0