Desenvolvimento - Visual Basic .NET
Como Criar Project Templates Item Em Vb.Net - parte 2
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ódioProject Template Item : No nosso projeto Template Application Temos um form, uma classe, um Assemblyinfo.vb
Durante o desenvolvimento do projeto, uma necessidade de adicionar mais forms ou classes customizadas pode surgir. Para isto, devemos ter arquivos do tipo .vsz para indicar aonde estão nosso form e nossa classe com o template desejado.
1-) Localize a pasta \Microsoft Visual Studio .NET 2003\Vb7\VBProjectItems\Local Project Items\ |
2-) Dentro dela Crie uma pasta chamada Template |
3-) Dentro da pasta Template crie um novo arquivo chamado TemplateProjectItems.vsdir com um editor de texto ou simplesmente copie algum outro da pasta \Microsoft Visual Studio .NET 2003\Vb7\VBProjectItems\Local Project Items\ O arquivo deve conter apenas as seguintes linhas : |
..\..\TemplateForm.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|TemplateForm|10|Template
Form|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4527| |TemplateForm.vb
..\..\TemplateClass.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|TemplateClass|20|Template Class|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4510| |TemplateClass.vb
4-) Copie da pasta \Microsoft Visual Studio .NET 2003\Vb7\VBProjectItems\Local Project Items\Template\ o mesmo arquivo criado anteriormente TemplateProjectItems.vsdir para a pasta \Microsoft Visual Studio .NET 2003\Vb7\VBProjectItems\Local Project Items\ . Porém, como estamos um nível acima, o arquivo deve ser editado ficando da seguinte maneira : |
..\TemplateForm.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|TemplateForm|10|Template Form|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4527| |TemplateForm.vb
..\TemplateClass.vsz|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|TemplateClass|20|Template
Class|{164B10B9-B200-11D0-8C61-00A0C91E29D5}|4510| |TemplateClass.vb
5-) Vá para a pasta VBProjectItems e crie dois arquivos do tipo VSZ ( .vsz) TemplateForm.vsz e TemplateClass.vsz. Estes arquivos estão referenciados no nosso arquivo TemplateProjectItems.vsdir |
6-) O arquivo TemplateForm.vsz deve ter a seguinte estrutura: |
VSWIZARD 6.0
Wizard=VsWizard.VsWizardEngine.7.1
Param="WIZARD_NAME =
TemplateFormWiz"
Param="WIZARD_UI = FALSE"
Param="PROJECT_TYPE =
VBPROJ"
**Obs: Caso esteja usando o Microsoft Visual Studio .NET 2002 , retire o seguinte trecho :
.7.1
deixando o arquivo da seguinte forma:
VSWIZARD 6.0
Wizard=VsWizard.VsWizardEngine
Param="WIZARD_NAME =
TemplateFormWiz"
Param="WIZARD_UI = FALSE"
Param="PROJECT_TYPE = VBPROJ"
7-) O arquivo TemplateClass.vsz deve ter a seguinte estrutura: |
VSWIZARD 6.0
Wizard=VsWizard.VsWizardEngine.7.1
Param="WIZARD_NAME =
TemplateClassWiz"
Param="WIZARD_UI = FALSE"
Param="PROJECT_TYPE =
VBPROJ"
**Obs: Caso esteja usando o Microsoft Visual Studio .NET 2002 , retire o seguinte trecho :
.7.1
deixando o arquivo da seguinte forma:
VSWIZARD 6.0
Wizard=VsWizard.VsWizardEngine
Param="WIZARD_NAME =
TemplateClassWiz"
Param="WIZARD_UI = FALSE"
Param="PROJECT_TYPE =
VBPROJ"
8-)Vá para a pasta \Microsoft Visual Studio .NET 2003\Vb7\VBWizards\ e crie
duas pastas : |
9-) Dentro da pasta TemplateClassWiz crie outras duas pastas : |
Templates
Scripts
10-) Para cada pasta crie subpastas com o nome de 1033, ou seja : |
\Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateClassWiz\Templates\1033
\Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateClassWiz\Scripts\1033
11-) Agora faremos os mesmos passos 9 e 10, porém para a pasta TemplateFormWiz. Isto é : |
Dentro da pasta TemplateClassWiz crie outras duas pastas :
Templates
Scripts
e para cada pasta crie subpastas com o nome de 1033 :
\Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateFormWiz\Templates\1033
\Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateFormWiz\Scripts\1033
12-) Copie para a pasta \Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateFormWiz\Templates\1033\ os mesmos arquivos contidos na pasta \Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateApplication\Templates\1033\ com excessão da Class.vb |
13-) Copie para a pasta \Microsoft Visual Studio .NET
2003\Vb7\VBWizards\TemplateClassWiz\Templates\1033 |
14-) Para finalizar, vá para a pasta \Microsoft Visual Studio .NET 2003\Vb7\VBWizards\Dataset\Scripts\1033\ e copie o default.js para as Pastas \Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateFormWiz\Scripts\1033\ . |
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-) Repita o passo 14 , porém copie o default.js para a pasta \Microsoft
Visual Studio .NET
2003\Vb7\VBWizards\TemplateClassWiz\Scripts\1033\ |
O Arquivo default.js copiado tem 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 strItemName = wizard.FindSymbol("ITEM_NAME");
var strTemplatePath =
wizard.FindSymbol("TEMPLATES_PATH");
var strTemplateFile = strTemplatePath +
"\\Dataset.xsd";
var item = AddFileToVSProject(strItemName, selProj, selObj, strTemplateFile,
false);
if( item )
{
item.Properties("CustomTool").Value =
"MSDataSetGenerator";
var editor =
item.Open(vsViewKindPrimary);
editor.Visible = true;
}
return
0;
}
catch(e)
{
switch(e.number)
{
case -2147221492 /*
OLE_E_PROMPTSAVECANCELLED */ :
return -2147221492;
case -2147024816 /* FILE_ALREADY_EXISTS */ :
case -2147213313 /*
VS_E_WIZARDBACKBUTTONPRESS */ :
return -2147213313;
default:
ReportError(e.description);
return
-2147213313;
}
}
finally
{
dte.SuppressUI =
oldSuppressUIValue;
}
}
edite a linha :
var strTemplateFile = strTemplatePath + "\\Dataset.xsd";
e troque de "\\Dataset.xsd"; para "\\Form.vb" <-- No caso de estar editando o default.js da pasta \Microsoft Visual Studio .NET 2003\Vb7\VBWizards\TemplateFormWiz\Scripts\1033\
ou para
"\\Class.vb" <-- No caso de estar editando o default.js da pasta
\Microsoft Visual Studio .NET
2003\Vb7\VBWizards\TemplateClassWiz\Scripts\1033\
16-) Após todos estes passos, abra o Visual Studio .Net. Abra um projeto qualquer e adicione um Novo ítem ( File -< Add New Item ). Nosso TemplateForm.vb e TemplateClass.vb devem estar na lista conforme a imagem : |
Dúvidas ou Sugestões: tcustodio@gpnet.com.br
- 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