Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > Using XML to store global variables in memory

Reply
Thread Tools

Using XML to store global variables in memory

 
 
Davݭ ١risson
Guest
Posts: n/a
 
      10-24-2004
now in my web I have some global variables to be used in many different
subpages, in the old ASP I simply loaded a variables.asp file into memory
using the eval() function. Now I'd like to use XML but what method would I
use to load the entries from the xml file into memory and make them quickly
accessible globally in the web code? Just need to know what functions
specifically I should start reading about!

Thx


 
Reply With Quote
 
 
 
 
=?Utf-8?B?bWZlaW5nb2xk?=
Guest
Posts: n/a
 
      10-24-2004
XmlDocument class and its methods (like Load and LoadXML). On the other hand
I am not sure why Xml? XML is a lot of things, all of them great, but it is
hardly the best way to keep a bunch of variables. You would be better off
creating a class, making your variables members(properties) of this class and
attaching your calss to either Session or Application. I also usually declare
a static member on the class with the string id which is used to access the
object of the class from the application collection. This way you are fully
proteced from typos in you string ids

HTH, Michael

"Dav├*├░ ├×├│risson" wrote:

> now in my web I have some global variables to be used in many different
> subpages, in the old ASP I simply loaded a variables.asp file into memory
> using the eval() function. Now I'd like to use XML but what method would I
> use to load the entries from the xml file into memory and make them quickly
> accessible globally in the web code? Just need to know what functions
> specifically I should start reading about!
>
> Thx
>
>
>

 
Reply With Quote
 
 
 
 
Davݭ ١risson
Guest
Posts: n/a
 
      10-24-2004
Thx Michael,
well you see I have several webs on the same application (using the same
core but different layouts and urls) so that the variables vary according to
which web it is. I want to be able to quickly access the web specific
variables eg
string Title = Web1.Title ...

instead of having several titles eg
string TitleForWeb1
string TitleForWeb2 ...

thats the idea!

"mfeingold" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> XmlDocument class and its methods (like Load and LoadXML). On the other
> hand
> I am not sure why Xml? XML is a lot of things, all of them great, but it
> is
> hardly the best way to keep a bunch of variables. You would be better off
> creating a class, making your variables members(properties) of this class
> and
> attaching your calss to either Session or Application. I also usually
> declare
> a static member on the class with the string id which is used to access
> the
> object of the class from the application collection. This way you are
> fully
> proteced from typos in you string ids
>
> HTH, Michael
>
> "Davݭ ١risson" wrote:
>
>> now in my web I have some global variables to be used in many different
>> subpages, in the old ASP I simply loaded a variables.asp file into memory
>> using the eval() function. Now I'd like to use XML but what method would
>> I
>> use to load the entries from the xml file into memory and make them
>> quickly
>> accessible globally in the web code? Just need to know what functions
>> specifically I should start reading about!
>>
>> Thx
>>
>>
>>



 
Reply With Quote
 
=?Utf-8?B?bWZlaW5nb2xk?=
Guest
Posts: n/a
 
      10-24-2004
well, with xml you will have to write something like
MyXmlDoc["Web1"].Attributes["Title"].Value
assuming that MyXmlDoc is your document looks something like
<root><Web1 Title="...."/><Web2 Title="..."/></root>
A lot of coding to what end? still you can mistype atribute name or node
name and the compiler will not tell you a thing
on the other hand with the class - you can define methods
like getTitle, which would take the web name as a parameter, and even throw
an exception to notify you that the web name is incorrect



"Dav├*├░ ├×├│risson" wrote:

> Thx Michael,
> well you see I have several webs on the same application (using the same
> core but different layouts and urls) so that the variables vary according to
> which web it is. I want to be able to quickly access the web specific
> variables eg
> string Title = Web1.Title ...
>
> instead of having several titles eg
> string TitleForWeb1
> string TitleForWeb2 ...
>
> thats the idea!
>
> "mfeingold" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > XmlDocument class and its methods (like Load and LoadXML). On the other
> > hand
> > I am not sure why Xml? XML is a lot of things, all of them great, but it
> > is
> > hardly the best way to keep a bunch of variables. You would be better off
> > creating a class, making your variables members(properties) of this class
> > and
> > attaching your calss to either Session or Application. I also usually
> > declare
> > a static member on the class with the string id which is used to access
> > the
> > object of the class from the application collection. This way you are
> > fully
> > proteced from typos in you string ids
> >
> > HTH, Michael
> >
> > "Dav├*├░ ├×├│risson" wrote:
> >
> >> now in my web I have some global variables to be used in many different
> >> subpages, in the old ASP I simply loaded a variables.asp file into memory
> >> using the eval() function. Now I'd like to use XML but what method would
> >> I
> >> use to load the entries from the xml file into memory and make them
> >> quickly
> >> accessible globally in the web code? Just need to know what functions
> >> specifically I should start reading about!
> >>
> >> Thx
> >>
> >>
> >>

>
>
>

 
Reply With Quote
 
Davݭ ١risson
Guest
Posts: n/a
 
      10-24-2004
good point Michael, I just cannot grasp the concept of using a Class (=code)
for storing data (normally stored as strings, dbase entries or as in my ASP
example as variables in a text file then evaled())...
I will keep your idea in mind, has some interesting aspects to look into

"mfeingold" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> well, with xml you will have to write something like
> MyXmlDoc["Web1"].Attributes["Title"].Value
> assuming that MyXmlDoc is your document looks something like
> <root><Web1 Title="...."/><Web2 Title="..."/></root>
> A lot of coding to what end? still you can mistype atribute name or node
> name and the compiler will not tell you a thing
> on the other hand with the class - you can define methods
> like getTitle, which would take the web name as a parameter, and even
> throw
> an exception to notify you that the web name is incorrect
>
>
>
> "Davݭ ١risson" wrote:
>
>> Thx Michael,
>> well you see I have several webs on the same application (using the same
>> core but different layouts and urls) so that the variables vary according
>> to
>> which web it is. I want to be able to quickly access the web specific
>> variables eg
>> string Title = Web1.Title ...
>>
>> instead of having several titles eg
>> string TitleForWeb1
>> string TitleForWeb2 ...
>>
>> thats the idea!
>>
>> "mfeingold" <(E-Mail Removed)> wrote in message
>> news:(E-Mail Removed)...
>> > XmlDocument class and its methods (like Load and LoadXML). On the other
>> > hand
>> > I am not sure why Xml? XML is a lot of things, all of them great, but
>> > it
>> > is
>> > hardly the best way to keep a bunch of variables. You would be better
>> > off
>> > creating a class, making your variables members(properties) of this
>> > class
>> > and
>> > attaching your calss to either Session or Application. I also usually
>> > declare
>> > a static member on the class with the string id which is used to access
>> > the
>> > object of the class from the application collection. This way you are
>> > fully
>> > proteced from typos in you string ids
>> >
>> > HTH, Michael
>> >
>> > "Davݭ ١risson" wrote:
>> >
>> >> now in my web I have some global variables to be used in many
>> >> different
>> >> subpages, in the old ASP I simply loaded a variables.asp file into
>> >> memory
>> >> using the eval() function. Now I'd like to use XML but what method
>> >> would
>> >> I
>> >> use to load the entries from the xml file into memory and make them
>> >> quickly
>> >> accessible globally in the web code? Just need to know what functions
>> >> specifically I should start reading about!
>> >>
>> >> Thx
>> >>
>> >>
>> >>

>>
>>
>>



 
Reply With Quote
 
Davݭ ١risson
Guest
Posts: n/a
 
      10-24-2004
Michael, since I'm not so experienced in .Net, how would you construct such
a class so that you can access the variables eg
string title = Web1.Title;

?


"Davݭ ١risson" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> good point Michael, I just cannot grasp the concept of using a Class
> (=code) for storing data (normally stored as strings, dbase entries or as
> in my ASP example as variables in a text file then evaled())...
> I will keep your idea in mind, has some interesting aspects to look into
>
> "mfeingold" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
>> well, with xml you will have to write something like
>> MyXmlDoc["Web1"].Attributes["Title"].Value
>> assuming that MyXmlDoc is your document looks something like
>> <root><Web1 Title="...."/><Web2 Title="..."/></root>
>> A lot of coding to what end? still you can mistype atribute name or node
>> name and the compiler will not tell you a thing
>> on the other hand with the class - you can define methods
>> like getTitle, which would take the web name as a parameter, and even
>> throw
>> an exception to notify you that the web name is incorrect
>>
>>
>>
>> "Davݭ ١risson" wrote:
>>
>>> Thx Michael,
>>> well you see I have several webs on the same application (using the same
>>> core but different layouts and urls) so that the variables vary
>>> according to
>>> which web it is. I want to be able to quickly access the web specific
>>> variables eg
>>> string Title = Web1.Title ...
>>>
>>> instead of having several titles eg
>>> string TitleForWeb1
>>> string TitleForWeb2 ...
>>>
>>> thats the idea!
>>>
>>> "mfeingold" <(E-Mail Removed)> wrote in message
>>> news:(E-Mail Removed)...
>>> > XmlDocument class and its methods (like Load and LoadXML). On the
>>> > other
>>> > hand
>>> > I am not sure why Xml? XML is a lot of things, all of them great, but
>>> > it
>>> > is
>>> > hardly the best way to keep a bunch of variables. You would be better
>>> > off
>>> > creating a class, making your variables members(properties) of this
>>> > class
>>> > and
>>> > attaching your calss to either Session or Application. I also usually
>>> > declare
>>> > a static member on the class with the string id which is used to
>>> > access
>>> > the
>>> > object of the class from the application collection. This way you are
>>> > fully
>>> > proteced from typos in you string ids
>>> >
>>> > HTH, Michael
>>> >
>>> > "Davݭ ١risson" wrote:
>>> >
>>> >> now in my web I have some global variables to be used in many
>>> >> different
>>> >> subpages, in the old ASP I simply loaded a variables.asp file into
>>> >> memory
>>> >> using the eval() function. Now I'd like to use XML but what method
>>> >> would
>>> >> I
>>> >> use to load the entries from the xml file into memory and make them
>>> >> quickly
>>> >> accessible globally in the web code? Just need to know what functions
>>> >> specifically I should start reading about!
>>> >>
>>> >> Thx
>>> >>
>>> >>
>>> >>
>>>
>>>
>>>

>
>



 
Reply With Quote
 
=?Utf-8?B?bWZlaW5nb2xk?=
Guest
Posts: n/a
 
      10-25-2004
One way of doing this would be to create a class and inherit it from
System.Web.UI.Page somthing like this:

public class MyPageClass : System.Web.UI.Page
{

private string title;
public string Title {get{return title;}}

override protected void OnInit(EventArgs e)
{
base.OnInit(e);
title = "......";
}
}

Now, after you created a new page in your project, open its code-behind
class and change the default base class it inherits from (which will be
System.Web.UI.Page) to the class you just created. This way the MyPageClass
will become an ancestor of all your pages, so anywhere in the code both in
code behind class and imbedded code you will have access to the properties
and methods you would define in MyPageClass class.
Keep in mind that a new instance of this class will be created every time
yor page is generated, so any values kept in the memebers of this class will
not survive the roundtrip.
To take care of this you would need another class wich would be instanciated
in the application start event and attached to the Application (if it is
application-wide variables). The MyPage class would retrieve this object and
populate the values.

The beauty of this approach is that you have all functionality of
application scope variables easily accessible from any of your pages: to
access the title from a page all you need to do is to write this.Title or
just Title. Compiler will check for you both the names and the data types of
all your variables. And all details of how it is implemented are hidden in a
single central place.

"Dav├*├░ ├×├│risson" wrote:

> Michael, since I'm not so experienced in .Net, how would you construct such
> a class so that you can access the variables eg
> string title = Web1.Title;
>
> ?
>
>
> "Dav├*├░ ├×├│risson" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
> > good point Michael, I just cannot grasp the concept of using a Class
> > (=code) for storing data (normally stored as strings, dbase entries or as
> > in my ASP example as variables in a text file then evaled())...
> > I will keep your idea in mind, has some interesting aspects to look into
> >
> > "mfeingold" <(E-Mail Removed)> wrote in message
> > news:(E-Mail Removed)...
> >> well, with xml you will have to write something like
> >> MyXmlDoc["Web1"].Attributes["Title"].Value
> >> assuming that MyXmlDoc is your document looks something like
> >> <root><Web1 Title="...."/><Web2 Title="..."/></root>
> >> A lot of coding to what end? still you can mistype atribute name or node
> >> name and the compiler will not tell you a thing
> >> on the other hand with the class - you can define methods
> >> like getTitle, which would take the web name as a parameter, and even
> >> throw
> >> an exception to notify you that the web name is incorrect
> >>
> >>
> >>
> >> "Dav├*├░ ├×├│risson" wrote:
> >>
> >>> Thx Michael,
> >>> well you see I have several webs on the same application (using the same
> >>> core but different layouts and urls) so that the variables vary
> >>> according to
> >>> which web it is. I want to be able to quickly access the web specific
> >>> variables eg
> >>> string Title = Web1.Title ...
> >>>
> >>> instead of having several titles eg
> >>> string TitleForWeb1
> >>> string TitleForWeb2 ...
> >>>
> >>> thats the idea!
> >>>
> >>> "mfeingold" <(E-Mail Removed)> wrote in message
> >>> news:(E-Mail Removed)...
> >>> > XmlDocument class and its methods (like Load and LoadXML). On the
> >>> > other
> >>> > hand
> >>> > I am not sure why Xml? XML is a lot of things, all of them great, but
> >>> > it
> >>> > is
> >>> > hardly the best way to keep a bunch of variables. You would be better
> >>> > off
> >>> > creating a class, making your variables members(properties) of this
> >>> > class
> >>> > and
> >>> > attaching your calss to either Session or Application. I also usually
> >>> > declare
> >>> > a static member on the class with the string id which is used to
> >>> > access
> >>> > the
> >>> > object of the class from the application collection. This way you are
> >>> > fully
> >>> > proteced from typos in you string ids
> >>> >
> >>> > HTH, Michael
> >>> >
> >>> > "Dav├*├░ ├×├│risson" wrote:
> >>> >
> >>> >> now in my web I have some global variables to be used in many
> >>> >> different
> >>> >> subpages, in the old ASP I simply loaded a variables.asp file into
> >>> >> memory
> >>> >> using the eval() function. Now I'd like to use XML but what method
> >>> >> would
> >>> >> I
> >>> >> use to load the entries from the xml file into memory and make them
> >>> >> quickly
> >>> >> accessible globally in the web code? Just need to know what functions
> >>> >> specifically I should start reading about!
> >>> >>
> >>> >> Thx
> >>> >>
> >>> >>
> >>> >>
> >>>
> >>>
> >>>

> >
> >

>
>
>

 
Reply With Quote
 
Kevin Spencer
Guest
Posts: n/a
 
      10-25-2004
Hang on a second, David. XML is great stuff, but it isn't the end-all and
be-all of programming. You stated that you have some "global variables to be
used in many different subpages." I would guess that means in-memory
objects. Now, XML is a great tool for passing data around in a distributed
application, as it is non-proprietry, and can be understood by any XML
client. But which of the following uses less memory space and processing in
your application:

Binary: 32767 (16 bits)

XML:

<data name="$this.TrayHeight" type="System.Int32, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>32767</value>
</data>

IOW, XML is great for what its great for, and lousy for what it's lousy for.

--
HTH,
Kevin Spencer
..Net Developer
Microsoft MVP
I get paid good money to
solve puzzles for a living

"Davݭ ١risson" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> now in my web I have some global variables to be used in many different
> subpages, in the old ASP I simply loaded a variables.asp file into memory
> using the eval() function. Now I'd like to use XML but what method would I
> use to load the entries from the xml file into memory and make them

quickly
> accessible globally in the web code? Just need to know what functions
> specifically I should start reading about!
>
> Thx
>
>



 
Reply With Quote
 
Kevin Spencer
Guest
Posts: n/a
 
      10-25-2004
My apologies, David.

After re-reading your question and my response, I can see that I was not
answering the question you asked, which is how to read data stored in an XML
file INTO memory, which is something altogether different from storing XML
data IN memory. Reading it from a file is a great idea, as exemplified by
the use of XML for the web.config and other configuration files that ASP.Net
and .Net in general uses.

In fact, using the web.config file might be your best bet to begin with. You
can easily use the built-in "appSettings" element in the web.config to
define your own data, which can easily be read from the file at run time.
Example:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ConnectionString"
value="server=blah;uid=Blah;pwd=blahblah;database= blah"/>
<add key="VoyagerPath" value="C:\VoyagerOnline" />
<add key="Timeout" value="15" />
</appSettings>
....

These configuration elements are easy to fetch at run-time. Example:

Dim Timeout As int =
System.Configuration.ConfigurationSettings.AppSett ings("Timeout")

You can also define custom configuration sections, if you have a lot of data
and need to organize it into a nice tree hierarchy.

--
HTH,
Kevin Spencer
..Net Developer
Microsoft MVP
I get paid good money to
solve puzzles for a living

"Davݭ ١risson" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> now in my web I have some global variables to be used in many different
> subpages, in the old ASP I simply loaded a variables.asp file into memory
> using the eval() function. Now I'd like to use XML but what method would I
> use to load the entries from the xml file into memory and make them

quickly
> accessible globally in the web code? Just need to know what functions
> specifically I should start reading about!
>
> Thx
>
>



 
Reply With Quote
 
Davݭ ١risson
Guest
Posts: n/a
 
      10-25-2004
exactly Kevin, sounds exactly like I need and want to do... so simple and
elegant solution - thx!


"Kevin Spencer" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> My apologies, David.
>
> After re-reading your question and my response, I can see that I was not
> answering the question you asked, which is how to read data stored in an
> XML
> file INTO memory, which is something altogether different from storing XML
> data IN memory. Reading it from a file is a great idea, as exemplified by
> the use of XML for the web.config and other configuration files that
> ASP.Net
> and .Net in general uses.
>
> In fact, using the web.config file might be your best bet to begin with.
> You
> can easily use the built-in "appSettings" element in the web.config to
> define your own data, which can easily be read from the file at run time.
> Example:
>
> <?xml version="1.0" encoding="utf-8" ?>
> <configuration>
> <appSettings>
> <add key="ConnectionString"
> value="server=blah;uid=Blah;pwd=blahblah;database= blah"/>
> <add key="VoyagerPath" value="C:\VoyagerOnline" />
> <add key="Timeout" value="15" />
> </appSettings>
> ...
>
> These configuration elements are easy to fetch at run-time. Example:
>
> Dim Timeout As int =
> System.Configuration.ConfigurationSettings.AppSett ings("Timeout")
>
> You can also define custom configuration sections, if you have a lot of
> data
> and need to organize it into a nice tree hierarchy.
>
> --
> HTH,
> Kevin Spencer
> .Net Developer
> Microsoft MVP
> I get paid good money to
> solve puzzles for a living
>
> "Davݭ ١risson" <(E-Mail Removed)> wrote in message
> news:(E-Mail Removed)...
>> now in my web I have some global variables to be used in many different
>> subpages, in the old ASP I simply loaded a variables.asp file into memory
>> using the eval() function. Now I'd like to use XML but what method would
>> I
>> use to load the entries from the xml file into memory and make them

> quickly
>> accessible globally in the web code? Just need to know what functions
>> specifically I should start reading about!
>>
>> Thx
>>
>>

>
>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
FWSM/PIX and Dynamic PAT using global IP range vs. global interface vs. global IP Hoffa Cisco 1 10-25-2006 06:50 PM
FWSM/PIX and Dynamic PAT using global IP range vs. global interface vs. global IP Hoffa Cisco 0 10-25-2006 01:04 PM
Nonlocal Store (global and class static variables) jose luis fernandez diaz C++ 8 01-06-2004 03:23 AM
global variables in .NET: how to store a connection string and have it available throughout.. chris ASP .Net 3 12-05-2003 09:54 AM
Global variables on par with ASP's global.asa Wayne ASP .Net 2 11-11-2003 10:58 PM



Advertisments