Arquivo da tag: .net

Desenvolvimento de Web APIs evolui no ASP.NET MVC 4

Fonte: Elemar Jr./InfoQ

A nova versão do framework para desenvolvimento de aplicativos Web da Microsoft, o ASP.NET MVC 4, amplia muito o suporte ao desenvolvimento de aplicações Web API. O framework, agora integralmente open source e disponível no Codeplex, possibilita o desenvolvimento de serviços RESTful com pouco esforço.

Entre as novidades na versão 4, destacam-se a facilidade para criar rotas para recursos (evitando colisão com rotas padrões MVC), a escrita de Actions para cada um dos métodos HTTP, o suporte nativo ao fornecimento de objetos em formato JSON e XML, além do suporte ampliado a URLs de consulta compatíveis com OData.

O ASP.NET MVC Web API permite um novo modelo de desenvolvimento web, em que o servidor provê apenas conteúdo e a geração da apresentação ocorre inteiramente no browser. Ou seja, no lugar de prover o HTML pronto, o servidor pode entregar um composto HTML + JavaScript, deixando que os dados sejam requisitados conforme demanda, via Ajax, para um serviço RESTful. (Importante destacar que o template padrão para aplicações ASP.NET MVC já possui referências para JQuery.) A possibilidade de gerar, automaticamente, respostas em formato JSON facilita consideravelmente a manipulação de código JavaScript.

As novas funcionalidades já são suportadas tanto no novo Visual Studio 11 (ainda beta e disponível para download na versão Ultimate), quanto no Visual Studio 2010 (mediante instalação).

Conforme noticiamos aqui, embora o ASP.NET MVC 4 não esteja completo, a Microsoft já recomenda sua utilização em produção. A Microsoft disponibilizou um mini-tutorial sobre o framework, com artigos e vídeos.

Microsoft abre código de ASP.NET Web API e ASP.NET Web Pages

Fonte: IMasters

Com informações de The H

A Microsoft abriu o código da ASP.NET Web API e da ASP.NET Web Pages sob a licença Apache 2.0. A Web API e a Web Pages, também conhecida como Razor, encontraram um novo lar na plataforma de hospedagem CodePlex da Microsoft.

Agora, desenvolvedores que não são da Microsoft podem contribuir com pacotes e com código nos utilitários de desenvolvimento web – entretanto, isso ainda será avaliado pelos desenvolvedores da Microsoft.

De acordo com Scott Guthrie, vice-presidente da divisão de desenvolvimento da Microsoft, a empresa tomou um caminho semelhante com o Windows Azure SDK e afirma ter sido uma experiência positiva. A iniciativa não muda o status das três ferramentas como sendo totalmente suportadas pelos projetos da Microsoft.

A ASP.NET Web API é um framework para escrever aplicações RESTful usando a plataforma .NET, que teve sua origem na Windows Communication Foundation. A Razor/ASP.NET Web Pages é uma linguagem de template baseada em C# que pode ser usada para combinar código de servidor com HTML para criar páginas geradas dinamicamente.

Incorporando funções nativas do Windows em seu projeto .NET

Hoje gostaria de mostrar como importar algumas funções nativas do Windows em seu aplicativo usando C#.NET e mostrar como utilizar using de maneira diferente.

Muitas pessoas precisam acessar funções nativas do sistema operacional Windows e para isso é necessário fazer algumas importações acima do método. Mas antes de começar a mostrar, é necessário usar algumas classes do Framework.NET.

using System;
using System.Globalization;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Text;

Junto desses “using” descritos acima, existe uma maneira nova de criar variável local que assume os dados da classe. Primeiro se coloca o nome igualando ao da classe que deseja usar:

using SysComTypes = System.Runtime.InteropServices.ComTypes;

Note que a classe de System.Runtime.InteropServices.ComTypes foi atribuída para a variável SysComTypes. Essa variável pode ser usada dentro da classe em qualquer lugar. É uma maneira interessante para uso de variáveis locais.

Passando agora para a parte de importação nativa do sistema operacional, você precisa colocar no mínimo três linhas de código para cada importação dependendo do método. Em exemplo, para verificar se o login do usuário precisa do código abaixo:

//
// advapi32.dll
//
[DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, LogOnType dwLogonType, LogOnProvider dwLogonProvider, out IntPtr phToken);
[DllImport("advapi32", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool LogonUser(string lpszUsername, string lpszDomain, IntPtr lpszPassword, LogOnType dwLogonType, LogOnProvider dwLogonProvider, out IntPtr phToken);

A dll nativa é a advapi32 do Windows. Existem outras interfaces disponíveis dessa dll, porém não são muito utilizadas.

Para a dll kernel32 existem outros métodos específicos como pegar a informação do HD local, verificar o status da thread, encontrar arquivo, pegar a memória da máquina e muito mais. Veja alguns exemplos abaixo:

 
//
// kernel32.dll
//
[DllImport("kernel32", BestFitMapping = false, CharSet = CharSet.Unicode, SetLastError = true, ThrowOnUnmappableChar = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool GetVolumeInformation(string lpRootPathName, StringBuilder lpVolumeNameBuffer, int nVolumeNameSize, out int lpVolumeSerialNumber, out int lpMaximumComponentLength, out int lpFileSystemFlags, StringBuilder lpFileSystemNameBuffer, int nFileSystemNameSize);
[DllImport("kernel32", SetLastError = true)]
internal static extern ExecutionState SetThreadExecutionState(ExecutionState esFlags);
[DllImport("kernel32", BestFitMapping = false, CharSet = CharSet.Auto, SetLastError = true, ThrowOnUnmappableChar = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool FindNextFile(SafeFindFileHandle hndFindFile, [In, Out] FindData lpFindFileData);
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern void GlobalMemoryStatus(NativeMemoryStatus lpBuffer);
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool GlobalMemoryStatusEx(NativeMemoryStatusEx lpBuffer);

Bom, o objetivo foi mostrar apenas como colocar a chamada de funções ou métodos nativos do sistema operacional. Em um próximo artigo posso mostrar como usar esses métodos específicos.

Além dessas dlls, existem outras como oleaut32, setupapi, shell32, shlwapi e ole32.dll. Todas essas existem métodos próprios para uso na linguagem C#.NET ou qualquer outra do framework .NET.

Espero que tenha gostado e qualquer dúvida pode entrar em contato pelo site.

Fonte: Maurício Júnor/IMasters

MonoDevelop 2.8 para C# e .NET está disponível para desenvolvedores

A equipe do MonoDevelop liberou a versão 2.8 de seu IDE (Integrated Development Environment) open source para programação em C# e em outras linguagens .NET. Além de trazer mudanças no editor do código-fonte e novas funções para gerenciamento de projeto, o MonoDevelop 2.8 vem principalmente com mudanças para desenvolvedores Mac.

No Mac OS X, o MonoDevelop adiciona suporte para Xcode 4 e integra o serviço de testes do iOS TestFlight. Os pacotes para o MonoTouch e SDK do iOS agora podem ser configurados individualmente. Também há novos modelos de projetos para as plataformas iPad e iPhone, junto com suporte para iOS 5 Storyboards com o objetivo de facilitar o controle de visualização para desenvolvedores de aplicativos.

Além disso, a nova versão vem com um novo editor para criar esquemas de cores para destaque de sintaxe, junto com um novo esquema de cores padrão. Para o gerenciamento de projeto, o IDE possui um novo diálogo Edit References e revisou as visualizações do Class e do Document Outline.

Mais informações sobre a atualização podem ser encontradas nas notas de lançamento. O MonoDevelop 2.8 está disponível para download a partir do site do projeto e do GitHub. O IDE foi feito para assegurar que um base de código unificada ao portar aplicativos .NET criados com Visual Studio para Linux e para Mac OS X.

Texto publicado originalmente no The H

Fonte: IMaster