C# - Cached Objects Update Automatically With The Object Updating?
Jul 2, 2010
I found some code on the web and it threw me off. Look at the code below. You will notice only when the Hits == 1, does the cache get added. After that, the cache object isn't updated. It begs the question, does the object when updated, update the cache as well automatically? The answer here would make me remove some code in some of my classes.
public static bool IsValid( ActionTypeEnum actionType )
{
HttpContext context = HttpContext.Current;
if( context.Request.Browser.Crawler ) return false;
string key = actionType.ToString() + context.Request.UserHostAddress;
var hit = (HitInfo)(context.Cache[key] ?? new HitInfo());
if( hit.Hits > (int)actionType ) return false;
else hit.Hits ++;
if( hit.Hits == 1 )
context.Cache.Add(key, hit, null, DateTime.Now.AddMinutes(DURATION),
System.Web.Caching.Cache.NoSlidingExpiration,
System.Web.Caching.CacheItemPriority.Normal, null);
return true;
}
I would only guess that I would need to add the lines after the if statement:
if( hit.Hits == 1 )
context.Cache.Add(key, hit, null, DateTime.Now.AddMinutes(10),
System.Web.Caching.Cache.NoSlidingExpiration,
System.Web.Caching.CacheItemPriority.Normal, null);
else if (hit.Hits > 1)
{context.Cache.Remove(key);
context.Cache.Add(key, hit, null, DateTime.Now.AddMinutes(10),
System.Web.Caching.Cache.NoSlidingExpiration,
System.Web.Caching.CacheItemPriority.Normal, null);
}
Found the code at the bottom of the page here: http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx?msg=2809164
View 1 Replies
Similar Messages:
Feb 4, 2011
I have an Asp.net page which requires certain sections to be partially updated automatically at an interval of 5 seconds. I was planning to use the good old Timer control with the AJAX Update Panel for this purpose, but after a bit of reading on this control i found out that it may have some problems especially if,
1) The time difference between the async event performed ( 4 seconds ) by the update panel and the Timer's tick interval ( which is 5 seconds ) are quite small, the update panel will be held up in the async operation all the time.
2) Also, the fact that timer control doesn't work very well with Firefox.
I just wanted to get your opinion as to whether if i should go ahead with the timer and update panel approach, write some custom javascript that does the partial page update or some other strategy altogether.
View 1 Replies
Mar 1, 2011
How can i automatically update a user control after a specific time without updating the whole aspx page.
View 3 Replies
Apr 20, 2010
I have an asp.net application consisting of two web pages and a web service. All components are part of the same project, i.e. I have a solution with only one project. The web service queries a server and fills the information it retrieves into container objects which are stored in the cache of the application. This done using the Cache.Insert method:
Context.Cache.Insert("DemoCacheEntryKey",
"DemoCacheEntryValue",
null,
Cache.NoAbsoluteExpiration,
Cache.NoSlidingExpiration,
CacheItemPriority.Default, OnRemove);
OnRemove is my handler that writes the reason into the log file in case the item is removed from the cache. Now from what I understand this example item should never be automatically removed from the cache. Basically this is what I want: It shall stay in the cache until I explicitely remove it. Once the cache is populated by the web service one of the web pages visualizes the cache content using html. The other web site contains a button to manually kick on the web service and one button to clear the cache content, i.e. remove everything in the cache. Unfortunately somehow the cache seems to get cleaned up once in a while. In irregular intervals all containers that are created by the web service and are stored in the cache are removed from the cache. I don't understand the reason for this. The only place in the code I remove something from the cache is when I manually press the clean cache button on one of the web pages.
What is strange is that all container objects in the cache are removed, not just a few. But this is not because the button that cleans the cache is pressed. I know this because a log entry is created whenever that button is pressed. To find out what is going on I attached the OnRemove handler which just logs the reason why a cache item is removed. In my case the reason is "Removed". I simply don't get it. How can I ensure that the cache just stays as it is? Items placed in there shall just stay there. Nothing shall be cleaned up automatically.
View 4 Replies
Feb 18, 2010
I have a DetailsView (DV) control, an ObjectDataSource (ODS) control, and a button on a page. I have 2 classes in the App_Code directory (Customer and CustomerDAO). The DAO class provides static methods for the ODS control and simply hack values in (ie...no real database selects/updates). The Customer class has 2 properties (Id and Name) and a default constructor. The page takes an ID on the querystring and determines if the DV control is in insert or edit mode. If in edit mode, it sets the SelectParameter on the ODS (id field), calls ODS.Select(), and then calls DV.DataBind(). The existing (although fake) customer is loaded and display properly when this happens. I then change the name of the Customer in the DV and click the Button to save the new data.
Everything seems to be wired up correctly as the UpdateMethod that is specified in the ODS control is called and succeeds (even in my real example with my database). The problem is that the BoundFields in the DV control have not been updated with the new values and therefore the existing values are updated in the database and my changes are lost. I have handled the OnUpdating event of the ODS and the values are still the old values. I have also handled the OnItemUpdating event of the DV control and the NewValues IOrderedDictionary still has the old values in it also. In looking at the MSDN article for the UpdateMethod, it states the following:
Parameter Merging
Parameters are added to the UpdateParameters collection from three sources:
From the data-bound control, at run time.
From the UpdateParameters element, declaratively.
From the Updating event handler, programmatically.
I am using the BoundField classes in my DV control so I would have assumed that the first bullet above would have handled the updating of values, but it doesn't appear to work with the way I am doing it. If I set the values explicitly in the OnUpdating event that is fired by the ODS control (the 3rd bullet) the right values are updated (again...even in my real database situation). It seems like my only issue is that the automatic binding that I expect from the DV control isn't working as I would expect it to. Here is the code that I have in my fake example:
[Code]....
View 7 Replies
Mar 23, 2010
I'm using a DetailsView object to present a record from a database in table format. I'm actually using and ObjectSource object as the data source for the details view. In the object I am using as the source for the ObjectSource, I have paired properties that hold decimals. This is, I have a property called Year1 and another property called Year1Change. This for years 1 to six. The values from the Year1 properties are in a cell, whereas the change values are bound to texboxes. The code for the frontend is the following:
[Code]....
Now, as you can see in the tbYr2RtCh textbox, I have an OnTextChanged property to call an event handler. This is because I want to do two things when the text changes. The first one is to make the font in the textbox bold if the value it holds is different from the Year2 property. The second one is to change the text on tbYr2RevCh to adjust the revenue for the percentage increase in the rate. The problem I have is that I cannot access the object that is the source for the data and make those changes directly in the object, instead of having to update the database. I don't want to update the database until the client says so, but the changes should be calculated immediately. I thought about creating an method in the object that I could specify in the ObjectDataSource as the update method, but I'm still not sure how to go about it.
View 6 Replies
Jul 20, 2010
I am confused about how to reference objects in session, how to update, and copy.
if I create
MyObject obj = new Object ();
then
Session["object"] = obj;
MyObject temp = (MyObject)Session["object"];
If i change something on temp, will the object in session be updated? do i need to follow changes with Session["object"] = temp?
View 2 Replies
May 8, 2010
I'm having an issue when using the Asp.Net Cache functionality. I add an object to the Cache then at another time I get that object from the Cache, modify one of it's properties then save the changes to the database.
But, the next time I get the object from Cache it contains the changed values. So, when I modify the object it modifies the version which is contained in cache even though I haven't updated it in the Cache specifically. Does anyone know how I can get an object from the Cache which doesn't reference the cached version?i.e.
Step 1:
Item item = new Item();
item.Title = "Test";
Cache.Insert("Test", item, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
Step 2:
Item item = (Item)Cache.Get("test");
item.Title = "Test 1";
Step 3:
Item item = (Item)Cache.Get("test");
if(item.Title == "Test 1"){
Response.Write("Object has been changed in the Cache.");
}
I realise that with the above example it would make sense that any changes to the item get reflected in cache but my situation is a bit more complicated and I definitely don't want this to happen.
View 2 Replies
Jun 6, 2010
In an ASP.NET 3.5 VB web app, I successfully manage to cache an object containing several personal details such as name, address, etc. One of the items is CreditNum which I'd like to change in the cache on the fly. Is there a way to access this directly in the cache or do I have to destroy and rebuild the whole object just to change the value of objMemberDetails.CreditNum?The cache is set using:
Public Shared Sub CacheSet(ByVal key As String, ByVal value As Object)
Dim userID As String = HttpContext.Current.User.Identity.Name
HttpContext.Current.Cache(key & "_" & userID) = value
End Sub
View 1 Replies
Jun 30, 2010
Consider this abstract class
public abstract class Foo
{
public Injectable Prop {get;set;}
}
i have an application that i want to enhance and simultaneously refactor for simplicity.
I have over 100 classes that call some same stuff (e.g Class Injectable) and i am thinking that this behaviour can be abstracted and set to a base class, and everybody will inherit from this base class so as to remove copy/paste code.
However, i want to avoid copy/paste code in the spring configuration file by defining an Injectable object and then define a child object foreach and every class that inherits from Foo.
I am looking for a way to set the abstract class's properties and then all child elements to automatically get them via configuration. I want to avoid to make the abstract class like this:
[code]....
View 5 Replies
Apr 27, 2010
I set a session object at one juncture in my code:
Session("my_name") = "Dave"
Later in my code I give the user a chance to update this object:
Session("my_name") = TextBox1.Text
I reload my page and display a little hello statement like this:
Label1.Text = "Hello" & CStr(Session("my_name"))
The result is: "Hello Dave" no matter what I change Session("my_name") too.
EDIT: Here is the a full code-behind I wrote up to demonstrated:
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ExpiresAbsolute = DateTime.Now.AddMonths(-1)
If Page.IsPostBack = False Then
Session("my_name") = "Dave"
End If
Label1.Text = CStr(Session("my_name"))
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Session("my_name") = TextBox1.Text
End Sub
View 3 Replies
May 26, 2010
I am caching a file in ttpContext.Current.Application object. Now when I change the values in file, it does not get reflected in the application (I am reading the values from the file for app version).
Even after restarting the app pool and the website in IIS, the changes does not reflect. I dont want to restart IIS.
View 1 Replies
Apr 19, 2010
There are certain tables that get called often but updated rarely. One of these tables is Departments. So to save DB trips, I think it is ok to cache this table taking into consideration that the table has very small size. However, once you cached it an issue of keeping the table data fresh occurs. So what is the best way to determine that the table is dirty and therefore requires a reload and how that code should be invoked. I look for solution that will be scalable. So updating the cache on single right after inserting will not resolve the issue. If one machine inserted the record all other on the farm should get notified to reload the cache.
View 3 Replies
Jan 25, 2010
I have a view that is based on a view model. This model has a single property called Entity, of type ServiceProvider, which is a Linq2SQL object. This object has relationships to 2 other objects Address and ServiceProviderGroup. In a HTML view I have textboxes that allow the properties of the Entity property to be changed and also the properties of the Address object related to it.
E.g: ViewModel.Entity.Code, ViewModel.Entity.Name, ViewModel.Entity.Address.City, etc, etc.
There is also a selectlist that will allow the Entity.GroupId (int) property to be changed. This defines a relationship to the ServiceProviderGroup class which is also accessible via a Group propery. (standard linq2sql back references)
The Edit[Post] method accepts an instance of this view model and all properties (on the Entity, Entity.Address properties) are set as expected. I then lookup the original object in the database and I also bring back the original address and group data.
E.G: entity => entity.Code == viewModel.Code && entity.Address.Id == viewModel.Address.Id && entity.Group.Id == viewModel.Entity.GroupId (I'm not looking at the code, but it's something similar to this)
Either way the original Entity, Entity.Address, etc, come back from the database. I then apply the changes from the view model to the original object using UpdateModel and everything is updated as expected. But, if I try to change Entity.GroupId, i.e. change the relationship on the entity to another ServiceGroupProvider object, I get an exception in the generated code of the ServiceProvider object.
This happens in the GroupId property of the ServiceProvider class (viewModel.Entity). When it reaches the line if(!this.HasLoadedOrAssignedValue) it enters the "if" statement and throws an exception. When the data is first read from the database it skips this part. But, when UpdateModel attempts to apply the new Entity.GroupId value it throws the exception.
View 2 Replies
Jun 29, 2012
I want to update my cached data , if there is any change in database. , if any change in database/tables happens then my cached data should be updated.
View 1 Replies
Nov 17, 2010
I am looking for an accepted pattern for using MVC 2 and EF. Especially I am interested on how to implement updates. Where should the ObjectContext be created, where should the queries be, how to pass a model object from the controller and have it persisted with minimum robust code. I also want to be able to use transactions when updating multiple objects.
I used Linq in an asp.net application (code behind model). With EF I was hearing it was much more n-tier friendly, but I don't find it any different, rather than people talking about POCO which to me, all it means is satisfying the desire of those that want to have control of every piece of code being created.
View 6 Replies
Jan 17, 2010
U are caching a list of items, then Add or update or delete method called. Approach 1)
A- Do the data change at the database. If success do B, C
B- Remove the entire list from the Cache.
C- Re-Cache the list on first read.
Approach 2)
A- Do the data change at the database, If success do B
B- Do the same change at the cached items, and save more time.
Approach(2) probably will cause nasty difficult to spot bugs, because the data come from BLL and placed directly into cache, One can't assume no bugs will happen at the sproc, I am not worry about database runtime errors, runtime errors will show up, but I am worry about invalid data, or miss calculation. Can I proceed with approach (2) with caution? Is there a "best practice" principle which suggest not doing approach(2)?
View 2 Replies
Apr 22, 2010
I have a question, much liket this unanswered one. I'm trying to work with the entity framework, and having a tough time getting my foreign tables to update. I have something basically like this in the DB:
Incident (table):
-ID
-other fields
Responses (table):
-FK:Incident.ID
-other fields
And and entities that match:
Incident (entity)
-ID
-Other fields
-Responses (EntityCollection of Responses via navigation property)
Each Incident can have 0 or more responses.
In my Webpage, I have a form to allow the user to enter all the details of an Incident, including a list of responses. I can add everything to the database when a new Incident is created, however I'm having difficulty with editing the Incident.
When the page loads for edit, I populate the form and then store the responses in the viewstate. When the user changes the list of responses (adds one, deletes one or edits one). I store this back into the viewstate. Then when the user clicks the save button, I'd like to save the changes to the Incident and the Responses back to the DB. I cannot figure out how to get the responses from the detached viewstate into the Incident object so that they can be updated together.
Currently when the user clicks save, I'm getting the Incident to edit from the db, making changes to the Incident's fields and then saving it back to the DB. However I can't figure out how to have the detached list of responses from the viewstate attach to the Incident. I have tried the following without success:
Clearning the Incident.Responses collection and adding the ones from the viewstate back in:
Incident.Responses.Clear()
for each objResponse in Viewstate("Responses")
Incident.Responses.add(objResponse)
next
Creating an EntityCollection from my list and then assiging that to the Incident.Responses
Incident.Responses = EntityCollectionFromViewstateList
Iterating through the responses in Incident.Response and assigning the corresponding object from viewstate:
for each ObjResponse in Incident.Responses
objResponse = objCorrespondingModifedResonseFromViewState
Next
These all fail, I'd like to be able to merge the changes into the Inicdent object so that when the BLL calls SaveChanges on the changes to both the Incident and Responses will happen at the same time.
View 1 Replies
Dec 28, 2010
how do I update a field from code like inserting a date. i have something like below. i want to insert the date when the record is updated or edited, but it does not work what is the correct way to do this in mvc
[HttpPost]
View 3 Replies
Apr 15, 2010
I am creating a web app with sql server 05 and visual studio express 08. There is always live data inserted into my sql tables throughout the day infrequently.
I want to create a web page that will show the data in graphs etc. I can currently show the data present in the database on the web page. HOWEVER what i do not know is how to update the page (graphs) with the NEW DATA that has been inserted into the tables.
I guess I will have to use ajax to change the data shown on the web page automatically. I will also need somesort of triggers to tell when new data has arrived.
View 3 Replies
Nov 27, 2010
I am using asp.net 3.5 c#. I am trying to do this:
In one page, a user can insert some stuff (name, phone .. etc) to the database. And then the user should be able to see the rows he added as a list automatically in a datalist (or other control). As he inserts rows, it appears in the datalist.
I tried to use update panel and inside it datalist, with a button as a trigger but it did n't work with me!
View 3 Replies
Jan 12, 2011
Above is my code to call a hidden DIV:
[Code]....
And above the html for the DIV:
[Code]....
on Code behind:
[Code]....
Now i was trying to use an UPDATE PANEL, in order to when i click button Save, only the DIV updates. Because the whole DIV is closing when i click on SAVE, even if i put a div in an update panel.
View 4 Replies
Dec 9, 2010
I am having a weird issue with the update panels. I have an update panel in UpdateMode = Conditional . I have a dropdown list and a grid view..the gridview has to be updated ÖnSelectionChanged event on the dropdown.
The issue here is on changing the selection on dropdown, the onselectionchanged event is triggered, new data is grabbed, bound to gridview..but does nt update the update panel even after the updatepanel.update();
[Code]....
View 2 Replies
Mar 25, 2011
Let's say I have the following class:
[Code]....
Now let's say I have a list of these objects.
[Code]....
How can I sort this book list by the Book object's BookID property?
View 1 Replies
Feb 11, 2010
I'm kinda new to web services and want to make sure I am doing things correctly.
I have a custom object which has sub objects as well. (let's say Company object, sub object is collection of Employee objects)
I want the web service to return a collection of Company objects. Do I make the service return a Dataset and custom generate a dataset with datatables representing the different objects?
What is the best way to do this? I tried to just serialize it, but that doesn't seem to work either.
I tried this dll
[URL]
But the output XML doesn't seem to include the sub object.
View 1 Replies