Como Excluir um Label do Source Safe

Existem duas maneiras de excluir um label de um projeto no Source Safe.

  • Através do comando SS utilizando o parâmetro label, para isso basta indicar o label antigo e não o novo. Veja o exemplo:
  • 20111212-123335.jpg

  • Via Interface gráfica da mesma maneira que os passos anteriores. Neste caso, para excluir um label basta substituir o existente por nada. Veja o exemplo, nos detalhes do label basta apagar o conteúdo do campo Label.
  • 20111212-123821.jpg

É desta forma que exclui-se um label de um projeto do Visual Source Safe. Contudo é comum ficar procurando um botão escrito Delete.

Abraço, Rodrigo

Referências:

http://support.microsoft.com/kb/126786/pt-br

http://msdn.microsoft.com/en-US/library/003ssz4z(v=VS.80).aspx

SQL Server CLR Integration passo a passo

Apesar dos assemblies em .net terem surgido no SQL Server 2005, frequentemente surgem dúvidas relacionadas a implementação. Abaixo segue um pequeno passo a passo de como iniciar o uso do CLR no SQL Server.
O objetivo aqui será criar uma stored procedure que ao ser executada imprima o retorno “Alô Mundo”. Para este desenvolvimento vou utilizar o Visual Studio 2008 com Visual Basic e o SQL Server 2008 R2.
No momento da codificação do objeto de banco de dados no Visual Studio vamos utilizar um objeto chamado SQLPipe. O SQLPipe é o mecanismo utilizado para enviar um objeto de comando de volta ao objeto que o chamou.
Antes de iniciar os passos a seguir garanta que você tem permissão no servidor de banco de dados. Crie um banco de dados teste para aplicar o assembly que será criado.
No menu File do Visual Studio selecione New Project, na tela de Projects Types selecione Database, no painel Templates selecione SQL Server Project.

 

Ao confirmar a criação deste projeto abrirá uma janela New Database Reference, com pedindo os parâmetros de configuração para acessar o database alvo do desenvolvimento.

No Solution Explorer vamos visualizar a estrutura padrão do template selecionado, para criar a Stored Procedure clique com o botão direito sobre o ícone do projeto (SqlServerProject1) e selecione Add em seguida Stored Procedure.

 

Ao adicionar o stp_AloMundo.vb ao projeto o mesmo criará uma classe, que será o alvo da edição. Veja o código abaixo:

Deploy do Assembly

O deploy é o processo de entregar o assembly ao destino, nesse caso o banco escolhido no inicio do projeto. Para concluir o deploy basta acessar o menu build e deploy.

Executando a Stored Procedure

Os Assenblies ficam dentro de Programmability, e os objetos pertencentes aos assemblies ficam dentro da pasta dos seus respectivos objetos. Perceba na imagem abaixo que dentro de Stored Procedures há um objeto chamado stp_AloMundo, esse é o fruto do desenvolvimento.

A execução segue como qualquer outra stored procedure do SQL Server, com a sintaxe padrão.

Para finalizar, são diversas as vantagens do uso de .Net Assemblies com o SQL Server entre os quais a mais significativa, na minha opinião, é a poder centralizar alguma regra especifica do negócio sem atribuir ao SQL Server esse processamento.

Abraço, Rodrigo.

Free ebook: Moving to Microsoft Visual Studio 2010

ebook_.net2010_Free_13022011Dica de ebook (FREE), li e gostei muito deste ebook.

Este ebook esta dividido em 3 partes:

Parte 1 – para desenvolvedores VSD 2003

Parte 2 – para desenvolvedores VSD 2005

Parte 3 – para desenvolvedores VSD 2008

 

 

 

 

O download pode ser feito no link  http://blogs.msdn.com/b/microsoft_press/archive/2010/09/13/free-ebook-moving-to-microsoft-visual-studio-2010.aspx

Abraço, Rodrigo

OneWay

Falando de Web Service, essa semana fui questionado sobre como fazer a aplicação client não aguardar a execução de um web method. Existe maneira simples de fazer isso, a opção OneWay serve para indicar que a aplicação que esta consumindo o web method não irá aguardar a sua conclusão.

Essa opção é muito utilizada em métodos batchs, como cargas de dados que são chamadas pelo web services.

Para criar em VB.NET

    Public Class Service1
        Inherits System.Web.Services.WebService

        <SoapDocumentMethod(OneWay:=True), _
        WebMethod()> _
        Public Function HelloWorld() As String
            Return "Hello World"
        End Function

    End Class

Em C#

    public class Service1 : System.Web.Services.WebService
    {
        [SoapDocumentMethod(OneWay = true)]
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }

Importante para utilizar essa opção deve-se importar a classe Protocols.

(VB.NET)

Imports System.Web.Services.Protocols

(C#)

using System.Web.Services.Protocols;

Espero que esse post ajude os colegas a utilizar melhor os recursos dos web services.

Abraço, Rodrigo

Cloud Computing and Microsoft Offerings

Cloud Computing and Microsoft Offerings

Cloud computing is a paradigm shift that provides computing over the Internet. It offers infrastructure, platform, and software as services; organizations can use any of these services, depending on their business needs. Organizations can simply connect to the cloud and use the available resources on a pay-per-use basis. Microsoft offers flexible cloud-computing solutions that help communicate, collaborate, and store data in a cloud. The cloud services offered by Microsoft are cost effective, …

Abraço, Rodrigo

Visual Basic 6.0 Resource Center

Pessoal,

Como existem muitos projetos a serem migrados e eu já recebi inúmeras solicitações para auxiliar nas migrações tanto de SQL Server 2000 para SQL Server 2008 quanto para migração de projetos em VB6 para VB.NET.

 

Resolvi postar aqui esse link, que pode ser útil como fonte de estudo para migração de aplicativos desenvolvidos em VB6.

Sei que toda a migração é trabalhosa, mas o segredo é não perder o foco do objetivo do software que é o negocio da empresa.

 

Abraço, Rodrigo

FREE eBook: .NET Performance Testing and Optimization – The Complete Guide

Pessoal!

Eu acabei de ler esse livro e recomendo.

Para fazer o download basta clicar aqui.

Abaixo segue a descrição:

In the complete guide to .NET Performance Testing and Optimization, Paul Glavich and Chris Farrell offer a comprehensive handbook to anybody looking to set up a .NET testing environment and get the best results out of it. The authors will also walk you through both memory and performance profiling and suggest steps you can take to get fast performance gains. Download your free copy now.

  • Chapter 01: Introduction – The What and the Why
  • Chapter 02: Understanding Performance Targets
  • Chapter 03: Performance and Load Test Metrics
  • Chapter 04: Implementing your Test Rig
  • Chapter 05: Creating Performance Tests
  • Chapter 06: Next Steps – Profiling
  • Chapter 07: Performance Profiling
  • Chapter 08: Memory Profiling
  • Chapter 09: The Performance Testing Process
  • Chapter 10: Common Areas for Performance Improvement
  • Chapter 11: Load Balancing
  • Chapter 12: Internet Information Server (IIS)
  • Chapter 13: HTTP Optimization

Abraço, Rodrigo

 

Movendo form sem borda

Geralmente quando definimos um layout diferenciado para uma aplicação Windows, nós necessitamos tratar os formulários e para combinar cores podemos definir o formulário sem bordas e criar uma borda mais trabalhada para a aplicação, arredondada ou simplesmente com uma cor diferenciada.

O problema é que quando definimos um formulário sem a title bar e necessitamos do movimento do formulário.

Para corrigir isso basta utilizar o evento mouse move, abaixo vou descrever as partes do código.

 

  Private pPermiteMover As Boolean = False

  Private pMouseX As Integer = 0

  Private pMouseY As Integer = 0

 

  Private Sub Form1_MouseDown(ByVal sender As Object, _

                              ByVal e As System.Windows.Forms.MouseEventArgs) _

                                Handles Me.MouseDown

    If e.Button = MouseButtons.Left Then pPermiteMover = True : pMouseX = e.X : pMouseY = e.Y

  End Sub

 

A variável pPermiteMover terá o valor igual a verdadeiro quando acontecer o evento MouseDown através do botão esquerdo do mouse e nesse caso também irá atribuir o valor da posição X do cursor para a variável pMouseX e Y para a variável pMouseY.

 

  Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove

    If pPermiteMover = True Then

      Dim lPosicaoAtual As Point = New Point()

      lPosicaoAtual.X = Me.Location.X + (e.X – pMouseX)

      lPosicaoAtual.Y = Me.Location.Y + (e.Y – pMouseY)

      Me.Location = lPosicaoAtual

      lPosicaoAtual = Nothing

    End If

  End Sub

 

O evento mouse move, verifica se é permitido mover e atribui a variável lPosicaoAtual os pontos somados através da localização atual e a subtração da posição do eixo X e Y com o pMouseX e Y.

 

  Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp

    If e.Button = MouseButtons.Left Then

      pPermiteMover = False

    End If

  End Sub

 

Já no evento MouseUp, que verifica se o botão é o esquerdo e se for atribuí o valor falso para o variável que permite mover o formulário.

Esse código permite mover o formulário inteiro, porém se foi criado uma title bar personalizada será necessária colocar esse código no componente utilizado para formar a nova title bar.

Para fazer o teste  basta copiar e colar o código abaixo.

 

Public Class Form1

 

#Region “Move Formulário”

 

  Private pPermiteMover As Boolean = False

  Private pMouseX As Integer = 0

  Private pMouseY As Integer = 0

 

  Private Sub Form1_MouseDown(ByVal sender As Object, _

                              ByVal e As System.Windows.Forms.MouseEventArgs) _

                                Handles Me.MouseDown

    If e.Button = MouseButtons.Left Then pPermiteMover = True : pMouseX = e.X : pMouseY = e.Y

  End Sub

 

  Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove

    If pPermiteMover Then

      Dim lPosicaoAtual As Point = New Point()

      lPosicaoAtual.X = Me.Location.X + (e.X – pMouseX)

      lPosicaoAtual.Y = Me.Location.Y + (e.Y – pMouseY)

      Me.Location = lPosicaoAtual

      lPosicaoAtual = Nothing

    End If

  End Sub

 

  Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp

    If e.Button = MouseButtons.Left Then

      pPermiteMover = False

    End If

  End Sub

 

#End Region

 

 

End Class

 

Abraço, Rodrigo