|
.net
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Pattern/ help wanted for RequestIn the good ol'ASP-days I allways handled all request vars within a class. I want to do the same in ASP.NET. It can be done smart and maybe not so smart - and I need help for the first part :-) I've the following: public class UserSettings { System.Web.UI.Page _page; public UserSettings(System.Web.UI.Page page) { this._page = page; } public DateTime Calendar1SelectedDate() { ? this._page.FindControl("Calendar1"); } } But as you can see I allready stumpled across the calendarcontrol :-( Can anybody put me in the right direction or maybe come up with a better solution, maybe a designpattern? Kind regards I'm not all that familiar with the programming model of the good ol' ASP
days; but the bright new future with ASP.NET follows the Windows Forms design model. Objects on the webpage correspond to objects in your code behind. Prior to your code running, the viewstate of all the controls are deserialized and the control objects are re-constructed for the postback event. In your code, you would do something similar to this: protected void Page_Load(object sender, EventArgs e) { UserSettings settings = this.Session["UserSettings"] as UserSettings; if(settings == null) { settings = new UserSettings(); this.Session["UserSettings"] = settings; } settings.DOB = this.dateOfBirthCalendar.SelectedDate; // pseudo code here, sorry } Show quoteHide quote "Bobstar" wrote: > Hello. > > In the good ol'ASP-days I allways handled all request vars within a class. I > want to do the same in ASP.NET. It can be done smart and maybe not so smart - > and I need help for the first part :-) > > I've the following: > public class UserSettings > { > > System.Web.UI.Page _page; > > public UserSettings(System.Web.UI.Page page) > { > this._page = page; > } > public DateTime Calendar1SelectedDate() > { > ? this._page.FindControl("Calendar1"); > > } > } > > But as you can see I allready stumpled across the calendarcontrol :-( > Can anybody put me in the right direction or maybe come up with a better > solution, maybe a designpattern? > > Kind regards > Hello William, thank you for your quick response.
Unfortunately that's not what im looking for. The solution you proposed are allready breaking a couple of things in my world.... An object into a session - not recommended. Well anyway, I would like a more, "seen from an arcithectural point of view" - designpattern :-) I've to know a lot about the controls in the "normal" way, and it should be more anonymous.... Any suggestions? It could turn out that im trying to kill small birds with a gatlingun, but.... :-) Kind regards Show quoteHide quote "William Sullivan" wrote: > I'm not all that familiar with the programming model of the good ol' ASP > days; but the bright new future with ASP.NET follows the Windows Forms design > model. Objects on the webpage correspond to objects in your code behind. > Prior to your code running, the viewstate of all the controls are > deserialized and the control objects are re-constructed for the postback > event. In your code, you would do something similar to this: > > protected void Page_Load(object sender, EventArgs e) > { > UserSettings settings = this.Session["UserSettings"] as UserSettings; > if(settings == null) > { > settings = new UserSettings(); > this.Session["UserSettings"] = settings; > } > settings.DOB = this.dateOfBirthCalendar.SelectedDate; // pseudo code > here, sorry > } > > > "Bobstar" wrote: > > > Hello. > > > > In the good ol'ASP-days I allways handled all request vars within a class. I > > want to do the same in ASP.NET. It can be done smart and maybe not so smart - > > and I need help for the first part :-) > > > > I've the following: > > public class UserSettings > > { > > > > System.Web.UI.Page _page; > > > > public UserSettings(System.Web.UI.Page page) > > { > > this._page = page; > > } > > public DateTime Calendar1SelectedDate() > > { > > ? this._page.FindControl("Calendar1"); > > > > } > > } > > > > But as you can see I allready stumpled across the calendarcontrol :-( > > Can anybody put me in the right direction or maybe come up with a better > > solution, maybe a designpattern? > > > > Kind regards > > Hi Bobstar
Why is putting an object into session a bad idea? What is this "normal" way you know about controls? And what do you mean by doing things in a more anonymous way? Bobstar wrote: Show quoteHide quote > Hello William, thank you for your quick response. > > Unfortunately that's not what im looking for. The solution you proposed are > allready breaking a couple of things in my world.... > An object into a session - not recommended. Well anyway, I would like a > more, "seen from an arcithectural point of view" - designpattern :-) I've to > know a lot about the controls in the "normal" way, and it should be more > anonymous.... > > Any suggestions? > > It could turn out that im trying to kill small birds with a gatlingun, > but.... :-) > Kind regards > > "William Sullivan" wrote: > >> I'm not all that familiar with the programming model of the good ol' ASP >> days; but the bright new future with ASP.NET follows the Windows Forms design >> model. Objects on the webpage correspond to objects in your code behind. >> Prior to your code running, the viewstate of all the controls are >> deserialized and the control objects are re-constructed for the postback >> event. In your code, you would do something similar to this: >> >> protected void Page_Load(object sender, EventArgs e) >> { >> UserSettings settings = this.Session["UserSettings"] as UserSettings; >> if(settings == null) >> { >> settings = new UserSettings(); >> this.Session["UserSettings"] = settings; >> } >> settings.DOB = this.dateOfBirthCalendar.SelectedDate; // pseudo code >> here, sorry >> } >> >> >> "Bobstar" wrote: >> >>> Hello. >>> >>> In the good ol'ASP-days I allways handled all request vars within a class. I >>> want to do the same in ASP.NET. It can be done smart and maybe not so smart - >>> and I need help for the first part :-) >>> >>> I've the following: >>> public class UserSettings >>> { >>> >>> System.Web.UI.Page _page; >>> >>> public UserSettings(System.Web.UI.Page page) >>> { >>> this._page = page; >>> } >>> public DateTime Calendar1SelectedDate() >>> { >>> ? this._page.FindControl("Calendar1"); >>> >>> } >>> } >>> >>> But as you can see I allready stumpled across the calendarcontrol :-( >>> Can anybody put me in the right direction or maybe come up with a better >>> solution, maybe a designpattern? >>> >>> Kind regards >>> Hello Ray
IMHO it's allways a bad idea, seen from a performance view, to place objects in sessionsvariables. I usually only use the sessionobject to carry simple types, that is ofcause only form a performance pov - If one have enough memory and IO's there should'nt be a problem - but again just my openion. The "normal" way I refer to is just that I should now alot of for example a CalendarControl or maybe a dropdown to get any data from it when a user make a request. For instance; I need to know it's a Calendar and therefore cast it as a Calendar just to get simple info from it - certainly if I wanted to do anything special with it I would threat it as a Calendar control... but for about 95% of the times a CalendarControl is in use are very simple requests, ie. DateSelected etc. This also goes on with the dropdown and more "simple" controls! - Ofcause this could lead to a very "open" variantcontrol.. but maybe some sort of dynamic variablepage where all PageVariables are available as some sort of an ID take for instance: string dateSelected = ControlID("Calendar1").Value.ToString() or string name = ControlID("txtName").Value.ToString() I've used "value" as a very open property, but I cant see why things should be more complicated all over - please notice this should be done around 95% of all coincidences. I hope I've answered your question. Kind regards Show quoteHide quote "Ray Booysen" wrote: > Hi Bobstar > > Why is putting an object into session a bad idea? > What is this "normal" way you know about controls? > And what do you mean by doing things in a more anonymous way? > > Bobstar wrote: > > Hello William, thank you for your quick response. > > > > Unfortunately that's not what im looking for. The solution you proposed are > > allready breaking a couple of things in my world.... > > An object into a session - not recommended. Well anyway, I would like a > > more, "seen from an arcithectural point of view" - designpattern :-) I've to > > know a lot about the controls in the "normal" way, and it should be more > > anonymous.... > > > > Any suggestions? > > > > It could turn out that im trying to kill small birds with a gatlingun, > > but.... :-) > > Kind regards > > > > "William Sullivan" wrote: > > > >> I'm not all that familiar with the programming model of the good ol' ASP > >> days; but the bright new future with ASP.NET follows the Windows Forms design > >> model. Objects on the webpage correspond to objects in your code behind. > >> Prior to your code running, the viewstate of all the controls are > >> deserialized and the control objects are re-constructed for the postback > >> event. In your code, you would do something similar to this: > >> > >> protected void Page_Load(object sender, EventArgs e) > >> { > >> UserSettings settings = this.Session["UserSettings"] as UserSettings; > >> if(settings == null) > >> { > >> settings = new UserSettings(); > >> this.Session["UserSettings"] = settings; > >> } > >> settings.DOB = this.dateOfBirthCalendar.SelectedDate; // pseudo code > >> here, sorry > >> } > >> > >> > >> "Bobstar" wrote: > >> > >>> Hello. > >>> > >>> In the good ol'ASP-days I allways handled all request vars within a class. I > >>> want to do the same in ASP.NET. It can be done smart and maybe not so smart - > >>> and I need help for the first part :-) > >>> > >>> I've the following: > >>> public class UserSettings > >>> { > >>> > >>> System.Web.UI.Page _page; > >>> > >>> public UserSettings(System.Web.UI.Page page) > >>> { > >>> this._page = page; > >>> } > >>> public DateTime Calendar1SelectedDate() > >>> { > >>> ? this._page.FindControl("Calendar1"); > >>> > >>> } > >>> } > >>> > >>> But as you can see I allready stumpled across the calendarcontrol :-( > >>> Can anybody put me in the right direction or maybe come up with a better > >>> solution, maybe a designpattern? > >>> > >>> Kind regards > >>> > Nope, I don't have any suggestions to do it the way you want. ASP.NET is
pretty rigid in its design model. I know you are used to doing things in your particular manner; you might want to stick with your ASP model rather than trying to shoe-horn it into ASP.NET. To do it your way, you'd have to design a middle tier analogous to a data-adapter to stand inbetween the web form's controls and your settings objects. Is it worth it? I wouldn't think so, unless you are attempting to design the system to work with any web application, thus making anonymity a design requirement. For a single web app, I'd definitely call that approach "gatling gun vs. mosquito." And on the Session holding user data... It is one of the core components in ASP.NET, along with its user-common data store, the Cache. The main complaint I have with it (it functions extremely well in all other cases) is that out-of-proc session state servers (such as dedicated machines and Sql Server databases) lack some of the functionality of the inproc session state. Also, the session state bag is not type safe, but I avoid this by using a session adapter that stores generic collections of objects I wish to associate with the user's session (an approach that can reach gatling proportions if you go crazy with it). Good luck with your approach. Show quoteHide quote "Bobstar" wrote: > Hello William, thank you for your quick response. > > Unfortunately that's not what im looking for. The solution you proposed are > allready breaking a couple of things in my world.... > An object into a session - not recommended. Well anyway, I would like a > more, "seen from an arcithectural point of view" - designpattern :-) I've to > know a lot about the controls in the "normal" way, and it should be more > anonymous.... > > Any suggestions? > > It could turn out that im trying to kill small birds with a gatlingun, > but.... :-) > Kind regards > > "William Sullivan" wrote: > > > I'm not all that familiar with the programming model of the good ol' ASP > > days; but the bright new future with ASP.NET follows the Windows Forms design > > model. Objects on the webpage correspond to objects in your code behind. > > Prior to your code running, the viewstate of all the controls are > > deserialized and the control objects are re-constructed for the postback > > event. In your code, you would do something similar to this: > > > > protected void Page_Load(object sender, EventArgs e) > > { > > UserSettings settings = this.Session["UserSettings"] as UserSettings; > > if(settings == null) > > { > > settings = new UserSettings(); > > this.Session["UserSettings"] = settings; > > } > > settings.DOB = this.dateOfBirthCalendar.SelectedDate; // pseudo code > > here, sorry > > } > > > > > > "Bobstar" wrote: > > > > > Hello. > > > > > > In the good ol'ASP-days I allways handled all request vars within a class. I > > > want to do the same in ASP.NET. It can be done smart and maybe not so smart - > > > and I need help for the first part :-) > > > > > > I've the following: > > > public class UserSettings > > > { > > > > > > System.Web.UI.Page _page; > > > > > > public UserSettings(System.Web.UI.Page page) > > > { > > > this._page = page; > > > } > > > public DateTime Calendar1SelectedDate() > > > { > > > ? this._page.FindControl("Calendar1"); > > > > > > } > > > } > > > > > > But as you can see I allready stumpled across the calendarcontrol :-( > > > Can anybody put me in the right direction or maybe come up with a better > > > solution, maybe a designpattern? > > > > > > Kind regards > > >
Other interesting topics
old with the new, forms...
ClientScript.RegisterClientScriptBlock in ASP.NET 2.0 Passing Data Between Forms Web From, Twain and ActiveX Presentation layer depends on ???? How to set visibility of a control in DataList template? Getting a Profile Value! how to upgrade existing ASP NET applications new to 2.0 (moving from 1.1) asp.net 2.0, atlas and sever controls |
|||||||||||||||||||||||