nDeveloper Framework

24
nDeveloper Framework Pedro Alves Junior Diretor de Desenvolvimento Vsoft Tecnologia

description

Apresentação sobre o nDeveloper Framework.

Transcript of nDeveloper Framework

Page 1: nDeveloper Framework

nDeveloper Framework

Pedro Alves JuniorDiretor de DesenvolvimentoVsoft Tecnologia

Page 2: nDeveloper Framework

Agenda

Visão geral Características Demonstração Aplicações em produção Roadmap

Page 3: nDeveloper Framework

Visão geral

Framework de mapeamento objeto/relacional, acesso a multi-banco de dados, geração de código e produtividade.

Page 4: nDeveloper Framework

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

Page 5: nDeveloper Framework

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

Page 6: nDeveloper Framework

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>

Page 7: nDeveloper Framework

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>

Page 8: nDeveloper Framework

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>

Page 9: nDeveloper Framework

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>

Page 10: nDeveloper Framework

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>

Page 11: nDeveloper Framework

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>

Page 12: nDeveloper Framework

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>

Page 13: nDeveloper Framework

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; }

Page 14: nDeveloper Framework

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

Page 15: nDeveloper Framework

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

Page 16: nDeveloper Framework

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])

Page 17: nDeveloper Framework

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

Page 18: nDeveloper Framework

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

Page 19: nDeveloper Framework

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");

Page 20: nDeveloper Framework

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

Page 21: nDeveloper Framework
Page 22: nDeveloper Framework

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

Page 23: nDeveloper Framework

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

Page 24: nDeveloper Framework

Faça download em:Faça download em:http://www.codeproject.com/ndeveloperhttp://www.codeproject.com/ndeveloper

FIMFIM