nDeveloper Framework
-
Upload
pedro-alves-jr -
Category
Technology
-
view
1.857 -
download
4
description
Transcript of nDeveloper Framework
nDeveloper Framework
Pedro Alves JuniorDiretor de DesenvolvimentoVsoft Tecnologia
Agenda
Visão geral Características Demonstração Aplicações em produção Roadmap
Visão geral
Framework de mapeamento objeto/relacional, acesso a multi-banco de dados, geração de código e produtividade.
Visão geral
Mapeamento objeto/relacional Dicionário de dados XML Entidades organizadas por módulo Biblioteca de acesso a dicionário de dados Mapeamento automático de tipos da linguagem e tipos
do banco de dados
Acesso a multi-banco de dados Biblioteca com suporte a SQL Server (2000, 2005 e
Compact Edition), Oracle, PostgreSQL, MySQL e Firebird Tradução de código SQL automaticamente Suporte total a ADO.NET
Geração de código Script do banco de dados (estrutura e dados padrão) Classes de regra de negócio Possibilidade de criação de classes customizadas para
gerar qualquer tipo de código, inclusive formulários
Visão geral
Produtividade IDE para gerenciamento centralizado do dicionário de
dados Editor de código (C#, VB.NET, SQL, XML, etc) Executor de consultas integrado com servidor de banco
de dados Executor de scripts (.sql) integrado com o servidor de
banco de dados Editor/executor de modelos (templates) de geração de
código
Características
Domínio
<?xml version="1.0" encoding="utf-8"?><domain> <Files> <add key="SystemDataDictionaryTypes" value="DataDictionary.Types.xml" /> <add key="SystemDataDictionary" value="DataDictionary.System.xml" /> <add key="CustomDataDictionary" value="DataDictionary.Custom.xml" /> <add key="DataBaseConfig" value="DataBaseServer.config" /> <add key="SystemDefaultData" value="DefaultData.System.xml" /> <add key="CustomDefaultData" value="DefaultData.Custom.xml" /> <add key="SystemProcedures" value="Procedure.System.xml" /> <add key="Modules" value="Modules.xml" /> <add key="Scripts" value="Scripts.xml" /> <add key="License" value="License.xml" /> </Files> <Solution> <Title>Vsoft Administrator i 2007</Title> <Version> <Number>2.0.0.0</Number> <Status>Desenvolvimento</Status> </Version> <DefaultNamespace>Vsoft.Administratori</DefaultNamespace> <ClasseAcessoDados>Vsoft.Administratori.BO.DataAccess</ClasseAcessoDados> <ClasseBasica>Vsoft.Administratori.BO.Info</ClasseBasica> <ClasseApresentacaoLogica>Vsoft.Administratori.BO.BusinessLogic</ClasseApresentacaoLogica> </Solution> <Modules> <Module name="VsoftPonto"> <Title>Ponto</Title> </Module> </Modules></domain>
Características
Tipos do nDeveloper
<?xml version="1.0" encoding="utf-8"?><DataDictionary.System.Types> <Type name="Integer"> <CSharpTypeNamespace>System</CSharpTypeNamespace> <CSharpType>int</CSharpType> </Type> <Type name="BigInt"> <CSharpTypeNamespace>System</CSharpTypeNamespace> <CSharpType>long</CSharpType> </Type> <Type name="SmallInt"> <CSharpTypeNamespace>System</CSharpTypeNamespace> <CSharpType>short</CSharpType> </Type> <Type name="Float"> <CSharpTypeNamespace>System</CSharpTypeNamespace> <CSharpType>double</CSharpType> </Type> <Type name="Money"> <CSharpTypeNamespace>System</CSharpTypeNamespace> <CSharpType>decimal</CSharpType> </Type> <Type name="Bit"> <CSharpTypeNamespace>System</CSharpTypeNamespace> <CSharpType>bool</CSharpType> </Type> <Type name="Date"> <CSharpTypeNamespace>System</CSharpTypeNamespace> <CSharpType>DateTime</CSharpType> </Type></DataDictionary.System.Types>
Características
Dicionário de dados
?xml version="1.0" encoding="utf-8"?><DataDictionary.System> <Entities> <Entity name="tblUsuario"> <Description>Tabela onde ficarão as informações sobre os usuários e os grupos de usuários.</Description> <FriendlyName>Usuários</FriendlyName> <Columns> <Column name="UsuarioGrupoID"> <Description>Código do usuário.</Description> <FriendlyName>Código</FriendlyName> <DataType>Integer</DataType> <Required>true</Required> <PrimaryKey>true</PrimaryKey> <AutoGenerated>true</AutoGenerated> <Size> </Size> <DefaultValue> </DefaultValue> <ShowDataEntry>true</ShowDataEntry> <ShowLists>true</ShowLists> </Column> </Columns> <Modules> <Module name="VsoftPonto"> </Module> </Modules> </Entity></DataDictionary.System>
Características
Dicionário de dados
<?xml version="1.0" encoding="utf-8"?><DataDictionary.System> <References> <Reference name="tblPermissao_to_tblUsuario"> <Description>Relacionamento dos usuários para as permissões.</Description> <ParentName>tblUsuario</ParentName> <ParentField>UsuarioGrupoID</ParentField> <ChildName>tblPermissao</ChildName> <ChildField>UsuarioGrupoID</ChildField> <Cardinality>1:N</Cardinality> </Reference> </References></DataDictionary.System>
Características
Dados padrão
<?xml version="1.0" standalone="yes"?><DefaultValues> <Entity name="tblCidade"> <CidadeID>1</CidadeID> <Descricao>João Pessoa</Descricao> <EstadoID>1</EstadoID> </Entity> <Entity name="tblRecurso"> <RecursoID>68</RecursoID> <Nome>ponto_abono_solicitacaovalidada</Nome> <Descricao>Solicitação de Abono validada</Descricao> <RecursoPaiID>62</RecursoPaiID> <Nivel>2</Nivel> </Entity></DefaultValues>
Características
Procedimentos armazenados
<?xml version="1.0" encoding="utf-8"?><Procedure.System><Procedure name="sp_SelectTeste"> <Description>Teste 2</Description> <DataBaseServerType>1</DataBaseServerType> <Code>CREATE PROCEDURE [sp_Nova] AS
as teste SELECT * FROM tblTeste</Code> </Procedure></Procedure.System>
Características
Configuração de acesso a servidor de banco de dados do domínio
<?xml version="1.0" encoding="utf-8" ?><configuration>
<appSettings><add key="DataBaseServerType" value="1" /><add key="DataBaseServerHost" value="(local)" /><add key="DataBaseName" value="dbname" /><add key="DataBaseLogin" value="sa" /><add key="DataBasePassword" value="" /><add key="PostgreSQLEncoding" value="" /><add key="MySQLCharSet" value="" /><add key="Pooling" value="false" /><add key="ServerType" value="0" />
</appSettings></configuration>
Características
Desenvolvedor manipula Domínio e Dicionário de dados em tempo de desenvolvimento através do nDeveloper Studio (IDE)
Desenvolvedor manipula Domínio e Dicionário de dados em tempo de execução através da biblioteca nDeveloper.Base
using nDeveloper.BO.Base.Domain;
private static Providers RetornaProviderConfigurado() { Providers prov; if (DataBaseConfig.GetServerType() == nDeveloper.BO.Base.Constants.vsDataBase.SQLServer2000 | DataBaseConfig.GetServerType() == nDeveloper.BO.Base.Constants.vsDataBase.SQLServer2005) { prov = Providers.SqlServer; }
else if (DataBaseConfig.GetServerType() == nDeveloper.BO.Base.Constants.vsDataBase.MySQL) { prov = Providers.MySql; } else { prov = Providers.SqlServer; } return prov; }
Características
Acesso multi-banco de dados através da biblioteca nDeveloper.Data Biblioteca com suporte a
SQL Server (2000, 2005 e Compact Edition), Oracle, PostgreSQL, MySQL e Firebird (Classic e Embedded)
Tradução de código SQL automaticamente SQL Server, Oracle, PostgreSQL, MySQL e ANSI SQL Opcional por projeto e por método
Suporte total a ADO.NET DataSet, DataTable, ExecuteScalar, Transactions,
Parameters DataTable Rica (RichDataTable)
Retorna DataTable com a propriedade Caption preenchida de acordo com a definição no dicionário de dados para ser usada com Grids e outros
Camada de apresentaçãoCamada de apresentação
ClientClient PortalPortal
Provider Provider ADO.NETADO.NET Conversão Conversão
SQLSQL
Conexão com banco de dadosConexão com banco de dados
nDeveloper.DatanDeveloper.Data
ServidoresServidores
SQL SQL ServerServer
MySQLMySQL
OracleOracle
Visual Studio 2005Visual Studio 2005 nDeveloper StudionDeveloper Studio
.NET Framework (IIS, ASP.NET, Windows Forms, CLR).NET Framework (IIS, ASP.NET, Windows Forms, CLR)
Código SQL Código SQL padrãopadrão
DataSet, DataSet, DataTable, DataTable,
ObjetosObjetos
Características
DevicesDevices
Regras de negócio Regras de negócio
Características
Geração de código Script do banco de dados (estrutura e dados padrão)
Por módulo ou total Geração de script de stored procedures opcional Geração de dados padrão opcional (INSERT INTO)
BEGIN TRANSACTION _b_GO
SET NOCOUNT ONexec sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'exec sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
CREATE TABLE [dbo].[tblAbono] ( AbonoID INT IDENTITY not null, ColaboradorID INT not null, EmpresaID INT not null, DataHoraInicio DATETIME not null, DataHoraFim DATETIME not null, Tipo INT not null, Observacao Text null, DataHoraSolicitacao DATETIME not null, Estado INT not null, primary key (AbonoID))
ALTER TABLE [dbo].[tblAbono] ADD CONSTRAINT [FK__tblColaborador_to_tblAbono] FOREIGN KEY ([ColaboradorID]) REFERENCES [dbo].[tblColaborador] ([ColaboradorID])
Características
Geração de código Classes de regras de negócio
Modelos prontos Classe básica de mapeamento Classe de acesso a dados com funções básicas de seleção,
exclusão, inserção e atualização de dados ListaEntidade(); ListaUltimosInseridos(int Quantidade); IdUltimoInserido(); QuantidadeRegistros(); IdExiste(int ID); Excluir(); Gravar(); object Entidade RetornaEntidade(int ID);
Classe de acesso a dados concreta para funções customizadas herdando da classe padrão
Classe para Webservices Classe para regras de negócio com opção de acesso direto ou via
Webservice
Características
Geração de código Classes customizadas
Criação de novos modelos no nDeveloper Studio API para acesso a dicionário de dados e geração de interface com o
usuário automática para requisição de parâmetros Biblioteca nDeveloper.TemplateEngine
Modelos podem acessar diretamente o .NET Framework Modelos são escritos em C# Possibilidade de geração de qualquer tipo de código incluindo
Formulários, script de banco de dados, classes, projetos completos, etc
Características
Geração de código Classes customizadas
using System;using System.Text;using System.Collections;using nDeveloper.TemplateEngine;using nDeveloper.BO.Base.Domain;using nDeveloper.BO.Info;//css_reference nDeveloper.BO.Base.dll;//css_reference nDeveloper.BO.Info.dll;//css_reference nDeveloper.TemplateEngine.dll;
class GenerateInfo{ static ArrayList _selectedTables; static string _basicClassNamespace; static string _dataAccessClassNamespace; static string _prefix; static Output output = new Output(); //Inicia instância da classe base de suporte a templates static TemplateMaster template = new TemplateMaster();
static public void Main() { DomainInfo domain = new DomainInfo().GetDomainInfo();
ParameterList paramlist = new ParameterList(); Parameter p1 = new Parameter("Namespace classe básica", domain.SolutionClasseBasica, false, true);
template.ShowInputForm(); output.WriteLn(“Meu código"); output.Save(template.OutputPath + "\\" + RemoveFirstTableTitleEntity(entity.Name) + "DA.cs");
Características
Produtividade Geração de código reduz tempo com escrita de código
repetitivo (custo) Biblioteca de acesso a dados possibilita rápida migração de
banco de dados nDeveloper Studio
Ambiente familiar Acesso visual a todos os arquivos de um domínio nDeveloper Integração com servidor de banco de dados
Executor de consultas integrado Executor de scripts de banco de dados
Engenharia reversa de dicionário de dados Editor de código com suporte a vários tipos de arquivo
Aplicações em produção
Web Vsoft iPortal CMS
Portal da Câmara Municipal de João Pessoa Portal BRNordeste Outros
Windows Forms Vsoft iDS Access Lite
FESP, Teramag, Occa Construções, outros Atlas MorfoAnálise
Vários usuários em todo o país
Web / Web services / Windows Service / Windows Forms Vsoft Administrador i
Tribunal de Justiça da Paraíba CODATA Secretaria de Segurança Pública da Paraíba Zenitran
Roadmap
Atualização de bases de dados em produção Suporte a modelagem visual de entidades Histórico de alterações no dicionário de dados
(controle de versões) Add-in para geração de código dentro do Visual
Studio
Faça download em:Faça download em:http://www.codeproject.com/ndeveloperhttp://www.codeproject.com/ndeveloper
FIMFIM