Node.js ARQSI 2017/2018

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

Download "Node.js ARQSI 2017/2018"

Transcrição

1 Node.js ARQSI 2017/2018

2 Node.js Desenvolvido por Ryan Dahl em 2009 Plataforma para desenvolvimento de aplicações servidoras utilizando JavaScript Baseado naa Google s V8 JavaScript Engine Desenhado para situações de alta concorrência Sem threads nem lançamento de novos processos Última versão:

3 MEAN, a full stack MongoDB: base de dados NoSQL (não relacional) Express: server-side web framework Angular: framework de desenvolvimento de aplicações no cliente/browser Node.js: plataforma de desenvolvimento no servidor

4 O que é que o Node.js pode fazer? Node.js can generate dynamic page content Node.js can create, open, read, write, delete, and close files on the server Node.js can collect form data Node.js can add, delete, modify data in your database

5 Porquê utilizar Node.js? Operações de I/O sem bloqueios Muitas bibliotecas (módulos) Comunidade muito ativa (IRC, Mailing lists, Twitter, Github) Suportado pelos principais sistemas operativos Uma única linguagem para Frontend e Backend

6 Porquê utilizar Node.js? Node's goal is to provide na easy way to build scalable network programs.

7 Casos de sucesso

8 Node.js vs ASP/PHP Processamento do pedido Node.js elimina a fase da espera continuando, simplesmente, para a tarefa seguinte ASP e PHP Node.js 1 Sends the task to the computer's file system. 1 Sends the task to the computer's file system. 2 Waits while the file system opens and reads the file. 2 Ready to handle the next request. 3 Returns the content to the client. 3 When the file system has opened and read the file, the server returns the content to the client 4 Ready to handle the next request

9 Node.js Suporta concorrência através do conceito de eventos e callbacks Utiliza funções assíncronas e o padrão observer Existe uma única thread que mantem um ciclo de eventos e, sempre que uma tarefa termina, dispara o evento correspondente que sinaliza a execução da função listener do evento

10 Tratamento de eventos Criar uma função callback que responde ao evento (criar o listener) var listener1 = function() { console.log('execução da função listener 1. ); } Registar a função callback no emissor do evento para um dado evento on('evento1', listener1) //ou addlistener('evento1', listner1) Quando o emissor emite o evento a função callback é executada eventemitter.emit('evento1');

11 Exemplo exemplo.js var eventos = require('events'); var eventemitter = new eventos.eventemitter(); var listener1 = function() { console.log('execução da função listener.'); } eventemitter.on('evento1', listener1); eventemitter.emit('evento1'); C:\> node exemplo.js Execução da função listner Fim do Programa. C:\> console.log("fim do Programa.");

12 Node.js orientado a eventos Uma aplicação servidora Node.js corre num único thread. Embora só possa realizar uma tarefa de cada vez, Node.js é muito eficiente a tratar muitos pedidos simultaneamente, devido à sua natureza orientada a eventos. Se no processamento de um pedido inicia a realização de uma operação mais demorada, o programa retorna e passa para o próximo pedido. Quando a operação mais demorada termina, lança um evento e Node.js continua a processar esse pedido.

13 Node.js orientado a eventos

14 Node.js orientado a eventos Threads Lock application / request with listener-workers threads Using incoming-request model multithreaded server might block the request which might involve multiple events Using context switching Using multithreading environments where listener and workers threads are used frequently to take an incoming-request lock Asynchronous Event-driven Only one thread, which repeatedly fetches an event Using queue and then processes it Manually saves state and then goes on to process the next event No contention and no context switches Using asynchronous I/O facilities (callbacks, not poll/select or O_NONBLOCK) environments

15 Processamento síncrono vs. assíncrono Here is how PHP or ASP handles a file request: 1. Sends the task to the computer's file system. 2. Waits while the file system opens and reads the file. 3. Returns the content to the client. 4. Ready to handle the next request. Here is how Node.js handles a file request: 1. Sends the task to the computer's file system. 2. Ready to handle the next request. 3. When the file system has opened and read the file, the server returns the content to the client. 4. Node.js eliminates the waiting, and simply continues with the next request. 5. Node.js runs single-threaded, nonblocking, asynchronously programming, which is very memory efficient.

16 Exemplo Sem tratamento de eventos var http = require('http'); http.createserver(function(req,res) { res.writehead(200, { 'Content-Type': 'text/html; charset=utf-8' }); res.end('<h2> Olá mundo! </h2>'); }).listen(8080); console.log('servidor iniciado em localhost:8080');

17 Exemplo Com tratamento de eventos var http = require('http'); var server = http.createserver(); server.on('request', function(req,res) { res.writehead(200, { 'Content-Type': 'text/html; charset=utf-8' }); res.end('<h2> Olá mundo! </h2>'); }); server.listen(8080) console.log('servidor iniciado em localhost:8080');

18 Node.js Não obstrutivo Todos os recursos e módulos disponibilizados para o Node.js adotam um padrão não obstrutivo para a escrita do código. Código estruturado para que as operações possam ser executadas de forma independente entre si

19 Exemplo exemplo.js var frase; carregafrase = function (callback) { settimeout(function() { //Simula leitura da frase de uma base de dados. frase = "Minha frase obstrutiva"; callback(); }, 3000) } C:\> node exemplo.js Olá Minha frase obstrutiva C:\> imprimefrase = function () { console.log(frase); } carregafrase(imprimefrase); console.log("olá");

20 NPM NPM Node Package Manager Repositório online de projetos em código livre para o Node.js ( Utilitário de linha de comando que interage com o repositório online e permite a instalação, a gestão de versões e de dependências dos módulos C:\ProjectFolder\>npm install uppercase

21 Requisitos Node.js Download do Node.js em Instalar Node.js C:\> node v V Instalar a framework Express Download Visual Studio Code em Instalar Visual Studio Code C:\> npm install express --save

22 Primeiro projeto Node.js Criar um diretório para o projeto C:\> mkdir ProjectFolder Executar Visual Studio Code e escolher Open folder Selecionar diretório criado para o projeto

23 Primeiro projeto Node.js Ficheiro package.json Criado na raiz do diretório do projeto Contem informações sobre o projeto o Nome o Versão o Dependências o Licença o Ficheiro main o Pode ser gerado com o comando npm init C:\ProjectFolder\> npm init

24 Primeiro projeto Node.js Exemplo de um ficheiro package.json package.json { } "name": "node-api", "main": "server.js", "dependencies": { "body-parser": "~1.0.1", "express": "~4.0.0", "mongoose": "*", "mongoose-id-validator": "^0.4.3" }

25 Primeiro projeto Node.js Com o package.json definido Instalar módulos referenciados C:\> cd ProjectFolder C:\ProjectFolder\> npm install --save Este comando cria diretório node_modules com as bibliotecas

26 Primeiro projeto Node.js Os módulos instalados são carregados pelo código recorrendo à função require(<nome do módulo>) Exemplo: Exemplo.js var uc = require('upper-case'); console.log(uc("hello world!")); C:\> node exemplo.js HELLO WORLD C:\>

27 Primeiro projeto Node.js Módulo HTTP Permite ao Node.js transferir informação com o protocolo HTTP var http = require('http'); Servidor Web O módulo HTTP permite criar um servidor Web (método createserver()) var http = require('http'); //create a server object: http.createserver(function (req, res) { res.write('hello World!'); //write a response to the client res.end(); //end the response }).listen(8080); //the server object listens on port 8080

28 Cabeçalho HTTP Para que o servidor HTTP envie Código HTML deve ser alterada a propriedade content-type do cabeçalho HTTP Para tal, utiliza-se o método writehead(<status_code>,<header>) O primeiro argumento é o Código HTTP 200 O Segundo, é um objeto contendo o cabeçalho da resposta. var http = require('http'); http.createserver(function (req, res) { res.writehead(200, {'Content-Type': 'text/html'}); res.write('hello World!'); res.end(); }).listen(8080);

29 Query String Argumento req Objeto, do tipo http.incomingmessage, que representa o pedido do cliente Este objeto possui a propriedade url que armazena a parcela do endereço que segue o nome do domínio. var http = require('http'); http.createserver(function (req, res) { res.writehead(200, {'Content-Type': 'text/html'}); res.write(req.url); res.end(); }).listen(8080);

30 Query String Outro Exemplo var http = require('http'); var url = require('url ); http.createserver(function (req, res) { res.writehead(200, {'Content-Type': 'text/html'}); var qstring = url.parse(req.url, true).query; var txt = qstring.nome + " " + qstring.idade; res.end(txt); }).listen(8080);

31 Módulos relevantes Alguns módulos relevantes para o desenvolvimento de aplicações Web em Node.js express framework para desenvolvimento de aplicações Web body-parser middleware para tratamento de JSON e dados cookie-parser processamento de cookies multer middleware para multipart/form-data

32 RESTFull API com Express ARQSI 2017/2018

33 Gerar estrutura da aplicação Web (scafolding) C:\> cd folderwithprojects C:\> npm install -g express-generator C:\> express myappname How to structure a Node.js Express project, by Sean McGary on Mar 27, 2016

34 Criar uma RESTful API Criar o ficheiro server.js com o seguinte código: server.js var express = require('express'); app = express(); port = process.env.port 8080; app.listen(port); console.log('restful API server started on: ' + port);

35 OO, Database & ODM Model As classes dos objetos de negócio/domínio MongoDB NoSQL, document-centered database Mongoose ODM: Objet/Document Mapper Biblioteca/framework de abstração de ligação a MongoDB

36 Definição do Modelo Conexão à base de dados MongoDB var mongoose = require('mongoose'); mongoose.connect('mongodb:'mongodb://localhost/test', { usemongoclient: true }); mongoose modulo que permite a inteação com uma base de dados MongoDB. Disponibiliza funcionalidades de modelação da informação baseadas em esquemas e inclui processos para conversão de tipos de informação, validação e construção de inquéritos.

37 Definição do Modelo A modelação assenta em esquemas que definem a estrutura da informação var Schema = mongoose.schema; var blogschema = new Schema({ title: String, author: String, body: String, comments: [{ body: String, date: Date }], date: { type: Date, default: Date.now }, hidden: Boolean, meta: { votes: Number, favs: Number } });

38 Definição do Modelo Os Schema Types são: String Number Date Buffer Boolean Mixed ObjectId Array var schema = new Schema({ name: String, binary: Buffer, living: Boolean, updated: { type: Date, default: Date.now }, age: { type: Number, min: 18, max: 65 }, mixed: Schema.Types.Mixed, _someid: Schema.Types.ObjectId, ofstring: [String], ofnumber: [Number], ofobjectid: [Schema.Types.ObjectId], ofarrays: [[]] ofarrayofnumbers: [[Number]] nested: { stuff: { type: String, lowercase: true, trim: true } } })

39 Definição do Modelo O relacionamento entre esquemas é feito pelo element ObjectId ( ) var authorschema = Schema({ name : String, stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }] }); ( ) ( ) var storyschema = Schema({ author : { type: Schema.Types.ObjectId, ref: 'Author' }, }); ( ) title : String

40 Definição do Modelo A criação do modelo é responsabilidade do método model() do mongoose var Blog = mongoose.model('blog', blogschema); Model name Schema

41 Validações Todos os Schema Types possuem funcionalidades de validação de campo obrigatório O tipo Number possui validação de min e max O tipo String possui: enum que permite especificar a lista de valores possiveis para o campo match que permite definer uma expressão regular para validar o valor do campo maxlength e minlength para definir a dimensão máxima e minima do texto

42 Módulo mongoose-id-validator Plug-in que permite verificar se um documento que refere outro pelo seu ID está a referenciar um documento que, de facto, existe. Não garante coerência da informação Não identifica situações de IDs válidos aquando da inserção e que foram posteriormente removidos É necessário implementa lógica de validação para operações de DELETE Instalação: C:\> npm install mongoose-id-validator

43 Módulo mongoose-id-validator Utilização: var idvalidator = require('mongoose-id-validator ); var ManufacturerSchema = new Schema({ name : String }); var Manufacturer = mongoose.model('manufacturer', ManufacturerSchema); var CarSchema = new Schema({ name : String, manufacturer : { type: Schema.Types.ObjectId, ref: 'Manufacturer, required: true } }); CarSchema.plugin(idvalidator); var Car = mongoose.model('car', CarSchema);

44 Módulo mongoose-id-validator Utilização: var ford = new ManufacturerSchema({ name : 'Ford' }); ford.save(function() { var focus = new Car({ name : 'Focus' }); focus.manufacturer = "50136e40c78c4b "; focus.validate(function(err) { //err.errors would contain a validation error for manufacturer with default message focus.manufacturer = ford; focus.validate(function(err) { //err will now be null as validation will pass }); }); });

45 Definição do Modelo Esquema documento vs. entidade/tabela desnormalização baseada em DDD vs. normalização o Aggregates + Parent-child vs. Chave estrangeira Operações atómicas de escrita Num documento e numa coleção cf.

46 Exemplo do Modelo var mongoose = require("mongoose"); var mongoose_validator = require("mongoose-id-validator"); var departamentoschema = mongoose.schema({ Nome: String, Diretor: {type: mongoose.schema.types.objectid, ref: 'Pessoa'}, Alunos: [{ Aluno: {type: mongoose.schema.types.objectid, ref: 'Pessoa }, Notas: [{ UnidadeCurricular: {type: mongoose.schema.types.objectid, ref: 'UC'}, Nota: Number, Data: Date }] }], }); receitaschema.plugin(mongoose_validator); module.exports = mongoose.model('departamento', departamentoschema);

47 Routeamento cf.

48 Configuração do Roteamento A framework express fornece funcionalidades de roteamento O método Router() permite instanciar e gerir essas funcionalidades var router = express.router(); router.use(function(req, res, next) { console.log('something is happening.'); next(); }); router.get('/', function(req, res) { res.json({ message: 'hooray! welcome to our api!' }); });

49 Configuração do Roteamento A definição de novas rotas é feita pelo método Route() Este objeto também permite definir os métodos HTTP associados ao roteamento router.route('/tasks').get(todolist.list_all_tasks).post(todolist.create_a_task); router.route('/tasks/:taskid').get(todolist.read_a_task).put(todolist.update_a_task).delete(todolist.delete_a_task); Método de ação do controlador

50 Cliente REST usando node-rest-client - GET outros métodos e mais detalhes em:

51 Autenticação e Autorização ARQSI 2017/2018

52 Introdução Autenticação: determina que o utilizador é quem diz ser Autorização: determina quem (autenticado) tem acesso a quê Since the HTTP protocol is stateless, this means that if we authenticate a user with a username and password, then on the next request, our application won't know who we are. We would have to authenticate again, and again, and again,... Session-based (server-based) authentication Informação de autenticação é armazenada no servidor em sessões (em memória ou com persistência) Escalabilidade é afetada E ainda Cross-Origin Resource Sharing - CORS e Cross-Site Request Forgery - CSRF (cf. Administração de Sistemas)

53 e em UML? Token-based authentication 1. User Requests Access with Username / Password 2. Application validates credentials 3. Application provides a signed token to the client 4. Client stores that token and sends it along with every request 5. Server verifies token and responds with data cf.

54 JWT (JSON Web Tokens) A JSON Web Token has three parts: the crypto information, the payload, and the signature. On the server end the token is verified by re-encrypting the payload with the crypto info and checking to see if it matches the signature. Any change to the payload will negate the signature and invalidate the token. The token is secure because the Salt is only known to the server so resigning a fake token is virtually impossible. cf.

55 Como? Create and verify JWTs C:\> npm install jsonwebtoken --save Encrypt and decrypt password C:\> npm install bcryptjs --save Tutoriais: 9f811a92bb52

56 Modelo User Definição da classe modelo user.js user.js var mongoose = require('mongoose'); var Schema = mongoose.schema; module.exports = mongoose.model('user', new Schema({ name: String, password: String, String, isadmin: Boolean }) );

57 Definição das rotas para User Alterar server.js referenciando os novos roteamentos server.js ( ) var UserRoutes = require('./app/routes/userroutes'); app.use('/api/users',userroutes); ( ) Criar as novas rotas em UserRoutes.js UserRoutes.js var express = require('express'); var jwt = require('jsonwebtoken'); var bcrypt = require('bcryptjs ); var UserModel = require('../models/user'); var VerifyToken = require('../auth/verifytoken ); var router = express.router(); ( )

58 Definição das rotas para User - register Rota /api/users/register UserRoutes.js ( ) router.post('/register',function(req,res){ var user= new UserModel(); user.name = req.body.name; user.password = bcrypt.hashsync(req.body.password,8); user. = req.body. ; user.isadmin = req.body.isadmin; user.save(function (err){ if(err) return res.status(500).send("there is a problem registering the user."); res.json({message:"user registered!"}); }) });

59 Definição das rotas para User - register Rota /api/users/register

60 Definição das rotas para User - login Rota /api/users/login UserRoutes.js ( ) router.post('/login',function (req,res){ UserModel.findOne({ req.body. }, function(err,user){ if (err) throw err; if(!user) {res.json({success:false,message:'authentication failed. });} else if(user){ if(!bcrypt.comparesync(req.body.password, user.password)) return res.status(401).send({auth:false,token:null,message: 'Auth failed.'}); else { const payload= {user:user. }; var thetoken = jwt.sign(payload, 'TheSecret_ ', {expiresin:86400}); res.json({success:true,message:'enjoy your token!',token:thetoken}); } } }); });

61 Definição das rotas para User - login Rota /api/users/login

62 Definição das rotas para User - / Rota /api/users/ UserRoutes.js ( ) function hasrole(user , role, func){ UserModel.findOne({ user }, function (err, user){ if (err) throw err; } }) if(!user){ res.json({success: false, message: 'Authentication failed.'}); } else if (user) { func(role === 'administrator' && user.isadmin === true) }

63 Definição das rotas para User - / Rota /api/users/ UserRoutes.js ( ) router.get('/', VerifyToken, function(req, res){ hasrole(req.user, 'administrator', function (decision) { if (!decision) return res.status(403).send( {auth:false,token: null,message: 'You have no authorization.'} ); else UserModel.find(function (err, users){ if (err) res.send(err); res.json(users); }) }); }) module.exports = router;

64 Definição das rotas para User - / Rota /api/users/

65 Middleware VerifyToken.js var jwt = require('jsonwebtoken'); function verifytoken(req, res, next){ var token = req.headers['x-access-token']; if (!token) return res.status(403).send({auth:false,message:'no token provided. }); } jwt.verify(token, 'TheSecret_ ', function(err, decoded){ if (err) return res.status(500).send({auth:false,message:'failed to authenticate token.'}); req.user = decoded.user; next(); }); module.exports = verifytoken;

66 Implantação no Azure com VS Code ARQSI 2017/2018

67 Deploy a Node.js Application to Azure URL: Instalar Microsoft CLI 2.0 for Azure URL: Na consola: C:\> az login To sign in, use a web browser to open the page and enter the code XXXXXXXXX to authenticate. Aceder a e colocar o código obtido na consola

68 Deploy a Node.js Application to Azure Iniciar sessão no azure com a conta pessoal. É enviado um objeto JSON para a consola com a seguinte estrutura: [ { "cloudname": "AzureCloud", "id": "8oct2f12-8f0a-412e-99f3-e bfb", "isdefault": true, "name": "Microsoft Imagine", "state": "Enabled", "tenantid": "84d d44-407a-9d64-d0b21be94631", "user": { "name": [email protected]", "type": "user" } } ]

69 Deploy a Node.js Application to Azure Criar o sítio Web no Azure Criar Resource Group (só necessário na 1ª publicação) A "Resource Group" is essentially a named collection of all our application's resources in Azure. For example, a Resource Group can contain a reference to a website, a database, and an Azure function. C:\> az group create --name myresourcegroup --location westus Nome do grupo Configurar Resource Group para ser o grupo utilizado por omissão C:\> az configure --defaults group=myresourcegroup location=westus West US data center Criar um App Service Plan para definir os recursos físicos utilizados para a hospedagem (só necessário na 1ª publicação) C:\> az appservice plan create --name myplan --sku F1 Free hosting plan

70 Deploy a Node.js Application to Azure Criar o sítio Web no Azure O nome escolhido para o sitio Web terá de ser único uma vez que o acesso será feito pelo endereço URL A criação será efetuado pelo comando: C:\> az webapp create --name nome_escolhido --plan myplan --runtime "node 6.10" Tells Azure to use node version 6.10.x when running this application

71 Deploy a Node.js Application to Azure Deploy do sítio Web Este processo recorre ao git e ao Azure CLI e implica um push do repositório para o Azure. 1. Criar um projeto com ficheiro.gitignore C:\> express --git 2. Copiar o ficheiro.gitignore para a pasta do projeto 3. Executar na pasta do projeto C:\Proj> git init C:\Proj> git add -A C:\Proj> git commit m "Initial Commit"

72 Deploy a Node.js Application to Azure Deploy do sítio Web 4. Criar um Remote (nome para designar o repositório remoto no Azure) Set set up deploy credentials in Azure C:\Proj> az webapp deployment user set --user-name <user> --password <pass> C:\Proj> az webapp deployment source config-local-git --name <nome_escolhido> { "url": " } C:\Proj> git remote add azure 5. Fazer o deploy para Azure C:\Proj> git push azure master 6. Inserir as credenciais de deployment criadas em 4.

73 Deploy a Node.js Application to Azure Publicar alterações efetuadas no sítio Web Com a consola 1. Efetuar commit para o repositório local 2. Publicar fazendo push para o Azure Com o VS Code 1. Abrir o Source Control Manager (SCM) (Ctrl+Shift+G) 2. Especificar uma mensagem de commit e pressionar Ctrl+Enter ou selecionar Commit All no menu 3. Para publicar selecionar a opção Publish Branch no menu 4. Especificar azure no Remote para publicação

74 Mail ARQSI 2017/2018

75 SMTP2GO no Node.js Ir a e carregar no Try SMTP2GO Free para efetuar o registo Ir ao menu de Settings e ao submenu Users (painel esquerdo do site) Nesta janela, dentro do circulo verde temos os dados de ligação ao servidor que serão usados no Node.js

76 SMTP2GO no Node.js Carregar na opção de Add SMTP User, para criar o utilizador de acesso ao servidor SMTP

77

78

79 Testing NodeJS ARQSI 2017/2018

80 Testing Node.js application

81 Implantação ARQSI 2017/2018

82 Implantação em Azure Criar conta em Azure: ( + doc de Fernando Mouta) Tutorial:

83 Implantação em Heroku

84 Implantação em OpenShift

85 Pros Very fluent, you don't have to worry about switching languages when writing code for the client and server. JSON, Your JS objects are JSON, if you are writing web APIs - it's JSON and here's the best part - MongoDB. MongoDB lets you store and retrieve JSON documents. This is a very important factor for me as I develop web APIs for my mobile apps. JS - A dynamically typed language like JS gives you flexibility and has advantages over strongly typed language like Java in some situations. One such situation is writing apps for the Node.js platform. It's fast - JS code is compiled to native code by Chrome's V8 runtime. I find a lot of misleading information on blogs and Youtube videos stating that Node.js is slow because it uses JavaScript. Don't fall for this misguided piece of information ;) NPM - Node package manager makes installing Node modules a breeze. Deployment - It's very very easy to deploy. Deploying Node.js apps on Heroku and Nodejitsu saves tons of developer time.

86 Cons Callback Hell - Node.js relies heavily on callbacks and you might not be surprised writing nested callbacks which are 5 or 6 levels deep. You could avoid this by using named functions or by using futures and promises. Code structure and maintenance When you are building a large app. There the language itself should be able to enforce constraints over the API design as well as on other developers collaborating on the project. JavaScript as a language lacks this ability. A strongly typed language like Java will aid you in accomplishing this. Although I understand that this could partly be done using an MVC framework like Backbone.js. The language itself is lacking in this area. Testability Java apps are easy to test, this may be due to the fact that I have more experience with testing frameworks in Java. Performance I wrote a couple of basic applications (each app written in express.js and Play 2) and used Apache Bench to load test them. Play outperformed in both the cases. (I did not cluster Node.js during testing so it wasn't using all available cores on my Mac. However Play framework is built on Akka and uses multiple cores when available). Since I was happy with Play's performance, I didn't run Node.js on cluster mode.

87 Referências

88 Bibliografia e em particular:

89 Node.js ARQSI 2017/2018

Node.js. Download

Node.js. Download Node.js Download http://nodejs.org/en > node v v8.7.0 > npm v 5.4.2 Node.js é um ambiente de desenvolvimento (paltaforma) do lado do servidor, de código aberto, multi-plataforma, que corre JavaScript.

Leia mais

Criar Subscrição Azure

Criar Subscrição Azure Criar Subscrição Azure É necessário ter 2 contas Microsoft: 1. a conta escolar ou profissional criada pelo Departamento de Eng. Informática, com username e password iguais às usadas no portal do Isep;

Leia mais

Abraçado pelo Espírito (Portuguese Edition)

Abraçado pelo Espírito (Portuguese Edition) Abraçado pelo Espírito (Portuguese Edition) Charles Swindoll Click here if your download doesn"t start automatically Abraçado pelo Espírito (Portuguese Edition) Charles Swindoll Abraçado pelo Espírito

Leia mais

Transcript name: 1. Introduction to DB2 Express-C

Transcript name: 1. Introduction to DB2 Express-C Transcript name: 1. Introduction to DB2 Express-C Transcript name: 1. Introduction to DB2 Express-C Welcome to the presentation Introduction to DB2 Express-C. In this presentation we answer 3 questions:

Leia mais

COMO ESCREVER PARA O ENEM: ROTEIRO PARA UMA REDAçãO NOTA (PORTUGUESE EDITION) BY ARLETE SALVADOR

COMO ESCREVER PARA O ENEM: ROTEIRO PARA UMA REDAçãO NOTA (PORTUGUESE EDITION) BY ARLETE SALVADOR Read Online and Download Ebook COMO ESCREVER PARA O ENEM: ROTEIRO PARA UMA REDAçãO NOTA 1.000 (PORTUGUESE EDITION) BY ARLETE SALVADOR DOWNLOAD EBOOK : COMO ESCREVER PARA O ENEM: ROTEIRO PARA UMA SALVADOR

Leia mais

A dança do corpo vestido: Um estudo do desenvolvimento do figurino de balé clássico até o século XIX (Portuguese Edition)

A dança do corpo vestido: Um estudo do desenvolvimento do figurino de balé clássico até o século XIX (Portuguese Edition) A dança do corpo vestido: Um estudo do desenvolvimento do figurino de balé clássico até o século XIX (Portuguese Edition) Francisca Dantas Mendes Click here if your download doesn"t start automatically

Leia mais

Integrated Government Resources Planning IGRP Open Source. Como importar e contribuir - GitHub. Núcleo Operacional da Sociedade de Informação

Integrated Government Resources Planning IGRP Open Source. Como importar e contribuir - GitHub. Núcleo Operacional da Sociedade de Informação Núcleo Operacional da Sociedade de Informação 23-05-2017 Integrated Government Resources Planning IGRP Open Source Como importar e contribuir - GitHub Índice Listas de Figuras... 2 Introdução... 3 Instalação

Leia mais

Informática Parte 25 Prof. Márcio Hunecke

Informática Parte 25 Prof. Márcio Hunecke Escriturário Informática Parte 25 Prof. Márcio Hunecke Informática NODE.JS 6.11.3 Node.js é um interpretador (runtime) de código JavaScript com o código aberto, focado em migrar o JavaScript do lado do

Leia mais

Pesquisa Qualitativa do Início ao Fim (Métodos de Pesquisa) (Portuguese Edition)

Pesquisa Qualitativa do Início ao Fim (Métodos de Pesquisa) (Portuguese Edition) Pesquisa Qualitativa do Início ao Fim (Métodos de Pesquisa) (Portuguese Edition) Robert K. Yin Click here if your download doesn"t start automatically Pesquisa Qualitativa do Início ao Fim (Métodos de

Leia mais

Ricardo R. Lecheta. Novatec

Ricardo R. Lecheta. Novatec Ricardo R. Lecheta Novatec Sumário Agradecimentos...11 Sobre o autor...12 Prefácio...13 Capítulo 1 Introdução...14 1.1 Introdução ao Node.js... 14 1.2 A linguagem JavaScript... 14 1.3 Arquitetura não

Leia mais

DESENVOLVIMENTO DE UM APLICATIVO MULTIPLATAFORMA PARA AGENDAMENTO DE TAREFAS

DESENVOLVIMENTO DE UM APLICATIVO MULTIPLATAFORMA PARA AGENDAMENTO DE TAREFAS DESENVOLVIMENTO DE UM APLICATIVO MULTIPLATAFORMA PARA AGENDAMENTO DE TAREFAS PRIMAZ, Bruno Alexandre Recalcati RESUMO Este artigo apresenta o desenvolvimento de um aplicativo híbrido que pode ser utilizado

Leia mais

José cria um repositório vazio no Bitbucket (https://bitbucket.org/) José cria no seu computador de desenvolvimento um repositório local

José cria um repositório vazio no Bitbucket (https://bitbucket.org/) José cria no seu computador de desenvolvimento um repositório local Tutorial simples de Git usando a linha de comandos Parte 1 Em pares (por ex., José e Miguel) José cria um repositório vazio no Bitbucket (https://bitbucket.org/) o Repositories > Create repository o Repository

Leia mais

Vaporpunk - A fazenda-relógio (Portuguese Edition)

Vaporpunk - A fazenda-relógio (Portuguese Edition) Vaporpunk - A fazenda-relógio (Portuguese Edition) Octavio Aragão Click here if your download doesn"t start automatically Vaporpunk - A fazenda-relógio (Portuguese Edition) Octavio Aragão Vaporpunk - A

Leia mais

ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS (EM PORTUGUESE DO BRASIL) BY CHOO HYUNG KIM

ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS (EM PORTUGUESE DO BRASIL) BY CHOO HYUNG KIM Read Online and Download Ebook ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS (EM PORTUGUESE DO BRASIL) BY CHOO HYUNG KIM DOWNLOAD EBOOK : ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS Click link bellow

Leia mais

Os 7 Hábitos das Pessoas Altamente Eficazes (Portuguese Edition)

Os 7 Hábitos das Pessoas Altamente Eficazes (Portuguese Edition) Os 7 Hábitos das Pessoas Altamente Eficazes (Portuguese Edition) Click here if your download doesn"t start automatically Os 7 Hábitos das Pessoas Altamente Eficazes (Portuguese Edition) Os 7 Hábitos das

Leia mais

Biscuit - potes (Coleção Artesanato) (Portuguese Edition)

Biscuit - potes (Coleção Artesanato) (Portuguese Edition) Biscuit - potes (Coleção Artesanato) (Portuguese Edition) Regina Panzoldo Click here if your download doesn"t start automatically Biscuit - potes (Coleção Artesanato) (Portuguese Edition) Regina Panzoldo

Leia mais

HISTOLOGIA E BIOLOGIA CELULAR. UMA INTRODUçãO À PATOLOGIA (EM PORTUGUESE DO BRASIL) BY ABRAHAM L. KIERSZENBAUM

HISTOLOGIA E BIOLOGIA CELULAR. UMA INTRODUçãO À PATOLOGIA (EM PORTUGUESE DO BRASIL) BY ABRAHAM L. KIERSZENBAUM Read Online and Download Ebook HISTOLOGIA E BIOLOGIA CELULAR. UMA INTRODUçãO À PATOLOGIA (EM PORTUGUESE DO BRASIL) BY ABRAHAM L. KIERSZENBAUM DOWNLOAD EBOOK : HISTOLOGIA E BIOLOGIA CELULAR. UMA INTRODUçãO

Leia mais

Planejamento de comunicação integrada (Portuguese Edition)

Planejamento de comunicação integrada (Portuguese Edition) Planejamento de comunicação integrada (Portuguese Edition) Click here if your download doesn"t start automatically Planejamento de comunicação integrada (Portuguese Edition) Planejamento de comunicação

Leia mais

ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS (EM PORTUGUESE DO BRASIL) BY CHOO HYUNG KIM

ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS (EM PORTUGUESE DO BRASIL) BY CHOO HYUNG KIM Read Online and Download Ebook ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS (EM PORTUGUESE DO BRASIL) BY CHOO HYUNG KIM DOWNLOAD EBOOK : ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS Click link bellow

Leia mais

GERENCIAMENTO PELAS DIRETRIZES (PORTUGUESE EDITION) BY VICENTE FALCONI

GERENCIAMENTO PELAS DIRETRIZES (PORTUGUESE EDITION) BY VICENTE FALCONI Read Online and Download Ebook GERENCIAMENTO PELAS DIRETRIZES (PORTUGUESE EDITION) BY VICENTE FALCONI DOWNLOAD EBOOK : GERENCIAMENTO PELAS DIRETRIZES (PORTUGUESE Click link bellow and free register to

Leia mais

A necessidade da oração (Escola da Oração) (Portuguese Edition)

A necessidade da oração (Escola da Oração) (Portuguese Edition) A necessidade da oração (Escola da Oração) (Portuguese Edition) Click here if your download doesn"t start automatically A necessidade da oração (Escola da Oração) (Portuguese Edition) A necessidade da

Leia mais

Integração por Web Services

Integração por Web Services Integração por Web Services Versão 1.1 Maio 2010 Índice Índice... 2 Introdução... 3 Arquitectura PRIMAVERA... 4 User Interface... 4 Motor... 4 Interface para o Administrador... 5 Motores PRIMAVERA em Web

Leia mais

Serviços: API REST. URL - Recurso

Serviços: API REST. URL - Recurso Serviços: API REST URL - Recurso URLs reflectem recursos Cada entidade principal deve corresponder a um recurso Cada recurso deve ter um único URL Os URLs referem em geral substantivos URLs podem reflectir

Leia mais

FUTEBOL EXPLICA O BRASIL: UMA HISTóRIA DA MAIOR EXPRESSãO POPULAR DO PAíS, O (PORTUGUESE EDITION) BY MARCOS GUTERMAN

FUTEBOL EXPLICA O BRASIL: UMA HISTóRIA DA MAIOR EXPRESSãO POPULAR DO PAíS, O (PORTUGUESE EDITION) BY MARCOS GUTERMAN Read Online and Download Ebook FUTEBOL EXPLICA O BRASIL: UMA HISTóRIA DA MAIOR EXPRESSãO POPULAR DO PAíS, O (PORTUGUESE EDITION) BY MARCOS GUTERMAN DOWNLOAD EBOOK : FUTEBOL EXPLICA O BRASIL: UMA HISTóRIA

Leia mais

Aplicações Java Para A Web Com JSF E JPA (Portuguese Edition) By Gilliard Cordeiro

Aplicações Java Para A Web Com JSF E JPA (Portuguese Edition) By Gilliard Cordeiro Aplicações Java Para A Web Com JSF E JPA (Portuguese Edition) By Gilliard Cordeiro Aplicacoes Java para a Web Com JDF e JPA.pdf. Added by Silveirinha Pipa. potential recommendation reach. To recommend

Leia mais

Conteúdo Programático JavaScript Web Developer

Conteúdo Programático JavaScript Web Developer Destinatários - Profissionais que pretendam adquirir competências para programar em JavaScript; - Programadores Web; - Gestores de Websites; - Designers; - Todos os que pretendem aprender tudo sobre JavaScript,

Leia mais

Criação de uma aplicação Web ASP.NET MVC 4

Criação de uma aplicação Web ASP.NET MVC 4 Criação de uma aplicação Web ASP.NET MVC 4 usando Code First, com Roles (VS2012) Baseado no artigo de Scott Allen Roles in ASP.NET MVC4 : http://odetocode.com/blogs/scott/archive/2012/08/31/seeding membership

Leia mais

Aplicação Web Zend Framework 2 Cliente de Aplicação Asp.Net Web API

Aplicação Web Zend Framework 2 Cliente de Aplicação Asp.Net Web API Aplicação Web Zend Framework 2 Cliente de Aplicação Asp.Net Web API 1. Criar a Aplicação Asp.Net Web API 2 com Individual User Accounts Visual Studio 2015 > File > New > Project Visual C#, Web > ASP.NET

Leia mais

TEN CATE. HISTOLOGIA ORAL (EM PORTUGUESE DO BRASIL) BY ANTONIO NANCI

TEN CATE. HISTOLOGIA ORAL (EM PORTUGUESE DO BRASIL) BY ANTONIO NANCI Read Online and Download Ebook TEN CATE. HISTOLOGIA ORAL (EM PORTUGUESE DO BRASIL) BY ANTONIO NANCI DOWNLOAD EBOOK : TEN CATE. HISTOLOGIA ORAL (EM PORTUGUESE DO Click link bellow and free register to download

Leia mais

GUIA DE CONVERSAçãO PORTUGUêS- ITALIANO E VOCABULáRIO TEMáTICO 3000 PALAVRAS (PORTUGUESE EDITION) BY AND

GUIA DE CONVERSAçãO PORTUGUêS- ITALIANO E VOCABULáRIO TEMáTICO 3000 PALAVRAS (PORTUGUESE EDITION) BY AND Read Online and Download Ebook GUIA DE CONVERSAçãO PORTUGUêS- ITALIANO E VOCABULáRIO TEMáTICO 3000 PALAVRAS (PORTUGUESE EDITION) BY AND DOWNLOAD EBOOK : GUIA DE CONVERSAçãO PORTUGUêS-ITALIANO E VOCABULáRIO

Leia mais

Comportamento Organizacional: O Comportamento Humano no Trabalho (Portuguese Edition)

Comportamento Organizacional: O Comportamento Humano no Trabalho (Portuguese Edition) Comportamento Organizacional: O Comportamento Humano no Trabalho (Portuguese Edition) John W. Newstrom Click here if your download doesn"t start automatically Comportamento Organizacional: O Comportamento

Leia mais

GERENCIAMENTO DA ROTINA DO TRABALHO DO DIA-A-DIA (EM PORTUGUESE DO BRASIL) BY VICENTE FALCONI

GERENCIAMENTO DA ROTINA DO TRABALHO DO DIA-A-DIA (EM PORTUGUESE DO BRASIL) BY VICENTE FALCONI Read Online and Download Ebook GERENCIAMENTO DA ROTINA DO TRABALHO DO DIA-A-DIA (EM PORTUGUESE DO BRASIL) BY VICENTE FALCONI DOWNLOAD EBOOK : GERENCIAMENTO DA ROTINA DO TRABALHO DO DIA-A- Click link bellow

Leia mais

Aprenda a instalar o GLPI no Centos 6.5

Aprenda a instalar o GLPI no Centos 6.5 Aprenda a instalar o GLPI no Centos 6.5 Date : 31 de Janeiro de 2014 Solução fantástica para Gestão total do seu parque informático: Experimente já aqui Quando se é administrador de um parque informático

Leia mais

Ganhar Dinheiro Em Network Marketing (Portuguese Edition)

Ganhar Dinheiro Em Network Marketing (Portuguese Edition) Ganhar Dinheiro Em Network Marketing (Portuguese Edition) Click here if your download doesn"t start automatically Ganhar Dinheiro Em Network Marketing (Portuguese Edition) Ganhar Dinheiro Em Network Marketing

Leia mais

Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile)

Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile) Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile) 1. Instalar no Visual Studio 2017 o workload Azure Development

Leia mais

Poder sem limites - o caminho do sucesso pessoal pela programação neurolinguística

Poder sem limites - o caminho do sucesso pessoal pela programação neurolinguística Poder sem limites - o caminho do sucesso pessoal pela programação neurolinguística By Anthony Robbins Poder sem limites - o caminho do sucesso pessoal pela programação neurolinguística By Anthony Robbins

Leia mais

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades. REST Representational State Transfer É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades. Não é um padrão. Exemplo ASP.NET Web API namespace WebAPIApp.Models

Leia mais

ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS (EM PORTUGUESE DO BRASIL) BY CHOO HYUNG KIM

ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS (EM PORTUGUESE DO BRASIL) BY CHOO HYUNG KIM Read Online and Download Ebook ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS (EM PORTUGUESE DO BRASIL) BY CHOO HYUNG KIM DOWNLOAD EBOOK : ATLAS DE ACUPUNTURA VETERINáRIA. CãES E GATOS Click link bellow

Leia mais

O PRíNCIPE FELIZ E OUTRAS HISTóRIAS (EDIçãO BILíNGUE) (PORTUGUESE EDITION) BY OSCAR WILDE

O PRíNCIPE FELIZ E OUTRAS HISTóRIAS (EDIçãO BILíNGUE) (PORTUGUESE EDITION) BY OSCAR WILDE Read Online and Download Ebook O PRíNCIPE FELIZ E OUTRAS HISTóRIAS (EDIçãO BILíNGUE) (PORTUGUESE EDITION) BY OSCAR WILDE DOWNLOAD EBOOK : O PRíNCIPE FELIZ E OUTRAS HISTóRIAS (EDIçãO Click link bellow and

Leia mais

Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition)

Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition) Introdução A Delphi Com Banco De Dados Firebird (Portuguese Edition) Ricardo De Moraes / André Luís De Souza Silva Click here if your download doesn"t start automatically Introdução A Delphi Com Banco

Leia mais

ATLAS COLORIDO DE ANATOMIA VETERINáRIA DE EQUINOS (EM PORTUGUESE DO BRASIL) BY STANLEY H. ASHDOWN RAYMOND R. DONE

ATLAS COLORIDO DE ANATOMIA VETERINáRIA DE EQUINOS (EM PORTUGUESE DO BRASIL) BY STANLEY H. ASHDOWN RAYMOND R. DONE Read Online and Download Ebook ATLAS COLORIDO DE ANATOMIA VETERINáRIA DE EQUINOS (EM PORTUGUESE DO BRASIL) BY STANLEY H. ASHDOWN RAYMOND R. DONE DOWNLOAD EBOOK : ATLAS COLORIDO DE ANATOMIA VETERINáRIA

Leia mais

Como escrever para o Enem: roteiro para uma redação nota (Portuguese Edition)

Como escrever para o Enem: roteiro para uma redação nota (Portuguese Edition) Como escrever para o Enem: roteiro para uma redação nota 1.000 (Portuguese Edition) Arlete Salvador Click here if your download doesn"t start automatically Como escrever para o Enem: roteiro para uma redação

Leia mais

Buscai as coisas do alto (Portuguese Edition)

Buscai as coisas do alto (Portuguese Edition) Buscai as coisas do alto (Portuguese Edition) Padre Léo SCJ Click here if your download doesn"t start automatically Buscai as coisas do alto (Portuguese Edition) Padre Léo SCJ Buscai as coisas do alto

Leia mais

Gerenciamento Pelas Diretrizes (Portuguese Edition)

Gerenciamento Pelas Diretrizes (Portuguese Edition) Gerenciamento Pelas Diretrizes (Portuguese Edition) Vicente Falconi Click here if your download doesn"t start automatically Gerenciamento Pelas Diretrizes (Portuguese Edition) Vicente Falconi Gerenciamento

Leia mais

Planning for and Managing Devices in the Enterprise: Enterprise Management Suite (EMS) & On-Premises Tools (20398)

Planning for and Managing Devices in the Enterprise: Enterprise Management Suite (EMS) & On-Premises Tools (20398) Planning for and Managing Devices in the Enterprise: Enterprise Management Suite (EMS) & On-Premises Tools (20398) Formato do curso: Presencial Localidade: Lisboa Data: 18 Dez. 2017 a 22 Dez. 2017 Preço:

Leia mais

Um olhar que cura: Terapia das doenças espirituais (Portuguese Edition)

Um olhar que cura: Terapia das doenças espirituais (Portuguese Edition) Um olhar que cura: Terapia das doenças espirituais (Portuguese Edition) Padre Paulo Ricardo Click here if your download doesn"t start automatically Um olhar que cura: Terapia das doenças espirituais (Portuguese

Leia mais

CIVILIZAçãO EM TRANSIçãO (OBRAS COMPLETAS DE CARL GUSTAV JUNG) (PORTUGUESE EDITION) BY CARL GUSTAV JUNG

CIVILIZAçãO EM TRANSIçãO (OBRAS COMPLETAS DE CARL GUSTAV JUNG) (PORTUGUESE EDITION) BY CARL GUSTAV JUNG Read Online and Download Ebook CIVILIZAçãO EM TRANSIçãO (OBRAS COMPLETAS DE CARL GUSTAV JUNG) (PORTUGUESE EDITION) BY CARL GUSTAV JUNG DOWNLOAD EBOOK : CIVILIZAçãO EM TRANSIçãO (OBRAS COMPLETAS DE Click

Leia mais

PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition)

PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition) PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition) Eduardo Gonçalves Click here if your download doesn"t start automatically PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese

Leia mais

Tutorial: Nginx com PHP 7 e MySQL no Ubuntu LTS

Tutorial: Nginx com PHP 7 e MySQL no Ubuntu LTS Tutorial: Nginx com PHP 7 e MySQL no Ubuntu 16.04 LTS Date : 21 de Abril de 2017 Quando necessitamos de criar sites/conteúdos Web, temos de possuir um ambiente de desenvolvimento que tenha suporte para

Leia mais

Sistema SGPA-IFSP. Manual de Instalação

Sistema SGPA-IFSP. Manual de Instalação Sistema SGPA-IFSP Manual de Instalação Sumário 1. Introdução... 3 2. Softwares Necessários... 4 2.1 Ambiente Java... 4 2.2 Servidor MySQL... 8 2.3 Spring Tool Suit... 17 3. Configuração e Implantação do

Leia mais

Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition)

Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition) Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition) Cyro César Click here if your download doesn"t start automatically Como Falar no Rádio - Prática de Locução Am e Fm (Portuguese Edition)

Leia mais

Churrasco - Dando nome aos bois (Portuguese Edition)

Churrasco - Dando nome aos bois (Portuguese Edition) Churrasco - Dando nome aos bois (Portuguese Edition) István Wessel Click here if your download doesn"t start automatically Churrasco - Dando nome aos bois (Portuguese Edition) István Wessel Churrasco -

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Aplicação HTTP FTP SMTP Slide 1 Mensagem de Requisição HTTP linha de pedido (comandos GET, POST,HEAD ) linhas de cabeçalho Carriage return, line feed indica fim da mensagem

Leia mais

A ENTREVISTA COMPREENSIVA: UM GUIA PARA PESQUISA DE CAMPO (PORTUGUESE EDITION) BY JEAN-CLAUDE KAUFMANN

A ENTREVISTA COMPREENSIVA: UM GUIA PARA PESQUISA DE CAMPO (PORTUGUESE EDITION) BY JEAN-CLAUDE KAUFMANN Read Online and Download Ebook A ENTREVISTA COMPREENSIVA: UM GUIA PARA PESQUISA DE CAMPO (PORTUGUESE EDITION) BY JEAN-CLAUDE KAUFMANN DOWNLOAD EBOOK : A ENTREVISTA COMPREENSIVA: UM GUIA PARA CLAUDE KAUFMANN

Leia mais

EA975 - Laboratório de Engenharia de Software

EA975 - Laboratório de Engenharia de Software EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 1 O que vamos desenvolver? Vamos desenvolver uma aplicação distribuída, empregando a arquitetura 3-Tier segundo o estilo REST/HTTP (Respresentational

Leia mais

Software Testing with Visual Studio 2013 (20497)

Software Testing with Visual Studio 2013 (20497) Software Testing with Visual Studio 2013 (20497) Formato do curso: Presencial Preço: 800 Nível: Intermédio Duração: 12 horas Este curso, mostra a Programadores e Testers como utilizar as ferramentas do

Leia mais

Hipnose Na Pratica Clinica

Hipnose Na Pratica Clinica Hipnose Na Pratica Clinica Marlus Vinicius Costa Ferreira Click here if your download doesn"t start automatically Hipnose Na Pratica Clinica Marlus Vinicius Costa Ferreira Hipnose Na Pratica Clinica Marlus

Leia mais

Sage API Application Programming Interface.

Sage API Application Programming Interface. Application Programming Interface 1 Sage Next API 2 Introdução Application Programming Interface (Interface de Programação de Aplicativos). Funções acessíveis por programação e que permitem utilizar características

Leia mais

Livro do Desassossego

Livro do Desassossego Livro do Desassossego Fernando Pessoa Click here if your download doesn"t start automatically Livro do Desassossego Fernando Pessoa Livro do Desassossego Fernando Pessoa [...] Download Livro do Desassossego...pdf

Leia mais

O candomblé e seus orixás (Coleção Autoconhecimento) (Portuguese Edition)

O candomblé e seus orixás (Coleção Autoconhecimento) (Portuguese Edition) O candomblé e seus orixás (Coleção Autoconhecimento) (Portuguese Edition) Carlos Renato Assef Click here if your download doesn"t start automatically O candomblé e seus orixás (Coleção Autoconhecimento)

Leia mais

Medicina e Meditação - Um Médico Ensina a Meditar (Portuguese Edition)

Medicina e Meditação - Um Médico Ensina a Meditar (Portuguese Edition) Medicina e Meditação - Um Médico Ensina a Meditar (Portuguese Edition) Roberto Cardoso Click here if your download doesn"t start automatically Medicina e Meditação - Um Médico Ensina a Meditar (Portuguese

Leia mais

Gestão de Projetos: As Melhores Práticas (Portuguese Edition)

Gestão de Projetos: As Melhores Práticas (Portuguese Edition) Gestão de Projetos: As Melhores Práticas (Portuguese Edition) By Harold R. Kerzner Gestão de Projetos: As Melhores Práticas (Portuguese Edition) By Harold R. Kerzner Desde que a primeira edição foi publicada,

Leia mais

Guia para Formacao de Analistas de Processos: Gestão Por Processos de Forma Simples (Portuguese Edition)

Guia para Formacao de Analistas de Processos: Gestão Por Processos de Forma Simples (Portuguese Edition) Guia para Formacao de Analistas de Processos: Gestão Por Processos de Forma Simples (Portuguese Edition) Mr. Gart Capote Click here if your download doesn"t start automatically Guia para Formacao de Analistas

Leia mais

Medicina Integrativa - A Cura pelo Equilíbrio (Portuguese Edition)

Medicina Integrativa - A Cura pelo Equilíbrio (Portuguese Edition) Medicina Integrativa - A Cura pelo Equilíbrio (Portuguese Edition) Click here if your download doesn"t start automatically Medicina Integrativa - A Cura pelo Equilíbrio (Portuguese Edition) Medicina Integrativa

Leia mais

Esboços e Sermões Completos para Ocasiões e Datas Especiais: Mensagens Bíblicas para Todas as Datas da Vida Cristã (Portuguese Edition)

Esboços e Sermões Completos para Ocasiões e Datas Especiais: Mensagens Bíblicas para Todas as Datas da Vida Cristã (Portuguese Edition) Esboços e Sermões Completos para Ocasiões e Datas Especiais: Mensagens Bíblicas para Todas as Datas da Vida Cristã (Portuguese Edition) Adelson Damasceno Santos Click here if your download doesn"t start

Leia mais

CONFIGURAÇÃO DA CAIXA DE CORREIO ELETRÓNICO

CONFIGURAÇÃO DA CAIXA DE CORREIO ELETRÓNICO CONFIGURAÇÃO DA CAIXA DE CORREIO ELETRÓNICO Outlook 2013 / 2016 & definições genéricas Criado/ Revisto Por: Revisto em: Contacto: DI-IPS Março 2017 [email protected] Fevereiro 2018 ÍNDICE Índice...

Leia mais

Dropbox Quick Start. What is Dropbox? The Dropbox Folder

Dropbox Quick Start. What is Dropbox? The Dropbox Folder Dropbox Quick Start What is Dropbox? Dropbox is a free service that lets you bring all your photos, docs, and videos anywhere. Any file you save to your Dropbox will also automatically save to all your

Leia mais

Farmacologia na Pratica de Enfermagem (Em Portuguese do Brasil)

Farmacologia na Pratica de Enfermagem (Em Portuguese do Brasil) Farmacologia na Pratica de Enfermagem (Em Portuguese do Brasil) Click here if your download doesn"t start automatically Farmacologia na Pratica de Enfermagem (Em Portuguese do Brasil) Farmacologia na Pratica

Leia mais

Manual de instalação do SQL 2012

Manual de instalação do SQL 2012 Manual de instalação do SQL 2012 Instalando o SQL Server 2012 para o funcionamento do Shop Control 9 Insira o DVD de instalação do Shop Control 9 em seu servidor; Na sua aréa de trabalho clique em Computador,

Leia mais

Developing ASP.NET MVC 5 Web Applications (20486)

Developing ASP.NET MVC 5 Web Applications (20486) Developing ASP.NET MVC 5 Web Applications (20486) Formato do curso: Presencial Localidade: Lisboa Com certificação: Microsoft Certified Solutions Developer (MCSD) Data: 02 Abr. 2018 a 06 Abr. 2018 Preço:

Leia mais

Alfabetizar letrando na biblioteca escolar (Coleção biblioteca básica de alfabetização e letramento) (Portuguese Edition)

Alfabetizar letrando na biblioteca escolar (Coleção biblioteca básica de alfabetização e letramento) (Portuguese Edition) Alfabetizar letrando na biblioteca escolar (Coleção biblioteca básica de alfabetização e letramento) (Portuguese Edition) Click here if your download doesn"t start automatically Alfabetizar letrando na

Leia mais

Meditacao da Luz: O Caminho da Simplicidade

Meditacao da Luz: O Caminho da Simplicidade Meditacao da Luz: O Caminho da Simplicidade Leonardo Boff Click here if your download doesn"t start automatically Meditacao da Luz: O Caminho da Simplicidade Leonardo Boff Meditacao da Luz: O Caminho da

Leia mais

O Jardim Secreto - Coleção Reencontro Infantil (Em Portuguese do Brasil)

O Jardim Secreto - Coleção Reencontro Infantil (Em Portuguese do Brasil) O Jardim Secreto - Coleção Reencontro Infantil (Em Portuguese do Brasil) Frances Hodgson Burnett Click here if your download doesn"t start automatically O Jardim Secreto - Coleção Reencontro Infantil (Em

Leia mais

Universidade da Beira Interior. Sistemas Distribuídos - 2014/2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services

Universidade da Beira Interior. Sistemas Distribuídos - 2014/2015 Curso: Engª Informática. Folha 11. JAX-RS: Java API for RESTful Web Services JAX-RS: Java API for RESTful Web Services A - Creating RESTful Web Services from a Database 1- Comece por criar um projeto do tipo Java Web application, como fez nos exercícios das fichas anteriores. No

Leia mais

Sophos SafeGuard Enterprise 8.0.1

Sophos SafeGuard Enterprise 8.0.1 Sophos SafeGuard Enterprise 8.0.1 Guia: Manual de instalação do Sophos SafeGuard Enterprise 8.0.1 Data do Documento: Novembro de 2016 Conteúdo 1. Sobre este manual... 3 2. Requisitos de Instalação... 4

Leia mais

Fr A Lógica Da Resolução Das Questões Usando Apenas Multiplicação E Divisão (Portuguese Edition)

Fr A Lógica Da Resolução Das Questões Usando Apenas Multiplicação E Divisão (Portuguese Edition) Fr A Lógica Da Resolução Das Questões Usando Apenas Multiplicação E Divisão (Portuguese Edition) Click here if your download doesn"t start automatically Fr A Lógica Da Resolução Das Questões Usando Apenas

Leia mais

COMO ESCREVER PARA O ENEM: ROTEIRO PARA UMA REDAçãO NOTA (PORTUGUESE EDITION) BY ARLETE SALVADOR

COMO ESCREVER PARA O ENEM: ROTEIRO PARA UMA REDAçãO NOTA (PORTUGUESE EDITION) BY ARLETE SALVADOR Read Online and Download Ebook COMO ESCREVER PARA O ENEM: ROTEIRO PARA UMA REDAçãO NOTA 1.000 (PORTUGUESE EDITION) BY ARLETE SALVADOR DOWNLOAD EBOOK : COMO ESCREVER PARA O ENEM: ROTEIRO PARA UMA SALVADOR

Leia mais

As 100 melhores piadas de todos os tempos (Portuguese Edition)

As 100 melhores piadas de todos os tempos (Portuguese Edition) As 100 melhores piadas de todos os tempos (Portuguese Edition) Click here if your download doesn"t start automatically As 100 melhores piadas de todos os tempos (Portuguese Edition) As 100 melhores piadas

Leia mais

Como testar componentes eletrônicos - volume 1 (Portuguese Edition)

Como testar componentes eletrônicos - volume 1 (Portuguese Edition) Como testar componentes eletrônicos - volume 1 (Portuguese Edition) Renato Paiotti Newton C. Braga Click here if your download doesn"t start automatically Como testar componentes eletrônicos - volume 1

Leia mais

EA975 - Laboratório de Engenharia de Software. Objetivo do curso. Turmas K/L Aula 1

EA975 - Laboratório de Engenharia de Software. Objetivo do curso. Turmas K/L Aula 1 EA975 - Laboratório de Engenharia de Software Objetivo do curso Exercitar na prática as técnicas de desenvolvimento de software estudadas no curso EA976 - Engenharia de Software. Turmas K/L - 2019 Aula

Leia mais

Manual dos locutores esportivos: Como narrar futebol e outros esportes no rádio e na televisão (Portuguese Edition)

Manual dos locutores esportivos: Como narrar futebol e outros esportes no rádio e na televisão (Portuguese Edition) Manual dos locutores esportivos: Como narrar futebol e outros esportes no rádio e na televisão (Portuguese Edition) Carlos Fernando Schinner Click here if your download doesn"t start automatically Manual

Leia mais

Vendors Enquiries for RFP 003/2015

Vendors Enquiries for RFP 003/2015 Date: 22/10/2015 Vendors Enquiries for RFP 003/2015 1) Question I am afraid the terms of the RFP cannot be complied by none of the companies we work with, the terms have limited the underwriters ability

Leia mais

20480 Programming in HTML5 with JavaScript and CSS3

20480 Programming in HTML5 with JavaScript and CSS3 20480 Programming in HTML5 with JavaScript and CSS3 Microsoft Nível: Intermédio Duração: 35h Sobre o curso Este curso fornece uma introdução ao HTML5, CSS3 e JavaScript. Este curso ajuda os formandos a

Leia mais

Registo de Token de Software: SafeNet MobilePASS+ para Apple ios

Registo de Token de Software: SafeNet MobilePASS+ para Apple ios Registo de Token de Software: SafeNet MobilePASS+ para Apple ios Passo 1: Abrir o e-mail de Registo Automático a. Abra o e-mail de Registo Automático no seu telefone Apple ios. NOTA: se estiver a utilizar

Leia mais

Conteúdo Programático JavaScript Web Developer

Conteúdo Programático JavaScript Web Developer Destinatários - Profissionais que pretendam adquirir competências para programar em JavaScript; - Programadores Web; - Gestores de Websites; - Designers; - Todos os que pretendem aprender tudo sobre JavaScript,

Leia mais

DIBELS TM. Portuguese Translations of Administration Directions

DIBELS TM. Portuguese Translations of Administration Directions DIBELS TM Portuguese Translations of Administration Directions Note: These translations can be used with students having limited English proficiency and who would be able to understand the DIBELS tasks

Leia mais

Aprendi A Fazer Sexo Na Bíblia (Portuguese Edition)

Aprendi A Fazer Sexo Na Bíblia (Portuguese Edition) Aprendi A Fazer Sexo Na Bíblia (Portuguese Edition) Salomão Silva Click here if your download doesn"t start automatically Aprendi A Fazer Sexo Na Bíblia (Portuguese Edition) Salomão Silva Aprendi A Fazer

Leia mais

O VAZIO DA MáQUINA: NIILISMO E OUTROS ABISMOS (TRILOGIA DO NADA LIVRO 2) (PORTUGUESE EDITION) BY ANDRE CANCIAN

O VAZIO DA MáQUINA: NIILISMO E OUTROS ABISMOS (TRILOGIA DO NADA LIVRO 2) (PORTUGUESE EDITION) BY ANDRE CANCIAN Read Online and Download Ebook O VAZIO DA MáQUINA: NIILISMO E OUTROS ABISMOS (TRILOGIA DO NADA LIVRO 2) (PORTUGUESE EDITION) BY ANDRE CANCIAN DOWNLOAD EBOOK : O VAZIO DA MáQUINA: NIILISMO E OUTROS ABISMOS

Leia mais

Developing Microsoft SharePoint Server 2013 Core Solutions (20488)

Developing Microsoft SharePoint Server 2013 Core Solutions (20488) Developing Microsoft SharePoint Server 2013 Core Solutions (20488) Formato do curso: Presencial Com certificação: MCSD: Sharepoint Applications Preço: 1650 Nível: Intermédio Duração: 30 horas Neste curso

Leia mais

PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition)

PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition) PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese Edition) Eduardo Gonçalves Click here if your download doesn"t start automatically PL/SQL: Domine a linguagem do banco de dados Oracle (Portuguese

Leia mais