Thursday, 15 December 2011

Update Textbox async

V primeru async nalaganja podatkov v formo in posodabljanja textboxov, itd. se vam lahko zgodi da dobite napako da je controla  kreirana v drugem threadu.
Pravilni način za posodobitev vrednosti textboxa in drugih kontrol je z uporabo delagatov in metode za posodobitev vrednosti v textboxu. Enostavno naredimo metodo, ki posodobit vrednost textboxa.
Kokončamo z async nalaganjem in želimo prirediti vrednost kličemo metodo za nastavitev texta, ona se pa odloči če je ali nastavi ali pa kliče nov thread za nastavitev vrednosti.

delegate void SetTextCallback(string text);
private void SetText(string text)
{
if (this.textBox1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this
.Invoke(d, new object[] { text });
}
else
{
this.textBox1.Text = text;
}
}


Friday, 14 October 2011

Naključno sem naletel na še en način registracije Propertijev v objektih, ki odpravlja pogoj da mora biti ime pri kreiranju PropertyInfo objekta enako kot sam property.

private static PropertyInfo<int> UpdateActionTypeProperty = RegisterProperty(new PropertyInfo<int>("UpdateActionType", "UpdateActionType"));

public int UpdateActionType { get; set; }

V tem primeru lahko z lambda expression registritamo property z katerim koli propertijem v objektu. Ni potrebno enako ime, če bomo napisali napačno ime se bo napaka pojavila že med samim buildom.

private static PropertyInfo<int> UpdateActionTypeProperty = RegisterProperty<int>(x => x.UpdateActionType, "UpdateActionType");

public int UpdateActionType { get; set; }

Bolj podrobno

Tuesday, 19 July 2011

32bit aplikacije na 64bit Windows serverju ( IIS )

PRO.3 Services v osnovi na 64-bitnih aplikacijah ne delujejo. Da vzpostavimo delovanje moramo zagnati naslednji ukaz :

cscript.exe adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 “true”

Iz  mape c:\inetpub\wwwroot\AdminScripts.



še vir : Microsoft | TechNet

-

Friday, 10 June 2011

Preštevilčenje Identa - Save (session)

Primer uporabe preštevilčenja v potnih nalogih, kjer je bilo polje na bazi UniqueKey in je bilo potrebno, da se znotraj iste transakcije naprej podatki pobrišejo in se zatem omogoči zapis preštevilčenih potnih nalogov.

1.Na listi je potrebno narediti override metode save(session)

2. Poskrbeti je potrebno da je lista ki ji shranjujemo IsDitry = true


3. Po klicu Save() pridemo v override metode save(session), kjer moramo poskrbeti, da je vsak BO v listi IsDirty = true . Primer na sliki, prikazuje delete in insert znotraj iste transakcije.

Wednesday, 1 June 2011

Registriranje DLLjev - Network drive

Pri registriranju dllje na disku, ki ji je tipa Network drive, je potrebno folderju nastavit FulllTrust. To storimo tako v cmd vpišemo naslednji ukaz :
caspol.exe -m -ag LocalIntranet_Zone -url \\\\ FullTrust -n FullTrustShare



Friday, 27 May 2011

ManyToOne vezave na Info objektih

e bo kdo zasledil kakšne napake pri filtriranju kombota na polja, ki jih dobimo preko ManyToOne, naj bo pozoren na Info objekt, kako je sestavljen ManyToOne.

Z kodo na zgornji sliki se je objekt ContactInfo normalno napolnil vendar je javilo napako ko sem na kombotu filtriral po ContactInfo.ShowAs npr.

Rešitev je na spodnji sliki kjer je odstranjen CSLA...

Tuesday, 1 February 2011

Dodajanje novih vlog - Aplikacijske

Če po novem dodamo nove vloge znotraj kode ( npr. CRMRoleList.SetRoles() ) ,

-- se NE DODA AVTOMATSKO V DB ! -- ta postopek moramo do nadaljnega narediti ročno --

To se mora narediti pri vsakem deployu na drugo bazo ( Protestni, SDX, ... )

Tuesday, 11 January 2011

Inline editing

Za dodajanje nove vrstice se omogoči property AllowNew in implementira event AddingNew:
private void

_bindingSource_AddingNew(object sender, System.ComponentModel.AddingNewEventArgs e)
{
//namesto NewEntity() seveda uporabimo dataService (da ne bo nepotrebnih komentarjev :)
e.NewObject = PFPTWorkTimesDetail.NewEntity();
}