Flex/ Flex e .net/ Flex e Java/ Java/ Live Cycle/ Notícias/ RIA/ RIA com Ajax/ Ruby On Rails/ Sexta-Flex Talkshow/ SilverLight

Palestra: Conheçendo a familia WebOrb com Mark Piller

mark
Na próxima sexta-feira temos um encontro marcado on-line com o Mark Piller, fundador e idealizador da TheMidnightcoders.com a primeira empresa a ter um produto fora Macromedia(Adobe) para serviços remotos com a plataforma Flash desde a época do Flash MX.

Mark Piller vai nos prestigiar com 2 horas de palestra mostrando todos os produtos comerciais da the Midnight coders. Dentre eles sua linha de produtos WebOrb Server para (PHP, Java, .Net e Ruby on Rails). Que fazem troca de objetos nativos e mais uma gama de recursos são só para Flex mais para Flash, Ajax e Silverlight.

Durante a palestra você pode conhecer de perto o próprio criador e como funciona os produtos da Midnight Coders. O Mark ficou muito feliz em poder palestrar especialmente para os Brasileiros.

Anote ai em sua agenda de compromissos: Dia 18/09/2009 às 09:00 da manhã horário de Brasília.

O endereço para entrar na sala é : http://experts.na3.acrobat.com/palestras/

Conto com a presença de todos que participaram da última palestra e de você leitor.

Flex/ Flex e .net

Artigo – Construindo aplicações ricas com Adobe Flex 3 e ASP.NET na revista Mundo .NET

Essa notícia veio do blog do Igor Musardo, aquile que eu já tinha comentado aqui alguns meses antes.

O artigo veio veiculado na revista Mundo .Net, parabéns Igor, sempre é ótimo ter novos artigos, como eu gostaria de ver mais participantes da comunidade publicando seus artigos em revistas impressas.

Amigos leitores, você trabalha com .Net e quer usar o Flex na interface, esse artigo pode te guiar corretamente.

http://www.mundodotnet.com.br/conteudo.shtml

Flex/ Flex e .net/ Oportunidades de emprego

Oportunidade de trabalho

Meus amigos, a Kogut empresa amiga da igorcosta.com, está em busca de profissionais na área de Flex, Vejam abaixo a descrição da oportunidade, vale a pena trabalhar com eles, uma boa empresa.

A Kogut eBusiness está com vagas para contratação imediata em regime de CLT e PJ para profissionais com os seguintes conhecimentos:

  • Flex, ActionScript 3.0;
  • ASP.NET C#, WEBSERVICES em C#;
  • ASP;
  • SQL Server.
  • Interessados enviar o currículo e códigos que demonstrem sua habilidade em flex para: contato@kogut.com.br informando a disponibilidade para início, bem como pretenção salarial como CLT ou PJ.

Dicas/ Flex/ Flex 3/ Flex e .net

Flex para desenvolvedores .Net

Engana-se em achar que o Flex não pode ajudar você caro amigo fiel desenvolvedor do mundo Microsoftiano. Muita gente adora meter o pau na querida Microsoft e seus produtos, mais que no fundo no fundo aprendeu esse troço chamado Informática em um bom e velho windows. “Filhos malditos“.

Em fim, você gosta e adora o mundo .Net, não tiro sua razão por também saber dá minhas pinceladas caseiras e de uso interno no C# .net que acho maravilhoso a maneira como é similar ao Actionscript 3.0.

Pois bem, se alguém já mentiou ou falou que .Net não tem nada a ver com Flex e que aplicações Flex não podem usar o .Net como back-end, sinto-lhe informar que você acabou de participar de uma pegadinha de algum xiita descarado que acabou lhe enganando.

Existem 3 formas de se trabalhar com .Net no lado back-end e o Flex como seu lindo framework para UI e bind.

Primeira Forma

O bom e velho HTTPService é um dos tags que o Flex 3 SDK contém que serve para troca de dados via XML,REST. Você faz todas as transições de dados tanto HTTPS ou HTTP sempre dando requests ou recebendo.
É sem dúvida a maneira mais fácil de se fazer funcionar, quer ver como é simples.

Do lado do Flex eu faço isso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
< ?xml version="1.0" encoding="utf-8"?>
<mx :Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="569" height="384">
 
	</mx><mx :Script>
		< ![CDATA[
			import mx.rpc.events.FaultEvent;
			import mx.controls.Alert;
			import mx.rpc.events.ResultEvent;
 
			public function resultado(event:ResultEvent):void
			{
				fxnav.text = event.result.browserInfo.userAgent;
			 	fxip.text =  event.result.visitInfo.ip;
			 	fxlang.text = event.result.browserInfo.userLanguages;
			 	fxhorario.text = event.result.visitInfo.@timeVisited;
			 	mx.controls.Alert.show("Recebido com sucesso!");
			 	log_.text = ServicoSimples.lastResult.toString();
			}
			public function falha(event:FaultEvent):void
			{
				Alert.show("Falha ao receber XML","erro");
			}
		]]>
	</mx>
 
	<mx :HTTPService
		id="ServicoSimples"
		url="http://aspnet.4guysfromrolla.com/demos/userInfo.xml"
		useProxy="false" result="resultado(event)" fault="falha(event)" resultFormat="e4x"/>
	<mx :Button x="10" y="41" label="Chamar ASPX para XML" click="ServicoSimples.send()"/>
	<mx :Form x="10" y="109" width="404">
		</mx><mx :FormItem label="Engine do Navegador:" width="100%">
			<mx :TextInput width="100%" id="fxnav"/>
		</mx>
		<mx :FormItem label="IP:" width="100%">
			<mx :TextInput width="100%" id="fxip"/>
		</mx>
		<mx :FormItem label="idioma:" width="100%">
			<mx :TextInput width="100%" id="fxlang"/>
		</mx>
		<mx :FormItem label="Horário da visita:" width="100%">
			<mx :TextInput width="100%" id="fxhorario"/>
		</mx>
 
	<mx :Label x="10" y="83" text="Resultado recebido"/>
	<mx :Label x="10" y="255" text="Log por tras da cena"/>
	<mx :TextArea id="log_" x="10" y="281" width="404" height="76"/>

Do lado do ASP.net eu faço isso aqui.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
< %@ Import Namespace="System.Xml" %>
< %@ Import Namespace="System.Text" %>
<script language="C#" runat="server">
  void Page_Load(object sender, EventArgs e)
  {
    // Create a new XmlTextWriter instance
    XmlTextWriter writer = new XmlTextWriter(Server.MapPath("userInfo.xml"), Encoding.UTF8);
 
    // start writing!
    writer.WriteStartDocument();
    writer.WriteStartElement("userInfo");
 
	  // Creating the <browserinfo> element
	  writer.WriteStartElement("browserInfo");
	    if (Request.UrlReferrer == null)
			writer.WriteElementString("urlReferrer", "none");
		else
			writer.WriteElementString("urlReferrer", Request.UrlReferrer.PathAndQuery);
	    writer.WriteElementString("userAgent", Request.UserAgent);
	    writer.WriteElementString("userLanguages", String.Join(", ", Request.UserLanguages));
	  writer.WriteEndElement();
 
	  // Creating the <visitinfo> element
	  writer.WriteStartElement("visitInfo");
	    writer.WriteAttributeString("timeVisited", DateTime.Now.ToString());
	    writer.WriteElementString("ip", Request.UserHostAddress);
	    writer.WriteElementString("rawUrl", Request.RawUrl);
	  writer.WriteEndElement();
 
    writer.WriteEndElement();
    writer.WriteEndDocument();
    writer.Close();
  }

O Código fonte acima eu tirei do seguinte link.Atente ao detalhe que não domino nada de ASP.net, agora caso você seja um tapado como eu no ASP e quer aprender, veja um exemplo em português de como fazer isso no site do iMasters.

Segunda Forma:

No Flex 2/3 SDK eu tenho um tag chamado WebServices, então certamente eu consigo me comunicar usando WebServices feitos no .net e consumidos no Flex sem problema algum. Certíssimo, veja como fica essa comunicação simples usando WebServices também simples.

Do lado do Flex você faz assim:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
< ?xml version="1.0" encoding="utf-8"?>
<mx :Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="569" height="384">
 
	</mx><mx :Script>
		< ![CDATA[
			import mx.rpc.events.FaultEvent;
			import mx.controls.Alert;
			import mx.rpc.events.ResultEvent;
 
			public function resultado(event:ResultEvent):void
			{
                 Alert.show("Deu tudo certo!","Sucesso");
			}
			public function falha(event:FaultEvent):void
			{
				Alert.show("Falha ao se conectar","erro");
			}
			public function ctfresultado(event:ResultEvent):void
			{
				resultado01.text = String(event.result);
			}
			public function ftcresultado(event:ResultEvent):void
			{
				resultado02.text = String(event.result);
			}
		]]>
	</mx>
 
<mx :WebService
	 id="WServiceSimples" useProxy="false"
	 result="resultado(event)"
	 fault="falha(event)"
	 showBusyCursor="true"
	wsdl="http://www.w3schools.com/webservices/tempconvert.asmx?wsdl">
	  </mx><mx :operation name="CelsiusToFahrenheit" result="ctfresultado(event)">
	  	 </mx><mx :request>
	  	 	<celsius>
	  	 		  	   {ctf.text}
	  	 	</celsius>
	  	 </mx>
 
	  <mx :operation name="FahrenheitToCelsius" result="ftcresultado(event)">
	  	 </mx><mx :request>
	  	 	<fahrenheit>
	  	 		{ftc.text}
	  	 	</fahrenheit>
	  	 </mx>
 
 
	<mx :Label x="66" y="29" text="Conversor de temperatura " fontSize="15"/>
	<mx :Form x="57" y="70">
		</mx><mx :FormItem label="Celsius para Fahrenheit:">
			<mx :TextInput id="ctf"/>
		</mx>
		<mx :FormItem label="Resultado em Fahrenheit:">
			<mx :TextInput id="resultado01"/>
		</mx>
 
	<mx :Button x="442" y="98" label="Converter" click="WServiceSimples.CelsiusToFahrenheit()"/>
	<mx :Button x="442" y="201" label="Converter" click="WServiceSimples.FahrenheitToCelsius()"/>
	<mx :Form x="57" y="175" width="357">
		</mx><mx :FormItem label="Fahrenheit para Celsius:">
			<mx :TextInput id="ftc"/>
		</mx>
		<mx :FormItem label="Resultado em Celsius:">
			<mx :TextInput id="resultado02"/>
		</mx>

Do lado do ASP, você pode pegar o Webservice aqui no W3schools. Veja que tudo é baseado via HTTP e trocando objetos simples no grande estilo do SOAP.

Terceira forma:

Existe ainda uma maneira mais eficaz de utilizar das duas ótimas tecnologias e casar ambas em perfeito estado, que é a troca de objetos nativos entre ambos via formato AMF3 ( ActionScript Message Format version 3), que é um formato nativo do Flash Player que aguenta cargas excessivas de dados e você consegue ganhar muito em termos de arquetetura de aplicação, performaces e organização.

Neste caso para fazer o tratamento de ambas as entidades você vai precisar de um tradutor instatâneo. Imagine que você quer falar português para um russo e vice-versa. Então para esse trabalho vocês conhecam o FluorineFX, uma pequena empresa está desenvolvendo desde os tempos bons do Flash remoting, ele é esse tal tradutor que vos fala.

Só que nesse caso eu irei utilizar outro tag do Flex 2/3 SDK para isso que é o RemoteObject, e além disso precisarei mapear todas as Vo( Value Objects ) e DTO em ambos os casos, seja em .net ou seja em Actionscript 3.0.

Infelizmente eu não tenho como fazer um exemplo ( limite técnico). Porém fica essa última dica que talvez eu veja por ai em algum outro blog o resto deste artigo.

Programadores /Desenvolvedores .Net continuem usando sua tecnologia adorável, porém dê ao Flex a chance de participar de seu sistema e usá-lo em seu front-end.