Thursday, 21 May 2009

CSLADataSource vs. ObjectDataSource

ObjectDataSource podpira direktni bind na objekte, tudi CSLA s tem, da pričakuje tudi select, update in insert medote znotraj teh objektov. Parametri metod so že v naprej določeni, tako ima update lahko listo vrednosti ali objekt razreda, ki se tudi posodablja.
S tem načinom ni mogoče uporabiti Presenterja in nanjga vezano logiko zato je bolj sprejemljiva uporaba
CSLAdataSource, kjer preko metod SelectObject, UpdateObject in InsertObject bolje lahko nadzorujemo uporabo objektov in manipulacijo podatkov, caching, ViewState, ... Slaba stran je ta, da je potrebno uporabljati CSLA.DataMaper, ki pare Name-Value preslika v propertyje objekta in je potrebno paziti na pravilnost vnešenih podatkov.

primer:
IOView.aspx.cs
protected void CslaDataSourceInput_UpdateObject(object sender, Csla.Web.UpdateObjectArgs e)
{
_presenter.OnSave(e);
}
protected void CslaDataSourceInput_InsertObject(object sender, Csla.Web.InsertObjectArgs e)
{
_presenter.OnSave(e);
}

IOViewPresenter.cs
public void OnSave(Csla.Web.UpdateObjectArgs e)
{
Csla.Data.DataMapper.Map(e.Values, _wInput.Value);
_wInput.Value.Save();
_wInput.Value = WInput.NewEntity();
}

Wednesday, 20 May 2009

Povezava knjižnic iz različnih projektov

Implementirala se je opcija povezave objektov iz različnih knjižnic skupaj. Vse potrebne nastastavitve se opravijo v .config datoteki.

Dodamo novo sekcijo.

Ki jo potem uporabimo in se držimo strukture
Libreries, kjer so v seznamu vse knjižnice, ki bodo uporabljale objekte drugih knjižnic.
Add Name="xxxx"
Ko dodamo knjižnico ("Library"), dodamo pod njo še seznam knjižnic, od katerih bomo dedovali.
Add DependentLibrary="xxxx"
pri dedovani knjižnici še lahko uporabim schemo, ki jo uporabja, v primeru da se nahaja na drugi podatkovni bazi.
DataBaseSchema="xxx.dbo"

Primer:
Če ni primera v .config datoteki, potem mi javi ti ga bom posredoval. Ko bo dokončano b vključen tusi xsd za intelisens.


Tuesday, 12 May 2009

Windows [Templates ]- Complex Add form -

Na TFS sem naložil nove predloge za kompleksni vnos [ parent - child ].

Celoten sistem je zelo spremenjen ... saj predhodni sistem ni deloval 100% [ težave pri kreiranju več "workspace" objektov -- npr. želel si imeti odprti 2 formi za urejanje kontaktov ]
Nov sistem je nastavljen tako, da ob kreiranju vsake ChildForme nastavimo njen Parent --- tako dobimo dostop do njenih objektov izpostavljenih v vmesniku.


1. ) Parent forma implementira vmesnik IComplexForm

1.png


2. ) Child forma implementira vmesnik IComplexChildForm

2.png


Formi PartnerMaEdit in ContactMaEdit sta že bili spremenjeni --- za referenco !.


Lp,