Mai 25

image Um dos problemas do desenvolvimento utilizando tecnologias Microsoft são os custos elevadíssimos de alojamento de sites com esta tecnologia, principalmente no que toca a Base de dados SQL Server. Recentemente descobri um site (através do ASPAlliance) na Roménia, o www.livehosting.ro que oferece pacotes de alojamento a partir de  aproximadamente 22€, na versão mais básica.


Ler o resto do artigo »

Abr 03

Marcas Technorati: , , ,

O Microsoft Office Sharepoint Server 2007 é cada vez mais um dos produtos de eleição para construir sites e plataformas de colaboração profissionais. Este produto é consituído por um conjunto bastante alargado de sub-produtos/ sub-áreas. Para quem nunca utilizou a versão anterior Sharepoint 2003 nem o MCMS (Microsoft Content Management Server), que evoluiram para uma versão única, o MOSS 2007, a curva de aprendizagem é bastante grande. A melhor forma de aprender rapidamente uma tecnologia, na minha opinião, é ver alguns vídeos do tipo “How-to” para ficarmos rapidamente com uma noção do que temos disponível, e de como podemos iniciar desenvolvimentos simples.

A Microsoft tem disponível um conjunto de vídeos sobre o MOSS 2007, de algumas conferências, e alguns screencasts.


Ler o resto do artigo »

Mar 19

image Na MIX 08 foram lançadas oficialmente as "Silverlight Tools Beta 1 for Visual Studio 2008", que permitem desenvolver Silverlight 2.0 no Visual Studio 2008.

 

 

Este pacote contém vários items:

  • Silverlight 2 Beta 1
  • Silverlight 2 SDK Beta 1
  • KB949325 for Visual Studio 2008
  • Silverlight Tools Beta 1 for Visual Studio 2008

O download deste pacote de instalação pode ser feito através do link:

Ler o resto do artigo »

Mar 17

Artigo Principal - As Novas Funcionalidades do C# 3.0

image Hoje vou falar-vos de outra funcionalidade introduzida com o C# 3.0 que são os Object Initializers, que permitem inicializar objectos, de uma forma mais compacta e rápida que o tradicional.

Com esta funcionalidade podemos inicializar as propriedades de um objecto logo na declaração do mesmo, utilizando chavetas, como vão poder ver no exemplo seguinte.

Neste exemplo, criámos uma classe Citizen com algumas propriedades. Na função main, temos primeiro a declaração do objecto bill da maneira tradicional, e depois a declaração do objecto steve, através dos object initializers:

using System;

namespace ConsoleApplication
{

    class Program
    {
        static void Main(string[] args)
        {
            Citizen bill = new Citizen();
            bill.Age = 40;
            bill.FirstName = "Bill";
            bill.LastName = "Gates";
            bill.Gender = Genders.Male;
            bill.PrintInfo();

            Citizen steve = new Citizen() {FirstName = "Steve", LastName = "Jobs", Age = 43, Gender = Genders.Male};
            steve.PrintInfo();

            Console.ReadKey();
        }
    }

    public enum Genders
    {
        Male = 0,
        Female = 1
    }

    public class Citizen
    {

        private string firstName;
        private int age;
        private string lastName;
        private Genders gender;

        public string FirstName
        {
            get { return firstName; }
            set { firstName = value; }
        }

        public int Age
        {
            get { return age; }
            set { age = value; }
        }

        public string LastName
        {
            get { return lastName; }
            set { lastName = value; }
        }

        public Genders Gender
        {
            get { return gender; }
            set { gender = value; }
        }

        public void PrintInfo()
        {
            Console.WriteLine("Name: {0} \nLastName: {1} \nAge: {2} \nGender: {3}", firstName, lastName, age, gender);
        }
    }
}

Ler o resto do artigo »

Mar 13

Artigo Principal - As Novas Funcionalidades do C# 3.0

image Uma expressão Lambda é uma função anónima que pode conter expressões e declarações, e pode ser usada para criar delegates ou expression tree types.

As expressões Lambda usam o operador =>. O lado esquerdo do operador lambda especifica os parâmetros de entrada  e o lado direito especifica a expressão. Por exemplo, a expressão Lambda x=>x*x .

Passemos a um exemplo prático:

using System;

namespace ConsoleApplication
{
    //Declare a Delegate
    delegate int Del(int x);

    class Program
    {
        static void Main(string[] args)
        {
            //Create the Lambda Expression
            Del AoQuadrado = x => x*x;

            Console.WriteLine(AoQuadrado(4));

            Console.ReadKey();
        }
    }
}

Como podem ver pelo exemplo anterior associámos a expressão Lambda a um delegate type criado.

Ler o resto do artigo »

Mar 11

Marcas Technorati: , , ,

image Até aparecer o C# 2.0, a única forma de declarar delegates, era utilizar métodos normais, com um nome atribuido, que eram declarados como métodos separados.

Os métodos anónimos são essencialmente um maneira de passar um bloco de código como parâmetro, utilizando um delegate.

A utilização de métodos anónimos permite reduzir o código, pois não necessitamos de criar um método separado, logo o código fica mais limpo e intuitivo.

A especificação de um bloco de código como delegate pode ser muito útil em situações em que criar um método é desnecessário. Por exemplo no código seguinte, em que lançamos uma nova thread:

void StartThread()
{
    System.Threading.Thread t1 = new System.Threading.Thread
      (delegate()
      {
          System.Console.Write("Hello, ");
          System.Console.WriteLine("World!");
      });
    t1.Start();
}

Ler o resto do artigo »

Mar 09

Hoje enquanto andava pelo youtube à procura de vídeos sobre o Visual Studio 2008 encontrei um bastante "interessante/controverso", que resolvi partilhar convosco.

Top Ten Reasons you Shouldn’t Upgrade to Visual Studio 2008

You need to a flashplayer enabled browser to view this YouTube video

Ler o resto do artigo »

Mar 07

A Microsoft disponibilizou no passado dia 5 de Março, o Internet Explorer 8.

image

No site oficial do Internet Explorer 8, podemos efectuar o download da sua versão beta 1:

http://www.microsoft.com/windows/products/winfamily/ie/ie8/getitnow.mspx

Esta versão traz um conjunto de novas funcionalidades, que estão apresentadas como vídeos na página do browser. Destas funcionalidades destaco as seguintes:

Ler o resto do artigo »

Mar 06

Marcas Technorati: , , , ,

A Microsoft disponibilizou recentemente uma versão revista do livro “The Developer Highway Code”.

image

Confesso que a capa tem um sinal muito interessante “REDUCE COFFEE NOW” (Reduza o Café agora). Como é que isto será possível? :) Quero saber…

Ler o resto do artigo »

Mar 05

Marcas Technorati: , , ,

Artigo Principal - As Novas Funcionalidades do C# 3.0

Esta é sem dúvida umas das funcionalidade que mais gostei no C# 3.0. Com ela podemos extender tipos existentes (string, int, etc…) ou tipos construídos (client, car, person, etc…) com métodos adicionais. Estes métodos estáticos podem ser invocados com a mesma sintaxe que os métodos de instância.

Esta funcionalidade pode ser extremamente útil no desenvolvimento, e tornar o código muito mais limpo e reutilizável. De seguida vou mostrar um exemplo, de como podemos capitalizar as primeiras letras das palavras que constituem uma determinada string. Para isso vamo criar um Extension Method ao tipo string:

public static class IstoMesmoExtensions
{
  public static string ProperCase(this string s)
  {
    string[] words = s.Split(’ ‘);
    string result = string.Empty;

    foreach (string i in words)
    {
      result = result + i.Substring(0, 1).ToUpper() +
  
                  i.Substring(1).ToLower() + ” “;
    }
   
result = result.Substring(0, result.Length - 1);
    return result;
  }
}

Ler o resto do artigo »

Mar 03

Marcas Technorati: , , ,

image O C# 3.0 trouxe à plataforma .Net um conjunto de novas funcionalidades que tornam a mesma mais robusta ,completa, e ao mesmo tempo permitem poupar tempo em determinadas rotinas de programação. As novas funcionalidade encaixam-se na platataforma como uma extensão ao C# 2.0.

As principais novas funcionalidades presentes nesta extensão (C# 3.0) são as seguintes:

  • Implicitly typed local variables - permitem que o tipo de uma variável local seja determinado a partir da expressão utilizada para a inicializar.

  • Extension methods - permitem extender os tipos existentes ou tipos construídos com métodos adicionais.

  • Lambda expressions - são uma evolução dos métodos anónimos que possiblitam uma melhoria na determinação dos tipos e nas conversões para “delegates” e “expression trees“.

  • Object Initializers - facilitam a construção e inicialização de objectos.

  • Anonymous types - são tipos/objectos determinados e criados automaticamente a partir de “Object Initializers“.

  • Implicitly typed arrays - permitem a criação e inicialização de arrays que determinam automaticamente o tipo dos elementos do array através da inicilalização do mesmo.

  • Query expressions - disponibilizam uma sintaxe integrada na própria linguagem que permite efectuar queries de modo semelhante ao SQL e XQuery.

  • Expressions tree - possibilitam que as “Lambda expressions” sejam representadas como dados em vez de código (”delegates”).

Nos próximos artigos vou explicar cada uma destas funcionalidades mais detalhadamente. Vamos começar já pela nova palavra do C# 3.0, a palavra “var”…

Ler o resto do artigo »

Fev 28

A Microsoft lançou recentemente um hotfix para a versão 2008 do Visual Studio e do Visual Web Developer Express.

Este hotfix vem corrigir essencialmente alguns problemas de performance do editor, algumas falhas na edição HTML, melhor o suporte Javascript e aumentar a performance de compilação quando temos várias dlls na pasta bin.

O download do hotfix pode ser efectuado através do link seguinte:

https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=10826 

 

Se gostaram deste artigo subscrevam a feed RSS do istomesmo, para ficarem actualizados sobre os últimos artigos.

Subscrevam aqui a fedd RSS

Fev 27
Marcas Technorati: , , ,

image A versão beta 1 do Silverlight 2.0 está prestes a ser disponibilizada ao público, muito provavelmente durante o evento MIX 08. O ScottGu colocou recentemente no seu blog uma série de artigos com um tutorial para construir um cliente digg utilizando a verão beta do Silverlight 2.0.

Nos últimos dias apareceu na internet uma imagem com os supostos controlos que constituirão esta versão beta. Na imagem existe um total de 29 controlos que variam desde a simples Textbox até à Grid.

Vejam a imagem em baixo:

Ler o resto do artigo »

Fev 20
Marcas Technorati: , ,

image Na primeira parte deste tutorial vimos como configurar o ELMAH com as definições por omissão, guardando as excepções na memória volátil.

Neste tutorial vamos continuar com as outra formas de Logging (XML, SQLite e SQL Server).

Para alterarmos o provider de logging, temos de alterar uma propriedade na configuração da secção elmah no web.config.

 

Ler o resto do artigo »

Fev 19
Marcas Technorati: , , ,

Hoje vou começar uma nova categoria de artigos, denominada de utilidades. O objectivo desta categoria será fornecer pequenas funções que nos possam ajudar no desenvolvimento de aplicações.

Neste artigo vou demonstrar como podemos efectuar a validação de um número de contribuinte.

O número de contribuinte é constituído por 9 algarismos, dos quais o último é um algarismo de validação, uma espécie de checksum. A função que vamos desenvolver hoje efectua estas duas validações (9 algarismos e CheckBit).

Em C#, a função de validação é a seguinte:

 

Ler o resto do artigo »

Fev 18
Marcas Technorati: , , ,

image Muitas vezes, num formulário web, temos necessidade de notificar o utilizador com determinada mensagem que não faz parte dos validators que usamos no formulário. Nesse caso, o ideal seria que essa mensagem aparecesse na zona do “Validation Summary“.

Para vos dar um exemplo, imaginem que têm uma página de registo de utilizador, e não podem existir utilizadores com o mesmo username. A não ser que já estejamos a utilizar AJAX, não conseguimos saber se já existe um utilizador com o username inserido, enquanto o formulário não for submetido. Depois da validação efectuada do lado do servidor, no caso de já existir um utilizador com o username fornecido, queremos mostrar a mensagem de utilizador já existente no mesmo sitio onde apareceram todas as outras mensagens de validação.

Ler o resto do artigo »

Fev 07
Marcas Technorati: , ,

image Neste artigo vou-vos falar de um projecto open source que permite efectuar log de excepções inesperadas em aplicações WEB de uma forma simples, prática e eficiente.

O projecto ELMAH (Error Logging Modules and Handlers for ASP.NET) apareceu em 2004 como um projecto no MSDN para demonstrar o uso de Handlers e Módulos HTTP.

O objectivo deste projecto, que agora é open source, é interceptar todas as excepções inesperadas que ocorrem numa aplicação ASP.NET e dão origem ao famoso ecrã amarelo da morte (”yellow screen of death”).

Ler o resto do artigo »

Dez 10

Technorati Tags: , , ,

image A Microsoft disponibilizou hoje para download uma preview das ASP.NET 3.5 Extensions. Este pacote inclui um conjunto de novas funcionalidades que extendem o ASP.NET 3.5 e o ADO.NET. Entre as principais funcionalidades salientam-se:

ASP.NET MVC

Plataforma de desenvolvimento utilizado o modelo model view controler (MVC), proporcionado um modelo mais limpo, com suporte para teste unitários e workflow TDD.

ASP.NET Dynamic Data

Acesso a dados simplificado, através da disponibilização de uma plataforma de “Scaffolding” que permite criar as tarefas mais simples de acesso a dados, de uma forma muito rápida com a geração de métodos CRUD (Create, Update, Delete).

Silverlight Controls para ASP.NET

Integração de controlos silverlight para visualização de videos em aplicações ASP.NET muito mais simples.

ADO.NET Data Services

Plataforma para criação de modelos conceptuais de dados, e também um conjunto de serviços para disponibilizar dados através de REST (nome de código ASTORIA).

Entity Framework runtime

Plataforma de acesso a dados através de entidades geradas automaticamente. O LINQ inclui-se nesta plataforma.

Novas funcionalidades ASP.NET AJAX

Melhorias no suporte do botão retroceder do browser, incluindo histórico.

Para efectuar o download deste pacote naveguem até ao endereço:

Download ASP.NET 3.5 Extensions Preview

De todas estas novas funcionalidades, para mim a mais interessante é o novo modelo de programação MVC, que tenta aproximar o ASP.NET de linguagens como o Ruby, que tanto sucesso têm tido ultimamente, pela sua facilidade e simplicidade de desenvolvimento.

Vou fazer alguns testes com estas extensões, e espero publicar brevemente mais alguns posts sobre estas novidades.

Se já começaram a utilizar estas extensões deixem os vossos comentários às mesmas.

Nov 27

image

O LINQ é constituído por vários “providers” (fornecedores), ao estilo do que já estávamos habituados para o Membership ou para o Profile. Os providers que vêm de origem permitem efectuar consultas sobre xml, objectos e obviamente SQL.

Ler o resto do artigo »

Nov 23
Marcas Technorati: , , ,

Visual Studio 2008 Professional EditionPara acompanhar o lançamento da versão RTM do Visual Studio 2008, a Microsoft disponibilizou para download o Visual Studio 2008 Training Kit, que é constituído por um conjunto de apresentações, laboratórios e demos.

A instalação é muito simples, tudo é extraido para uma única pasta, a partir da qual podemos aceder ao kit através de um conjunto de páginas web.

Este kit está disponível para download no seguinte URL:

Visual Studio 2008 Training Kit   [120 MB]

Ler o resto do artigo »