Utilizando C# com MongoDB

Criando uma aplicação em C# com o MongoDB

Nós desenvolvedores de software estamos acostumados a escrever além do código da nossa linguagem de programação preferida e/ou de trabalho, escrever também código SQL para procedures, views, criação de tabelas, etc. Mas… E se o seu banco não precisasse de código SQL? Se ele não tivesse procedures, views, triggers ou quaisquer outros comandos SQL? Difícil de imaginar, não? Pois é o que veremos na prática neste artigo. Read more

Upload de arquivos em Flex

Olá a todos, hoje venho falar um pouco sobre upload de arquivos no flex. O exemplo trata da primeira parte do trabalho, que e a captura do arquivo na maquina do cliente e o envio do arquivo através de uma requisição GET. No flex e necessário que uma outra página capture este arquivo e trate o mesmo, ela pode ser um pagina, jsp, php, aspx, ou alguma outra tecnologia que trabalhe com gerenciamento de arquivos WEB. Então vamos o código

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[

  private var arquivo:FileReference = new FileReference();

  private function onSelect(evt:Event):void {
    txtNomeArquivo.text = arquivo.name;
  }

  private function onUploadIoError(evt:IOErrorEvent):void {
    //Para erros no upload do arquivo tratar aqui.
  }

  private function onUploadSecurityError(evt:SecurityErrorEvent):void {
    //Para erros de segurança tratar aqui.
  }
]]>
</mx:Script>
<mx:Label x="337" y="136" text="Arquivo"/>
<mx:TextInput id="txtNomeArquivo" x="391" y="134" width="322"/>
<mx:Button x="391" y="164" label="Browser">
  <mx:click>
    <![CDATA[
      //Abre o browser para seleção do arquivo desejado.
      arquivo.addEventListener(Event.SELECT, onSelect);
      arquivo.addEventListener(IOErrorEvent.IO_ERROR, onUploadIoError);
      arquivo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onUploadSecurityError);

      var filtros:FileFilter = new FileFilter("Arquivos de Retorno *.txt; *.doc; *.docx; *.xls; *.xlsx",
                                              "*.txt; *.doc; *.docx; *.xls; *.xlsx");
      var array:Array = new Array(filtros);
      arquivo.browse(array);

    ]]>
  </mx:click>
</mx:Button>
<mx:Button x="472" y="164" label="Enviar">
  <mx:click>
    <![CDATA[
      //Envia o arquivo para Upload
       var sendVars:URLVariables = new URLVariables();
      sendVars.action = "upload";
      //aqui no sendVars poder ser passado mais de um variavel. 
      //Ex: sendVars.minhavariavel = "teste";

      //objeto usado para setar a pagina que receberá o arquivo
      var request:URLRequest = new URLRequest();
      request.data = sendVars;

      //e necessario uma pagina para receber o arquivo, ex: .php; .jsp; .aspx.
      //No caso foi usado um pagina de aspx .net.
      //A pagina deve receber o arquivo e tratá-lo.
      request.url = "http://meudominio.com.br/PaginaUpload.ashx";
      request.method = URLRequestMethod.GET; //requisição do tipo get

      //Aqui o objeto FileReference "arquivo" envia o arquivo que foi carregado 
                //com o nome de "NomeArquivo"
      //A pagina que reberá o arquivo deve este mesmo nome para manipula-lo
      arquivo.upload(request, "NomeArquivo");
    ]]>
  </mx:click>
</mx:Button>
</mx:Application>

No caso o trabalho de tramento do arquivo pode ser feito em uma tecnlogia de sua escolha, mas isto e tema para um outro post, por enquanto é só.

Ate++. Abraço a todos.

Customizando o HttpModule no Asp.Net

Olá, neste artigo iremos ver como criar um módulo HTTP (httpmodule) customizado no asp.net. O pipeline HTTP é uma série de extensões de objetos que são iniciados pelo Asp.Net runtime no momento de processar uma solicitação o HTTP Handlers e o HTTP Modules são componentes .Net que servem como pontos principais de extensibilidade dos pipelines.

Bom todo módulo deve herdar da Interface IHttpModule que se encontra no namespace System.Web, por isso iremos seguir os seguintes passos:

1-) Crie um projeto do tipo ClassLibrary chamado Module.
2-) Adicione a referência System.Web.
3-) Exclua o arquivo class1.cs do seu projeto Module e crie uma nova classe com o nome de ModuleCustom, nesta classe peça para herdar da interface IHttModule.

public class ModuleCustom : IHttpModule

 

4-) Clique na interface e peça para implementar os métodos da mesma, repare que ele irá implementar o método Init e Dispose. Perceba que no método Init estamos recebendo como parâmetro um objeto do tipo HttpApplication, este objeto é passado automaticamente pelo runtime para o Module HTTP e é nele que iremos personalizar as ações (eventos) .

Quais eventos são e o que fazem os eventos do HttpApplication ?

Segue abaixo uma lista dos eventos e a respectiva descrição:

AcquireRequestState: chame este evento para permitir que o módulo obtenha ou crie o estado (por exemplo, a sessão) da solicitação.

AuthenticateRequest: chame este evento quando um módulo de segurança precisar autenticar o usuário antes que ele processe a solicitação.

AuthorizeRequest: chame este evento através de um módulo de segurança quando a solicitação precisar ser autorizada. Chamado após autenticação.

BeginRequest: chame este evento para notificar um módulo de que a nova solicitação está começando.

Disposed: chame este evento para notificar o módulo de que o aplicativo está sendo encerrado por algum motivo. Permite que o módulo execute uma limpeza interna.

EndRequest: chame este evento para notificar o módulo de que a solicitação está terminando.

Error: chame este evento para notificar o módulo de que ocorreu um erro durante o processamento da solicitação.

PostRequestHandlerExecute: chame este evento para notificar o módulo de que o identificador terminou o processamento da solicitação.

PreRequestHandlerExecute: chame este evento para notificar o módulo de que identificador da solicitação está prestes a ser chamado.

PreSendRequestContent: chame este evento para notificar o módulo de que o conteúdo está prestes a ser enviado ao cliente.

PreSendRequestHeaders: chame este evento para notificar o módulo de que os cabeçalhos HTTP estão prestes a serem enviados ao cliente.

ReleaseRequestState: chame este evento para permitir que o módulo libere o estado, pois o identificador terminou o processamento da solicitação.

ResolveRequestCache: chame este evento após a autenticação. Os módulos de cache usam este evento para determinar se a solicitação deve ser processada pelo cache ou por um identificador.

 UpdateRequestCache: chame este evento após receber uma resposta do identificador. Os módulos de cache devem atualizar o cache com a resposta

 

5-) Para nosso exemplo iremos utilizar o evento BeginRequest, por isso iremos criar um evento dentro de nossa classe e posteriormente associaremos este evento ao evento do HttpApplication.

namespace Module

{

    public class ModuleCustom : IHttpModule

    {

        private string Inicio;

        #region IHttpModule Members

 

        public void Dispose()

        {

            throw new NotImplementedException();

        }

 

        public void Init(HttpApplication context)

        {

            context.BeginRequest += new EventHandler(OnBeginRequestCustom);

        }

 

        protected void OnBeginRequestCustom(object o, EventArgs args)

        {

            HttpApplication app = o as HttpApplication;

            Inicio = string.Format(“Hello: O BeginRequest começou a ser executado em {0}”, DateTime.Now);

            app.Context.Response.Write(Inicio);

        }

 

        #endregion

    }

 

}

 

 

Note que no exemplo acima, criamos um evento customizado chamado OnBeginRequestCustom e este evento foi associado ao HttpApplication através do EventHandler. Dentro do nosso BeginRequest customizando, estamos pegando o valor de inicio da requisição.

6-) Compile o projeto, copie a DLL para o Bin do seu projeto Web ou para o Gac do Servidor.

7-) Para finalizar no web.config da sua aplicação altere a referência do httpmodule, neste momento iremos fazer referência a nossa dll.

    <configuration>

      <system.web>

        <httpModules>

          <add name=Module type=Module.ModuleCustom, Module />

        </httpModules>

      </system.web>

    </configuration>

 

 

Nota: No caso da dll estar no gac é necessário referenciar no type o public key token.

8-) Agora basta testar o seu projeto.

 

Espero que este post seja útil.

 

Abraço,

 

Nelson Borges

Novo projeto do CodePlex facilita desenvolvimentos PHP

Você faz desenvolvimentos em PHP e mantém dados no Microsoft SQL Server? Então esse novo aplicativo seguramente vai facilitar a sua vida. Trata-se de um projeto de código aberto e hospedado no CodePlex, que ajudará desenvolvedores PHP a criarem um aplicativo CRUD (Create, Read, Update, Delete) simples, capaz de rodar tanto no Microsoft SQL Server, quanto no SQL Azure e no Windows Azure Storage.

O aplicativo pode ser facilmente instalado no Windows e suporta navegação, paginação, busca e customização de dados através de um simples CSS.

E o melhor, tudo o que você precisa é de um servidor PHP, uma conexão à internet e o SQL Server 2005 ou superior. Para saber mais detalhes sobre o novo aplicativo e sobre como utilizá-lo em seus desenvolvimentos PHP, visite o blog Interoperability@Microsoft.

 

Fonte: IT News

Feliz Natal e um feliz 2010.

Bom pessoal, para quem acompanha o DevFranca nesta semana e na próxima estamos dedicados a familia e amigos, por isso creio que não haverá novos artigos neste período .Desejo a todos um feliz Natal e um feliz 2010, para finalizar deixo este texto que encontrei no Arnaldo Jabor, um abraço a todos:
 
O grande barato da vida é olhar para trás e sentir orgulho. É viver cada momento e construir a felicidade aqui e agora. Claro que a vida prega peças. O bolo não cresce, o pneu fura, chove demais, perdemos pessoas que amamos… Mas, pensa só:
Tem graça viver sem rir de gargalhar, pelo menos uma vez ao dia? Tem sentido estragar o dia por causa de uma discussão na ida pro trabalho?
Eu quero viver bem…E você? 2009 foi um ano cheio de coisas boas, mas também de problemas e desilusões, tristezas e perdas, reencontros…
Normal…
2010 não vai ser diferente. Muda o século, o milênio muda, mas o Homem é cheio de imperfeições, a natureza tem sua personalidade que nem sempre é a que a gente deseja, mas, e aí? Fazer o quê? Acabar com seu dia? Com seu bom humor? Com sua esperança?
O que eu desejo pra todos nós é sabedoria. E que todos nós saibamos transformar tudo em uma boa experiência. O nosso desejo não se realizou?  Beleza…Não estava na hora, não deveria ser a melhor coisa para esse momento (me lembro sempre de uma frase que ouvi e adoro: ‘cuidado com seus sonhos, desejos, eles podem se tornar realidade’).
Chorar de dor, de solidão, de tristeza, faz parte do ser humano…Mas,se a gente se entender e permitir olhar o outro e o mundo com generosidade,as coisas ficam diferentes. Desejo para todo mundo esse olhar especial!
2010 pode ser um ano especial, se nosso olhar for diferente.
Pode ser muito legal, se entendermos nossas fragilidades e egoísmos e dermos a volta nisso. Somos fracos, mas podemos melhorar. Somos egoístas, mas podemos entender o outro.
2010 pode ser o máximo, maravilhoso, lindo, especial!
Depende de mim…
De você. Pode ser…E que seja!’
(Arnaldo Jabor)
Abraço,

Nelson Borges

Publicação de Artigos - Nelson Borges

Olá, ALL.
 
Um tempo atrás recebi o convite do Patrick/Mirko para escrever alguns artigos técnicos na seção de matérias do site SuperDownloads, fiquei muito feliz pelo convite e agradeço a ambos e espero poder estar a altura do site, ontem recebi o e-mail confirmando que meu primeiro artigo no site  foi publicado. O artigo trata-se uma ferramenta chamada IEAK 8, o IEAK auxilia a personalizar de versões do Internet Explorer, como as versões que vinham com cd de provedores de internet anteriormente, para saber mais e ler meu primeiro artigo no Superdownloads, clique aqui.
 
Atualmente tenho participação com artigos nos seguintes sites:
 
DevFranca (xodó) -> Comunidade dedicada aos desenvolvedores de Franca -> www.devfranca.com.br ou http://devfranca.ning.com
DevMedia -> Site de artigos/videos técnicos: http://www.devmedia.com.br/nelsonborges
VSTS -> Comunidade fundada pelo MVP Ramon Durães com foco no Visual Studio Team System : http://www.vstsbrasil.net/
 E alguns outros que não são com tanta frequência..
 
Abs,
Nelson Borges.

Versões beta do Office 2010 e Silverlight 4 já estão disponíveis para download

A Microsoft anunciou hoje no segundo dia do PDC09, o lançamento das versões beta do Microsoft Office 2010, Microsoft Silverlight 4 e Microsoft SharePoint Server 2010, além de novas oportunidades e recursos para que desenvolvedores criem aplicações que aproveitem todo o potencial do Windows e da internet.

A Microsoft também disponibiliza a versão Beta do Office Web Apps para clientes corporativos e do Microsoft Office Mobile 2010, levando toda a familiaridade do Office para a Web e o celular. Estes aplicativos Web irão oferecer aos clientes a fidelidade Office Format (capacidade de abrir, editar e salvar documentos do Office) e uma interface de usuário consistente entre o desktop e o navegador. Já o Office 2010 Mobile chegará ao público por meio do Windows Mobile Marketplace, para usuários do Windows Phone. Destaque para a possibilidade de criar e organizar documentos com menos tempo e esforço, além de armazenar seus documentos online para posterior acesso e edição de arquivos como os de Word, a partir de qualquer navegador Web.

O download da versão beta do Office 2010 está disponível Clique aqui para baixar

Para baixar a versão beta do Silverlight 4 acesse aqui

Para saber mais detalhes dos anúncios de hoje, acompanhar as notícias, imagens e assistir o evento ao vivo, acesse aqui

Fonte: http://msdn.microsoft.com/pt-br/dd430909.aspx

Microsoft lança kit de desenvolvimento para Facebook

A Microsoft anunciou esta semana um kit de desenvolvimento de software (SDK, do inglês software development kit) que permitirá aos desenvolvedores criar aplicativos para o Facebook usando o Silverlight e o Windows Presentation Foundation (WPF). O kit vai expandir as possibilidades de uso de aplicativos de terceiros no Facebook, bem como transformar o Silverlight e o WPF em plataformas viáveis para desenvolvedores envolvidos na construção de redes sociais.

O kit conta com samples e ferramentas para o desenvolvimento de aplicativos Facebook em ASP, .NET, Silverlight, WPF e WinForms. Ele conta também com códigos para API, componentes, controles e samples.

Em outubro de 2007, a Microsoft anunciou investimentos de US$ 240 milhões no Facebook. O SDK anunciado esta semana é parte desta parceria. Os interessados em baixar o kit, podem fazê-lo aqui: http://msdn.microsoft.com/en-us/windows/ee388574.aspx

Fonte : MSDN ITNews

Abs,

Dica - Azure Academy

Olá,

Antes de pegar essa semana de folga (vir a Franca visitar a familia e resolver os 1501 problemas pessoais) estava eu fazendo os hands-on-labs na Microsoft referente o Application Lifecycle Management (VSTS), quando em um bate-papo, o grande Luciano Conde me passou este link (dica) referente a materiais sobre Azure, bom, comecei a ver, e apesar do material em algumas partes já estar meio desatualizado, achei muito bom, pois ele server como base para quem esta iniciando os estudos em Azure (meu caso).

O link é http://msdn.microsoft.com/pt-br/azure/dd637687.aspx e para quem tem dificuldades com inglês, o material é em português.

O que irá encontrar no link ?!

Apresentação 1 - Cloud Computing e o Windows Azure
Apresentação 2 - O sistema operacional Windows Azure
Apresentação 3 - Aplicações no Windows Azure
Apresentação 4 - Identidades na nuvem e o Projeto “Geneva”
Apresentação 5 - Dados na nuvem com o SQL Services
Apresentação 6 - Visual Studio e ALM na nuvem
Apresentação 7 - Serviços na nuvem com o .NET Services
Apresentação 8 - Colaboração na nuvem com o Live Services
Apresentação 9 - Controle versus Economia de Escala

Abs,

Treinamento de .NET

Olá Pessoal, estou montando um treinamento em .net, ainda não sei se será presencial ou online, mas já estou fechando o conteúdo do treinamento, abaixo segue o conteudo, caso alguém tenha alguma sugestão/critica sobre o contéudo, por favor deixem a sugestão/critica como comentário aqui no blog.

Total de horas: 36 horas
Conteúdo programático:

1-) Introdução
-Overview e dicas das certificações Microsoft.
-Introdução ao Microsoft .Net Framework.

2-) Visual Studio 2008 Team System
- Introdução ao Visual Studio 2008 Team System.
- Controle de Código Fonte.
- Tipos de Projetos/Tipo de Itens de Projetos disponíveis.

3-) Linguagem C# .Net- Introdução a Linguagem C# .Net.
- Atribuição composta e instrução de interação.
- Instruções de decisão.
- Arrays e Coleções.
- Classes e Objetos.
- Utilizando Herança
- Apresentando o Generics.
- Extensão de métodos.
- Lambda Expression
- Types Anonymous.

4-) Windows Form
- Introdução ao Windows Form.
- Conhecendo alguns dos principais controles do Windows Form.
- Introdução ao Windows Presentation Foundation

5-) Web Form
- Introdução ao asp.net web form.
- Conhecendo alguns dos principais controles do Asp.Net .
- Criando o primeiro website.

6-) WCF & Web Service
- Introdução a arquitetura de serviços.
- Comparando WCF e Web Service.
- Criação de um serviço WCF e Web Service.
- Como publicar os serviços no IIS.