<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Célula Acadêmica .NET</title>
	<atom:link href="http://unicanet.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://unicanet.wordpress.com</link>
	<description>Conteúdo e materiais para acompanhar a célula acadêmica .NET UNIRONDON</description>
	<lastBuildDate>Wed, 15 Oct 2008 17:58:36 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='unicanet.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/43550a4aab066f21ee26e2a10f04db56?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Célula Acadêmica .NET</title>
		<link>http://unicanet.wordpress.com</link>
	</image>
			<item>
		<title>Classes</title>
		<link>http://unicanet.wordpress.com/2008/10/05/classes/</link>
		<comments>http://unicanet.wordpress.com/2008/10/05/classes/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 00:49:52 +0000</pubDate>
		<dc:creator>uninet</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://unicanet.wordpress.com/?p=18</guid>
		<description><![CDATA[Dando continuidade ao paradigma oriatado a objetos vamos aprofundar um pouco e ver o que vem a ser uma classe, seus filhos e que relação é mantida entre eles, vamo la.
Em orientação a objeto, uma classe abstrai um conjunto de objetos com características similares. Uma classe define o comportamento de seus objetos através de métodos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unicanet.wordpress.com&blog=3743357&post=18&subd=unicanet&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Dando continuidade ao paradigma oriatado a objetos vamos aprofundar um pouco e ver o que vem a ser uma classe, seus filhos e que relação é mantida entre eles, vamo la.</p>
<p>Em <strong><span class="mw-redirect">orientação a objeto</span></strong>, uma <strong>classe</strong> abstrai um conjunto de objetos com características similares. Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis destes objetos através de atributos. Em outros termos, uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar.</p>
<h2><span class="mw-headline">Estrutura da classe</span></h2>
<p>Uma classe define estado e comportamento de um Objeto geralmente implementando métodos e atributos, os atributos, também chamados de campos, indicam as possíveis informações armazenadas por um objeto de uma classe, representando o estado de cada objeto. Os métodos são procedimentos que formam os comportamentos e serviços oferecidos por objetos de uma classe.</p>
<p>Outros possíveis membros de uma classe são:</p>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#993300;">Construtores</span></span> &#8211; definem o comportamento no momento da criação de um objeto de uma classe.</li>
<li><span style="color:#993300;"><span style="text-decoration:underline;">Destrutor</span></span> &#8211; define o comportamento no momento da destruição do objeto de uma classe. Normalmente, como em C++, é utilizado para liberar recursos do sistema (como memória).</li>
<li><span style="color:#993300;"><span style="text-decoration:underline;">Propriedades</span></span> &#8211; define o acesso a um estado do objeto.</li>
<li><span style="text-decoration:underline;"><span style="color:#993300;">Eventos</span></span> &#8211; define um ponto em que o objeto pode chamar outros procedimentos de acordo com seu comportamento e estado interno.</li>
</ul>
<h2><span class="mw-headline">Encapsulamento</span></h2>
<p>Em linguagens orientadas a objetos, é possível encapsular o estado de um objeto. Em termos práticos, isso se realiza limitando o acesso a atributos de uma classe exclusivamente através de seus métodos. Para isso, as linguagens orientadas a objeto oferecem limitadores de acesso para cada membro de uma classe.</p>
<p>Tipicamente os limitadores de acesso são:</p>
<ul>
<li><span style="color:#993300;"><span style="text-decoration:underline;">público</span></span> (<em>public</em>) &#8211; o membro pode ser acessado por qualquer classe.</li>
<li><span style="color:#993300;"><span style="text-decoration:underline;">protegido</span></span> (<em>protected</em>) &#8211; o membro pode ser acessado apenas pela própria classe e suas sub-classes (também chamadas de classes filhos ou filhas).</li>
<li><span style="text-decoration:underline;"><span style="color:#993300;">privado</span></span> (<em>private</em>) &#8211; o membro pode ser acessado apenas pela própria classe.</li>
</ul>
<p>Cada linguagem de programação pode possuir limitadores de acesso próprios. Por exemplo, em Java, o nível de acesso padrão de um membro permite que qualquer classe de seu pacote (<em>package</em>) possa ser acessado. Em <span style="color:#0000ff;"><span class="mw-redirect">C#</span></span>, o limitador de acesso interno (<em>internal</em>) permite que o membro seja acessado por qualquer classe do <span style="color:#0000ff;"><em>Assembly</em> </span>(isto é, da biblioteca ou executável).</p>
<p>No exemplo abaixo,  a classe <em>Pessoa</em> permite o acesso ao atributo <em>_nome</em> somente através do propriedade<em> Nome.</em></p>
<pre><code> public class Pessoa {
     public String Nome
     {
         get { return _nome; }
         set { _nome = value; }
     }

     private String _nome;
 }

</code></pre>
<h2><span class="mw-headline">Herança</span></h2>
<p>A herança é um relacionamento pelo qual uma classe, chamada de sub-classe, herda todos comportamentos e estados possíveis de outra classe, chamada de super-classe ou classe base. É permitido que a sub-classe estenda os comportamentos e estados possíveis da super-classe (por isso este relacionamento também é chamado de extensão). Essa extensão ocorre adicionando novos membros a sub-classe, como novos métodos e atributos.</p>
<p>É também possível que a sub-classe altere os comportamentos e estados possíveis da super-classe. Neste caso, a sub-classe sobrescreve membros da super-classe, tipicamente métodos.</p>
<p>Quando uma classe herda de mais de uma super-classe, ocorre uma herança múltipla. Esta técnica é possível em <span style="color:#0000ff;">C++</span> e em <span style="color:#0000ff;">Python</span>, mas não é possível em <span style="color:#0000ff;">Java </span>e <span style="color:#0000ff;">C#</span>, no entanto estas linguagens permitem múltipla tipagem através do uso de <em><strong>interfaces</strong></em>.</p>
<h2><span class="mw-headline">Polimorfismo</span></h2>
<p>Na programação orientada a objetos, o <strong>polimorfismo</strong> permite que referências de tipos de <strong class="selflink">classes</strong> mais abstratas representem o comportamento das classes concretas que referenciam. Assim, um mesmo método pode apresentar várias formas, de acordo com seu contexto. O polimorfismo é importante pois permite que a semântica de uma interface seja efetivamente separada da implementação que a representa. O termo polimorfismo é originário do grego e significa &#8220;muitas formas&#8221; (poli = muitas, morphos = formas).</p>
<h2><span class="mw-headline">Associação</span></h2>
<p>Uma associação é um vínculo que permite que objetos de uma ou mais classes se relacionem. Através destes vínculos é possível que um objeto convoque comportamentos e estados de outros objetos.</p>
<p>As associações podem ser:</p>
<ul>
<li><span style="color:#993300;"><span style="text-decoration:underline;">unárias </span></span>- quando a associação ocorre entre objetos de uma mesma classe.</li>
<li><span style="text-decoration:underline;"><span style="color:#993300;">binárias </span></span>- quando a associação ocorre entre dois objetos de classes distintas.</li>
<li><span style="text-decoration:underline;"><span style="color:#993300;">múltiplas </span></span>- quando a associação ocorre entre mais de dois objetos.</li>
</ul>
<p>Cada associação possui características de:</p>
<ul>
<li><span style="color:#993300;"><span style="text-decoration:underline;">cardinalidade ou multiplicidade</span></span> &#8211; determina quantos objetos no sistema são possíveis em cada vértice da associação.</li>
<li><span style="text-decoration:underline;"><span style="color:#993300;">navegação </span></span>- se é possível para cada objeto acessar outro objeto da mesma associação.</li>
</ul>
<p>No exemplo de associação unária acima, cada pessoa tem um único pai (cardinalidade 1) e qualquer número de filhos (cardinalidade *). De acordo com a seta de navegação, só é possível navegar para o pai de cada pessoa. Desta forma cada objeto da classe Pessoa consegue acessar seu objeto pai, mas não consegue acessar seus objetos filhos.</p>
<h3><span class="mw-headline">Agregação</span></h3>
<p>Tipo de relacionamento com características todo-parte, onde existe um grau de coesão entre o todo e as partes menos intenso, podendo haver certo grau de independência entre eles.</p>
<h3><span class="mw-headline">Composição</span></h3>
<p>Tipo de relacionamento com características todo-parte, onde existe um alto grau de coesão entre o todo e as partes, com total grau de dependência entre eles (todo e as partes). Desta forma, se o todo não existir, as partes também não existirão.</p>
<p><strong>Um exemplo de composição é a mão:</strong></p>
<p>Uma mão é composta por dedos. Os dedos compõem a mão.</p>
<p>Não há lógica em existir um dedo sem mão, porém pode-se ter uma mão sem um ou mais dedos</p>
<h2><span class="mw-headline">Classes abstratas e concretas</span></h2>
<p>Uma classe abstrata é desenvolvida para representar entidades e conceitos abstratos. A classe abstrata é sempre uma superclasse que não possui instâncias. Ela define um modelo (<em>template</em>) para uma funcionalidade e fornece uma implementação incompleta &#8211; a parte genérica dessa funcionalidade &#8211; que é compartilhada por um grupo de classes derivadas. Cada uma das classes derivadas completa a funcionalidade da classe abstrata adicionando um comportamento específico.</p>
<p>Uma classe abstrata normalmente possui métodos abstratos. Esses métodos são implementados nas suas classes derivadas concretas com o objetivo de definir o comportamento específico. O método abstrato define apenas a assinatura do método e, portanto, não contém código.</p>
<p>Por outro lado, as classes concretas implementam todos os seus métodos e permitem a criação de instâncias. Uma classe concreta não possui métodos abstratos e, geralmente, quando utilizadas neste contexto, são classes derivadas de uma classe abstrata.</p>
Posted in C#  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unicanet.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unicanet.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unicanet.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unicanet.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unicanet.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unicanet.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unicanet.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unicanet.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unicanet.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unicanet.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unicanet.wordpress.com&blog=3743357&post=18&subd=unicanet&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unicanet.wordpress.com/2008/10/05/classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8da16acee3f3676b7556af4bbf618610?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">uninet</media:title>
		</media:content>
	</item>
		<item>
		<title>Paradigma Orientado a Objetos (POO)</title>
		<link>http://unicanet.wordpress.com/2008/10/01/poo/</link>
		<comments>http://unicanet.wordpress.com/2008/10/01/poo/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 03:02:18 +0000</pubDate>
		<dc:creator>uninet</dc:creator>
				<category><![CDATA[POO]]></category>

		<guid isPermaLink="false">http://unicanet.wordpress.com/?p=11</guid>
		<description><![CDATA[A orientação a objetos, também conhecida como Programação Orientada a Objetos (POO) ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.
Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unicanet.wordpress.com&blog=3743357&post=11&subd=unicanet&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A <strong>orientação a objetos</strong>, também conhecida como <strong>Programação Orientada a Objetos (POO)</strong> ou ainda em inglês <em><strong>Object-Oriented Programming (OOP)</strong></em> é um paradigma de análise, projeto e programação de sistemas de <em>software</em> baseado na composição e interação entre diversas unidades de software chamadas de objetos.</p>
<p>Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de programação.</p>
<p>A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos para descrever um sistema de <em>software</em>. O funcionamento deste sistema se dá através do relacionamento e troca de mensagens entre estes objetos.</p>
<p>Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de <em>software</em>. Cada classe determina o comportamento (definidos nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos.</p>
<p><span style="color:#0000ff;">Smalltalk</span>, <span style="color:#0000ff;">Python</span>, <span style="color:#0000ff;">Ruby</span>, <span style="color:#0000ff;">C++</span>, <span style="color:#0000ff;">Object Pascal</span>, <span style="color:#0000ff;">Java </span>e <span style="color:#0000ff;">C#</span> são exemplos de linguagens de programação orientadas a objetos.</p>
<p><span style="color:#0000ff;">Perl </span>(a partir do 5), <span style="color:#0000ff;">PHP </span>(a partir do 4.0), <span style="color:#0000ff;">ColdFusion</span>, <span style="color:#0000ff;">Javascript</span>, <span style="color:#0000ff;">ActionScript</span> e <span style="color:#0000ff;">VB.NET</span> são exemplos de linguagens de programação com suporte a orientação a objetos.</p>
<p> </p>
<h2><span class="mw-headline"><span style="color:#666699;">Conceitos fundamentais</span></span></h2>
<ul>
<li><span style="color:#800000;"><span style="text-decoration:underline;">Classe</span></span> É uma fábrica de objetos. Representa um conjunto de objetos com características afins. Uma classe define o comportamento dos objetos, através de métodos, e quais estados ele é capaz de manter, através de atributos. Exemplo de classe: Ventilador.</li>
</ul>
<ul>
<li><span style="color:#800000;"><span style="text-decoration:underline;">Objeto</span> </span>é uma instância de uma classe. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetos. Exemplo de objetos da classe Humanos: João, José, Maria.</li>
</ul>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#800000;">Atributos</span></span> são características de um objeto. Basicamente a estrutura de dados que vai representar a classe. Exemplos: Funcionário: nome, endereço,telefone, CPF, &#8230;.; Carro: nome, marca, ano, cor, &#8230;; Livro: autor, editora, ano.</li>
</ul>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#800000;">Estado</span></span> São os valores que cada atributo recebe. Exemplo: o estado do atributo cor é azul.</li>
</ul>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#800000;">Métodos</span></span> definem as habilidades dos objetos. Bidu é uma instância da classe Cachorro, portanto tem habilidade para latir, implementada através do método deUmLatido(). Um método em uma classe é apenas uma definição. A ação só ocorre quando o método é invocado através do objeto, no caso Bidu. Dentro do programa, a utilização de um método deve afetar apenas um objeto em particular; Todos os cachorros podem latir, mas você quer que apenas Bidu dê o latido. Normalmente, uma classe possui diversos métodos, que no caso da classe Cachorro poderiam ser sente(), coma() e morda().</li>
</ul>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#800000;">Mensagem</span></span> é uma chamada a um objeto para invocar um de seus métodos, ativando um comportamento descrito por sua classe. Também pode ser direcionada diretamente a uma classe (através de uma invocação a um método estático).</li>
</ul>
<ul>
<li><span style="color:#800000;"><span style="text-decoration:underline;">Sobrecarga</span></span> é a utilização do mesmo nome para símbolos ou métodos com operações ou funcionalidades distintas. Geralmente diferencia-se os métodos pela sua assinatura. Exemplo: Um método Carro que recebe como parâmetro dois atributos (cor, placa), e outro método Carro que recebe como parâmetro (cor, placa, modelo).</li>
</ul>
<ul>
<li><span style="color:#800000;"><span style="text-decoration:underline;">Herança</span></span> (ou generalização) é o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Há Herança múltipla quando uma sub-classe possui mais de uma super-classe. Essa relação é normalmente chamada de relação &#8220;é um&#8221;. Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, um Humano <strong>é um</strong> mamífero.</li>
</ul>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#800000;">Associação</span></span> é o mecanismo pelo qual um objeto utiliza os recursos de outro. Pode tratar-se de uma associação simples &#8220;usa um&#8221; ou de um acoplamento &#8220;parte de&#8221;. Por exemplo: Um humano usa um telefone. A tecla &#8220;1&#8243; é parte de um telefone.</li>
</ul>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#800000;">Encapsulamento</span></span> consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados. Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável (os botões, o monofone e os sinais de tom).</li>
</ul>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#800000;">Abstração</span></span> é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software.</li>
</ul>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#800000;">Polimorfismo</span></span> é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma assinatura (lista de parâmetros e retorno) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. A decisão sobre qual o método que deve ser selecionado, de acordo com o tipo da classe derivada, é tomada em tempo de execução, através do mecanismo de ligação tardia. No caso de polimorfismo, é necessário que os métodos tenham exatamente a mesma identificação, sendo utilizado o mecanismo de redefinição de métodos. Esse mecanismo de redefinição não deve ser confundido com o mecanismo de sobrecarga de métodos.</li>
</ul>
<ul>
<li><span style="text-decoration:underline;"><span style="color:#800000;">Interface</span></span> é um contrato entre a classe e o mundo externo. Quando uma classe implementa uma interface, ela está comprometida a fornecer o comportamento publicado pela interface.</li>
</ul>
<p> </p>
<p>No próximo post veremos mais detalhadamente sobre classes, o que são e como são utilizadas no processo de desenvolvimento orientado a objetos.</p>
Posted in POO  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unicanet.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unicanet.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unicanet.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unicanet.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unicanet.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unicanet.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unicanet.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unicanet.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unicanet.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unicanet.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unicanet.wordpress.com&blog=3743357&post=11&subd=unicanet&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unicanet.wordpress.com/2008/10/01/poo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8da16acee3f3676b7556af4bbf618610?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">uninet</media:title>
		</media:content>
	</item>
		<item>
		<title>A Linguagem C# (Parte 1)</title>
		<link>http://unicanet.wordpress.com/2008/06/04/linguagem_c_sharp_01/</link>
		<comments>http://unicanet.wordpress.com/2008/06/04/linguagem_c_sharp_01/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 21:21:50 +0000</pubDate>
		<dc:creator>uninet</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://unicanet.wordpress.com/?p=8</guid>
		<description><![CDATA[Introdução
A linguagem C# (c sharp) foi apresentada pela primeira vez em 2000 pela microsoft durante a Developers Conference. Foi concebida e criada principalmente por Anders Hejlsberg antigo Engenheiro da Borland que trabalhou na criação do Turbo Pascal e Delphi.
C# é uma linguagem criada quase do zero, baseada no C++ e Java, contudo o C# NÃO [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unicanet.wordpress.com&blog=3743357&post=8&subd=unicanet&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h2>Introdução</h2>
<p>A linguagem C# (c sharp) foi apresentada pela primeira vez em 2000 pela microsoft durante a Developers Conference. Foi concebida e criada principalmente por Anders Hejlsberg antigo Engenheiro da Borland que trabalhou na criação do Turbo Pascal e Delphi.<br />
C# é uma linguagem criada quase do zero, baseada no C++ e Java, contudo o C# NÃO é uma cópia do Java como muitos dizem por aí. A linguagem C# juntou todas as melhorias em termos de produtividade e grau de programação e fora concebida para ser a melhor linguagem de programação da atualidade. C# possui características únicas ausentes em linguagens como Java, podemos citar a introdução de propriedades como elementos de linguagem e métodos get e set específicos para trabalhar com propriedades.</p>
<p>Algumas das características da Linguagem:</p>
<ul>
<li>Fortemente tipada;</li>
<li>Orientada a Objetos;</li>
<li>Sintaxe similar ao C++ e Java;</li>
<li>Independente de plataforma;</li>
<li>Possui gerenciamento automático de memória;</li>
<li>Linguagem padrão para desenvolvimento de aplicações .NET.</li>
</ul>
<p>Atualmente a linguagem C# se encontra na versão 3.0 na qual introduziu muitos recursos novos. Vejamos algumas das características inseridas nas versões da linguagem:</p>
<h4><strong>C# 2.0 (2005)</strong></h4>
<ul>
<li>Generics (Genéricos)</li>
<li>Anonymous Methods (Métodos Anônimos)</li>
<li>Nullable Types (Tipos Nulos)</li>
<li>Partial Class (Classe parcial)</li>
<li>Iterators</li>
</ul>
<h4><strong>C# 3.0 (2007)</strong></h4>
<ul>
<li>Lambda Expressions</li>
<li>Anonymous Types</li>
<li>Type Inference</li>
<li>Object Serialization</li>
<li>Extension Methods</li>
</ul>
<p>O C# 3.0 diferente da versão 2.0, trouxe recursos inovadores e revolucionários que não estão presentes em nenhuma outra linguagem de programação da atualidade. Muitos destes recursos foram criticados mas o que se sabe é que quem já adorava a versão 2.0 da linguagem agora não consegue mais ficar sem usar os recursos presentes na versão 3.0, e eles são mesmo ótimos.</p>
<h4><strong>A anatomia de um programa básico em C#</strong></h4>
<p>Vejamos um exemplo de um programa em C#:</p>
<p><img class="alignleft size-full wp-image-9" src="http://unicanet.files.wordpress.com/2008/06/screenhunter_01-jun-04-1357.jpg?w=691&#038;h=367" alt="Um programa em C#" width="691" height="367" /></p>
<h3><strong><span style="color:#000000;">Variáveis</span></strong></h3>
<p>Variáveis em C# são declaradas da seguinte forma: &lt;<span style="color:#0000ff;">tipo</span>&gt; &lt;identificador&gt;</p>
<p>Onde:<br />
&lt;<span style="color:#0000ff;">tipo</span>&gt; pode ser int, string, char e etc;<br />
&lt;identificador&gt; é o nome que você deseja dar a variável;</p>
<p>Exemplo:<br />
<span style="color:#0000ff;">int</span> contador;<br />
<span style="color:#0000ff;">string</span> palavras;</p>
<p>Recomenda-se sempre inicializar as variáveis que sejam de tipos primitivos:<br />
Exemplo:<br />
<span style="color:#0000ff;">int</span> contador = 0;<br />
<span style="color:#0000ff;">string</span> palavras = <span style="color:#ff0000;">&#8220;&#8221;</span>;</p>
<p>Obs: (<span style="color:#ff0000;">&#8220;&#8221;</span> pode ser substituido por <span style="color:#33cccc;"><span style="color:#0000ff;">string.</span><span style="color:#333333;">empty</span></span>, uma forma mais elegante de string vazia)</p>
<h4><strong>Escopo de Variáveis</strong></h4>
<p>Quando falamos de escopo nos referimos a área de atuação de um determinado objeto. No mundo da programação a coisa não é diferente e o mesmo vale para as variáveis em C#.</p>
<p>Em  C# o escopo de um objeto é definido quando o mesmo é criado dentro de um &#8220;bloco&#8221;. Um bloco é delimitado pelos caracteres &#8220;{&#8221; e &#8220;}&#8221;. Os elementos que forem declarados dentro desse bloco farão parte desse escopo.</p>
<p>Em C#, as variáveis só podem ser acessadas no escopo em que foram declaradas. Isso significa que se declararmos uma variável dentro de uma função/método, esta variável será visível somente dentro da própria função. A tentativa de referenciar uma variável fora do seu escopo resultará em um erro de compilação.</p>
<p>Escopos podem conter outros escopos. Em outras palavras uma variável declarada num bloco A que contem um Bloco B pode ser referênciada dentro do Bloco B, porem variáveis declaradas no Bloco B não podem ser referênciadas pelo bloco A conforme mostrado abaixo:</p>
<p><img class="size-full wp-image-10" style="vertical-align:middle;" src="http://unicanet.files.wordpress.com/2008/06/screenhunter_02-jun-04-1559.jpg?w=695&#038;h=490" alt="" width="695" height="490" /></p>
<h3><strong>Operadores</strong></h3>
<p>O C# possui diversos operadores usados para vários fins. Abaixo segue uma lista dos mais conhecidos:</p>
<p>Relacionais:</p>
<ul>
<li>== (igualdade)</li>
<li>!= (diferente)</li>
<li>&gt; (Maior)</li>
<li>&lt; (Menor)</li>
<li>&gt;= (Maior ou igual)</li>
<li>&lt;= (Menor ou igual)</li>
</ul>
<p>Atribuição:</p>
<ul>
<li>= (Atribuição)</li>
<li>+= (Atribuição e Adição)</li>
<li>-= (Atribuição e Subtração)</li>
<li>++ (Incremento)</li>
<li>&#8211; (Decremento)</li>
</ul>
<p>Lógico</p>
<ul>
<li>&amp;&amp; (and lógico)</li>
<li>|| (or lógico)</li>
</ul>
<h3><strong>Estruturas Condicionais e de Repetição</strong></h3>
<p><strong>If e Else:</strong> São estruturas usadas para testar condições e tomar decisões que afetam o fluxo da aplicação em tempo de execução. Exmeplo:<br />
if(condicao)<br />
{<br />
escreva(&#8220;é verdadeiro&#8221;);<br />
}<br />
else<br />
{<br />
escreva(&#8220;é falso&#8221;);<br />
}</p>
<p><strong>Operador Ternário:</strong> Similar a esturura If/Else porem é mais resumido e mais confuso. exemplo:<br />
variavel == 10 ? escreva(&#8220;é igual a 10&#8243;) : escreva(&#8220;não é igual a 10&#8243;)</p>
<p><strong>for:</strong> estrutura condicional que permite definir uma condicao de controle e incremento. Exemplo<br />
for(int i = 0; i &lt; 10; i++)<br />
{<br />
// faça alguma coisa<br />
}</p>
<p><strong>while:</strong> estrutura condicional onde o controle de iterações deve ser feito no corpo da estrutura. Exemplo:<br />
while(condicao)<br />
{<br />
// faca alguma coisa<br />
}<br />
<strong> foreach: </strong>permite definir uma variável que receberá uma referência a um elemento de um array. Exemplo:<br />
int[] numeros = {1,2,3,4,5};<br />
foreach(int numero in numeros)<br />
{<br />
escreva(numero);<br />
}</p>
<p>Até o próximo artigo <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/unicanet.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/unicanet.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unicanet.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unicanet.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unicanet.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unicanet.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unicanet.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unicanet.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unicanet.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unicanet.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unicanet.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unicanet.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unicanet.wordpress.com&blog=3743357&post=8&subd=unicanet&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unicanet.wordpress.com/2008/06/04/linguagem_c_sharp_01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8da16acee3f3676b7556af4bbf618610?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">uninet</media:title>
		</media:content>

		<media:content url="http://unicanet.files.wordpress.com/2008/06/screenhunter_01-jun-04-1357.jpg" medium="image">
			<media:title type="html">Um programa em C#</media:title>
		</media:content>

		<media:content url="http://unicanet.files.wordpress.com/2008/06/screenhunter_02-jun-04-1559.jpg" medium="image" />
	</item>
		<item>
		<title>Introdução a plataforma .NET</title>
		<link>http://unicanet.wordpress.com/2008/05/16/introducao-a-plataforma-dot-net/</link>
		<comments>http://unicanet.wordpress.com/2008/05/16/introducao-a-plataforma-dot-net/#comments</comments>
		<pubDate>Fri, 16 May 2008 19:53:42 +0000</pubDate>
		<dc:creator>uninet</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[Plataforma]]></category>
		<category><![CDATA[Plataforma .NET]]></category>

		<guid isPermaLink="false">http://unicanet.wordpress.com/?p=4</guid>
		<description><![CDATA[Mas afinal o que é a plataforma .NET?
Microsoft .NET é uma iniciativa da Microsoft que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações. Todo e qualquer código gerado para .NET, pode ser executado em qualquer dispositivo ou plataforma que possua um framework: a &#8220;Plataforma .NET&#8221; (.NET Framework). O programador deixa de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unicanet.wordpress.com&blog=3743357&post=4&subd=unicanet&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h3><span style="color:#808080;">Mas afinal o que é a plataforma .NET?</span></h3>
<p><strong>Microsoft .NET</strong> é uma iniciativa da <a title="Microsoft" href="http://pt.wikipedia.org/wiki/Microsoft">Microsoft</a> que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações. Todo e qualquer código gerado para <strong>.NET</strong>, pode ser executado em qualquer dispositivo ou plataforma que possua um <a title="Framework" href="http://pt.wikipedia.org/wiki/Framework">framework</a>: a &#8220;Plataforma .NET&#8221; (.NET Framework). O programador deixa de escrever código para um sistema ou dispositivo específico, e passa a escrever para a plataforma <strong>.NET.</strong></p>
<p>A plataforma <strong>.NET</strong> é executada sobre uma CLR (<a title="Common Language Runtime" href="http://pt.wikipedia.org/wiki/Common_Language_Runtime">Common Language Runtime</a> — Ambiente de Execução Independente de Linguagem) interagindo com uma Colecção de Bibliotecas Unificadas, que juntas são o próprio <a title="Framework" href="http://pt.wikipedia.org/wiki/Framework">framework</a>. Esta CLR é capaz de executar, atualmente, mais de vinte diferentes linguagens de programação, interagindo entre si como se fossem uma única linguagem.</p>
<p>Abaixo podemos ver alguns exemplos de linguagens suportadas pela CLR:</p>
<ul>
<li>C++</li>
<li>C#</li>
<li>Visual Basic</li>
<li>Lua</li>
<li>Smalltalk</li>
<li>Phyton</li>
<li>Pearl</li>
<li>Cobol</li>
<li>Eiffel</li>
<li>Fortran</li>
<li>Java</li>
<li>Object Pascal</li>
</ul>
<p>A plataforma <strong>.NET</strong> se baseia no conceito JIT (Just-in-Time), os programas desenvolvidos para ela são duplo-compilados, ou seja são compilados duas vezes, uma na distribuição e outra na execução.</p>
<p>Um programa é escrito em qualquer uma das mais de vinte linguagens de programação disponível para a plataforma, o código fonte gerado pelo programador é então compilado pela linguagem escolhida gerando um código intermediário em uma linguagem chamada MSIL (Microsoft Intermediate Language).<br />
( <em>fonte:wikipédia</em> )</p>
<h3><span style="color:#808080;">Por que usar a plataforma .NET?</span></h3>
<p>A plataforma .NET oferece um ambiente completo para o desenvolvimento de aplicações para os mais variados tipos de dispositivos ou fins. Eis algumas das vantagens de se trabalhar com a plataforma .NET:</p>
<ul>
<li>Solução única para desenvolvimento de aplicativos;</li>
<li>Suporte a várias linguagens;</li>
<li>Desenvolvimento rápido de aplicativos;</li>
<li>Independênte de Sistema Operacional;</li>
</ul>
<p>Enfim, vimos que a plataforma .NET é um ambiente completo para desenvolvimento de aplicações coorporativas de alta performance e que tem crescido muito.</p>
<p>É isso ai, por enquanto é só. Assim que eu tiver mais tempo eu termino de completar o artigo com links e outras informações.</p>
<p>Até a próxima.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/unicanet.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/unicanet.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/unicanet.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/unicanet.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/unicanet.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/unicanet.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/unicanet.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/unicanet.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/unicanet.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/unicanet.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/unicanet.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/unicanet.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=unicanet.wordpress.com&blog=3743357&post=4&subd=unicanet&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://unicanet.wordpress.com/2008/05/16/introducao-a-plataforma-dot-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/8da16acee3f3676b7556af4bbf618610?s=96&#38;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">uninet</media:title>
		</media:content>
	</item>
	</channel>
</rss>