Archive for junho, 2009

C# 4.0 –News…

Estou estudando algumas novidades do C# 4.0 e do Visual Studio 2010, até o momento estou gostando bastante, uma coisa posso garantir, o time de desenvolvimento esta atento as sugestões dadas nos fóruns do MSDN e nas comunidades. Apesar do que muitas pessoas dizem a respeito da Microsoft, sinto que cada vez o time de desenvolvimento esta mais próximo das comunidades, bom agora chega de ficar “puxando saco” e vamos ao que interessa.:)

Pelo que percebi, o C# 4.0 esta focado em programação dinâmica, mas EU ainda não considero o C# uma linguagem dinâmica. Os objetos são dinâmicos, no sentido de que sua estrutura e seu comportamento não é definido em um modelo estático. Me lembra um pouco do Pynthon e Ruby J.

Veja a evolução abaixo:

Dynamic lookup

Charlie já dizia no seu blog algum tempo atrás, que a próxima versão do visual Studio iria fornecer uma infra-estrutura comum que permitira a todas as linguagens .NET a opção de resolução de nomes em tempo de execução em vez de ser no tempo de compição. Em resumo seria mais ou menos assim, você teria uma variável do tipo Dynamic e poderia colocar qualquer método nela que aceitaria no tempo de compilação, e a verificação da existência daquele método apenas seria visto em runtime, você deve estar pensando, putz !?, pois foi a mesma coisa que pensei quando conheci o DLR (Dynamic Language Runtime), vale comentar que o tipo dinâmico não é a mesma coisa que o tipo var.. :)

 

Veja este exemplo do Mads Torgersen:

dynamic d = GetDynamicObject(…);
d.M(7); // calling methods
d.f = d.P; // getting and settings fields and properties
d[“one”] = d[“two”]; // getting and setting thorugh indexers
int i = d + 3; // calling operators
string s = d(5,7); // invoking as a delegate

O Channel 9, possui uma série de videos que ajudam mais o entendimento:

Por enquanto é sow.. depois irei postar mais sobre o C# 4.0..

Abraço,

Flex Mania 2009

Durante os dias 6 e 7 de julho acontecerá a primeira edição de um dos maiores eventos sobre Flex da comunidade Brasileira.

O Flex Mania é um evento 100% online e 100% gratuito, e traz palestras sobre a integração do Flex com diversas tecnologias.

Mais detalhes sobre o evento:

Quem não quiser perder deve correr, pois as inscrições são limitadas.

What is My IP ?

Provavelmente já deve ter usado o site What is My IP, correto ? Bom que tal ter este servço no seu site ?

Hoje efetuando minhas navegadas rotineiras por esse mundão chamado internet.. encontrei no codeplex um pequeno projeto em bacana, se trata justamente disso, veja abaixo.

Project Description
“What is my IP?”, is presumably the most fundamental question for every web surfer. Simple feature returning IP address could enhance the functionality of any ASP.NET web site, contributing to better user experience.

Simple feature could be added to any ASP.NET page returning the IP address.

Working DEMO is available at: http://www.webinfocentral.com/TermsOfUse.aspx

//*****************************************************
// Module           :   GetMyIP.cs
// Author           :   Alexander Bell
// Copyright : 2007-2009 Infosoft International
// Version          :   1.03
// Description      :   Get my IP address

//*************************************************
// DISCLAIMER: This Application is provide on AS IS
basis without any warranty
//*************************************************

using System;
using System.Web;

public static class MyIP {
    public static string Address {
        get {
            try {
                if (HttpContext.Current == null) return String.Empty;
                return HttpContext.Current.Request.UserHostAddress;
            }
            catch { return String.Empty; }
        }
    }
}

Sample Web Page contains single Button1 server control with “onclick” :

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">

        <title>WHAT_IS_MY_IP | Infosoft International Inc</title>

        <script runat="server">
            protected void Page_Load(object sender, EventArgs e)
            {
                Button1.Attributes.Add("onclick",
                "javascript:alert('Your IP address: "
+ MyIP.Address + "')");
            }
        </script>

    </head>

    <body>
        <form id="form1" runat="server">
            <asp:Button ID="Button1"
                runat="server"
                Text="WHAT IS MY IP"
                UseSubmitBehavior="False" />
        </form>
    </body>
</html>

Sample screenshot showing IP address follows:
WhatIsMyIP_screenshot.png
Fig.1. Sample screenshot

Recent AJAX-enhanced RIA online projects by Dr. Alexander Bell

 

Mais informações: http://showmyip.codeplex.com/

Project contains following files:

1. GetMyIP.cs (class module written in C# to be placed in App_Code directory)
2. Default.aspx (sample web page contains a button control to pop-up JavaScript message, showing IP address)
3. WhatIsMyIP_screenshot.png (sample screenshot)

The code module (1) is rather straightforward: it’s using HttpContext object to return IP address:

Virtual Earth ASP.NET Control

Encontrei este post do Nick Randolph, mais uma da familia Live.

Do you want to integrate Virtual Earth into your website but are daunted by the prospect of using the javascript object?  Well as part of the Windows Live Tools for Visual Studio there is an ASP.NET Virtual Earth control that you can drag onto your aspx page, set properties add event handlers, all without writing a line of javascript.

To get started you will of course need to download and install the Windows Live Tools for Visual Studio.  The November CTP is currently available for download.

Once you have installed the tools you will notice that there are some additional toolbox items in a tab entitled Virtual Earth:

image

Select the Map and drag it onto your aspx page.  Note that you will also need a ScriptManager control as the Virtual Earth ASP.NET control uses this to communicate with the server so that you can wire up events.

image

As you can see you can set properties on this control such as the Zoom level, whether Traffic information is displayed and even whether the scale is in Miles or Kms.  What’s even better about this control is if you select the Event tab in the properties window you will see that there is a list of server side events that you can wire up.

image

Here you can see I’ve added an event handler for the ServerClick event.  The Server prefix is there to indicate that the event is raised server side. Here is some code that adds a polygon shape to the map when the map is clicked.

using System.Collections.Generic;
using Microsoft.Live.ServerControls.VE;

namespace VESampleApp
{
    public partial class _Default : System.Web.UI.Page
    {

        protected void Map1_ServerClick(object sender,
                                        MapEventArgs e)
        {
            Shape s = new Shape(ShapeType.Polygon, new List<LatLongWithAltitude>(){
                                                        new LatLongWithAltitude(20,20),
                                                        new LatLongWithAltitude(20,25),
                                                        new LatLongWithAltitude(25,25),
                                                        new LatLongWithAltitude(25,20)
            });
            s.HideIcon();
            this.Map1.AddShape(s);
        }
    }
}

Reference: http://www.professionalvisualstudio.com/blog/2008/11/26/virtual-earth-aspnet-control/

Limpando componentes visuais em Flex

Olá a todos, uma das primeiras necessidades quando se desenvolve interfaces e um método genérico para limpar a tela. Este post trás uma classe genérica para limpar componentes visuais da tela, ela não tem todos os componentes visuais, mais pode ser adicionados novos componentes seguindo o modelo.

package
{
  import flash.display.DisplayObjectContainer;

  import mx.containers.Canvas;
  import mx.controls.CheckBox;
  import mx.controls.ComboBox;
  import mx.controls.DateField;
  import mx.controls.NumericStepper;
  import mx.controls.TextInput;

  public class LimpaTela
  {
    public function LimpaTela()
    {
    }

    public static function limparTela(obj:DisplayObjectContainer):void{
      for(var i:int=0;i<obj.numChildren;i++){
        if(obj.getChildAt(i) is TextInput){
          TextInput(obj.getChildAt(i)).text = "";
        }
        else if(obj.getChildAt(i) is CheckBox){
          CheckBox(obj.getChildAt(i)).selected = false;
        }
        else if(obj.getChildAt(i) is ComboBox){
          if(ComboBox(obj.getChildAt(i)).editable){
            ComboBox(obj.getChildAt(i)).text = "";
          }
          ComboBox(obj.getChildAt(i)).selectedIndex = -1;
        }
        else if(obj.getChildAt(i) is NumericStepper){
          NumericStepper(obj.getChildAt(i)).value = 0;
        }
        else if(obj.getChildAt(i) is DateField){
          DateField(obj.getChildAt(i)).text = "";
        }
        else if(obj.getChildAt(i) is Canvas){
          limparTela(Canvas(obj.getChildAt(i)));
        }
      }
    }

  }
}

Trata se de um método recursivo, ou seja ele chama ele mesmo no caso de componentes que possam ter outros componentes, este é o caso do ‘”Canvas” que serve como um container para se adicionar outros componentes. Na verdade o Canvas pode ser usado como uma tela, onde são colocados todos os componentes visuais que se deseja limpar e logo em seguida chama a função para limpar. Segue um exemplo de como se utilizar esta classe:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
   layout="absolute">
<mx:Script>
  <![CDATA[
    private function btnLimparTela_click():void{
      LimpaTela.limparTela(cnv);
    }
  ]]>
</mx:Script>

  <mx:Button id="btnLimpaTela" x="119" y="218" label="Limpar Tela"
    click="btnLimparTela_click();"/>
  <mx:Canvas id="cnv" x="10" y="10" width="200" height="200">
    <mx:TextInput x="20" y="10"/>
    <mx:ComboBox x="20" y="40">
    <mx:Array>
      <mx:String>Franca</mx:String>
      <mx:String>São Paulo</mx:String>
    </mx:Array>
    </mx:ComboBox>
  </mx:Canvas>
</mx:Application>

 
Até a proxima!

PHP SDK para Windows Azure

 Como parte do comprometimento da Microsoft com a criação de sistemas interoperáveis, o projeto PHP Azure open source é uma ponte para os desenvolvedores de Windows Azure e tem como objetivo fornecer kits de desenvolvimento de softwares para o Windows Azure e para Storage – Blobs, Tables & Queues. Além disso, o programa permite aos profissionais tirar vantagem da plataforma de serviços Microsoft Cloud - Windows Azure.

O PHP SDK para Windows Azure é um projeto de colaboração entre a Microsoft e RealDomen, empresa provedora de soluções para Negócios, serviços profissionais e infra-estrutura de produtos.

Entre as principais funcionalidades do projeto PHP SDK, estão:

 - Classes PHP para Windows Azure blobs, tables e queues (para as operações de CRUD);
- Classes para o transporte HTTP, AuthN/AuthZ, REST;
- Gestão de erros e suporte para gerenciamento, instrumentação e logging.  

Para ler o post de Marteen Balliauw na íntegra e ter acesso a mais detalhes sobre o PHP Azure, acesse o link http://jopx.blogspot.com/2009/05/php-sdk-for-windows-azure.html

 

Noticia publicada no blog -> http://blogs.msdn.com/itnews/archive/2009/05/28/php-sdk-para-windows-azure.aspx

 

Abraço,

1° Encontro do DevFranca

No dia 29/08, irá ocorrer em Franca o 1° encontro de desenvolvedores e profissionais de tecnologia do interior paulista, um evento bem animado com sorteios de brindes e um ótimo conteúdo técnico. Um momento para aprender e compartilhar suas experiências e conhecimento com os demais participantes da região, confira abaixo os assuntos das palestras.

  • - Desenvolvimento de aplicações SOA;
  • - Novidades e Facilidades do Microsoft Framework;
  • -Desenvolvimento de relatórios com Crystal Reports em banco de dados Oracle;
  • -Aplicações RIA com Flex e C#.Net
  • - Tema livre;

O evento irá ocorrer na Universidade de Franca, e a entrada é um quilo de alimento não perecível, que será doado às entidades de assistência social da cidade.

As inscrições estão abertas a partir de 03/08 através do site www.devfranca.com.br e www.viniciussandim.com, mas você já pode ir reservando seu convite enviando um e-mail para juninhob16@hotmail.com .

As seguintes empresas apóiam este projeto: