PISNA
 
A malta do PISNA


Joaquim, Rui, Pedro

 
Dicas para Tratamento de Excepções

About Unhandled Exceptions
The great thing about a good global exception handler is that it makes the rest of your code easier to read. Rather than cluttering up your code with Try..Catch blocks for every possible error condition, no matter how rare, you can simply rely on the solid, built-in global handler to deal with those oddball scenarios-- and to notify you when they happen!
So then the natural question that most developers ask is, "When should I catch exceptions"? And it's a very good question. Here are some guidelines that I have found useful.


  • Unless you have a very good reason to catch an exception, DON'T. Exceptions are supposed to be exceptional, just like the dictionary meaning: uncommon, unusual. When in doubt, let the calling routine, or the global exception handler, deal with it. This is the golden rule. The hardest kinds of exceptions to troubleshoot are the ones that don't even exist, because a developer upstream of you decided to consume it.

  • If you can correct the problem implied by the exception. For example, if you try to write to a file and it is read-only, try removing the read-only flag from the file. In this case you handled the exception and fixed the problem, so you should eat the exception. It doesn't exist, because you fixed it.

  • If you can provide additional information about the exception. For example, if you fail to connect via HTTP to a remote website, you can provide details about why the connection failed: was the DNS invalid? Did it time out? Was the connection closed? Did the site return 401 unauthorized, which implies that credentials are needed? In this case you want to catch the exception, and re-throw it as an inner exception with more information. This is a very good reason to catch an exception, but note that we are still re-throwing it!

  • Always try to catch specific exceptions. Avoid catching System.Exception whenever possible; try to catch just the specific errors that are specific to that block of code. Catch System.IO.FileNotFound instead.


There are, of course, times when you'll want to violate these rules for completely legitimate reasons-- but at least consider them before you do.

 
Nova versão da BD

Com esta história das Roles dos utilizadores, foi necessário efectuar umas actualizações ao modelo de dados que tinhamos. Aqui fica a nova versão:

 
Permissões no acesso aos métodos "priveligiados"

Este é mais um ponto de discussão da nossa plataforma. Existem métodos de determinadas classes que devem ser publicos (WebMethod's) mas só podem ser chamados por utilizadores autorizados. Por exemplo:
o método Notify(Message m), que tal como os outros métodos, tb está disponível para o mundo (WebMethod), não deve poder ser chamado por qq utilizador. Apenas por detentores de serviços de notificação. Caso contrário qq utilizador malicioso criava um proxy para para a plataforma e chamava o método Notify(...) fazendo-se passar, por exemplo, pelo serviço de notificação de incêndios...

Para isso vamos ter que inserir um novo conceito na plataforma, e começa por reflectir-se na BD, que é o conceito de Role

Existem vários tipos de Roles, como por exemplo, Administrator, Manager, Teller, ... , em que cada um terá permissões diferentes para executar determinados métodos.

 
Agenda para a próxima reunião (Sexta-feira dia 11 de Junho as 15:30)

Pontos a focar na próxima reunião:

  • Tratamento de Excepções

 
Conclusões da reunião de ontem...

  • Lógica de pesquisas PISNA

  • Após algum diálogo optámos por remodelar a lógica de pesquisas na PISNA seguindo o seguinte diagrama de classes
    Com esta “funcionalidade” acrescida, implementada na camada de negócios da PISNA pretende-se que as aplicações cliente possam criar expressões de pesquisa a base de dados.
  • A lógica de pesquisas a implementar não invalida a necessidade de filtrar as expreções pré-pesquisa, para evitar situações de possivel abuso das funcionalidades disponibilisadas pelo SQL server (como comandos shell...).

  • schema para validar o formato das notificações dos SN

  • “schema” para actualização do diagrama de classes e script sql
    schema + XML para mostrar info de cliente na altura da subscrição

  • Separação entre o que é info. Necessária para os SN e info. Necessário para a PISNA na altura da subcrição.

 
Blog do SNE...

Já se encontra disponível mais um blog para o projecto. Lá estão todos os passos e discussões relativas a implementação do SNE(Serviço de Notificações Escolares), um Serviço de Notificações Escolares a integrar na PISNA.

Principais objectivos do SNE:
• Validar a implementação da PISNA
• Servir como exemplo de integração para futuros serviços
• Definir regras as seguir pelos SN(1)
• Criar Documentação e API a utilizar pelos SN’s.

(1)
SN – Serviço de Notificação

 
WebServices (Versão beta)

Já estão disponiveis alguns dos WebServices que compõe a PISNA, eles são:


 
Apresentação Intercalar do projecto

Foi uma honra praticipar nas apresentações intercalares dos profectos finais dos cursos de LEIC e LESTE.
Um paço importante agora que o projecto está a entrar em velociadade cruzeiro.
Abaixo encontra-se a apresentação....

 
Fachada da plataforma PISNA

A plataforma PISNA tem já tem uma Fachada :)

É esta:

http://kimberlito.no-ip.com/pisnawebsite/index.aspx

Ainda está em fase de contrução, mas já dá para ver qq coisa!

 
eu quero o gmail!!!!!!!

este post n temmto interesse! é só para ver se fico como gmail...

 
Divisão de Tarefas

Já se encontra definida a divisão de tarefas do projecto PISNA, é a seguinte:
- Plataforma de Integração --> Rui Aires
- Serviço de autenticaçâo inerente a toda a plataforma --> Pedro Airó
- Serviços de Notificação(Student Grades + Bank Account Balance) --> Joaquim Lavos