Download Visual Studio 2011 Beta
http://www.microsoft.com/visualstudio/11/pt-br/downloads
quinta-feira, 22 de março de 2012
quarta-feira, 21 de março de 2012
Windows Server 8 Beta
Windows Server 8 Beta
A próxima versão do Windows Server, o Windows Server 8, oferece a provedores de hospedagem e de negócios uma infraestrutura escalável, dinâmica, otimizada para a nuvem e preparada para vários locatários. Ela oferece conexão unificada segura e permite que os profissionais de TI atendam às necessidades de negócio com mais rapidez e eficiência.
» Baixe o Windows Server 8 Beta
Capacitação Microsoft - Grátis
• A MVA (Microsoft Virtual
Academy) já conta com mais de nove roteiros disponíveis para capacitação grátis
em português e muitas outras estão em produção.
Faça os cursos online, acumule pontos, faça autoavaliações e melhore ainda mais suas habilidades de desenvolvimento e TI. Não esqueça de se cadastrar como Brasil.
Faça os cursos online, acumule pontos, faça autoavaliações e melhore ainda mais suas habilidades de desenvolvimento e TI. Não esqueça de se cadastrar como Brasil.
SQL Server 2012
SQL Server 2012
E para os que estavam ansiosos como eu, trago uma boa notícia! A Microsoft anunciou publicamente no dia 06/03 que o SQL Server 2012 foi liberado para fabricação (RTM) e estará disponível a partir do dia 1º de abril. Caso você já queira testar e homologar a solução, é possível fazer download do SQL Server 2012 Evaluation Edition no link: http://bit.ly/yAoicN
Explore as novas funcionalidades que acompanham a nova versão! AlwaysOn para ambientes de missão crítica, ColumnStore Index para consultas até 10 vezes mais performáticas, PowerPivot e BI Semantic Model para um BI mais fácil, robusto e flexível, e PowerView para relatórios interativos e com excelente design em poucos cliques. E as novidades não param por aqui. Confira essas e outras novidades em nossos canais: http://bit.ly/yJLP3v
Fique de olho no nosso calendário de eventos. Estaremos passando em várias cidades explorando e apresentando cada uma das funcionalidades mencionadas. Não deixe de participar! Até a próxima! Grande abraço! ;)
E para os que estavam ansiosos como eu, trago uma boa notícia! A Microsoft anunciou publicamente no dia 06/03 que o SQL Server 2012 foi liberado para fabricação (RTM) e estará disponível a partir do dia 1º de abril. Caso você já queira testar e homologar a solução, é possível fazer download do SQL Server 2012 Evaluation Edition no link: http://bit.ly/yAoicN
Explore as novas funcionalidades que acompanham a nova versão! AlwaysOn para ambientes de missão crítica, ColumnStore Index para consultas até 10 vezes mais performáticas, PowerPivot e BI Semantic Model para um BI mais fácil, robusto e flexível, e PowerView para relatórios interativos e com excelente design em poucos cliques. E as novidades não param por aqui. Confira essas e outras novidades em nossos canais: http://bit.ly/yJLP3v
Fique de olho no nosso calendário de eventos. Estaremos passando em várias cidades explorando e apresentando cada uma das funcionalidades mencionadas. Não deixe de participar! Até a próxima! Grande abraço! ;)
segunda-feira, 19 de março de 2012
ARRAY - C#
Uma matriz é uma
estrutura de dados que contém diversas variáveis do mesmo tipo. Uma matriz é declarada com um tipo:
type[] arrayName;
Os exemplos a seguir criar Simples-dimensionais,
multidimensionais e matrizes irregulares:
class TestArraysClass
{
static void Main()
{
// Declare a single-dimensional array
int[] array1 = new int[5];
// Declare and set array element values
int[] array2 = new int[] { 1, 3, 5,
7, 9 };
// Alternative syntax
int[] array3 = {
1, 2, 3, 4, 5, 6 };
// Declare a two dimensional array
int[,]
multiDimensionalArray1 = new int[2, 3];
// Declare and set array element values
int[,]
multiDimensionalArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };
// Declare a jagged array
int[][]
jaggedArray = new int[6][];
// Set the values of the first array in the jagged
array structure
jaggedArray[0] = new int[4] { 1, 2, 3, 4 };
}
}
Visão geral
do array
Uma matriz possui as seguintes
propriedades:
·
Uma matriz pode ser Unidimensionais, multidimensionais ou Jagged.
·
O valor padrão de elementos de matriz numérica
estiver definida como zero e elementos de referência são definidos como null.
· Uma matriz jagged é uma matriz de matrizes e,
portanto, seus elementos são tipos de referência e são inicializados para null.
·
As matrizes são indexado de zero: uma matriz com n elementos é indexada a partir de 0 paran-1.
·
Elementos de matriz podem ser de qualquer tipo,
incluindo o tipo de matriz.
· Tipos de matriz são tipos de
referência derivado do tipo base abstrato Array. Como
esse tipo implementa IEnumerable e IEnumerable(Of T),
você pode usar foreach a
iteração em todos os conjuntos em C#.
Message Queuing to Windows Communication Foundation
Message Queuing to Windows Communication Foundation
Este exemplo demonstra como um aplicativo Message Queuing (MSMQ)
pode enviar uma mensagem MSMQ para um serviço Windows Communication Foundation
(WCF). O serviço é um aplicativo
de console auto-hospedado para que você possa observar o serviço de recebimento
de mensagens em fila.
O contrato de serviço é
IOrderProcessor , que define um serviço de uma maneira,
isto é adequado para uso com as filas. Uma
mensagem de MSMQ não tem um cabeçalho de ação, de modo que não é possível para
mapear diferentes mensagens MSMQ para contratos de operação
automaticamente.Portanto, só pode haver um contrato de operação. Se você quiser definir mais de um
contrato de operação para o serviço, o aplicativo deve fornecer informações a
respeito de qual cabeçalho na mensagem MSMQ (por exemplo, o rótulo ou
CorrelationId) pode ser usada para decidir qual o contrato de operação para
despachar. Isto é demonstrado na Demux
personalizado .
A mensagem MSMQ não contém
informações a respeito de que os cabeçalhos são mapeados para os diferentes
parâmetros do contrato de operação. O
parâmetro é do tipo MSMQMessage (MSMQMessage <T> ), que contém a mensagem MSMQ
subjacente. O tipo "T"
no MSMQMessage (MSMQMessage <T> classe) representa os dados que é
serializado no corpo da mensagem MSMQ.Nesta amostra, o
PurchaseOrder tipo é serializado no corpo da mensagem
MSMQ.
O código de exemplo a seguir
mostra o contrato de serviço do serviço de processamento de pedidos.
// Define a service contract.
[ServiceContract(Namespace =
"http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
[OperationContract(IsOneWay = true, Action = "*")]
void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}
O serviço é
auto-hospedado. Ao usar MSMQ, a
fila utilizado deve ser criado com antecedência. Isto pode ser feito manualmente ou
através de código. Neste exemplo,
o serviço verifica a existência da fila e cria-se necessário. O nome da fila é lido do arquivo de
configuração.
public static void Main()
{
// Get the MSMQ queue name from the application settings in
// configuration.
string queueName = ConfigurationManager.AppSettings["queueName"];
// Create the MSMQ queue if necessary.
if (!MessageQueue.Exists(queueName))
MessageQueue.Create(queueName, true);
…
}
O serviço cria e abre um ServiceHost para o
OrderProcessorService , como mostrado no seguinte código de
exemplo.
using (ServiceHost serviceHost = new ServiceHost(typeof(OrderProcessorService)))
{
serviceHost.Open();
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.ReadLine();
serviceHost.Close();
}
O nome da
fila MSMQ é especificado em uma secção appSettings do ficheiro de configuração,
como mostrado no exemplo de configuração seguinte.
<appSettings>
<add key="orderQueueName" value=".\private$\Orders" />
</ AppSettings>
A aplicação cliente é uma aplicação que usa o MSMQ Enviar método para enviar uma mensagem
durável e transacional para a fila, como mostrado no seguinte código de exemplo.
//Connect to the queue.
MessageQueue orderQueue = new MessageQueue(ConfigurationManager.AppSettings["orderQueueName"]);
// Create the purchase order.
PurchaseOrder po = new PurchaseOrder();
po.CustomerId = "somecustomer.com";
po.PONumber = Guid.NewGuid().ToString();
PurchaseOrderLineItem lineItem1 = new PurchaseOrderLineItem();
lineItem1.ProductId = "Blue Widget";
lineItem1.Quantity = 54;
lineItem1.UnitCost = 29.99F;
PurchaseOrderLineItem lineItem2 = new PurchaseOrderLineItem();
lineItem2.ProductId = "Red Widget";
lineItem2.Quantity = 890;
lineItem2.UnitCost = 45.89F;
po.orderLineItems = new PurchaseOrderLineItem[2];
po.orderLineItems[0] = lineItem1;
po.orderLineItems[1] = lineItem2;
// Submit the purchase order.
Message msg = new Message();
msg.Body = po;
//Create a transaction scope.
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
orderQueue.Send(msg, MessageQueueTransactionType.Automatic);
// Complete the transaction.
scope.Complete();
}
Console.WriteLine("Placed the order:{0}", po);
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();
Quando você
executar o exemplo, as atividades do cliente e do serviço são exibidos em tanto
o serviço e cliente Windows do console. Você
pode ver o serviço de receber mensagens do cliente. Pressione a tecla ENTER em cada janela
de console para desligar o serviço eo cliente. Observe que, como filas está em uso, o
cliente eo serviço não precisa ser instalado e funcionando ao mesmo tempo. Por exemplo, você poderia executar o
cliente, desligá-lo, e então iniciar o serviço e ainda receber suas mensagens.
domingo, 18 de março de 2012
Trocar mensagens com Endpoints WCF e aplicativos de enfileiramento de mensagens
Exchange Messages with WCF
Endpoints and Message Queuing Applications
Você pode integrar existentes Message Queuing (MSMQ)
aplicações com o Windows Communication Foundation (WCF) aplicativos usando a
integração MSMQ ligação para converter mensagens MSMQ para mensagens do WCF. Isto permite-lhe pôr em aplicações
receptor de clientes MSMQ do WCF, bem como chamada em serviços WCF a partir de
aplicações MSMQ remetente.
Nesta seção, vamos
explicar como usar MsmqIntegrationBinding para a comunicação entre na fila (1)
um cliente WCF e um serviço de aplicação MSMQ escrito usando System.Messaging e
(2) um aplicativo cliente MSMQ e um serviço WCF.
Para um exemplo
completo que demonstra como chamar um aplicativo receptor MSMQ de um cliente
WCF, consulte o link Windows Communication
Foundation para o enfileiramento de mensagens.
Para um exemplo
completo que demonstra como chamar um serviço WCF de um cliente MSMQ, consulte
o link enfileiramento de
mensagens para o Windows Communication Foundation.
Para criar um serviço WCF que recebe
mensagens de um cliente MSMQ
1. Definir uma interface que define o contrato de
serviço para o serviço WCF que recebe as mensagens na fila de um aplicativo
remetente MSMQ, como mostrado no seguinte exemplo de código.
[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
[OperationContract(IsOneWay = true, Action = "*")]
void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}
public class OrderProcessorService : IOrderProcessor
{
[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
public void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> ordermsg)
{
PurchaseOrder po = (PurchaseOrder)ordermsg.Body;
Random statusIndexer = new Random();
po.Status = (OrderStates)statusIndexer.Next(3);
Console.WriteLine("Processing {0} ", po);
}
public static void Main()
{
// Get base address from appsettings in configuration.
Uri baseAddress = new Uri(ConfigurationManager.AppSettings["baseAddress"]);
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(IOrderProcessor), baseAddress))
{
// Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("The service is running in the following account: {0}", WindowsIdentity.GetCurrent().Name);
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
}
}3. Criar um arquivo de configuração que especifica o MsmqIntegrationBinding.
<configuration>
<appSettings>
<!-- use appSetting to configure MSMQ queue name -->
<add key="orderQueueName" value=".\private$\Orders" />
<add key="baseAddress" value="http://localhost:8000/ServiceModelSamples/Service" />
</appSettings>
<system.serviceModel>
<services>
<service
name="Microsoft.ServiceModel.Samples.OrderProcessorService" >
<endpoint address="msmq.formatname:DIRECT=OS:.\private$\Orders"
binding="msmqIntegrationBinding"
bindingConfiguration="OrderProcessorBinding"
contract="Microsoft.ServiceModel.Samples.IOrderProcessor">
</endpoint>
</service>
</services>
<bindings>
<msmqIntegrationBinding>
<binding name="OrderProcessorBinding" >
<security mode="None" />
</binding>
</msmqIntegrationBinding>
</bindings>
</system.serviceModel >
</configuration>
// Create the purchase order.
PurchaseOrder po = new PurchaseOrder();
po.customerId = "somecustomer.com";
po.poNumber = Guid.NewGuid().ToString();
PurchaseOrderLineItem lineItem1 = new PurchaseOrderLineItem();
lineItem1.productId = "Blue Widget";
lineItem1.quantity = 54;
lineItem1.unitCost = 29.99F;
PurchaseOrderLineItem lineItem2 = new PurchaseOrderLineItem();
lineItem2.productId = "Red Widget";
lineItem2.quantity = 890;
lineItem2.unitCost = 45.89F;
po.orderLineItems = new PurchaseOrderLineItem[2];
po.orderLineItems[0] = lineItem1;
po.orderLineItems[1] = lineItem2;
OrderProcessorClient client = new OrderProcessorClient("OrderResponseEndpoint");
MsmqMessage<PurchaseOrder> ordermsg = new MsmqMessage<PurchaseOrder>(po);
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
client.SubmitPurchaseOrder(ordermsg);
scope.Complete();
}
Console.WriteLine("Order has been submitted:{0}", po);
//Closing the client gracefully closes the connection and cleans up resources.
client.Close();
Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();
Assinar:
Comentários (Atom)