Your SlideShare is downloading. ×
0
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
nDeveloper Framework
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

nDeveloper Framework

1,842

Published on

Apresentação sobre o nDeveloper Framework.

Apresentação sobre o nDeveloper Framework.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,842
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
40
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. nDeveloper Framework Pedro Alves Junior Diretor de Desenvolvimento Vsoft Tecnologia
    • 2. Agenda <ul><li>Visão geral </li></ul><ul><li>Características </li></ul><ul><li>Demonstração </li></ul><ul><li>Aplicações em produção </li></ul><ul><li>Roadmap </li></ul>
    • 3. Visão geral <ul><li>Framework de mapeamento objeto/relacional, acesso a multi-banco de dados, geração de código e produtividade. </li></ul>
    • 4. Visão geral <ul><li>Mapeamento objeto/relacional </li></ul><ul><ul><li>Dicionário de dados XML </li></ul></ul><ul><ul><li>Entidades organizadas por módulo </li></ul></ul><ul><ul><li>Biblioteca de acesso a dicionário de dados </li></ul></ul><ul><ul><li>Mapeamento automático de tipos da linguagem e tipos do banco de dados </li></ul></ul><ul><li>Acesso a multi-banco de dados </li></ul><ul><ul><li>Biblioteca com suporte a SQL Server (2000, 2005 e Compact Edition), Oracle, PostgreSQL, MySQL e Firebird </li></ul></ul><ul><ul><li>Tradução de código SQL automaticamente </li></ul></ul><ul><ul><li>Suporte total a ADO.NET </li></ul></ul><ul><li>Geração de código </li></ul><ul><ul><li>Script do banco de dados (estrutura e dados padrão) </li></ul></ul><ul><ul><li>Classes de regra de negócio </li></ul></ul><ul><ul><li>Possibilidade de criação de classes customizadas para gerar qualquer tipo de código, inclusive formulários </li></ul></ul>
    • 5. Visão geral <ul><li>Produtividade </li></ul><ul><ul><li>IDE para gerenciamento centralizado do dicionário de dados </li></ul></ul><ul><ul><li>Editor de código (C#, VB.NET, SQL, XML, etc) </li></ul></ul><ul><ul><li>Executor de consultas integrado com servidor de banco de dados </li></ul></ul><ul><ul><li>Executor de scripts (.sql) integrado com o servidor de banco de dados </li></ul></ul><ul><ul><li>Editor/executor de modelos (templates) de geração de código </li></ul></ul>
    • 6. Características <ul><li>Domínio </li></ul><? xml version =&quot;1.0&quot; encoding =&quot;utf-8&quot;?> < domain > < Files > < add key =&quot;SystemDataDictionaryTypes&quot; value =&quot;DataDictionary.Types.xml&quot; /> < add key =&quot;SystemDataDictionary&quot; value =&quot;DataDictionary.System.xml&quot; /> < add key =&quot;CustomDataDictionary&quot; value =&quot;DataDictionary.Custom.xml&quot; /> < add key =&quot;DataBaseConfig&quot; value =&quot;DataBaseServer.config&quot; /> < add key =&quot;SystemDefaultData&quot; value =&quot;DefaultData.System.xml&quot; /> < add key =&quot;CustomDefaultData&quot; value =&quot;DefaultData.Custom.xml&quot; /> < add key =&quot;SystemProcedures&quot; value =&quot;Procedure.System.xml&quot; /> < add key =&quot;Modules&quot; value =&quot;Modules.xml&quot; /> < add key =&quot;Scripts&quot; value =&quot;Scripts.xml&quot; /> < add key =&quot;License&quot; value =&quot;License.xml&quot; /> </ 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 =&quot;VsoftPonto&quot;> < Title >Ponto</ Title > </ Module > </ Modules > </ domain >
    • 7. Características <ul><li>Tipos do nDeveloper </li></ul><? xml version =&quot;1.0&quot; encoding =&quot;utf-8&quot;?> < DataDictionary.System.Types > < Type name =&quot;Integer&quot;> < CSharpTypeNamespace >System</ CSharpTypeNamespace > < CSharpType >int</ CSharpType > </ Type > < Type name =&quot;BigInt&quot;> < CSharpTypeNamespace >System</ CSharpTypeNamespace > < CSharpType >long</ CSharpType > </ Type > < Type name =&quot;SmallInt&quot;> < CSharpTypeNamespace >System</ CSharpTypeNamespace > < CSharpType >short</ CSharpType > </ Type > < Type name =&quot;Float&quot;> < CSharpTypeNamespace >System</ CSharpTypeNamespace > < CSharpType >double</ CSharpType > </ Type > < Type name =&quot;Money&quot;> < CSharpTypeNamespace >System</ CSharpTypeNamespace > < CSharpType >decimal</ CSharpType > </ Type > < Type name =&quot;Bit&quot;> < CSharpTypeNamespace >System</ CSharpTypeNamespace > < CSharpType >bool</ CSharpType > </ Type > < Type name =&quot;Date&quot;> < CSharpTypeNamespace >System</ CSharpTypeNamespace > < CSharpType >DateTime</ CSharpType > </ Type > </ DataDictionary.System.Types >
    • 8. Características <ul><li>Dicionário de dados </li></ul>? xml version =&quot;1.0&quot; encoding =&quot;utf-8&quot;?> < DataDictionary.System > < Entities > < Entity name =&quot;tblUsuario&quot;> < 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 =&quot;UsuarioGrupoID&quot;> < 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 =&quot;VsoftPonto&quot;> </ Module > </ Modules > </ Entity > </ DataDictionary.System >
    • 9. Características <ul><li>Dicionário de dados </li></ul><? xml version =&quot;1.0&quot; encoding =&quot;utf-8&quot;?> < DataDictionary.System > < References > < Reference name =&quot;tblPermissao_to_tblUsuario&quot;> < 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 >
    • 10. Características <ul><li>Dados padrão </li></ul><? xml version =&quot;1.0&quot; standalone =&quot;yes&quot;?> < DefaultValues > < Entity name =&quot;tblCidade&quot;> < CidadeID >1</ CidadeID > < Descricao >João Pessoa</ Descricao > < EstadoID >1</ EstadoID > </ Entity > < Entity name =&quot;tblRecurso&quot;> < RecursoID >68</ RecursoID > < Nome >ponto_abono_solicitacaovalidada</ Nome > < Descricao >Solicitação de Abono validada</ Descricao > < RecursoPaiID >62</ RecursoPaiID > < Nivel >2</ Nivel > </ Entity > </ DefaultValues >
    • 11. Características <ul><li>Procedimentos armazenados </li></ul><? xml version =&quot;1.0&quot; encoding =&quot;utf-8&quot;?> < Procedure.System > < Procedure name =&quot;sp_SelectTeste&quot;> < Description >Teste 2</ Description > < DataBaseServerType >1</ DataBaseServerType > < Code >CREATE PROCEDURE [sp_Nova] AS as teste SELECT * FROM tblTeste </ Code > </ Procedure > </ Procedure.System >
    • 12. Características <ul><li>Configuração de acesso a servidor de banco de dados do domínio </li></ul><? xml version =&quot;1.0&quot; encoding =&quot;utf-8&quot; ?> < configuration > < appSettings > < add key =&quot;DataBaseServerType&quot; value =&quot;1&quot; /> < add key =&quot;DataBaseServerHost&quot; value =&quot;(local)&quot; /> < add key =&quot;DataBaseName&quot; value =&quot;dbname&quot; /> < add key =&quot;DataBaseLogin&quot; value =&quot;sa&quot; /> < add key =&quot;DataBasePassword&quot; value =&quot;&quot; /> < add key =&quot;PostgreSQLEncoding&quot; value =&quot;&quot; /> < add key =&quot;MySQLCharSet&quot; value =&quot;&quot; /> < add key =&quot;Pooling&quot; value =&quot;false&quot; /> < add key =&quot;ServerType&quot; value =&quot;0&quot; /> </ appSettings > </ configuration >
    • 13. Características <ul><li>Desenvolvedor manipula Domínio e Dicionário de dados em tempo de desenvolvimento através do nDeveloper Studio (IDE) </li></ul><ul><li>Desenvolvedor manipula Domínio e Dicionário de dados em tempo de execução através da biblioteca nDeveloper.Base </li></ul>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; }
    • 14. Características <ul><li>Acesso multi-banco de dados através da biblioteca nDeveloper.Data </li></ul><ul><ul><li>Biblioteca com suporte a </li></ul></ul><ul><ul><ul><li>SQL Server (2000, 2005 e Compact Edition), Oracle, PostgreSQL, MySQL e Firebird (Classic e Embedded) </li></ul></ul></ul><ul><ul><li>Tradução de código SQL automaticamente </li></ul></ul><ul><ul><ul><li>SQL Server, Oracle, PostgreSQL, MySQL e ANSI SQL </li></ul></ul></ul><ul><ul><ul><li>Opcional por projeto e por método </li></ul></ul></ul><ul><ul><li>Suporte total a ADO.NET </li></ul></ul><ul><ul><ul><li>DataSet, DataTable, ExecuteScalar, Transactions, Parameters </li></ul></ul></ul><ul><ul><li>DataTable Rica (RichDataTable) </li></ul></ul><ul><ul><ul><li>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 </li></ul></ul></ul>
    • 15. Características Provider ADO.NET Conversão SQL Conexão com banco de dados nDeveloper.Data Servidores SQL Server MySQL Oracle Camada de apresentação Client Portal Visual Studio 2005 nDeveloper Studio .NET Framework (IIS, ASP.NET, Windows Forms, CLR) Código SQL padrão DataSet, DataTable, Objetos Devices Regras de negócio
    • 16. Características <ul><li>Geração de código </li></ul><ul><ul><li>Script do banco de dados (estrutura e dados padrão) </li></ul></ul><ul><ul><ul><li>Por módulo ou total </li></ul></ul></ul><ul><ul><ul><li>Geração de script de stored procedures opcional </li></ul></ul></ul><ul><ul><ul><li>Geração de dados padrão opcional (INSERT INTO) </li></ul></ul></ul>BEGIN TRANSACTION _b_ GO SET NOCOUNT ON exec 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])
    • 17. Características <ul><li>Geração de código </li></ul><ul><ul><li>Classes de regras de negócio </li></ul></ul><ul><ul><ul><li>Modelos prontos </li></ul></ul></ul><ul><ul><ul><li>Classe básica de mapeamento </li></ul></ul></ul><ul><ul><ul><li>Classe de acesso a dados com funções básicas de seleção, exclusão, inserção e atualização de dados </li></ul></ul></ul><ul><ul><ul><ul><li>ListaEntidade(); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>ListaUltimosInseridos(int Quantidade); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>IdUltimoInserido(); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>QuantidadeRegistros(); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>IdExiste(int ID); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Excluir(); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Gravar(); </li></ul></ul></ul></ul><ul><ul><ul><ul><li>object Entidade RetornaEntidade(int ID); </li></ul></ul></ul></ul><ul><ul><ul><li>Classe de acesso a dados concreta para funções customizadas herdando da classe padrão </li></ul></ul></ul><ul><ul><ul><li>Classe para Webservices </li></ul></ul></ul><ul><ul><ul><li>Classe para regras de negócio com opção de acesso direto ou via Webservice </li></ul></ul></ul>
    • 18. Características <ul><li>Geração de código </li></ul><ul><ul><li>Classes customizadas </li></ul></ul><ul><ul><ul><li>Criação de novos modelos no nDeveloper Studio </li></ul></ul></ul><ul><ul><ul><li>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 </li></ul></ul></ul><ul><ul><ul><ul><li>Biblioteca nDeveloper.TemplateEngine </li></ul></ul></ul></ul><ul><ul><ul><li>Modelos podem acessar diretamente o .NET Framework </li></ul></ul></ul><ul><ul><ul><li>Modelos são escritos em C# </li></ul></ul></ul><ul><ul><ul><li>Possibilidade de geração de qualquer tipo de código incluindo Formulários, script de banco de dados, classes, projetos completos, etc </li></ul></ul></ul>
    • 19. Características <ul><li>Geração de código </li></ul><ul><ul><li>Classes customizadas </li></ul></ul>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(&quot;Namespace classe básica&quot;, domain.SolutionClasseBasica, false, true); template.ShowInputForm(); output.WriteLn(“Meu código&quot;); output.Save(template.OutputPath + &quot;amp;quot; + RemoveFirstTableTitleEntity(entity.Name) + &quot;DA.cs&quot;);
    • 20. Características <ul><li>Produtividade </li></ul><ul><ul><li>Geração de código reduz tempo com escrita de código repetitivo (custo) </li></ul></ul><ul><ul><li>Biblioteca de acesso a dados possibilita rápida migração de banco de dados </li></ul></ul><ul><ul><li>nDeveloper Studio </li></ul></ul><ul><ul><ul><li>Ambiente familiar </li></ul></ul></ul><ul><ul><ul><li>Acesso visual a todos os arquivos de um domínio nDeveloper </li></ul></ul></ul><ul><ul><ul><li>Integração com servidor de banco de dados </li></ul></ul></ul><ul><ul><ul><ul><li>Executor de consultas integrado </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Executor de scripts de banco de dados </li></ul></ul></ul></ul><ul><ul><ul><li>Engenharia reversa de dicionário de dados </li></ul></ul></ul><ul><ul><ul><li>Editor de código com suporte a vários tipos de arquivo </li></ul></ul></ul>
    • 21.  
    • 22. Aplicações em produção <ul><li>Web </li></ul><ul><ul><li>Vsoft iPortal CMS </li></ul></ul><ul><ul><ul><li>Portal da Câmara Municipal de João Pessoa </li></ul></ul></ul><ul><ul><ul><li>Portal BRNordeste </li></ul></ul></ul><ul><ul><ul><li>Outros </li></ul></ul></ul><ul><li>Windows Forms </li></ul><ul><ul><li>Vsoft iDS Access Lite </li></ul></ul><ul><ul><ul><li>FESP, Teramag, Occa Construções, outros </li></ul></ul></ul><ul><ul><li>Atlas MorfoAnálise </li></ul></ul><ul><ul><ul><li>Vários usuários em todo o país </li></ul></ul></ul><ul><li>Web / Web services / Windows Service / Windows Forms </li></ul><ul><ul><li>Vsoft Administrador i </li></ul></ul><ul><ul><ul><ul><li>Tribunal de Justiça da Paraíba </li></ul></ul></ul></ul><ul><ul><ul><ul><li>CODATA </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Secretaria de Segurança Pública da Paraíba </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Zenitran </li></ul></ul></ul></ul>
    • 23. Roadmap <ul><li>Atualização de bases de dados em produção </li></ul><ul><li>Suporte a modelagem visual de entidades </li></ul><ul><li>Histórico de alterações no dicionário de dados (controle de versões) </li></ul><ul><li>Add-in para geração de código dentro do Visual Studio </li></ul>
    • 24. Faça download em: http://www.codeproject.com/ndeveloper FIM

    ×