Microsoft.NET Application Blocks. Departamento de Engenharia Informática

Tamanho: px
Começar a partir da página:

Download "Microsoft.NET Application Blocks. Departamento de Engenharia Informática"

Transcrição

1 Microsoft.NET Application Blocks 2003 / André Coutinho Departamento de Engenharia Informática Setembro 2004 Orientador ISEP: Paulo Sousa

2 Agradecimentos Muito obrigado ao meu orientador o Engº. Paulo Sousa, pela ajuda na realização deste relatório. I

3 Índice Agradecimentos...I Índice...II Índice de figuras...vi Índice de Tabelas...VII Glossário... VIII 1. Introdução O que são os application blocks? Código redundante Encapsulamento Para que servem? Benefícios de usar os application blocks Estrutura do Relatório Data Access Application Block Introdução Classes principais do DAAB Classe SqlHelper Os métodos da classe SqlHelper Detalhes de implementação Opções para passagem de parâmetros Funções Privadas Classe SqlHelperParameterCache Os métodos da classe SqlHelperParameterCache Detalhes de implementação Usando o DAAB para executar comandos SQL Usando o DAAB para executar Stored Procedures Logging Application Block Introdução Enterprise Instrumentation Framework Logging Formatação da informação dos eventos Configuração dos níveis de log EnterpriseInstrumentation.config Exception Management Application Block Introdução Classes do EMAB Classe BaseApplicationException Classe ExceptionManagerSectionHandler Classe ExceptionManager Classe ExceptionManagerInstaller Classe Default Publisher A interface IExceptionPublisher Métodos da interface IExceptionPublisher A interface IExceptionXmlPublisher Métodos de IExceptionXmlPublisher Configuration Management Application Block Introdução Elementos constituintes do CMAB Objectivos II

4 5.4. Vantagens Porquê a criação do CMAB Criação de um CSP de leitura Criação de um CSP de leitura/escrita Criação de um DPP Updater Application Block Introdução Arquitectura do UAB Classes do UAB Classe ServerApplicationInfo Objectivos Os ficheiros manifest Caching Application Block Introdução Funcionamento O que são os Service Agents A interface IServiceAgent Métodos da interface IServiceAgent O método PersistCallback Término de um Service Agent Usando o CAB com outros application blocks Componentes primários do CAB Classe CacheManager Métodos da classe CacheManager Propriedades da classe CacheManager A classe CacheService Métodos da classe CacheService A interface ICacheStorage Métodos da interface ICacheStorage Propriedades da interface ICacheStorage Ficheiros de Configuração Protecção de dados A interface IDataProtection Métodos do interface IDataProtection Expiração Classe AbsoluteTime Construtores da classe AbsoluteTime Métodos da classe AbsoluteTime Classe ExtendedFormatTime Classe FileDependency Construtores da classe FileDependency Métodos da classe FileDependency Eventos da classe FileDependency Classe SlidingTime Métodos da classe SlidingTime Eventos da classe SlindingTime Exploração A interface IScavengingAlgorithm Métodos do interface IScavengingAlgorithm Armazenamento III

5 Como escolher uma das opções de armazenamento Classe MemoryMappedFileStream Construtores da classe MemoryMappedFileStream Métodos da classe MemoryMappedFileStream Propriedades da classe MemoryMappedFileStream Aggregation Application Block Introdução Funcionamento Usando o AAB com outros Application Blocks Design do AAB Classe AggregationRequest Construtor da classe AggregationRequest Métodos da classe AggregationRequest A estrutura AggregatedResult Propriedades da estrutura AggregatedResult Ficheiro de configuração Introdução Funcionamento Utilização do AIAB com outros application blocks Arquitectura do AIAB O subsistema Request Classe AsyncRequestBacth Construtor da classe AsyncRequestBatch Métodos da classe AsyncRequestBatch Propriedades da classe AsyncRequestBatch O subsistema Dispatcher Classe AsyncROHServices Construtor da classe AsyncROHService Métodos da classe AsyncROHService Classe AsyncDispatcher Propriedades da classe AsyncDispatcher Classe Processor Métodos da classe Processor Classe ServiceAgentReqDetails Construtor público da classe ServiceAgentReqDetails Métodos da classe ServiceAgentReqDetails Propriedades da classe ServiceAgentReqDetails Classe ResultManager Métodos da classe ResultManager O subsistema Monitor Classe RecoveryMonitor Construtor da classe RecoveryMonitor Métodos da classe RecoveryMonitor Classe GarbageCollection Construtor da classe GarbageCollection Métodos da classe GarbageCollection Design da base de dados Ficheiros de configuração User Interface Process Application Block Introdução IV

6 10.2. Descrição da solução Classes Factory Classe GenericFactory Métodos da classe GenericFactory Classe ControllerFactory Métodos da classe ControllerFactory Classe StatePersistenceFactory Conclusão Bibliografia V

7 Índice de figuras Figura 1: Arquitectura do DAAB... 4 Figura 2: A arquitectura EIF Figura 3: Arquitectura do Logging Application Block Figura 4: Como funciona o EMAB Figura 5: A arquitectura do EMAB Figura 6: Relação entre os elementos do CMAB (arquitectura) Figura 7: Mantendo aplicações actualizada com o UAB Figura 8: Arquitectura do UAB Figura 9: Mapeamento do ficheiro de configuração do updater da aplicação (application updater) Figura 10: Arquitectura de validação do lado do cliente Figura 11: Arquitectura de validação do lado do servidor Figura 12: Arquitectura de post processing do UAB Figura 13: Mapeamento da classe ServerApplicationInfo num ficheiro manifest Figura 14: Arquitectura do AAB Figura 15: Arquitectura do AIAB Figura 16: Base de dados usada pelo AIAB Figura 17: Funcionamento do Controller VI

8 Índice de Tabelas Tabela 1: As diferentes assemblies do CAB VII

9 Glossário AAB - Aggregation Application Block. AIAB - Asynchronous Invocation Information Application Block. BITS - Background Intelligent Transfer Service. CAB - Caching Application Block. CMAB Configuration Management Application Block. CSP Configuration Section Provider. DAAB Data Access Application Block. DPAPI Data Protection API. DPP Data Protection Provider. EIF Enterprise Instrumentation Framework. EMAB Exception Management Application Block. FSP Foreign Service Provider. LAB Logging Application Block. MAC Message Authentication Code. MMF Memory-mapped file MVC Model View Controller. RAD Rapid Application Development. UAB Updater Application Block. UIPAB User Interface Process Application Block. WMI Windows Management Instrumentation. XML Extensible Markup Language. XSLT Extensible Stylesheet Language. VIII

10 1. Introdução 1.1. O que são os application blocks? A Microsoft disponibiliza application building blocks para o Framework.NET, que encapsulam certas áreas chave, facilitando a construção de aplicações ao fornecerem implementações out of the box de serviços comuns tais como acesso a dados, configuração e tratamento de excepções. Os application building blocks promovem o desenvolvimento de aplicações mais rápido e mais correcto, fazendo uso de boas práticas de programação. A seguir são apresentados os principais motivos que levaram à criação dos.net application blocks Código redundante A redundância de código é um problema grave que afecta a dimensão, eficiência, manutenção e correcção de erros de uma aplicação. Determinar a redundância é útil para reduzir a programação copy/paste que se acumulou num projecto. Os problemas gerados por este tipo de atitude ao programar, são os seguintes: Um qualquer erro num determinado algoritmo terá de ser corrigido em todas as aplicações em que foi introduzido. Tornar o programa mais genérico. Alertar o programador que está a inventar algo já existente. Descobrir cópias. Falta de encapsulamento, isto torna a manutenção e extensão bastante complexas. Durante a manutenção de programas é frequente termos de reescrever código, para o tornar mais claro, mais genérico, mais eficiente e menos redundante. A reescrita é perigosa, pois pode não preservar a semântica do código original (introduz bugs) Encapsulamento A falta de encapsulamento também é um problema, que afecta a manutenção e extensão da aplicação, e aumenta a sua complexidade. Sem encapsulamento, as informações são globais e podem ser acedidas directamente, criando confusão sobre quem definiu o quê e quando. A ideia subjacente ao encapsulamento é proteger a informação (código, dados), por trás de uma barreira, para evitar a utilização indevida de determinado objecto ou classe que possa corromper a informação a proteger Para que servem? Os application blocks encapsulam uma optimização das boas práticas e técnicas de programação para trabalhar no Framework.NET, como já foi dito. São reutilizáveis, e permitem reduzir grande parte do código redundante (aquele André Coutinho 1

11 código reescrito cada vez que queremos implementar uma determinada funcionalidade). Considerando, por exemplo, uma aplicação que requer acesso a uma base de dados, verifica-se que se usa repetidamente muitos blocos de código. Um application block encapsula o código mais utilizado, fornecendo portanto uma forma simples de reutilizar código eficientemente. Outra vantagem dos application blocks consiste na camada que formam sobre o Framework.NET. Usando os application blocks é possível reter os métodos mais expostos/usados dos application blocks e internamente lidar com as mudanças na Framework.NET. A aplicação fica protegida das mudanças que poderão ocorrer nas bibliotecas.net, e assim, aumentar a capacidade da manutenção Benefícios de usar os application blocks Sem dúvida que o maior benefício de usar os application blocks é a capacidade que estes têm de tornar o desenvolvimento mais rápido e modular de programas. Uma vez que muito do código está encapsulado, isto vai permitir mais concentração na business logic da aplicação Estrutura do Relatório Este relatório está estruturado de acordo com o tema que levou à sua realização, os application blocks.net da Microsoft, ou seja, existe um capítulo por application block (um block, um capítulo). Além destes, foram também incluídos um capítulo de introdução, conclusão e bibliografia. Tendo sido estudados nove application blocks, cada capítulo dedicado a um determinado application block começa por fazer um pequena introdução e seguidamente são descritas as suas principais classes, métodos e interfaces, com exemplos, bem como detalhes de implementação nos casos em que isto se justificou. Anteriormente à descrição das classes, métodos e interfaces, apresentam-se ainda os objectivos da criação de cada application block, bem como as suas vantagens. São ilustrados também, alguns casos de utilização. André Coutinho 2

12 2. Data Access Application Block 2.1. Introdução O Data Access Application Block é um componente disponível para a Framework.NET, que contém código de acesso a dados, optimizado, e que facilita a execução de Stored Procedures e comandos SQL, sobre uma base de dados Microsoft SQL Server. A sua implementação é centrada à volta da classe SqlHelper (responsável pelo encapsular das tarefas mais comuns de acesso e gestão de dados) que possui métodos estáticos para os serviços mais comuns de acesso a dados (ex., efectuar um select para obter um DataSet). O facto destes métodos serem estáticos significa que podem ser chamados sem existir uma instância da classe. Por exemplo, o método ExecuteReader() (classe SqlHelper) pode ser chamado usando simplesmente SqlHelper.ExecuteReader, não é necessário instanciar um objecto da classe SqlHelper. Estes métodos estáticos do DAAB (como daqui em diante será referido) podem ser utilizados para devolver objectos do tipo SqlDataReader, DataSet e XmlReader contendo a informação desejada. É ainda possível especificar parâmetros para os Stored Procedures, e a classe está preparada para lidar com transacções. Especificamente o DAAB ajuda a: Executar Stored Procedures e comandos de texto SQL, mais facilmente. Especificar detalhes dos parâmetros. Retornar objectos do tipo SqlDataReader, Dataset, XmlReader, ou valores isolados. Usar tabelas e campos strong typed. Suportar caching de parâmetros, quando necessários. Permitir a adição de novas tabelas, através da passagem de Datasets préexistentes. Actualizar um DataSet, com comandos de update especificados pelo utilizador. Criar objectos SqlCommand. Permitir que DataRows sejam passados como parâmetros. A versão analisada neste capítulo é a versão 2 deste application block. Relativamente ao anterior foram acrescentadas as seguintes funcionalidades: Suporte para strongly typed Datasets com o método FillDataSet. Suporte à realização de updates sobre um Dataset, para a base de dados. Métodos helper adicionais com suporte para parâmetros do tipo DataRow. André Coutinho 3

13 Os principais elementos do DAAB estão ilustrados na Figura 1. Figura 1: Arquitectura do DAAB 2.2. Classes principais do DAAB Classe SqlHelper A classe SqlHelper é o componente central do DAAB. Fornece métodos que permitem implementar soluções de acesso a dados para bases de dados SQL Server. Os principais objectivos desta classe são: Encapsular os métodos mais comuns de acesso a dados, minimizando o código customizado a usar. Permitir que as aplicações cliente executem updates a bases de dados, ou que recebam valores, objectos SqlDataReader, objectos DataSet, ou objectos XmlReader, usando um conjunto consistente de métodos. Permitir que as aplicações cliente executem comandos SQL ou Stored Procedures, usando o mesmo método. André Coutinho 4

14 A especificação por parte das aplicações cliente da string de conexão ou o objecto SqlConnection para determinar a origem dos dados. Permitir que a aplicação cliente especifique parâmetros se necessário, que serão passados como um array de objectos SqlParameter, ou ainda, permitir a passagem de parâmetros para Stored Procedures. Especificar uma transacção ADO.NET, por parte dos clientes, e poder introduzir um comando na transacção. Possibilitar o preenchimento de um DataSet. Possibilitar a persistência do update feito a um DataSet para uma base de dados física. Suportar DataSets strong type Os métodos da classe SqlHelper Para satisfazer os objectivos da classe SqlHelper, esta classe possui vários métodos com overload, para cada tarefa de acesso a dados. Estes métodos fornecem múltiplas implementações de uma mesma função (overload), de modo a aumentar a flexibilidade em termos de informação sobre a conexão, parâmetros e transacções. A seguir apresentam-se os métodos constituintes desta classe, juntamente com um dos seus overloads, para cada um dos métodos. Uma vez que cada método tem vários overloads, decidiu-se apresentar apenas um overload de cada um. Os métodos da classe SqlHelper são então os seguintes: ExecuteNonQuery. Este método é usado para executar comandos que não devolvem valores ou linhas de uma tabela. É geralmente utilizado para executar updates de bases de dados, mas também para devolver parâmetros de saída de Stored Procedures. public static int ExecuteNonQuery( string connectionstring, CommandType commandtype, string commandtext) ExecuteReader. Método utilizado para devolver objectos SqlDataReader contendo o resultado devolvido por um comando SQL executado. private static SqlDataReader ExecuteReader( SqlConnection connection, SqlTransaction transaction, CommandType commandtype, string commandtext, SqlParameter[] commandparameters, SqlConnectionOwnership connownership) ExecuteDataSet. Este método retorna um objecto DataSet contendo o resultado da execução de um comando. public static DataSet ExecuteDataset( string connectionstring, CommandType commandtype, string commandtext) André Coutinho 5

15 ExecuteScalar. Retorna apenas um valor. Este valor é sempre a primeira coluna, da primeira linha devolvida pela execução do comando SQL. public static object ExecuteScalar( string connectionstring, CommandType commandtype, string commandtext) ExecuteXmlReader. Devolve um fragmento XML, de um inquérito FOR XML. public static XmlReader ExecuteXmlReader( SqlConnection connection, CommandType commandtype, string commandtext) FillDataSet. Método similar ao ExecuteDataSet, mas que em vez de devolver um novo objecto DataSet, adiciona informação ao DataSet existente. public static void FillDataset( string connectionstring, CommandType commandtype, string commandtext, DataSet dataset, string[] tablenames) UpdateDataSet. Propaga as mudanças efectuadas num DataSet, para a base de dados física. public static void UpdateDataset( SqlCommand insertcommand, SqlCommand deletecommand, SqlCommand updatecommand, DataSet dataset, string tablename) CreateCommand. Este método permite especificar os argumentos para o comando a ser usado pelo UpdateDataSet. public static SqlCommand CreateCommand( SqlConnection connection, string spname, params string[] sourcecolumns) ExecuteNonQueryTypedParams. É similar ao ExecuteNonQuery, no entanto os parâmetros de saída obtidos vêm de um DataRow. public static int ExecuteNonQueryTypedParams( String connectionstring, String spname, DataRow datarow) André Coutinho 6

16 ExecuteDataSetTypedParams. Este método é idêntico ao ExecuteDataset, mas os parâmetros de saída obtidos vêm de um DataRow. public static DataSet ExecuteDatasetTypedParams( string connectionstring, String spname, DataRow datarow) ExecuteReaderTypedParams. Idêntico ao método ExecuteReader, com a excepção dos parâmetros obtidos vêm de um DataRow. public static SqlDataReader ExecuteReaderTypedParams( String connectionstring, String spname, DataRow datarow) ExecuteScalarTypedParams. Este método é idêntico ao ExecuteScalar, mas os parâmetros de saída obtidos vêm de um DataRow. public static object ExecuteScalarTypedParams( String connectionstring, String spname, DataRow datarow) ExecuteXmlReaderTypedParams. Este método é idêntico ao ExecuteXmlReader, mas os parâmetros de saída obtidos vêm de um DataRow. public static XmlReader ExecuteXmlReaderTypedParams( SqlConnection connection, String spname, DataRow datarow) Detalhes de implementação A classe SqlHelper foi desenhada para encapsular as funcionalidades de acesso a dados, através de uma série de métodos estáticos. Como não foi criada para ser herdada ou instanciada, esta classe é declarada como não herdável com um construtor privado. Cada um dos métodos implementados consiste num conjunto de overloads consistente. Isto providencia um padrão bem definido para execução de comandos usando esta classe, enquanto dá aos programadores a flexibilidade para escolherem a forma de acesso aos dados. Os overloads de cada método suportam diferentes argumentos, de modo a ser possível decidir como é passada a informação sobre parâmetros, conexão e transacções Opções para passagem de parâmetros Uma das principais opções aquando da chamada de um método da classe SqlHelper é como fazer a passagem de parâmetros para o comando a executar. As opções são: Usar um overload que não aceite parâmetros para o comando. André Coutinho 7

17 Esta opção é útil quando, por exemplo, há necessidade de executar um Stored Procedure que não leva qualquer parâmetro. Usar um overload que aceite objectos SqlParameter (commandparameters). Este overload que aceita objectos SqlParameter, também aceita um array dos mesmos objectos. Este array é marcado com a palavra chave ParamArray. Isto significa que existem duas abordagens a estes overloads. É possível passar um array contendo os parâmetros para o comando, ou então passar objectos SqlParameter individualmente para cada parâmetro do comando. Usar um overload para StoredProcedures que aceitem uma lista de valores de parâmetros (parametervalues). Internamente, estes parametervalues são atribuídos a um array de objectos SqlParameter usando a função AssignParameter. Embeber parâmetros num DataRow e chamar um dos métodos *TypedParams, como por exemplo, o ExecuteNonQueryTypedParams Funções Privadas Além dos métodos públicos, a classe SqlHelper inclui funções privadas, usadas para gerir parâmetros e preparar comandos para execução. Independentemente da implementação de determinado método usada, todos os comandos são executados usando um objecto SqlCommand. Antes deste objecto ser executado, quaisquer parâmetros devem ser adicionados à sua colecção de objectos Parameter. As propriedades Connection, CommandType, CommandText, e Translation também devem ser definidas correctamente. O principal objectivo destas funções é fornecer uma forma consistente de execução de comandos sobre uma base de dados SQL Server, independentemente da implementação do método usada. Os métodos privados são: AttachParameters. Os clientes podem passar a esta função um array de objectos SqlParameter, com os parâmetros associados ao comando a executar. Antes de um objecto SqlCommand ser usado para executar o comando, cada parâmetro do array deve ser adicionado à colecção de objectos Parameters do objecto SqlCommad. AssignParameter. Esta função é utilizada quando um Stored Procedure é chamado, usando uma lista de parâmetros separados por vírgulas (Param1, Param2,...Paramn). A função executa um ciclo sobre um array de objectos SqlParameters, contendo os parâmetros para o Stored Procedure e atribui o valor correspondente a partir do array de parâmetros passados pela aplicação cliente. Depois destes parâmetros estarem atribuídos, o array de objectos SqlParameters pode ser passado à função para ser adicionado ao objecto SqlCommand. Existe um overload desta função que recebe um DataRow como argumento. André Coutinho 8

18 PrepareCommand. Esta função serve para definir as propriedades do objecto SqlCommand usado para executar o Stored Procedure ou comando especificado pela aplicação cliente. A função PrepareCommand faz a conexão à base de dados e atribui as propriedades Connection e CommandType, verificando também se alguma transacção foi especificada, e define a propriedade Transaction, no caso de ter sido. Finalmente define a propriedade CommandText e executa o comando. ExecuteReader. O ExecuteReader usa um método interno privado, para permitir que o DataReader seja aberto com o CommandBehavior apropriado para gerir o tempo de vida da conexão foi passado pelo cliente ou criado pela classe SqlHelper a partir de uma string de conexão. Um enum privado é usado para definir a origem do objecto de conexão. FillDataSet. Os overloads públicos do método FillDataSet são implementados por uma chamada a um overload interno e privado do mesmo método Classe SqlHelperParameterCache A classe SqlHelperParameterCache providencia funcionalidades para o armazenamento (caching), e retorno de parâmetros utilizados pelos comandos e Stored Procedures executados pelas aplicações. É comum as aplicações executarem um determinado comando por diversas vezes. A vantagem que esta classe traz, é que torna desnecessária a recriação dos parâmetros usados por um qualquer comando, para cada execução do mesmo. Existem dois problemas na gestão de parâmetros que a classe SqlHelperParameterCache resolve. Estes problemas são: Os parâmetros que um Stored Procedure necessite, podem ter de ser identificados dinamicamente. O armazenamento e recuperação de parâmetros para posteriores execuções. Não só é benéfico descobrir parâmetros em run time (ou seja dinamicamente), porque permite simplificar em muito o código, como também é importante armazenar os parâmetros usados. Abaixo são descritos os objectivos da classe: Os parâmetros devem ser descobertos e mapeados pela sua posição, em run time, com o mínimo de impacto possível na performance da aplicação. Deverá ser possível para o utilizador armazenar e recuperar arrays de objectos SqlParameter. Quando é recuperado um array de objectos SqlParameter, as mudanças feitas aos parâmetros desse array não deverão afectar os valores em cache. Os utilizadores deverão conseguir recuperar dinamicamente um array de parâmetros para um determinado Stored Procedure. Os parâmetros neste array deverão ter o nome correcto, bem como o tipo de dados, tamanho e direcção. André Coutinho 9

19 Os métodos da classe SqlHelperParameterCache Esta classe do DAAB tem três métodos (públicos) que podem ser utilizados para gerir parâmetros. Estes métodos são os seguintes: CacheParameterSet. Usado para armazenar um array de objectos SqlParameter. public static void CacheParameterSet( string connectionstring, string commandtext, params SqlParameter[] commandparameters) GetCachedParameterSet. Método utilizado para recuperar uma cópia de um array de parâmetros anteriormente armazenado. public static SqlParameter[] GetCachedParameterSet( string connectionstring, string commandtext) GetSpParameterSet. Este método pode ser usado para recuperar os parâmetros apropriados para a execução de um determinado Stored Procedure, questionando a base de dados uma vez e guardando os resultados para futuros inquéritos à base de dados. public static SqlParameter[] GetSpParameterSet( string connectionstring, string spname) Detalhes de implementação Os arrays de parâmetros são armazenados numa tabela de hash privada. Internamente os parâmetros recuperados da cache são copiados para que a aplicação cliente possa mudar os valores dos parâmetros, sem afectar os valores já guardados. A função privada CloneParameter, é usada para fazer isto. Um array de objectos SqlParameter pode ser guardado em cache usando o método CacheParameterSet. Este método cria uma chave, concatenando a string de conexão e o comando SQL passado para o método. O método GetSpParameterSet, que possui dois overloads, permite recuperar os parâmetros para um Stored Procedure específico a partir da cache. Se os parâmetros não estão em cache, serão recuperados a partir da base de dados, usando uma função privada, DiscoverSpParameterSet, que por sua vez usa o método DeriveParameter da classe CommandBuilder do ADO.NET, para determinar quais os parâmetros adequados para o Stored Procedure em questão Usando o DAAB para executar comandos SQL Para ilustrar as vantagens do uso do DAAB, abaixo está um exemplo do código necessário para criar um objecto SqlDataReader ligado a um objecto DataGrid sem usar o DAAB. Geralmente, para devolver um DataReader é necessário André Coutinho 10

20 estabelecer uma conexão à base de dados, criar um comando SQL e executá-lo sobre a base de dados. O objecto SqlDataReader resultante pode então ser ligado ao objecto DataGrid: //create the connection string and sql to be executed string strconntxt = "Server=(local);Database=Northwind;Integrated Security=True;"; string strsql = "select * from products where categoryid = 1"; //create and open the connection object SqlConnection objconn = new SqlConnection(strConnTxt); objconn.open(); //Create the command object SqlCommand objcmd = new SqlCommand(strSql, objconn); objcmd.commandtype = CommandType.Text; //databind the datagrid by calling the ExecuteReader() method DataGrid1.DataSource = objcmd.executereader(); DataGrid1.DataBind(); //close the connection objconn.close(); Agora vejamos o mesmo exemplo, mas usando o método ExecuteReader da classe SqlHelper: //create the connection string and sql to be executed string strsql = "select * from products where categoryid = 1"; string strconntxt = "Server=(local);Database=Northwind;Integrated Security=True;"; DataGrid4.DataSource = SqlHelper.ExecuteReader(strConnTxt, CommandType.Text, strsql); DataGrid4.DataBind(); Como se pode ver há consideravelmente menos código do que no exemplo anterior. Para executar um comando SQL e obter um SqlDataReader, o método ExecuteReader() requer apenas a string usada para estabelecer a conexão, o tipo de comando a executar e o comando SQL que se quer executar Usando o DAAB para executar Stored Procedures O método ExecuteReader tem vários overloads, permitindo executar Stored Procedures e transacções. A seguir está um exemplo deste método para a execução de um Stored Procedure: DataGrid5.DataSource = SqlHelper.ExecuteReader( strconntxt, CommandType.StoredProcedure, "getproductsbycategory", new SqlParameter( André Coutinho 11

21 DataGrid5.DataBind() ); 1) Para executar um Stored Procedure e devolver um objecto SqlDataReader, chama-se outra variante do método ExecuteReader(). Para chamar um Stored Procedure, em vez de passar um comando SQL, passa-se o nome do Stored Procedure e um objecto SqlParameter. Veja-se mais uma vantagem em usar o DAAB. Neste exemplo, é devolvido um DataSet contendo o resultado da execução de um Stored Procedure (getproductsbycategory) que usa apenas um parâmetro (CategoryID). Começa-se por ver novamente o código necessário para fazer isto sem usar o DAAB. // Open a connection to Northwind SqlConnection objconn = new SqlConnection("Server=(local);Database=Northwind;Integrated Security=True;"); objconn.open(); //Create the stored procedure command object SqlCommand objcmd = new SqlCommand("getProductsByCategory", objconn); objcmd.commandtype = CommandType.StoredProcedure; //create the parameter object for the stored procedure parameter SqlDbType.Int); = 1; //create our DataAdapter and DataSet objects SqlDataAdapter objda = new SqlDataAdapter(objCmd); DataSet objds = new DataSet("Category_Results"); //fill the dataset objda.fill(objds); //databind the datagrid DataGrid1.DataSource = objds; DataGrid1.DataBind(); //close connection objconn.close(); A seguir apresenta-se o código necessário para fazer o mesmo mas utilizando o método ExecuteDataSet da classe SqlHelper: string strconn = "Server=(local);Database=Northwind;Integrated Security=True;"; DataSet objds = SqlHelper.ExecuteDataset(strConn, CommandType.StoredProcedure, "getproductsbycategory", new 1) ); DataGrid2.DataSource = objds; DataGrid2.DataBind(); O código foi reduzido de 12 para 4 linhas, como se pode ver. André Coutinho 12

INTRODUÇÃO AO MODELO ADO.NET (DESCONECTADO)

INTRODUÇÃO AO MODELO ADO.NET (DESCONECTADO) INTRODUÇÃO AO MODELO ADONET (DESCONECTADO) O modelo ADONET (Activex Data Objects NET) consiste num conjunto de classes definidas pela NET framework (localizadas no namespace SystemData) que pode ser utilizado

Leia mais

Acesso a Banco de Dados usando C#

Acesso a Banco de Dados usando C# Linguagem de Programação 3 Acesso a Banco de Dados usando C# Prof. Mauro Lopes 1-31 26 Objetivos Nesta aula iremos dar continuidade aos elementos de programação da Linguagem C#. Iremos aqui apresentar

Leia mais

Integração de Aplicações e Sistemas Abordagem Táctica da Integração

Integração de Aplicações e Sistemas Abordagem Táctica da Integração Integração de Aplicações e Sistemas Abordagem Táctica da Integração Enterprise Application Integration Tecnologias de Integração de Aplicações Transferência de Ficheiros Captura da Interface Utilizador

Leia mais

A interface IDataSource retorna dados em formato tabular e disponibiliza apenas dois métodos: GetView e GetViewNames. O primeiro,

A interface IDataSource retorna dados em formato tabular e disponibiliza apenas dois métodos: GetView e GetViewNames. O primeiro, 3 1CONTROLOS DATA SOURCE A plataforma ASP.NET disponibiliza um conjunto de controlos, designados de data source, que são capazes de fornecer dados que podem ser consumidos por outros, designados por data

Leia mais

Tarefa Orientada 2 Aplic. Manutenção de Produtos - DataGridView

Tarefa Orientada 2 Aplic. Manutenção de Produtos - DataGridView Tarefa Orientada 2 Aplic. Manutenção de Produtos - DataGridView Objectivos: Criação de fonte de dados (Data Source) a partir de base de dados. Utilização de um controlo DataGridView para visualizar dados.

Leia mais

ADO.NET - Roteiro básico e Boas Práticas

ADO.NET - Roteiro básico e Boas Práticas ADO.NET - Roteiro básico e Boas Práticas Confuso com tantos conceitos novos, com tantas siglas e acrósticos? Qual provedor usar? Devo usar DataSet ou DataReader? Se essas e outras dúvidas te atormentam,

Leia mais

using System; using System.Collections.Generic; using System.Text; namespace Estudo { public class PessoaJuridica : Pessoa { private string cnpj;

using System; using System.Collections.Generic; using System.Text; namespace Estudo { public class PessoaJuridica : Pessoa { private string cnpj; using System; using System.Collections.Generic; using System.Text; namespace Estudo public abstract class Pessoa private int idpessoa; private string nome; public int IdPessoa get return this.idpessoa;

Leia mais

Trabalho Prático Nº1 Introdução ao C#.NET

Trabalho Prático Nº1 Introdução ao C#.NET Trabalho Prático Nº1 Introdução ao C#.NET 1. OBJECTIVOS - Entender o contexto da plataforma.net - Desenvolver programas simples em C#.NET - Saber efectuar entradas de dados em modo Consola e Windows Forms

Leia mais

Seguindo o modelo descrito nas Tabelas 1 e 2, crie os arquivos utilizando a versão doo Excel que você tiver disponível.

Seguindo o modelo descrito nas Tabelas 1 e 2, crie os arquivos utilizando a versão doo Excel que você tiver disponível. Atividade 4 2013 SSIS Atenção! A atividade 4 será apresentada para toda a turma. Cada aluno terá 10 minutos para apresentação. O dia da apresentação será posteriormente marcado. Montando o cenário Para

Leia mais

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo

Iniciar o Data Adapter Configuration Wizard. Toolbox Data Duplo clique em OleDbDataAdapter. Botão next na caixa de diálogo Iniciar o Data Adapter Configuration Wizard Toolbox Data Duplo clique em OleDbDataAdapter Botão next na caixa de diálogo Se carregar em Cancel, o wizard é cancelado e podemos depois definir as propriedades

Leia mais

Agenda. Acesso a Dados (ADO.NET) www.link.pt. Março 2005 Engenharia Software 2005 2004 Link Consulting

Agenda. Acesso a Dados (ADO.NET) www.link.pt. Março 2005 Engenharia Software 2005 2004 Link Consulting Acesso a Dados (ADO.NET) 1 Março 2005 Engenharia Software 2005 2004 Link Consulting Agenda Introdução Evolução Arquitectura Data Providers Connections e Commands DataReaders DataSets e DataAdapters Databinding

Leia mais

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

Aplicabilidade: visão geral

Aplicabilidade: visão geral CURSO BÁSICO SAXES 2 Aplicabilidade: visão geral BI Comércio Indústria nf-e Serviços Software house Enterprise Business Bus Banco financeiro Instituição Sindicato ERP html Casos 3 6 Customização: importação

Leia mais

Criação de uma aplicação Web ASP.NET MVC usando Code First

Criação de uma aplicação Web ASP.NET MVC usando Code First Criação de uma aplicação Web ASP.NET MVC usando Code First Visual Studio > File > New Project > (Visual C#, Web) ASP.NET MVC 4 Web Application Name: MvcApplication11 Project Template: View Engine: Internet

Leia mais

Connection String usada por uma Class Library

Connection String usada por uma Class Library Connection String usada por uma Class Library Vamos considerar uma Class Library com o modelo de dados e com acesso à base de dados através do Entity Framework. Aonde deve ser colocada a connection string

Leia mais

Trabalhando com XML RENATO CORREIA DE MATOS

Trabalhando com XML RENATO CORREIA DE MATOS Trabalhando com XML RENATO CORREIA DE MATOS Para que aplicações heterogêneas possam se comunicar é necessário que haja um padrão. Uma boa escolha para a troca de mensagens seria por meio de arquivo texto,

Leia mais

IHttpAsyncHandler. Para além destas duas interfaces, existe ainda uma outra,

IHttpAsyncHandler. Para além destas duas interfaces, existe ainda uma outra, HANDLERS E MÓDULOS As handlers e os módulos são dois dos pontos de personalização e/ou extensão mais usados nas aplicações ASP.NET. O objetivo deste capítulo é apresentar algumas das principais particularidades

Leia mais

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho. Universidade do Minho Departamento de Informática Camada de Dados - JDBC Aula 1 António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.pt 2 Camada de Dados A camada

Leia mais

Tarefa Orientada 19 Triggers

Tarefa Orientada 19 Triggers Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

Leia mais

Então vamos ao que interessa. 1. Introdução

Então vamos ao que interessa. 1. Introdução Tentarei ser o mais genérico possível. Nos exemplos irei utilizar ASP.Net 2.0 e acesso a dados através do ADO.NET, mas pode ter certeza que para outros casos a idéia não irá mudar muito, seja com LINQ,

Leia mais

Tarefa Orientada 20 Cursores

Tarefa Orientada 20 Cursores Tarefa Orientada 20 Cursores Objectivos: Declarar cursores Utilizar cursores Utilizar funções do sistema para trabalhar com cursores Actualizar dados através de cursores Um cursor é um objecto da base

Leia mais

Microsoft Visual Studio 2010 C# Volume II

Microsoft Visual Studio 2010 C# Volume II Microsoft Visual Studio 2010 C# Volume II Apostila desenvolvida pelos Professores Ricardo Santos de Jesus e Rovilson de Freitas, para as Disciplinas de Desenvolvimento de Software I e II, nas Etecs de

Leia mais

A compreensão do mecanismo de transações é essencial, sempre que a

A compreensão do mecanismo de transações é essencial, sempre que a Transações A compreensão do mecanismo de transações é essencial, sempre que a base de dados d servir várias clientes simultaneamente. Em SQL é possível definir explicitamente os limites de uma transação.

Leia mais

Sistemas Operativos I

Sistemas Operativos I Componentes de um Sistema Operativo Maria João Viamonte / Luis Lino Ferreira Fevereiro de 2006 Sistema Operativo Um Sistema Operativo pode ser visto como um programa de grande complexidade, responsável

Leia mais

Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes Ciência da Computação da PUC Minas 2 Camada responsável por armazenar em um repositório de dados e reconstituir objetos de

Leia mais

Arquivos de Textos no C - Básico

Arquivos de Textos no C - Básico OpenStax-CNX module: m47676 1 Arquivos de Textos no C - Básico Joao Carlos Ferreira dos Santos This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 3.0 TRABALHANDO

Leia mais

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos. 2009-04-17 Versão 1.1. Framework de aplicações com Web Services

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos. 2009-04-17 Versão 1.1. Framework de aplicações com Web Services Modelação Engenharia de Software Sistemas Distribuídos Departamento Engenharia Informática Livro de Receitas Framework de aplicações com Web Services 2009-04-17 Versão 1.1 Índice Índice... 2 Nota prévia...

Leia mais

Introdução ao ASP.NET

Introdução ao ASP.NET Introdução ao ASP.NET Miguel Isidoro Agenda ASP ASP.NET Server Controls Separação de Código e Apresentação Acesso a Dados Web Services Aplicações Web ASP.NET 1 ASP Razões do Sucesso Modelo de programação

Leia mais

REFLEXÃO EM JAVA. INVERSÃO DE DEPENDÊNCIA FACTORY METHODS FACTORY CLASSES IoC, CONTAINERS e BEANS SPRING PARTE III

REFLEXÃO EM JAVA. INVERSÃO DE DEPENDÊNCIA FACTORY METHODS FACTORY CLASSES IoC, CONTAINERS e BEANS SPRING PARTE III REFLEXÃO EM JAVA INVERSÃO DE DEPENDÊNCIA FACTORY METHODS FACTORY CLASSES IoC, CONTAINERS e BEANS SPRING PARTE III ARQUITECTURAS DE SOFTWARE F. Mário Martins 2011 CLASS A partir de JAVA5 a classe java.lang.class

Leia mais

SQL Server 2008 Integration Services

SQL Server 2008 Integration Services SQL Server 2008 Integration Services Utilizar a ferramenta certa para cada tipo de trabalho é uma decisão importante para projetos dentro de qualquer empresa. Dentro do Microsoft SQL Server 2008 o problema

Leia mais

Forms Authentication em ASP.NET

Forms Authentication em ASP.NET Forms Authentication em ASP.NET Em muitos sites web é necessário restringir selectivamente o acesso a determinadas áreas, ou páginas, enquanto para outras páginas pode permitir-se acesso livre. ASP.NET

Leia mais

Guia do Programador Joel Saade

Guia do Programador Joel Saade C# Guia do Programador Joel Saade Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial,

Leia mais

REGRAS DE CODIFICAÇÃO PARA O SMARTSHARE

REGRAS DE CODIFICAÇÃO PARA O SMARTSHARE REGRAS DE CODIFICAÇÃO PARA O SMARTSHARE 1. Como nomear variáveis, classes métodos e etc... Métodos descrevem ações, portanto todos os métodos DEVEM conter no mínimo um verbo SEMPRE no infinitivo. Toda

Leia mais

DSS 09/10. DSS 09/10 Que métodos é que fazem parte de cada camada? Aplicações Multi-camada JDBC. Aula 3 DSS 09/10

DSS 09/10. DSS 09/10 Que métodos é que fazem parte de cada camada? Aplicações Multi-camada JDBC. Aula 3 DSS 09/10 Universidade do Minho Departamento de Informática Aplicações Multi-camada JDBC Aula 3 António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jose.campos@di.uminho.pt 2 Programação

Leia mais

IDictionary

IDictionary<String, Object> 3 1OWIN E KATANA Durante anos, a plataforma ASP.NET dependeu sempre do IIS (Internet Information Server) para efetuar o hosting de aplicações Web. Com o lançamento de novas plataformas de alto nível como,

Leia mais

Programação para Dispositivos Móveis Aula 1. Prof. William Yamamoto

Programação para Dispositivos Móveis Aula 1. Prof. William Yamamoto Programação para Dispositivos Móveis Aula 1 Prof. William Yamamoto Visual Studio É uma ferramenta de desenvolvimento completa que atende praticamente a todas as plataformas de desenvolvimento, como: Web

Leia mais

Criar uma aplicação JPA2 com EclipseLink e H2

Criar uma aplicação JPA2 com EclipseLink e H2 Criar uma aplicação JPA2 com EclipseLink e H2 1) Criar uma aplicação Java no NetBeans. File > New Project > Java, Java Application > Project name: JPA2 Finish. 2) Acrescentar ao Projeto NetBeans a biblioteca

Leia mais

Gestão de Configurações II

Gestão de Configurações II Gestão de Configurações II Bibliografia Livro: Software Configuration Management Patterns: Effective Teamwork, Practical Integration Gestão de Projecto 14 Padrões de Gestão Os padrões de gestão de configurações

Leia mais

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET Átila Correia Cunha 1, 2, Glaucon Henrique Mauricio Maia 1, 2, Waner Ferreira Tavares 1, 2, Jorge Bergson¹, Rui Gomes Patrício 3

Leia mais

Segurança na Plataforma Microsoft.Net

Segurança na Plataforma Microsoft.Net Segurança na Plataforma Microsoft.Net João Garcia IST - INESC ID www.gsd.inesc-id.pt/~jog Sumário Segurança de Acessos por Código (Code Access) Políticas de Segurança Tópicos não abordados: Mecanismos

Leia mais

An enterprise distributed system

An enterprise distributed system An enterprise distributed system 2º Trabalho Prático Tecnologias de Distribuição e Integração 4º Ano do Mestrado Integrado em Engenharia Informática e Computação João Carlos Figueiredo Rodrigues Prudêncio

Leia mais

Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010

Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010 UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LERC, 3 o Ano, 2 o Semestre, Ano lectivo de 2009/2010 Segundo Exame 16 de Julho de 2010, 9:00H 11:30H (Versão A) Nome:

Leia mais

Instituto Superior Politécnico Gaya Escola Superior de Ciência e Tecnologia

Instituto Superior Politécnico Gaya Escola Superior de Ciência e Tecnologia Instituto Superior Politécnico Gaya Escola Superior de Ciência e Tecnologia Engenharia Informática Redes e Computadores 2006/2007 Levantamento e Inventariação de Rede Privada Rafael Esteves Alves Forno

Leia mais

Como melhorar a performance de websites.net

Como melhorar a performance de websites.net Como melhorar a performance de websites.net Os segredos dos sites de alto desempenho Alfredo Lotar Novatec Novatec Editora Ltda. [2013]. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998.

Leia mais

Acesso a Banco de Dados usando C# (MySql Provider)

Acesso a Banco de Dados usando C# (MySql Provider) Ambiente de Programação Visual Acesso a Banco de Dados usando C# (MySql Provider) Prof. Mauro Lopes 1-31 22 Objetivos Nesta aula iremos apresentar o ADO.NET. Esta importante parte da tecnologia.net permite

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

Gerador de Web Services para cadeias de tranformações de documentos XML

Gerador de Web Services para cadeias de tranformações de documentos XML Gerador de Web Services para cadeias de tranformações de documentos XML José Carlos Ramalho, Pedro Taveira, Ricardo Ferreira e Vasco Rocha DI/UM jcr@di.uminho.pt pjstaveira@netcabo.pt ricardomiguel@myrealbox.com

Leia mais

DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9

DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9 DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9 Í N D I C E Capítulo 1 - O Início de Tudo 1 Reunindo todas as informações necessárias 2 Instalando o Visual FoxPro 2 Configurando o Visual FoxPro 7 Capítulo

Leia mais

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Consistem num conjunto de apontadores para instâncias especificas de cada relação. Mecanismo usado para mais fácil e rapidamente aceder à informação existente numa base de dados. Bases de Dados de elevadas dimensões. Consistem num conjunto de apontadores para instâncias especificas de

Leia mais

Código do Sistema Ponto de Vendas

Código do Sistema Ponto de Vendas Código do Sistema Ponto de Vendas O sistema ponto de vendas, tem como finalidade implementar um pequeno sistema em WPF, que sirva de exemplo para a turma da disciplina Ambiente de Programação e Banco de

Leia mais

Desenvolvimento Web com Framework Demoiselle versão 1.0

Desenvolvimento Web com Framework Demoiselle versão 1.0 Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado

Leia mais

Inteligência de Gestão de Redes e Serviços (2011/12)

Inteligência de Gestão de Redes e Serviços (2011/12) Departamento de Ciências e Tecnologias da Informação Inteligência de Gestão de Redes e Serviços (2011/12) Laboratório 1 (versão 3.0): Criação de serviços usando Parlay/OSA Notas prévias à realização do

Leia mais

TREINAMENTOS. Desenvolvimento Web

TREINAMENTOS. Desenvolvimento Web TREINAMENTOS Desenvolvimento Web com ASP.NET MVC 4 Desenvolvimento Web com ASP.NET MVC 4 25 de abril de 2016 As apostilas atualizadas estão disponíveis em www.k19.com.br Esta apostila contém: 225 exercícios

Leia mais

Introdução ao C# . Visão geral do.net Framework

Introdução ao C# . Visão geral do.net Framework Introdução ao C# Microsoft.NET (comumente conhecido por.net Framework - em inglês: dotnet) é uma iniciativa da empresa Microsoft, que visa uma plataforma única para desenvolvimento e execução de sistemas

Leia mais

Iteração 2 Design inicial

Iteração 2 Design inicial Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática Engenharia de Software Iteração 2 Design inicial Projecto: FX-Center Grupo: BEDS David Pacheco (nº 32665) Cesário Lucas

Leia mais

.Net Remoting Pizzaria

.Net Remoting Pizzaria .Net Remoting Pizzaria 1º Trabalho Prático Tecnologias de Distribuição e Integração 4º Ano do Mestrado Integrado em Engenharia Informática e Computação João Carlos Figueiredo Rodrigues Prudêncio ei07111@fe.up.pt

Leia mais

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) Sessão Prática II JPA entities e unidades de persistência 1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF) a) Criar um Web Application (JPAsecond) como anteriormente:

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Computação Móvel 2007/2008

Computação Móvel 2007/2008 Computação Móvel 2007/2008 Tutorial 2 Criação de uma nova publicação de base de dados no SQL Server 2005 Standard Edition / Enterprise Edition / Developer Edition No computador cliente: 1. Estabelecer

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

(UFF) JDBC (I) TEPIS II

(UFF) JDBC (I) TEPIS II Aula 20: JDBC (I) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) JDBC (I) TEPIS II 1 / 33 JDBC: Introdução Especificação que provê acesso

Leia mais

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção Sistemas de Arquivos Funções de um SO Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção 2 Sistemas Operacionais Necessidade de Armazenamento Grandes quantidades

Leia mais

UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO. Licenciatura em Engenharia Informática e Computadores Alameda e Taguspark

UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO. Licenciatura em Engenharia Informática e Computadores Alameda e Taguspark UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Licenciatura em Engenharia Informática e Computadores Alameda e Taguspark Sistemas Distribuídos e Engenharia de Software Projecto de 2010/2011

Leia mais

Web Services Novembro de 2011

Web Services Novembro de 2011 Web Services Novembro de 2011 1. Criação do Web Service Somar na plataforma.net. Colocação do serviço na máquina Dot. 2. Criação de uma aplicação de consola para teste deste serviço. 3. Criação de um Cliente

Leia mais

DEFINIÇÃO DE MÉTODOS

DEFINIÇÃO DE MÉTODOS Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 2 DEFINIÇÃO DE MÉTODOS Todo o processamento que um programa Java faz está definido dentro dos

Leia mais

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri OBJETIVOS DA AULA: Criação de uma base de dados em MS SQL Server e acesso com VB 6. Fazer uma breve introdução a respeito do MS SQL Server 7.0; Criar uma pequena base de dados no MS SQL Server 7.0; Elaborar

Leia mais

Javascript 101. Parte 2

Javascript 101. Parte 2 Javascript 101 Parte 2 Recapitulando O Javascript é uma linguagem de programação funcional Os nossos scripts são executados linha a linha à medida que são carregados. O código que está dentro de uma função

Leia mais

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas

Treinar - Cursos e Treinamentos C# Módulo I. Carga horária: 32 Horas Treinar - Cursos e Treinamentos C# Módulo I Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

Data última actualização: 20-06-2014. Instalação E-Portals

Data última actualização: 20-06-2014. Instalação E-Portals Data última actualização: 20-06-2014 Instalação E-Portals 1. Conteúdo 1. Conteúdo... 2 2. Instalação e Manutenção do EPT... 3 3. Configuração de perfis de sincronização... 6 3.1 Módulos Oficinas, GCE e

Leia mais

Enunciado do Projecto

Enunciado do Projecto C O M P U T A Ç Ã O M Ó V E L 2 0 0 7 / 2 0 0 8 Enunciado do Projecto 17 de Março de 2008 1. Objectivos Desenvolver uma aplicação num domínio aplicacional específico que envolva replicação e sincronização

Leia mais

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho. Computação Paralela Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Desenvolvimento de Aplicações Paralelas Uma Metodologia

Leia mais

Departamento de Engenharia Informática Engenharia de Software, Sistemas Distribuídos. Requisitos para a 3ª entrega do projecto.

Departamento de Engenharia Informática Engenharia de Software, Sistemas Distribuídos. Requisitos para a 3ª entrega do projecto. Departamento de Engenharia Informática Engenharia de Software, Sistemas Distribuídos Requisitos para a 3ª entrega do projecto Loja Virtual 5 de Maio de 2008 Índice Índice...2 1 Sumário...3 2 Requisitos...3

Leia mais

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#

Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Linguagem de Programação 3 Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Prof. Mauro Lopes 1-31 35 Objetivos Nesta aula iremos apresentar a tecnologia.net, o ambiente de desenvolvimento

Leia mais

Criando documentação com javadoc

Criando documentação com javadoc H Criando documentação com javadoc H.1 Introdução Neste apêndice, fornecemos uma introdução a javadoc ferramenta utilizada para criar arquivos HTML que documentam o código Java. Essa ferramenta é usada

Leia mais

PHP Programando com Orientação a Objetos

PHP Programando com Orientação a Objetos PHP Programando com Orientação a Objetos 2 a edição Pablo Dall Oglio Novatec Sumário Sobre o autor... 13 Agradecimentos... 14 Nota do autor... 16 Organização do livro... 18 Capítulo 1 Introdução ao PHP...

Leia mais

Cartão de Cidadão. Autenticação com o Cartão de Cidadão AMA. 20 de Novembro de 2007. Versão 1.6

Cartão de Cidadão. Autenticação com o Cartão de Cidadão AMA. 20 de Novembro de 2007. Versão 1.6 Cartão de Cidadão Autenticação com o Cartão de Cidadão 20 de Novembro de 2007 Versão 1.6 AMA ÍNDICE 1. I TRODUÇÃO... 3 Modelo base de Autenticação... 3 Modelo de Autenticação Federado... 4 2. AUTE TICAÇÃO

Leia mais

SOA Introdução. SOA Visão Departamental das Organizações

SOA Introdução. SOA Visão Departamental das Organizações 1 Introdução A Organização é a forma pela qual nós coordenamos nossos recursos de todos os tipos para realizar o trabalho que nos propusemos a fazer. A estrutura de nossas organizações manteve-se basicamente

Leia mais

Exemplo de Aplicaça o Facebook

Exemplo de Aplicaça o Facebook HCIM Summer Workshop Guião Hands-on Exemplo de Aplicaça o Facebook 1. Download do Software Development Kit (SDK) O download do SDK do Facebook encontra-se disponível aqui. Depois de fazer o download do

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Open Operational Platform

Open Operational Platform Open Operational Platform Visão Tecnológica 20.01.2009 Agenda Enquadramento Arquitectura Características Diferenciadoras Case Study 2 Enquadramento 3 Mobilidade Optimização Processos Tecnologia Operações

Leia mais

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction Bases de Dados II 6638: BSc in Information Systems and Technologies Cap. 1 Module Introduction Objectivos O propósito e a origem da arquitectura de base de dados a três níveis. O conteúdo dos níveis externo,

Leia mais

FIGURA 9.1 Arquitetura do SQL Server Utility (adaptado de Microsoft)

FIGURA 9.1 Arquitetura do SQL Server Utility (adaptado de Microsoft) 9 9ADMINISTRAÇÃO MULTISSERVIDOR Uma das novidades mais interessantes que nos foi oferecida pelo SQL Server 2008 R2, e agora continuada no 2012, é a administração multisservidor. Esta potencialidade permite

Leia mais

Hoje em dia é muito comum utilizar uma API de logging de mensagens como o Log4j para indicar os comportamentos de uma aplicação.

Hoje em dia é muito comum utilizar uma API de logging de mensagens como o Log4j para indicar os comportamentos de uma aplicação. Introdução Hoje em dia é muito comum utilizar uma API de logging de mensagens como o Log4j para indicar os comportamentos de uma aplicação. O Log4j é um é um projeto open source distribuído pela Apache

Leia mais

Lidando de Forma Eficiente com Validações Locais de Objetos

Lidando de Forma Eficiente com Validações Locais de Objetos Lidando de Forma Eficiente com Validações Locais de Objetos Aprenda a construir um mini-framework para validar objetos locais sem afetar a complexidade do código. Autor Paulo César M. N. A. Coutinho (pcmnac@gmail.com):

Leia mais

Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO

Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO POO Programação Orientada a Objetos no C#.NET usando Padrões de Projeto MARCELO SANTOS DAIBERT E MARCO ANTÔNIO PEREIRA ARAÚJO Marcelo Santos Daibert (marcelo@daibert.net) é professor do Curso de Bacharelado

Leia mais

1 Função e criação do Programa. Relatório de desenvolvimento do projecto Programador/designer : Tiago MC Simões

1 Função e criação do Programa. Relatório de desenvolvimento do projecto Programador/designer : Tiago MC Simões Relatório de desenvolvimento do projecto Programador/designer : Tiago MC Simões 1) Função e criação do Programa 2) Lista de transacções/funções 3) Interface Gráfico do programa 4) A base de dados 4.1)

Leia mais

ASP.NET. Guia do Desenvolvedor. Felipe Cembranelli. Novatec Editora. www.novateceditora.com.br

ASP.NET. Guia do Desenvolvedor. Felipe Cembranelli. Novatec Editora. www.novateceditora.com.br ASP.NET Guia do Desenvolvedor Felipe Cembranelli Novatec Editora www.novateceditora.com.br 1 Introdução à plataforma.net A plataforma Microsoft.NET.NET é uma nova plataforma de software para desenvolvimento

Leia mais

Encontro de Utilizadores Esri 2013. ArcGIS for Server 10.2 Administração Orador: João Ferreira Esri Portugal

Encontro de Utilizadores Esri 2013. ArcGIS for Server 10.2 Administração Orador: João Ferreira Esri Portugal Encontro de Utilizadores Esri 2013 ArcGIS for Server 10.2 Administração Orador: João Ferreira Esri Portugal ArcGIS Server Administração e Configuração João Ferreira Agenda Arquitectura Instalação do ArcGIS

Leia mais

INTRODUÇÃO AO WINDOWS SERVER 2003

INTRODUÇÃO AO WINDOWS SERVER 2003 INTRODUÇÃO AO WINDOWS SERVER 2003 1 FUNÇÕES DE UM SERVIDOR Um servidor é um computador que tem como função disponibilizar serviços numa rede. Uma das funções do Windows Server 2003 é gerir um domínio da

Leia mais

Agentes Inteligentes segundo o Chimera

Agentes Inteligentes segundo o Chimera Agentes Inteligentes segundo o Chimera C Heuristic I M E R A No ambiente de desenvolvimento de Agentes Inteligentes Chimera, uma extensão do LPA Win-Prolog, um agente é funcionalmente composto por: Código,

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Classes abstratas São classes que não podem ser instanciadas, porque representam

Leia mais

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo Departamento de Engenharia Informática 2014/2015 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo

Leia mais

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

Ficha prática nº 7. SGBD Microsoft Access e SQL Server Instituto Superior Politécnico de Viseu Escola Superior de Tecnologia Departamento de Informática Ficha prática nº 7 SGBD Microsoft Access e SQL Server Objectivo: Criação de uma aplicação em arquitectura

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Introdução GUI Classes abstratas São classes que não podem ser instanciadas,

Leia mais

XACML. extensible Access Control Markup Language

XACML. extensible Access Control Markup Language XACML extensible Access Control Markup Language Autor Orientador Doutor Diogo Gomes Colaborador Engenheiro Ricardo Azevedo Universidade de Aveiro Instituto de Telecomunicações Portugal Telecom Inovação

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

Bases de Dados. Bibliografia. 1. Parte I Componente Teórica. Pedro Quaresma

Bases de Dados. Bibliografia. 1. Parte I Componente Teórica. Pedro Quaresma Índice Bases de Dados Pedro Quaresma Departamento de Matemática Universidade de Coimbra 2010/2011 1. Parte I Componente Teórica 1.1 Introdução 1.2 Modelo ER 1.3 Modelo Relacional 1.4 SQL 1.5 Integridade

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais