segunda-feira, junho 13, 2005

EAPs

Malta, é assim: meti agora no repositório o EAP do projecto pronto para ser usado como "master", isto é: vocês sacam o ficheiro "Replica.EAP" (vem qdo fizerem update) e trabalham em cima dele. Depois, podem adicionar esse ficheiro ao repositorio (façam um rename, sff, para algo q identifique esse novo ficheiro como sendo do vosso "grupo"; algo como "Replica-Arquitectura.EAP" ou isso). Assim, amanhã (terça), é só irmos buscar todas essas replicas e fazermos uma sincronização com a master (o Projecto.EAP), sem termos o risco de andarmos a perder partes dos vários modelos.

Lembrem-se:
1- sacar o ficheiro "Replica.EAP"
2- fazer rename para algo "legível" (q identifique o vosso grupo/pedaço do domínio/etc)
3- meter no repositorio SVN
4- trabalhar apenas em cima do novo ficheiro.

(Telmo: é aquela cena de q falámos com o Gonçalo Gaiolas, se te lembras)

JS

domingo, junho 12, 2005

Malta, eu sei que já é um "bocadito tarde" :P para esta, mas só agora é q se me deparou este problema e ninguém me lembrou/avisou/alertou/etc para este:

É assim, vocês qdo chamam um serviço normalmente devolvem um ObjectContainer, para poderem trabalhar com os objectos "desligados" da BD. Ora, o problema está em se vocês querem adicionar novos objectos à BD (ou quiserem mudar dados) ... Adicionam-nos ao ObjectContainer; e o que acontece a seguir?
Se não fizerem o "playback" do ObjectContainer para a BD, acabam por perder essas mudanças/adições. Portanto, é assim: eu vou agora fazer um serviço (ServicoGuardarObjectos) que vai receber um ObjectContainer (ao qual vocês adicionam objectos, removem objectos, alteram dados dos objectos, etc) e vai desbobinar o ObjCont para a BD. Vocês só têm que, no fim de cada WebForm/interacção/qq coisa que possa alterar esse ObjCont, chamar esse serviço.
Um exemplo disto é a criação de Operações (na Gestão de Obras). No caso de uso VisualizarOperações, não é preciso chamar esse serviço no fim da interacção, pq nada mudou no ObjCont de certeza. No caso de uso RealizarOperações, é preciso chamar esse serviço pq possivelmente temos novas operações adicionadas.

Se alguém não tiver percebido/tiver dúvidas, fale comigo.

JS

Mais alterações

Alterei o FillNewDatabase.asmx para ter lá também um webservice para limpar a BD. Pode dar jeito quando têm a BD muito pesada com dados que criaram para testar as vossas webforms.

Alterei também o Servico.cs (do modelo de domínio, não da camada de Serviços) para ter os atributos privados.

Não me estou a lembrar de mais nada, mas se houver algo eu aviso.

Qualquer coisa, perguntem-me.

Cumps
JS

quarta-feira, junho 08, 2005

Firewalls...

Já agora, para quem use firewalls da tanga (i.e., ZoneAlarm): têm que desligar a firewall quando estiverem a testar a aplicação, senão nunca mais saem do ecran de login...

JS

FAQ

Meti uma FAQ online. Está em http://ottawa.inesc.pt/PFSI/ , na dir Projecto. Está a ser actualizada...

JS

Já agora, visto que o Telmo me esteve a perguntar, e a dúvida tem a sua razão de ser:

Vejam se nas vossa Path do sistema (vão a System->tab Advanced->Environment Variables->System Variables->Path) têm lá as duas entradas seguintes:

C:\Programming\FastObjects_.NET_Trial\runtime\bin e C:\Programming\FastObjects_.NET_Trial\bin (adaptem isto para a dir. onde instalaram o FastObjects, claro...).

Se não tiverem lá isto, acrescentem. É porque isto é preciso para o ASP.NET encontrar umas dlls do FastObjects.

E, já agora, isto dependendo da maneira como o vosso SO atribui as permissões por omissão, mas de qq modo façam isto: seleccionem as directorias ProjectoJupiterBase e ProjectoJupiterDic e vão às propriedades delas. Vão à tab Security, carreguem em Add, escrevam na caixa de texto grandalhona "ASPNET" e façam Check Names. Se ele completar aquilo com o nome do vosso computador, etc. tudo bem (algo do género OTTAWA\ASPNET ), então estão no bom caminho. Façam OK. Seleccionem o user que adicionaram (ASPNET), e seleccionem a checkbox que diz Full Control (na coluna do Allow). E pronto. Isto foi só para deixarem o ASP.NET aceder à BD. Pus isto aqui pq no meu portatil nao houve problema com isto, mas aqui no Ottawa deu...

JS

terça-feira, junho 07, 2005

Mais alguma coisa...

Como está no log do SVN:

O login já está feito.

Vejam exemplos no form de login e no form PaginaInicial.aspx (vai ser apagado daqui a pouco tempo).

Já trata bem os casos de expiração da sessão.
Têm é que, no Page_Load de cada WebForm q criem, meter uma chamada a "Utilities.VeSeHaUtilizadorLogado(this);" . Chato, eu sei, mas não consegui meter uns handlers aqui a funcionar, portanto tem mesmo q ir assim.

Já agora, esqueci-me de vos dizer ontem: se quiserem mexer em objectos carregados da BD (para leitura e/ou para escrita) têm que meter aquilo dentro de um ObjectContainer (como eu fiz no ServicoAutenticar.cs, vejam lá como fiz) e depois acedem a isso. De qq modo, têm essa documentação toda com o FastObjects, como vos mostrei ontem.

Modelo de domínio

Adicionei o modelo de domínio.

Visto q a porra do EA não gera getters/setters (mas que grande ferramenta isto nos saiu...) e mete os atributos como public (way to go...), agradecia que, à medida que vocês precisassem de aceder a atributos nas classes, fossem alterando isso (metendo o atributo como private e adicionando getter/setter protected ou public, dependendo do contexto).

Fiz agora o serviço de autenticação. Criei também um Empregado com username="admin" e password="admin" . Têm também o Login.aspx a invocar o serviço de autenticação. Podem usar tudo isto como exemplo.
Para mais detalhes, vejam o log no svn.

JS