Featured post

c# - Usage of Server Side Controls in MVC Frame work -

i using asp.net 4.0 , mvc 2.0 web application. project requiremrnt have use server side control in application not possibl in noraml case. ideally want use adrotator control , datalist control. i saw few samples , references in codepleax mvc controllib howwver found less useful. can tell how utilize theese controls in asp.net application along mvc. note: please provide functionalities related adrotator , datalist controls not equivalent functionalities thanks in advace. mvc pages not use normal .net solution makes use of normal .net components impossible. a normal .net page use event driven solution call different methods service side mvc use actions , view completly different way handle things. also, mvc not use viewstate normal .net controlls require. found article discussing mixing of normal .net , mvc.

code contracts - Should methods have the same preconditions as the methods they call? -


i've had few scenarios small changes code have resulted in changing preconditions across multiple classes , wondering if design contract supposed way or not.

public goal getnextgoal() {     return goalstack.pop(); } 

if goalstack.pop() has precondition stack isn't empty, getnextgoal() need explicitly have same precondition? seems inheriting preconditions make things brittle, , changing queue or other structure change preconditions getnextgoal(), it's callers, , it's callers' callers. seems not inheriting preconditions hide contracts , callers, , callers' callers, wouldn't know preconditions.

so brittle code callers know , inherit preconditions , postconditions of code call, or mysterious code callers never know deeper preconditions , postconditions are?

it depends on calling method exactly. the important thing preconditions caller responsible fulfilling preconditions.

so if callers of getnextgoal method should responsible providing non-empty stack, should indeed set preconditions on getnextgoal method. clarity of preconditions 1 of huge advantages of code contracts, i'd suggest put them in places callers have fulfill preconditions.


if code seems brittle however, it might sign need refactor code.

it seems inheriting preconditions make things brittle, , changing queue or other structure change preconditions getnextgoal(), it's callers, , it's callers' callers.

if expose queue callers , change later ( structure, said ), it's callers have change. sign of brittle code.

if expose interface instead of specific queue implementation, preconditions use interface , wouldn't have change preconditions every time implementation changes. resulting in less brittle code.


Comments

Popular posts from this blog

c# - Usage of Server Side Controls in MVC Frame work -

cocoa - Nesting arrays into NSDictionary object (Objective-C) -

ios - Very simple iPhone App crashes on UILabel settext -