Archive for category .net
Restfulie 0.5.0 has been released!
Posted by Mauricio Aniche in .net, REST, restfulie on 12/07/2010
Mauricio Aniche with contributions from Pedro Reys and Felipe Seixas have released the Restfulie’s C# Server 0.5 support on top of Asp.Net Mvc 2.
As new versions of Restfulie come up, it becomes more clear which extension points are important and should be easy to be used, the media type and http results are two of those aspects that Restfulie C# tries to help the developers by allowing them to write classes focused on one task only as we shall see here.
A simple C# Item model can be rendered in your controller as in ruby and java:
[ActAsRestfulie]
public class ItemsController : Controller
{
private MemoryDatabase database;
public ItemsController()
{
database = new MemoryDatabase();
}
public virtual ActionResult Index()
{
return new Ok(database.List());
}
public virtual ActionResult Get(int id)
{
var item = database.List().Where(i => i.Id == id).SingleOrDefault();
if (item == null) return new NotFound();
return new OK(item);
}
}
If you want to add some link relations to any resource, simply let your model implement IBehaveAsResource and add the SetRelations method:
public class Item : IBehaveAsResource
{
public void SetRelations(Relations relations)
{
relations.Named("self").Uses().Get(Id);
relations.Named("origin").At("http://www.some-fabric.com/");
}
}
The http GET request to an item with application/json in the accept header will now return:
{"Id":1,"Name":"Pencil","Price":"1.50",
"links":[{"rel":"self","href":"http://localhost:1198/Items/1"},
{"rel":"origin","href":"http://www.some-fabric.com/"}]}
But we know relations work in different ways with different media types (and the Link header) so you might want to add your own media type marshaller/unmarshaller, which is capable of understanding a new media type. Restfulie C# comes with support for application/json, application/xml and application/atom+xml.
If you want to add your own result, simply implement a RestfulieResult using a series of decorators to your new result:
public class OK : RestfulieResult
{
public OK() { }
public OK(object model) : base(model) { }
public override ResultDecorator GetDecorators()
{
return new StatusCode((int)HttpStatusCode.OK,
new ContentType(MediaType.Synonyms.First(),
new Content(BuildContent())));
}
}
This release documentation is already out and the download can also be done at github.
Restfulie C# requires the dot net framework 3.5+, and uses castle in order to create dynamic proxy for setting up relations.
.NET Architects Day 2009 foi um sucesso!
Posted by Mauricio Aniche in .net on 01/07/2009
Participei nesse último sábado (27/06) no .NET Architects Day, evento organizado pelo grupo de arquitetura focado em .NET, o .NET Architects, liderado pelo Giovanni Bassi. O evento foi muito além do que eu esperava! A organização foi perfeita, a localização era perto do metrô, o auditório era muito bom, e o coffee break estava delicioso!
E o conteúdo? Devo dizer também que todas as palestras foram muito boas! O nível foi altíssimo e a plateia fez perguntas muito inteligentes em todas elas. Parabéns ao Giovanni Bassi, Juliano Oliveira, Vitor Cavalcante e Leandro Daniel pelas palestras.
A minha palestra sobre testes automatizados também foi legal, acho que consegui cumprir meu objetivo que era a de motivar todos a testar, e como diria Bryan Lyles, “test all the fucking time”! Obtive um feedback muito bom dos participantes, e fico feliz com isso, já que dessa maneira posso melhorar ainda mais a palestra para as próximas oportunidades.
Sobre os vídeos, eles serão publicados em breve. Os slides você pode ver no slideshare aqui.
Enfim, obrigado a todos os organizadores e a todos que foram ao evento. Ano que vem vai ser melhor ainda! Que venha o DNAD 2010!
.NET Architects Day ‘09
Posted by Mauricio Aniche in .net on 07/06/2009
A comunidade .NET Architects está organizando um evento de arquitetura de software em .NET, no dia 27/06 na Unip Tatuapé.
As palestras estão muito boas, serão abordados DDD (Domain-Driven Design), Injeção de Dependência, ASP.NET MVC, ORMs (com NHibernate) e Testes Automatizados. Eu serei palestrante e falarei sobre testes automatizados!
O evento custa apenas R$ 50,00! Corra, as inscrições estão acabando!
Mais informações em http://www.dotnetarchitects.net/dnad2009
Mundo .NET: Persistência de Dados com Ibatis.NET
Posted by Mauricio Aniche in .net on 24/12/2008
Meu artigo sobre persistência de dados com Ibatis.NET foi publicado na revista Mundo .NET desse mês de dezembro! Espero ter ajudado, explicando como usar esse framework, tão pouco conhecido, mas funciona muito bem, e é MUITO útil!
Tenho diversos projetos em produção, utilizando tanto a versão pra Java quanto a versão pra .NET, e ambos funcionam perfeitamente! Sobre performance, posso afirmar também que dois desses projetos recebem milhares de visitas por dia e o Ibatis está dando conta muito bem. Não sei se posso divulgar em quais projetos utilizei, mas vou perguntar e posto aqui!
Sobre o projeto de exemplo que está na revista, recebi alguns e-mails perguntando a URL de download do mesmo, e ele se encontra em http://www.aniche.com.br/mundotnet/ibatis.zip. Caso encontre algum problema no exemplo, por favor, me comunique!
Estou à disposição para quaisquer outras dúvidas sobre o framework. Basta apenas postar um comentário nesse post, ok?
Espero que gostem!
(PS: Desculpem por demorar a postar um tópico para o artigo!)