Desenvolvimento - Visual Basic .NET
Como Criar Templates Em VB.Net
Devido a falta de documentação referente a este assunto, decidi escrever este artigo para ajudar aqueles que necessitam criar templates em VB.NET.
por Thiago Fernandes CustódioPrimeiro temos que ter bem clara a idéia do que é um template e para que ele
serve. Um template nada mais é do que uma forma de agilizar a criação de forms
padronizados.
Por exemplo, temos um form com diversas imagens, logotipo da
empresa e desejamos criar outros forms seguindo o mesmo padrão.
Mãos à obra !
Criando um novo Project Template
1-) Localizar a pasta: "\Microsoft Visual Studio .NET 2003\Vb7\VBProjects" geralmente dentro de c:\Arquivos de Programas\ se seu windows for em português |
2-) Dentro dessa pasta existem três tipos arquivos : |
.vsz
.vsdir
.vbproj
3-) Para criar nosso template project, devemos criar um novo arquivo .vsz com qualquer editor de texto (notepad por exemplo). Abra o notepad, vá em Arquivo/Novo e adicione as seguintes linhas : |
VSWIZARD 6.0
Wizard=VsWizard.VsWizardEngine.7.1
Param="WIZARD_NAME =
TemplateApplication"
Param="WIZARD_UI = FALSE"
Param="PROJECT_TYPE =
VBPROJ"
Obs : Repare a terceira linha, ela indica o nome da pasta que criaremos à seguir.
4-) Salve o arquivo como TemplateApplication.vsz |
5-) Ainda na pasta VBPROJECTS ("\Microsoft Visual Studio .NET 2003\Vb7\VBProjects") , localize o arquivo projects_std.vsdir e edite-o (com o notepad) |
Adicione a linha a seguir ao fim do documento e salve-o
TemplateApplication.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|TemplateApplication|85|Template Application|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4507| |TemplateApplication
***Explicação :
Cada linha é subdividia em diversos grupos separados por um pipe ("|") . O primeiro grupo indica o atual arquivo .vsz criado anteriormente (passo 3) , o segundo grupo é guid usado pelo WindowsApplication.vsz , e o terceiro e o último grupo, o nome padrão do nosso projeto.
6-) Localize a pasta \Microsoft Visual Studio .NET 2003\Vb7\VBWizards |
7-) Dentro dela, crie uma pasta chamada TemplateApplication(caso tenha mudado o Param="WIZARD_NAME = TemplateApplication" do ítem 3, utilize o nome que você adotou) |
8-) Dentro dessa pasta, crie duas pastas : |
Templates
Scripts
9-) Dentro de cada pasta, crie uma subpasta chamada 1033 |
\Templates\1033
\Scripts\1033
10-) Localize a pasta WindowsApplication (\Microsoft Visual Studio .NET 2003\Vb7\VBWizards) |
Copie o arquivo default.js de (\Microsoft Visual Studio .NET
2003\Vb7\VBWizards\WindowsApplication\Scripts\1033), para a pasta
\Microsoft
Visual Studio .NET 2003\Vb7\VBWizards\TemplateApplication\Scripts\1033
11-)Após copiá-lo, vá até a pasta \Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateApplication\Scripts\1033 e edite o arquivo default.js copiado no passo anterior. |
O arquivo possui a seguinte estrutura :
//
// Copyright (c) Microsoft Corporation 2001-2002. All rights
reserved.
//
function OnFinish(selProj, selObj)
{
var oldSuppressUIValue =
true;
try
{
oldSuppressUIValue = dte.SuppressUI;
var bSilent =
wizard.FindSymbol("SILENT_WIZARD");
dte.SuppressUI = bSilent;
var strProjectName = wizard.FindSymbol("PROJECT_NAME");
var strProjectPath
= wizard.FindSymbol("PROJECT_PATH");
var strTemplatePath =
wizard.FindSymbol("TEMPLATES_PATH");
var strTemplateFile = strTemplatePath +
"\\WindowsApplication.vbproj";
var project = CreateVSProject(strProjectName, ".vbproj", strProjectPath,
strTemplateFile);
if( project )
{
strProjectName = project.Name; //In
case it got changed
var item;
var editor;
var strRawGuid = wizard.CreateGuid();
wizard.AddSymbol("GUID_ASSEMBLY",
wizard.FormatGuid(strRawGuid, 0));
strTemplateFile = strTemplatePath + "\\AssemblyInfo.vb";
item =
AddFileToVSProject("AssemblyInfo.vb", project, project.ProjectItems,
strTemplateFile, false);
if( item )
{
item.Properties("SubType").Value
= "Code";
}
strTemplateFile = strTemplatePath + "\\Form.vb";
item =
AddFileToVSProject("Form1.vb", project, project.ProjectItems, strTemplateFile,
false);
if( item )
{
item.Properties("SubType").Value =
"Form";
project.Properties("StartupObject").Value =
project.Properties("RootNamespace").Value + ".Form1";
editor = item.Open(vsViewKindPrimary);
editor.Visible =
true;
}
project.Save();
}
return 0;
}
catch(e)
{
switch(e.number)
{
case -2147024816 /* FILE_ALREADY_EXISTS */
:
return -2147213313;
default:
SetErrorInfo(e);
return
e.number;
}
}
finally
{
dte.SuppressUI =
oldSuppressUIValue;
}
}
12-)Copie as seguintes linhas, para que no passo 14 as alteremos: |
strTemplateFile = strTemplatePath + "\\AssemblyInfo.vb";
item =
AddFileToVSProject("AssemblyInfo.vb", project, project.ProjectItems,
strTemplateFile, false);
13-)Cole logo abaixo delas mesmo, ficando da seguinte maneira :
|
//
// Copyright (c) Microsoft Corporation 2001-2002. All rights
reserved.
//
function OnFinish(selProj, selObj)
{
var oldSuppressUIValue =
true;
try
{
oldSuppressUIValue = dte.SuppressUI;
var bSilent =
wizard.FindSymbol("SILENT_WIZARD");
dte.SuppressUI = bSilent;
var strProjectName = wizard.FindSymbol("PROJECT_NAME");
var strProjectPath
= wizard.FindSymbol("PROJECT_PATH");
var strTemplatePath =
wizard.FindSymbol("TEMPLATES_PATH");
var strTemplateFile = strTemplatePath +
"\\WindowsApplication.vbproj";
var project = CreateVSProject(strProjectName, ".vbproj", strProjectPath,
strTemplateFile);
if( project )
{
strProjectName = project.Name; //In
case it got changed
var item;
var editor;
var strRawGuid = wizard.CreateGuid();
wizard.AddSymbol("GUID_ASSEMBLY",
wizard.FormatGuid(strRawGuid, 0));
strTemplateFile = strTemplatePath + "\\AssemblyInfo.vb";
item =
AddFileToVSProject("AssemblyInfo.vb", project, project.ProjectItems,
strTemplateFile, false);
strTemplateFile = strTemplatePath + "\\AssemblyInfo.vb";
item =
AddFileToVSProject("AssemblyInfo.vb", project, project.ProjectItems,
strTemplateFile, false);
if( item )
{
item.Properties("SubType").Value = "Code";
}
strTemplateFile = strTemplatePath + "\\Form.vb";
item =
AddFileToVSProject("Form1.vb", project, project.ProjectItems, strTemplateFile,
false);
if( item )
{
item.Properties("SubType").Value =
"Form";
project.Properties("StartupObject").Value =
project.Properties("RootNamespace").Value + ".Form1";
editor = item.Open(vsViewKindPrimary);
editor.Visible =
true;
}
project.Save();
}
return 0;
}
catch(e)
{
switch(e.number)
{
case -2147024816 /* FILE_ALREADY_EXISTS */
:
return -2147213313;
default:
SetErrorInfo(e);
return
e.number;
}
}
finally
{
dte.SuppressUI =
oldSuppressUIValue;
}
}
14-) Para finalizar a edição do default.js: |
altere de:
strTemplateFile = strTemplatePath + "\\AssemblyInfo.vb";
item =
AddFileToVSProject("AssemblyInfo.vb", project, project.ProjectItems,
strTemplateFile, false);
para (Assemblyinfo.vb para Class.vb e Assemplyinfo.vb para Class1.vb):
strTemplateFile = strTemplatePath + "\\Class.vb";
item =
AddFileToVSProject("Class1.vb", project, project.ProjectItems, strTemplateFile,
false);
Note que na segunda linha, Ao invés de simplesmente Class, ela
passou para Class1 , pois Class é uma palavra reservada.
15-) Volte para a pasta \Microsoft Visual Studio .NET
2003\Vb7\VBWizards\WindowsApplication\Templates\1033\ e copie os arquivos
: |
WindowsApplication .vbproj
Form.vb
Assemblyinfo.vb
para a nossa pasta \Microsoft Visual Studio .NET
2003\Vb7\VBWizards\TemplateApplication\Templates\1033
16-)Vá para a pasta \Microsoft Visual Studio
.NET 2003\Vb7\VBWizards\Class\Templates\1033 e copie a classe Class.vb para a
pasta \Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateApplication\Templates\1033\ |
17-) Se tudo deu certo, Abra o Visual Studio .NET 2003, File, New, Project e aparecerá o nosso Template Project. |
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET