USAR OU NÃO FRAMEWORK ?
Fala galera tranquilo?? obs marquei mobile más é para web!!
estou me aventurando no PHP, infelizmente a empresa que eu trabalho cancelou o contrato por conta da crise e mudaram
a hospedagem Asp.net para Linux php no qual oferece um valor bem mais modesto..
estou tendo algumas dificuldades com a sintaxe porém vendo videos, documentação e etc ja estou até acostumando, creio que seja questão de costume e aprendizado tbm..
Fiz um curso do Framework Code Igniter 3, e achei muito simples e fantastico pela rapidez e praticidade para se fazer tudo.. porém vi que a comunidade PHP não aconselha
muito o uso do Code Igniter e sim do famoso Laravel ..
Vamos as questões:
1. Vale a pena investir num Framework estável como o Code Igniter 3 porém que não sofre atualizações más que pelo que fiz e vi funciona muito bem e oferece uma produtividade grande?
2. Vale a pena esquecer o Code Igniter e ja ir aprender Laravel?
3. Utilizar o PHP 7 puro?
obs: Laravel pelo que vi não é indicado para [Ô]hospedagens[Ô] compartilhadas.. tem esse porém também pq a empresa não vai contratar um dedicado ou vps...
estou me aventurando no PHP, infelizmente a empresa que eu trabalho cancelou o contrato por conta da crise e mudaram
a hospedagem Asp.net para Linux php no qual oferece um valor bem mais modesto..
estou tendo algumas dificuldades com a sintaxe porém vendo videos, documentação e etc ja estou até acostumando, creio que seja questão de costume e aprendizado tbm..
Fiz um curso do Framework Code Igniter 3, e achei muito simples e fantastico pela rapidez e praticidade para se fazer tudo.. porém vi que a comunidade PHP não aconselha
muito o uso do Code Igniter e sim do famoso Laravel ..
Vamos as questões:
1. Vale a pena investir num Framework estável como o Code Igniter 3 porém que não sofre atualizações más que pelo que fiz e vi funciona muito bem e oferece uma produtividade grande?
2. Vale a pena esquecer o Code Igniter e ja ir aprender Laravel?
3. Utilizar o PHP 7 puro?
obs: Laravel pelo que vi não é indicado para [Ô]hospedagens[Ô] compartilhadas.. tem esse porém também pq a empresa não vai contratar um dedicado ou vps...
Amigo, no seu caso, nem mesmo PHP. Dê preferência para algo mais atual. Como está a estrutura do projeto?
Citação::
Amigo, no seu caso, nem mesmo PHP. Dê preferência para algo mais atual. Como está a estrutura do projeto?
Opa Kerp, meu projeto está em WinForms .. estava estudando Asp.net mvc porém achei um pouco pesado..
Algo mais atual por exemplo Web Api ? (que é sua ) me falta um pouco de conhecimento apesar de ter assistido seus videos..
Existem dezenas de maneiras de se construir uma WebAPI muito eficiente sem usar o ASP.NET. Até mesmo com Node + Express, ou ainda usando Go, ou Python. Não é que [Ô]gosto[Ô] de WebAPI, mas sim que é o padrão usado por uma gama gigantesca de aplicações.
O mais bacana(na minha opinião) de desenvolver WebAPI com ASP.NET é a vantagem de se poder usar OWIN e [Ô]hospedar[Ô] sua WebAPI como um serviço do windows, incluindo com extensão OData, se quiser. Sua WebAPI vira um serviço do windows, que pode inclusive ser consumido por aplicações externas se assim você quiser, eliminando totalmente a necessidade do IIS.
Então kerp, de Web Api conheço apenas teoria, vi alguns exemplos e dei uma olhada nos seus videos e achei muito legal, porém acho complexo para o tipo de necessidade que eu tenho hoje.
irei explicar..
trabalho num laboratório de análises e fui contratado pelo motivo de as análises serem feitas em papéis, ter rasura etc etc.. o sistema dessa empresa tinha 10 anos, foi feito em Vb6 (foi o motivo de eu ter me cadastrado aqui anos atrás pois já aprendi WinForms .NET OOP e não sabia NADA de VB6). acabei aprendendo na marra e alguns topicos que li aqui, fui conhecendo o dono do sistema em Vb6 e fizemos uma boa amizade hoje somos [Ô]parceiros/socios[Ô] ja temos 2 sistemas em .NET feitos juntos..
voltamos ao laboratório, é uma empresa que possuem mais de 10 laboratórios dentro dela, onde cada laboratório tem inúmeros forms pois cada teste é diferente existem análises que possuem até 100 form[ô]s (não fiz ainda), chamadas, etc acredito que o servidor pra aguentar tantas requisições sairia muito caro..
Porém sei que a tendência é tudo ser web e estou [ô]perdido[ô].. um analista de experiência amigo meu (tio da minha namorada) está migrando alguns dos sistemas Asp.net dele para Php puro, Ajax e Bootstrap e citou a performance como uma grande vantagem .. fiz um crud usando PHP e CodeIgniter 3 e fiquei besta com a performance e a facilidade pra se desenvolver..
pra você ter noção o projeto tem mais de 200 forms, 150 relatórios, o executável está com 1 GB de tamanho e o banco de dados chegando nos 4 GB...
Porém pra ser sincero estou mais perdido que cego em tiroteio, converso com os professores e eles dizem [Ô]faça em Java sem framework nenhum + TomCat 8/9 no padrão MVC e seja feliz[Ô]..
porém né professor de java sempre tem aquela [Ô]tendência[Ô] a puxar sardinha...
Se seu medo é precisar de um servidor [Ô]parrudo[Ô] para hospedar uma WebAPI pequena assim, pode ficar tranquilo. Entenda que o que transita pela WebAPI são dados apenas. As telas e tudo mais ficam no cliente(máquinas dos usuários). Uma máquina simples para isso já é mais que suficiente. Chamamos [Ô]médio[Ô] uma WebAPI transitando na casa das dezenas de megabytes por segundo. E olha que isso é muita coisa. No seu caso, pense nos dados que você envia e recebe. Uma tela com exames deve ter menos de 1kb em dados. Uma pesquisa com tipo 1000 registros é também pouca coisa para ser transitado, comparando com a mesma quantidade de dados recebidos e enviados diretamente do e para o banco de dados. E tem muitos [Ô]plus[Ô] usando uma WebAPI, se quiser posso citar(novamente) alguns deles. Além disso, a performance tem GANHO com uma WebAPI, pelo simples fato de ela estar(quase sempre) no mesmo nÃvel que o banco de dados ou ao menos muito próximo, a velocidade de trânsito dos dados é muito maior.
Na verdade esse é um medo e o outro é por falta de conhecimento mas tenho algumas duvidas abaixo...
1. Servidores tanto de hospedagem como o servidor interno são linux e não consigo rodar Windows Server nele e a crise ta feia não vai ter como
ter nenhum vps,dedicado,asp.net host, aws..
2. Segurança na WebApi (é token de autenticação? não faço a minima idéia de como implementar isso).
3. Os metodos get,post,put,delete entendi e achei bacana..
4. [txt-color=#e80000]me corrija caso eu estiver errado pelo meu entendimento basico de web api: [/txt-color]: Web api pra mim trafega dados em modo Json correto atraves do http então a cada requisição que eu bater no servidor, receberei um json correto? daà é necessário realizar uma chamada http put,get,post,delete e receberei um json como resultado daÃ
desserializo esse json e me retornará dados correto?
5. é possivel rodar 2 projetos ao mesmo tempo no VS ? por ex uma solution com a WebApi e uma solution com um MVC consumindo esse WebApi?
6. Qual o modo mais facil para consumir a WebApi pra um site web com modais ?
7. Na verdade eu tenho duvida em quase tudo, desde a segurança, login de usuario, consumir etc..
8. utilizamos o banco MySQL é tranquila integração dele com o WebApi ??
1. Servidores tanto de hospedagem como o servidor interno são linux e não consigo rodar Windows Server nele e a crise ta feia não vai ter como
ter nenhum vps,dedicado,asp.net host, aws..
2. Segurança na WebApi (é token de autenticação? não faço a minima idéia de como implementar isso).
3. Os metodos get,post,put,delete entendi e achei bacana..
4. [txt-color=#e80000]me corrija caso eu estiver errado pelo meu entendimento basico de web api: [/txt-color]: Web api pra mim trafega dados em modo Json correto atraves do http então a cada requisição que eu bater no servidor, receberei um json correto? daà é necessário realizar uma chamada http put,get,post,delete e receberei um json como resultado daÃ
desserializo esse json e me retornará dados correto?
5. é possivel rodar 2 projetos ao mesmo tempo no VS ? por ex uma solution com a WebApi e uma solution com um MVC consumindo esse WebApi?
6. Qual o modo mais facil para consumir a WebApi pra um site web com modais ?
7. Na verdade eu tenho duvida em quase tudo, desde a segurança, login de usuario, consumir etc..
8. utilizamos o banco MySQL é tranquila integração dele com o WebApi ??
Vejo que seu conhecimento é bem básico mesmo, então vamos lá:
A web como um todo, trafega texto. O nome do protocolo(HTTP ou Hyper-Text Transfer Protocol) é exatamente isso, tráfego de texto. Seja para uma página Web ou uma WebAPI, o que transita do cliente para o servidor e vice-versa é texto. Veja o caso do VBMania(ou qualquer outro site), você digita o endereço e recebe texto(HTML, CSS e Javascript são texto) e seu browser [Ô]transforma[Ô] esses textos na página que você está vendo. Uma WebAPI não é diferente quanto ao seu modo de funcionamento. Trafega texto também, a diferença é que ao invés de HTML, CSS e Javascript, o que você recebe e envia são pacotes de dados, que podem ter vários formatos, XML e JSON são dois dos mais usados, mais para JSON. O que você mencionou de GET, PUT, POST, DELETE, são os verbos Http. é o que indica ao servidor que ação está sendo feita. Ao digitar o endereço(ou entrar em um link) você está executando o método GET para o recurso. Recurso entende-se pelo conteúdo. Veja o endereço lá em cima na barra de endereços. Esse é o recurso que seu browser solicitou, usando o método GET. Ele possui parâmetros, como o método, id e página, que são interpretados pelos scripts no servidor, trazendo os dados correspondentes, mais ou menos como funciona uma query SQL. Quando eu digitei essa resposta e cliquei no botão [Ô]Postar Resposta[Ô], executei o método POST, que recebeu os dados do formulário correspondente ao botão clicado. O nome [Ô]postar[Ô] não é a toa. Essa ação de enviar dados ao servidor é geralmente a ação(verbo HTTP) POST. Uma analogia aos verbos HTTP são os comandos SQL:
GET para SELECT
POST para INSERT
PUT para UPDATE
DELETE para DELETE
Com isso fica mais simples de entender para que servem os verbos HTTP.
As chamadas para o servidor, seja qual for o método(verbo), possuem uma estrutura bem definida, contendo cabeçalho(header) e corpo(body). Cada chamada por padrão contém alguns dados básicos de cabeçalho. Uma WebAPI consegue separar cabeçalho e corpo de mensagem e fazer o que for programado nela. O cabeçalho pode conter informações sobre o cliente, como um token, que é simplesmente um número(na verdade mais que um número), que identifica o cliente. Quando você faz o login em algum lugar, você envia as informações de login e senha, a WebAPI, faz a consulta no banco de dados e se os dados estiverem certos, retorna para você(ou sua aplicação) um identificador, como se fosse um crachá de acesso. Sua aplicação grava esse número e o adiciona em todas as outras chamadas subsequentes ao servidor. Baseado nesse número o servidor(WebAPI) sabe quem é você e faz as consultas correspondentes. é bem simples, o token, é um crachá de identificação, que você adiciona no cabeçalho das suas chamadas ao servidor. Tenho um vÃdeo mostrando como fazer isso com o ASP.NET/C#, mas é possÃvel fazer com qualquer outra linguagem.
Sua preocupação quanto ao formato, é irrelevante. Um cliente Web(HttpClient, WebClient ou qualquer outro), não vai enxergar JSON ou XML. Para exemplificar, vou usar o AJAX. Ele é uma parte do framework JQuery e faz chamadas HTTP. Ele recebe objeto e trabalha com eles. O texto recebido é só para caso você queira ver mesmo. Ao fazer uma chamada GET por exemplo, mesmo que o que trafegue seja JSON, o AJAX enxerga um objeto javascript e com ele você pode fazer o que quiser. Essa é uma das muitas razões de se entender muito bem como se trabalhar com OOP, até para isso, faz diferença. Então é desnecessário dizer, que para .NET(C#, VB, ASP) isso é praticamente irrelevante o mesmo vale para qualquer outra linguagem.
Suas dúvidas são todas por ainda estar preso no paradigma de linguagem e não entender como funcionam as coisas em um modo mais abstrato. Não veja um programa como um monte de código, tente entender o que ele está fazendo e entender as tecnologias usadas por ele. Só assim, você vai conseguir sair dessa [Ô]jaula[Ô]. Quer um exemplo bem simples? Um simples fragmento de código VB6:
Você entende que rs e cn, são instâncias de objetos, respectivamente Recordset e Connection, que pertencem à biblioteca Active Data Objects?
Você entende que quando o comando [Ô]execute[Ô] for executado, uma conexão vai ser feita ao banco de dados, talvez via socket, talvez via PIPE, depende do banco de dados e o que você especificar na connection string?
Você entende que quem faz a [Ô]tradução[Ô] do pacote de dados retornado pelo banco de dados para dados no recordset, pode ser um driver ODBC ou OleDb(novamente, dependendo da connection string)?
Você entende que essa conexão feita com o banco de dados, é dependente da rede?
Que o ADO não é uma parte do VB6, mas sim, uma das muitas bibliotecas consumidas por ele? Que VB6(ou o Visual Studio 6) é simplesmente um compilador que gera um executável que consome essas muitas bibliotecas, incluindo a Runtime?
é disso que estou falando. Ver comandinhos é menos que o suficiente, é preciso entender o que está sendo feito e na atualidade TUDO é orientado à objetos, então se quer ter entendimento de praticamente tudo, entenda bem o que é OOP ou programação orientada à objetos. Quando chegar à isso, nada mais será mistério, tudo se [Ô]abre[Ô] e nada mais será dificuldade. E é por isso que tanto insisto nisso, aprenda OOP
A web como um todo, trafega texto. O nome do protocolo(HTTP ou Hyper-Text Transfer Protocol) é exatamente isso, tráfego de texto. Seja para uma página Web ou uma WebAPI, o que transita do cliente para o servidor e vice-versa é texto. Veja o caso do VBMania(ou qualquer outro site), você digita o endereço e recebe texto(HTML, CSS e Javascript são texto) e seu browser [Ô]transforma[Ô] esses textos na página que você está vendo. Uma WebAPI não é diferente quanto ao seu modo de funcionamento. Trafega texto também, a diferença é que ao invés de HTML, CSS e Javascript, o que você recebe e envia são pacotes de dados, que podem ter vários formatos, XML e JSON são dois dos mais usados, mais para JSON. O que você mencionou de GET, PUT, POST, DELETE, são os verbos Http. é o que indica ao servidor que ação está sendo feita. Ao digitar o endereço(ou entrar em um link) você está executando o método GET para o recurso. Recurso entende-se pelo conteúdo. Veja o endereço lá em cima na barra de endereços. Esse é o recurso que seu browser solicitou, usando o método GET. Ele possui parâmetros, como o método, id e página, que são interpretados pelos scripts no servidor, trazendo os dados correspondentes, mais ou menos como funciona uma query SQL. Quando eu digitei essa resposta e cliquei no botão [Ô]Postar Resposta[Ô], executei o método POST, que recebeu os dados do formulário correspondente ao botão clicado. O nome [Ô]postar[Ô] não é a toa. Essa ação de enviar dados ao servidor é geralmente a ação(verbo HTTP) POST. Uma analogia aos verbos HTTP são os comandos SQL:
GET para SELECT
POST para INSERT
PUT para UPDATE
DELETE para DELETE
Com isso fica mais simples de entender para que servem os verbos HTTP.
As chamadas para o servidor, seja qual for o método(verbo), possuem uma estrutura bem definida, contendo cabeçalho(header) e corpo(body). Cada chamada por padrão contém alguns dados básicos de cabeçalho. Uma WebAPI consegue separar cabeçalho e corpo de mensagem e fazer o que for programado nela. O cabeçalho pode conter informações sobre o cliente, como um token, que é simplesmente um número(na verdade mais que um número), que identifica o cliente. Quando você faz o login em algum lugar, você envia as informações de login e senha, a WebAPI, faz a consulta no banco de dados e se os dados estiverem certos, retorna para você(ou sua aplicação) um identificador, como se fosse um crachá de acesso. Sua aplicação grava esse número e o adiciona em todas as outras chamadas subsequentes ao servidor. Baseado nesse número o servidor(WebAPI) sabe quem é você e faz as consultas correspondentes. é bem simples, o token, é um crachá de identificação, que você adiciona no cabeçalho das suas chamadas ao servidor. Tenho um vÃdeo mostrando como fazer isso com o ASP.NET/C#, mas é possÃvel fazer com qualquer outra linguagem.
Sua preocupação quanto ao formato, é irrelevante. Um cliente Web(HttpClient, WebClient ou qualquer outro), não vai enxergar JSON ou XML. Para exemplificar, vou usar o AJAX. Ele é uma parte do framework JQuery e faz chamadas HTTP. Ele recebe objeto e trabalha com eles. O texto recebido é só para caso você queira ver mesmo. Ao fazer uma chamada GET por exemplo, mesmo que o que trafegue seja JSON, o AJAX enxerga um objeto javascript e com ele você pode fazer o que quiser. Essa é uma das muitas razões de se entender muito bem como se trabalhar com OOP, até para isso, faz diferença. Então é desnecessário dizer, que para .NET(C#, VB, ASP) isso é praticamente irrelevante o mesmo vale para qualquer outra linguagem.
Suas dúvidas são todas por ainda estar preso no paradigma de linguagem e não entender como funcionam as coisas em um modo mais abstrato. Não veja um programa como um monte de código, tente entender o que ele está fazendo e entender as tecnologias usadas por ele. Só assim, você vai conseguir sair dessa [Ô]jaula[Ô]. Quer um exemplo bem simples? Um simples fragmento de código VB6:
Dim cn As ADODB.Connection
cn.Open [Ô]bla bla bla[Ô]
Dim rs As Recordset
Set rs = cn.Execute([Ô]Select xxx from tabela[Ô])
Você entende que rs e cn, são instâncias de objetos, respectivamente Recordset e Connection, que pertencem à biblioteca Active Data Objects?
Você entende que quando o comando [Ô]execute[Ô] for executado, uma conexão vai ser feita ao banco de dados, talvez via socket, talvez via PIPE, depende do banco de dados e o que você especificar na connection string?
Você entende que quem faz a [Ô]tradução[Ô] do pacote de dados retornado pelo banco de dados para dados no recordset, pode ser um driver ODBC ou OleDb(novamente, dependendo da connection string)?
Você entende que essa conexão feita com o banco de dados, é dependente da rede?
Que o ADO não é uma parte do VB6, mas sim, uma das muitas bibliotecas consumidas por ele? Que VB6(ou o Visual Studio 6) é simplesmente um compilador que gera um executável que consome essas muitas bibliotecas, incluindo a Runtime?
é disso que estou falando. Ver comandinhos é menos que o suficiente, é preciso entender o que está sendo feito e na atualidade TUDO é orientado à objetos, então se quer ter entendimento de praticamente tudo, entenda bem o que é OOP ou programação orientada à objetos. Quando chegar à isso, nada mais será mistério, tudo se [Ô]abre[Ô] e nada mais será dificuldade. E é por isso que tanto insisto nisso, aprenda OOP
Obrigado pela aula .. meu conhecimento é basico mesmo em Web Api e não tenho problema em dizer isso..
aprendi Orientação a objetos com .Net Windows forms há anos atrás desde a epoca do VS 2008 (la em 2009 e não sou tão velho assim).
O pouco que conheço de java web e servlets já daria para eu me virar porém o problema está no futuro, ja passei por isso com meu sistema
winforms e que no futuro vai ser igual vb6, vai ser passado por tanta preocupação que eu estou muito mais muito confuso com tudo..
Em php como disse acima consegui facilmente em minutos fazer um site mvc com code igniter 3 um crud orientado a objetos,
porém tais frameworks não são meio que utilizados no php atualmente para novos projetos até..
Minha preocupação é o tempo gasto, perder tempo com algo já ultrapassado apesar de não ser [Ô]O DEVELOPER[Ô] me preocupo minimamente com as boas praticas e com o futuro do sistema, pois sei como é passar por isso e fazer o sistema por 2 vezes..
fiz algumas coisas em Vb6 (só nos gatos) e tive que refazer TUDO em .NET usando boas praticas com WinForms e não estou afim de refazer a 3º,4º,5º vez...
o grande problema e preocupação é com as modinhas, existe muita modinha por aà .. ex: GoLang -> removidos recursos de linguagens de alto nÃvel, como Classes, Heranças, Overloads de Métodos, Try/Catchs..
aprendi Orientação a objetos com .Net Windows forms há anos atrás desde a epoca do VS 2008 (la em 2009 e não sou tão velho assim).
O pouco que conheço de java web e servlets já daria para eu me virar porém o problema está no futuro, ja passei por isso com meu sistema
winforms e que no futuro vai ser igual vb6, vai ser passado por tanta preocupação que eu estou muito mais muito confuso com tudo..
Em php como disse acima consegui facilmente em minutos fazer um site mvc com code igniter 3 um crud orientado a objetos,
porém tais frameworks não são meio que utilizados no php atualmente para novos projetos até..
Minha preocupação é o tempo gasto, perder tempo com algo já ultrapassado apesar de não ser [Ô]O DEVELOPER[Ô] me preocupo minimamente com as boas praticas e com o futuro do sistema, pois sei como é passar por isso e fazer o sistema por 2 vezes..
fiz algumas coisas em Vb6 (só nos gatos) e tive que refazer TUDO em .NET usando boas praticas com WinForms e não estou afim de refazer a 3º,4º,5º vez...
o grande problema e preocupação é com as modinhas, existe muita modinha por aà .. ex: GoLang -> removidos recursos de linguagens de alto nÃvel, como Classes, Heranças, Overloads de Métodos, Try/Catchs..
Não sei de onde você tirou isso de não ter classes, herança e tudo mais no GoLang, muito pelo contrário, estão melhorando E MUITO vários aspectos do GoLang, que é uma das plataformas para ficar de olho... mas enfim. Se você não sabe, você pode desenvolver uma WebAPI usando .NET Core e hospedar no linux numa boa. Tenho 2 assim e estão funcionando muito bem obrigado.
Tópico encerrado , respostas não são mais permitidas