Take a tour of the new features and changes to the IDE in Visual Studio 2008. See the updated web page editor, WPF form designer, CSS editor, and more.
The following text is a software generated transcript of the video. Click on a minute link to jump to a location within the video
Minute 0
Hi this is Chris tells in his video to take a look at some of the changes and additions to the Visual Studio 2008 ID most the settings from Visual Studio five can be imported into a way and when you first install a weight if it s on the same machine is so fine point he started out to be prompted as to whether or not you want to migrate euro five development settings forward in this case have already installed only previously so we wouldn t get that prompt but there is a way to manually import settings from all five let s take a look at it do that It sheer over 205 and we cooked tools menu select import and export settings export and you can then select which of the settings you would like to import or rather export in this case is take the monster comics
Minute 1
Selected then prompts us as to where we want to store the settings file which think that default safe with exported settings were all set here in 05 foot back over 208 to a similar process but in this case will import tools import and export settings import counts is whether we want to save the current settings that ideas will take that and here we have to select which settings we want to import in this case we won a court that 05 settings file right here that we exported and it will select that file next and then brings in all the settings you could alter those settings here meaning that we could choose not to import some of the ones that we exported from all five Java that you just click finish and it will import all the settings
Minute 2
Final thing to note here is that any third party add ins or code snippets will not be automatically migrated forward and you will have to migrate to manually the community menu in TSO five here has been removed in the away diversion and surly options have been migrated forward in two new options in a way he asked a question and check questions status are now in an MSDN forums option and send feedback has been renamed to report about the other options in a community menu are no longer available for switchover to await here and just take a look at where these options live now and so the community menu is known here as I just mentioned and under help we have MSDN forms which is previously in a Senate question and check on a question and that these
Minute 3
Feedback as this it is now report about several general IDE improvements here in 08 and to demonstrate a few these are done is created based solution here with a single website and class library and open up several of the classes and pages here is also what does config file now in previous versions when hit control tag you just been shown a list of the open windows so you can move them in this one when I hit control temple we get is a nice summary window that shows us an early that names the active files but the tool windows that we currently have open in a new CSI cycle through the files it gives us a little thumbnail on the right side which shows us the contents of that window which makes a little easier for selection you can then honestly migrate nor move to that particular window you selected
Minute 4
You can also click on any one of the active tool windows to move to that another feature has do with docking tool windows and dinosaurs below bit problematic for me is to wear a tool window might end up winning the docket let s take a toolbox here is an example of the sort to float the toolbox can see we get indicators as to potential locations for docking and if we highlight or over over over one of those indicators we get a high lace to highlight showing us where the window would end up his case within this container this is the potential locations for size plus if it was tabbed to as another window here with a start page gets antitakeover another tool windows associate the solution Explorer and we get the same sort of visual indicator that shows us potential locations for our toolbox window
Minute 5
Their small but useful setting is up here under the tools menu in the options and four fonts and colors we ve always been able to set the settings for various things like text editor and printer now there s a new choice environment font and what this does is it covers the font for anything that you have not set specifically here in this drop down list so if you don t see the specific
Minute 6
Five for a Windows form application and once you ve created the project you can also go up to the project settings here in the case of Visual Basic go to the advanced compile settings and down here you can see we can change it as well from 23 or 3 5 and see sharp you ll find the settings under the build settings rather than the advanced compile settings Windows presentation foundation applications are fully supported in Visual Studio a way we could add a new project type to see we have both a WTF application as well as the VP of browser application templates and his case will create a debut PF application can be is now editor a year with a split screen view on the top we get the graphical representation is now on the bottom of the tort
Minute 7
Can think if we were to resize this window here you ll see the sample code in the editor below is automatically changed we also have full IntelliSense in sample soap start tag or we get all the potential s MO elements that we could adhere to think we would if we were typing ASP war visuals in Visual Studio or see sharp or Visual Basic also have the ability to set what type of WTF application project you are creating here so Up to the properties of the application under the application tab you see there s an application type which has the application class library and console the application visual COAs has the Web application project type that was added in service pack one of Visual Studio
Minute 8
05 list to show you where that is in case you not familiar with it and add its new project not new website and under the project template types there s an ASP net Web application project type and if we create one of those we get a project structure very similar to we had in Visual Studio three and there is a couple of changes here to note 1 is this no longer requires FrontPage server extensions and it s also not limited to IIS you can use the local Web server that was introduced in 05 when the things that happens here is that when you compile it would get here is a single DLL representing the website so if you re migrating a website from both three appear to await you may find it whether
Minute 9
Issues is a nice new editing feature for webpages the ID a cyclic default aspx here in our sample website at the traditional source view and designed you to now there s also a spread to hear what shows us the graphic on the bottom source on the top crew to take an element such as a checkbox here and put it in to the diff in a graphical view will see that source you is updated in the reverse is also true let s put a button near and harrowing owl and will see that a getting a message that the sources out of sync with the design view switches click here and there we have both been sick another area the idea has some nice group
Minute 10
Sees the management and editing of cascading style sheets at the pump sample webpage your default ASP act s party didn t split view and the first tool window that s been added which want to show you is called managed styles that s up here on the format menu under CSS styles managed styles in this particular style window provides us with a summary of all the styles that are available in the current page does in this case shown are in a default CSS which is linked into the page as well as a local style definition in the page for this new style want and notice as I hover over any one of the styles that shows me in the tool tip window to complete definition of the style in addition there is a circle around some these elements in that indicates that those particular rules are used in the current page you can edit any of the
Minute 11
A styles directly by either double clicking on it and it goes right to style definition and we can alter something here that s put this in as font weight will make bold care since we synchronize the graphical view may get our change back over here in new style in the tool to Windows you are late pope is there as now as well the other addition is a CSS properties window which is appear under the view menu CSS properties for this shows us is the current applied rules for the key for the active element in this case they haven t selected any element in the designer so the body element is being selected and shown as showing us the rules are applying to that compass like to go to mistake the second line item element here see that that is added to the applied rules and also noticed down here in the sea is
Minute 12
At properties window that this rehab repeating properties in this case font family and font size in the first instance has a red line through it and what that means is that it s showing us we are overriding an instance of that particular property safe font size was medium higher up the inheritance tree and we have now overridden it with 20 pixels you can edit these values are right here so let s take this down that s to 15 pixels and we get that change automatically reflected in the design mode he over here on the right now are currently in the summary mode in the cascading style sheet properties window here so if we turn off to some remote and then we see not just the properties or that are currently applied for use in this case font family font size etc
Minute 13
Who see the complete list of CSS properties and we can change any of these here as we did with the font size will have the ability like the regular property windows that you use to to sort of the way to have an alphabetical sort of all the CSS properties files on an off night auctioneer that she says she ll set properties on top saloon at the scroll through the list on a FindWhat properties have been said and what have not been sent even though they are bold as compared to normal text
Minute 14
On various areas such as the ID but many other areas as as Chris Pelz thanks for you time
Click here to go to original video page
Sunday, August 31, 2008
Video: Quick Tour of the Visual Studio 2008 Integrated Development Environment
Video: IntelliSense for Jscript and ASP.NET AJAX
This video provides an overview of the new Intellisense features for JavaScript in Visual Studio 2008 including core JavaScript methods, external .js files in .aspx pages, between external .js files, with core Microsoft libraries like MicrosoftAjax.js, client JavaScript behaviors, controls, and libraries, and web services. In addition, the integration of the new XML comments for JavaScript with Intellisense is demonstrated.
The following text is a software generated transcript of the video. Click on a minute link to jump to a location within the video
Minute 0
I have this dispels this video would it take a look at some of the exciting new JavaScript IntelliSense features in Visual Studio 2008 right get started let s create a new website project here and we ll just call this website TV and we already have a default is Jack Celeste at a JavaScript file here as well and will just call this JavaScript file it kills and everyone in a reference to that JavaScript file over here in our page splits do that whole at a script for the language is equal to JavaScript to type a sequel to tax JavaScript and the source is equal to or are you
Minute 1
Kills JS file now let s take a look at a the JavaScript IntelliSense features a person he wanted to do is give this to the element and ID and let s call this page content and then I went ahead a script block inside the page your slips to that language equals JavaScript can type text JavaScript and will create a little function near notice for getting IntelliSense for creating our JavaScript function clueless startup and then we ll define a couple local variables here notice for getting IntelliSense again for creation of our variable in the first one will call
Minute 2
His container and this comes from the document element in the dead element by ID is pretty nice for getting the IntelliSense help us create this page content and endlessly another local variable coal Index that has a value of zero and let s just create another one called this is some text which is has some text in it now only go to reference these variables in code what we ll see is the second future of JavaScript IntelliSense which is type inference could take the container local variable that we have here we go to one of the methods noticed that the IntelliSense engine has inferred that this is a guy
Minute 3
On document element and is giving us the appropriate properties and methods that go with the dawn element likewise if we were to use the index variable that we created here we re getting a variety of properties and methods that pertain to a numeric valuable and likewise if we used the text variable we re getting a bunch of methods and properties that pertain to text now you can go even a little bit further than this and let s say we take our index variable and since we re not strongly typed here in jobs that we can do this and we changed that to be some text down here and then we do to use that week at the textbased IntelliSense thread says penny though what it would have been
Minute 4
If we were to use index up here before we assigned a text to it and it is a quite an intelligent engineer so to speak because here is giving us the numeric methods and properties now let s go and add a method over in our utensils JS file here so I notice this is HS finally getting its same intelligence that we had over and default SPX to define our function and get a username and let s have this take a variable called ID and a pillow sample method here that would
Minute 5
And more complicated than that for this demonstration okay now let s flip back over to our default aspx page and go down here and let s say we want to create a local variable called name and we want to call that method over the JS file to automatically get IntelliSense on the methods and are JS file without having to do anything special including primer information that we need to pass to the method that recall so it s pretty neat if they want to take a look at the new XML comment capability has been added for JavaScript lets the back over here too are JS file that you probably use the XML commenting capability in the seashore or knowing in Visual Basic and there s a similar feature that s been at it for JavaScript has a few differences but it works pretty much in the same way for example we can add XML
Minute 6
These comments to our code here that ll be picked up by the IntelliSense engine facility can show them to us when we re using the method over in the SPX based on the sure how that works and one difference here is that the comments are pleased immediately inside of the function rather than above the function name which is what she would do in Visual Basic or seashore and the reason for this is that there is a two string method in JavaScript that allows the JavaScript engine here behind the scenes to pick up the contents of the method and then parse the XML comments so that we do it is at a triple comment counter the same issue would in seashore and then he used the similar XML elements for example we can type in a summary element here is
Minute 7
This insane method to did the person s name from an ID value close that off and we can add one for the parameter in the name of the parameter is ID and this is the person is ID value and we can also the head one for the return value and this is the persons name and we do need to save the JS file here before we get back over to default the SPX of the parser to pick up the information about
Minute 8
Over to default the SPX and must create a nether variable here will name to it let s you see get username and notice what getting the help here in the tool tip this is a method coming from Nice summary element that we at it and likewise here when we go to type deeply ID parameter were getting the information provided in the prime element that we can take this even one step further to show you some additional capabilities and smell comment documentation for tobacco or the JS file here all we can do is we can go over to the prime definition here and we came at a type attribute this case will make this a number and were also can indicate that the signature because JavaScript doesn t only has a number type it doesn t have an integer type takedown is yet another attribute
Minute 9
Which use integer equal to save this link now go back over to our default is the eczema said third local variable here to username with her IntelliSense and noted notice this time in addition to just the ideas the name of the parameter would getting an indicator that showing us that this is a number so will make this 150 fifth number of other attributes that you can edit your XML based comments to get rich IntelliSense and his nice blog posts here let me flip over to that by urchin LeRoy and a leave this will address up on the screen here for just a moment so you can copy it down and go look at it in a few view the video so he seem IntelliSense from an external JavaScript file TCAS
Minute 10
Ex page what about from one JavaScript file to another place for a second JavaScript file here in our website and this one lets call cordite JS and let s said a function in a year to call this function get flat law and will take him down and address and the let s return in this case which is an arbitrary number for your lead said some JavaScript comments to win a summary tag here for an address ago and
Minute 11
At a parameter in the name of it will be address type the full string this is the address to find the LAT law and Leslie will lead a return to say the LAT law of the address okay will save these changes to core JS here now let s go back over to our utensils JavaScript file but we need to do in order to have the Cross JavaScript IntelliSense screwup here beginning of the file symbol paste in a reference element to the cordite JS file so
Minute 12
Say that here as well now let s go down here and at a nether function to eat those who called us get a user LAT law have an inbound address to this and now we take GE wheat had the get LAT long method from the court got JS file so take that had noticed week getting the IntelliSense for the address parameter as well and it will pass in this address value here in a little close off the method and actually will do here is returned that like that so this demonstrates how we re getting IntelliSense from one JavaScript file to the other I guess just
Minute 13
Closed loop here when you go back over your core JS and the man at a reference element appear to pass equal to the pills diet JS and you ll save all our files you have root go down into this lat long function and use get to see we have our big username and get user Lab law form are you pills JS so this is shown us that we can get the Cross JavaScript IntelliSense what about referencing standard files like the Microsoft Ajax library while we can do that here as well and it s just a slight variation on the reference element that we use for you JS sweat
Minute 14
Other reference element and here instead of adding a path attribute we re going to add a name attribute and the name attribute is used for any JavaScript files that are dynamically added by this script manager in this case the Microsoft Ajax library suicide that name in gross soft hate Ajax JS close that off and say things here now if you go down here into our get let long function in the city wanted to use one of the methods the mics of Ajax library for example let s use the get shortcut here we have IntelliSense for the Microsoft Ajax library with all the corresponding methods that we have in there as well as you can see we re getting a parameter
Minute 15
And type information in here as well tailored to screen appears to concede that he made the standard use of the XML based comments for documentation and IntelliSense in your JavaScript files that are be very useful for your development teams in terms of sharing libraries and having access to this information that they did within a Visual Basic or see sharp methods as well in excess look at some features and IntelliSense related calling Web services from JavaScript reference to want to do is edit Web service to our website here so what add a new item at a Web service and will call this test Web service law at it and then as the standard hello world that s just changed it slightly here get message and will
Minute 16
Take an inbound argument as a string and will do is just concatenate this with a low Arielle and then the other thing we need to do is to add an attribute to indicate this is a script based service lets go up here and let s add a system Web script services script service attribute their wish y all said here we re now with our Web service say that let s switch back over to our default ASP asked page in the first we want to do is go down here in the form and we want to a script vendor to go IDE screw manager and a run in the goals
Minute 17
D rer here we go and we know what AAA is the service reference to the Web service which we just created and so add the services element and then within that web based service reference element in this case the path to our Web service is tested Web service slammer should be all set with that now if we go back up here to our script block at the top of the default ASP XP page and in this case we want to call a
Minute 18
And including all of the parameter information that we had it to do so will say Chris so that s an example of how you can get IntelliSense for Web services in your JavaScript which also should be a very useful tool Visual Studio OA has added some nice features related to a client libraries or behaviors for Microsoft Ajax extensions like you look it two aspects that one is the new templates for creating the items and the second is the nice integration with JavaScript IntelliSense close look at your website and add a new item noticed that there is a new templates for Ajax client behavior client control and client library in this case let s just create a client behavior JS file
Minute 19
Templates filled out a number of the major items that we need for treating our behavior including venturing the namespace as the default namespace the website up your website VB and it s also added a preference for IntelliSense for Microsoft Ajax library that we saw a few minutes ago let s save this client behavior JS here and now let s go over to our core JS file went in at another reference of Peter and this one when you specify the path to the client behavior JS file now we don t hear into our yet let long method if we take the view be gay IntelliSense for website VB the client behavior and then all of the methods that relate to the behavior sets an example of how
Minute 20
He had integrated behavior and an associate IntelliSense into our JavaScript file here court at JS and it would apply to creating a client library or a client control as well since a look at the new IntelliSense features for JavaScript and Visual Studio 2008 I know I m really excited to start using this because with the increased presence of Ajax functionality and websites and the corresponding increase in JavaScript these features will really be good for productivity encourage you to download the sample code take a look at it to your leisure this is Chris Bell s thank you for watching the video on IntelliSense features in JavaScript and Visual Studio 2008
Click here to go to original video page
Video: How Do I: Use the ObjectDataSource with a Data Access Class and Business Object
In this video Chris Pels will show how to use the ObjectDataSource as the intermediate layer between data bound user interface elements and a custom data access class for a business object. Uses of the ObjectDataSource in the GUI Design mode and declaratively in the source view of an .aspx page are discussed. In addition, the considerations for design of the data access class and business object for use with the ObjectDataSource are covered.
The following text is a software generated transcript of the video. Click on a minute link to jump to a location within the video
Minute 0
Will rule just those this will views this as objects with the object data source in ASP net with this survey committee website and in this website will we going to do is who can I have a business object which we can call customer and within a bind that customer object to the object data source in an ASP net webpage solicit up the default aspx page a bit before you get into the business object side of things when they do is place a couple controls on this webpage and it lets see the first one we re going to put on here is a review that could be the object would you use to display the data in that we also need an object data source will put that
Minute 1
Data on the form and we ll come back to configuring the object data source in the grid in a few minutes slowly want to do is have the data in this grid be bound to a set of custom business objects that we create subordinate to overhear the website and you could do this in a separate assembly for what they would hear the website just for demonstration sake is class which will can call customer and business can be our business object which contains our customer data and then we can create a companion class which will can call customer data so let s set a class customer data and this is to be the class that controls the data access to and from our customer objects so through our customer class and flesh that out first select the
Minute 2
Several properties in year of its greater private variable for the company name and it will make that a string and will create a corresponding property and that also a lot of sleepy type string and then will return from that the private rival contents and likewise will set a sense for a company and let s just put a couple more in here is the one for the city and it will creep across my property set to get and set it will
Minute 3
Turn_city and will set_city equal to the inbound value and thus create one less one wall call state and will create the property as a string in it that we have returned_state and full set_state so this is going to be our business object that stores our customer information we also need to put a constructor insider class so to emigrate to different constructors so let s create a public s of new and will choose to leave
Minute 4
As it is no part in dump routers to that constructor illustrate a second constructor and into this blood work and no allow a the inbound constructor to have parameters to set the different values in our company object so we ll see but as string and then we ll say the city to live for city string and will say us via a substring and out before our state and then named out in his constructor will disable me got company equals sealant bleeding down parameter value meet at sea will see T Y and me State 60 and LOL is the ease of the instantiate an instance of the customer object and set the different values of the properties
Minute 5
It don t have to have this secondary constructor as I ve been here to set the about properties is just a convenience factor to see when we do the data access by that just makes it a little easier to create instances of our business object now let s go back over to customer data with you as I said is our customer data access class first thing I want to do here is Ed to import statements just make does have a little as typing and the first one is system data and the second one is component model and you ll see how we can use that component model namespace in just a moment
Minute 6
This 80 shared class words should as they were to make the methods have shared inside this class classmate methods for major operations as a person who can make one for inserting tools a public shared insert arts are a set of insert customer and in down to the insert customer method work in a pass an instance of our customer class so we ll call that customer as type customer then let s do one for updating a customer at the very similar call this update customer and it ll pass the customer object and
Minute 7
Let s make one for deleting a customer and shared as well so will it delete customer end in this one are old past day and a customer ID as an integer and then we need a method that will essentially select our customers and let s be bad shared as well this would be a function because we re going to return our customers data and will call this get customers in over there that do here is return a data table now there is several ways you can approach making this get customers method well
Minute 8
One would be to return a data table so essentially what walked the database like the data and return it back as a data table you could potentially return it as a data set that clinic gets away from our custom business object approach and another thing that we can do instead of the data table is we could return a generic collection of customer objects and Israeli law to the basic operation of the object data source in relation to these custom does this object that there is a variety of ways that you could approach this in what you have to do is think about your own situation and determine which of those approaches might be the most efficient for you but the reason on a return a data table is that that s a very quick and efficient operation the alternative returning a generic collection of customer objects would mean that I have to instantiate an instance of
Minute 9
Customer object for sound every customer that I retrieve and then put them into the collection so there is a lot more overhead associated with that and there may be a reason that you want that collection of customer objects because it gives you instant instant access to the customer data in a customer object format but in this particular approach were saying okay we re just in a return a data table because they get customers method is purely for selecting data and displaying it on the screen and we re getting a little squiggly line on 21 because we aren t returning a data table so for the moment let s just return a new data table and that will suffice them to come back and fill the Senate in a moment when I start to show you the relationship between this customer data class and the object data source in effect before we start
Minute 10
Rested with the adapter data source when they put their second get customers method in here so you would see how that might work separatists to another public shared method click as customers however bold when you return from here would be a system collections generic I collection because the work for the object data source it does need to be a type are strongly typed collection and the type of question that we were to return is of type customer objects so what we do here is returned and this is just as this account of a stub at the moment and we go to system collections generic and let s just return a list of type cost
Minute 11
Are in me just comment out this second get customers method because such a suit in the squiggly line on 19 because this has the same signature as to get customers will comment that out now let s go back over to the webpage and take a look at the object data source for the first time to start see the relationship between the object data source and our customer data class swiftly to the smart tag for the object is worth and select configure data source and Thursday were prompted with is choosing a business object and if we look at the list you see there is several business objects listed here the customer and customer data is also this check box on the right to show all the data components and we ll come back and look at that it promoted in just a few minutes have been assured a bit about the connection between this check
Minute 12
Ox and how you code your business object data access class soared up a customer data because they know that s where our data access methods are located and will click next and now you can see where prompted to define what methods in our business object relate to selecting updating inserted and deleting our data and if we go down to the slums like to absolve it out to choose a method and you ll see that we have kicked customers and that s the only one that s being displayed because it s the only one that s a function that returns a set of data that might logically be used for the select statements of the some intelligence here to this wizard in determining what methods are business class or appropriate to did pick that and when we picked the dead customer he can see that it s now scientists are select method and
Minute 13
To do now is go back to the data access class or put a little bit more information in there and will return to this wizard and completed on just a click cancel it alone because I don t want out some of the food to get generated in the source view afar paid just quite yet so click tickets he clicked cancel and I can see that the relationship to the object data source and a data access class to know in a classless look at how we can make the data access class more intelligent or I should say puts him at use the data access class that made the new wizard look at the data access class in a more intelligent manner so will want to do is put some attributes here in our data access class and the first armored output is the key to object attribute as you can see it has two methods are gestures
Minute 14
To inbound parameters that relate to whether or not it s suitable for binding it with an object is source and where artists a true because it is and what this attribute does defines our customer data class as being a bindable class with the object data source and the mages compile our class
Minute 15
Be customer data class because it is marked with that data object attribute soon also back over to her data access class and we can put some similar attributes that are for the methods in the class so lets down and make this a data object method and then you can see there are some the new values to indicate what type of method if this and this is an insert method and then there is an a second signature for this and it s what whether or not this is the default insert method and will say is true that and now we re going to go down and I will put some attributes on the additional methods so say this is also a data access or a data object method and this is an update method and yes it is the
Minute 16
Default walk the same thing for delete data object method of type delete the default and get customers in this one is of type select and it is also the fault insurgency here if we had multiple methods that selected data we might mark the primary one would be to attribute as we ve done here forget customers and the other was my also be marked as a select data object methods button may not be the default method flex compiler class
Minute 17
And then there we are little back over to default is the next configure our object data source and will uncheck this just so we can see everything there is both are we ll pick methods or classes will pay customer data for the next his finger right what it s done now is it s automatically picked our get customers method because it knows that is our default to select method and lets forward to the update path it has also selected the update customer method by default because we have the attribute on it let s just do the two of those at the moment click finish and let s go back into the source to which we haven t seen yet and take a look at some of the things that are inherently just reformat things a little bit so we can see it better
Minute 18
On the screen and you really have a couple or ad views here the hand limit is Rudy ordered these a little bit cousin and read a little more logically so what we have as attributes object data source are what is the type name that is the object for our as our data source in this case is our customer data class and then what is the type of object that is used within this data access class for insert update and that is the customer object and that we have the corresponding names of our different lead insert select an update methods and then you can also see in our we have some delete primer is here because for members of the delete method takes an age term containing the customer ID so we re able to specify what primary is in this
Minute 19
These four are not delete method we also could have separate parameters defined for save the insert method because in that case we might not be passing the customer object we might be passing individual values of like customer named city and state so we can define those insert parameters to be different than the default data object type which is customer source work with a select method first look back over customer data in a air we have in our select method is right here and we have a little stuff in there at the moment which is just returning a new data tables and would not return any data and what I ve done here is create a custom code to create a data cable and out of the sky taken from the toolbox and drag and drop it in here week
Minute 20
As this will save us from behind in that it would take a while for me to type all this while you watch is what this does is it simulates going to the database and getting some data about our customers to his critics are three columns companies city and state and returns them and after putting some data into those column so let s go back over to our default aspx and just do a couple things here and I m just in a set the auto generate columns property of our grid to true and then are data source IP is going to be equal to the object data source one is a copy and paste that somebody make sure we get that name correctly and we could do the same thing
Minute 21
Up in the design view we could select the object data source one of just doing it down here in the source so you can see that there s both approaches now if we go into the design view let s fire up our website and see what happens so before we do that let s just go over into customer data and market customer that the disparate breakpoint here at line 26 and we can see that we do hit this method to retrieve our data for our data source to look back over to default aspx and it s fired up in debug mode s first time we started up sources can add debug most of the web config and page starts slowed and here we are in the method get customers getting our data is just to get out in three decades table populated and will hit F5 to let it run from here and here we have our data coming up in
Minute 22
It really sickens me that is bound for data table from that s coming from our business object smells come back and just take a slightly different approach and one can I do this time is broken up flush out the code here in our data access class for this alternative way of getting that customers as a collection of customer objects and we ll see if we can mind back to work great as well slipped on comment or other method here and we ll just can you give this a different signature organ call this by object is to get customers by object and rather than just return this job like it did with the data table approach I have some code over here that I d made up ahead of time and there it is focused copy that it is pathetic
Minute 23
And tormented and this is simulating it as if we went to the database got the data for our customers and then create a new instance of the customer object and edited to this generic collection of customers which I have called customers in this case to cyclical customers the local rival for the data table off about 60 over using a constructor that is set up were passing in the company name city and state when we re creating each new instance of the customer object and we want to put a data object method attribute on this one as well and it will go down and create that can and will say this is of type select but this one were to say false this is not hard to fault the select method for the customers
Minute 24
Is now role as head is not limited to break the year line 4694 to default the SPX and the school I could do this here in the code but I want to go into the design view to show you something that happens to so you re aware of it Salieri are we need to change the method that s been used for selecting our customers less going to configure data source for the object is worth going to keep the customer data class as a business object and you can see we have the I get customers method and what we want is the get customers by object and you can now see that is available in our drop down it knows its select savings and only take that and let s click finish and see what happens is the grid refresh to intelligently know what properties are of our customer object and let s go back
Minute 25
Into the source you because here we can change it to get customers by object and that s all that changed here now let s fire this up and slowly get all fired up in a debug mode and as the page loads you can see who we are and are committed school lucky we are not get customers by object method just can create instances of the customer as well let it go from there and here they are on the page just like we had from the data table there is one slight change here and that is the order of the fields is toward the columns I should say is slightly different and that s just reflecting what s in our customer object so what we could do is go back here in Tuesday to fault a SPX page and or auto generating a
Minute 26
Columns we could say false here and we could specifically set up bound columns in fact let s do that sells a false go in here and will say columns and then within columns we want as a downfield syllables a data field equal to a company in the header text is also equaled company and it is put another one in a data field equal city header text is also city and in fact let s just leave it at that let s just leave to columns even though we know that the state is there it well as well and see if we get that s let s fire up there we are in our method and
Minute 27
Will continue on president five and up comes Art grid which this company and city so that shows you not only binding to the customer object but it also shows you that we can define the data fields which in essence are the properties of our customer object you re probably familiar with doing this when you have said it is said or did a table where you specify the column names but in this case were actually specifying the data field is a property of our customer object so looked at selecting let s look at how we might do us an insert update or delete to do that we disagree to start editing tool lets go into the grid edit columns going to add a command field for edit update cancel him to be the first column in our grid by default the show edit button is equal to true will just leave
Minute 28
To get an edit button in our grid and now when we had it and decrease goes to update it because it s bound to object data source age should call the update customer method in our customer data class lets go over there set a breakpoint in the update method right here and well we would typically do here in our update customer method is performed the operation such as calling a stored procedure in our database passing inbound parameters to that store procedure obtained from the instance of the customer object to actually update our customer data and we also might refresh the grid back on that page in the code behind default ASP ask to look good to go let s just doublecheck okay let s start up the debug mode here we get our Griffith
Minute 29
Said it say IBM will change the name to test that the update link can see here we are in balance to what the update method in our customer data class hears the instance of the customer object lets expand them down and you can see that the company name coming inbound inside of our customer object it is indeed test which reflects the change we made in the grid so we went on to update the data in the database refresh the grid then we would have that change to our customer data and would follow very similar approach to say the leading or inserting a customer data we hook up the user appropriate user interface element whether it s the created details view wore a custom made forum with text boxes etc we hook that up so that the appropriate method either insert for nuke
Minute 30
For delete for an existing customer was called in down we get the customer object and then we would make the appropriate changes in the database and is one part of this versus lobbyists shut down the webpage one of the back over to the default ASP next page in the source view and point out that I mentioned early on that you can have parameters in this case for the delete parameters we could also change things like this picket at select primer is here that passed in our justice like we did at insert parameters here that passed in the company name city and state as separate parameters say they re coming from eight series of text boxes we could mind to those appropriately passed in the individual values
Minute 31
To our insert customer method in a data access class and use those alternatively we could leave it as a customer object construct an instance of the customer object in the code behind on far page and passed that customer object in down to our insert customer method and it is this more accustomed to insert a different parameters to methods you would want to look at the events associated with the object is source specifically look at the inserting updating and deleting an offense and those events give you an opportunity to manipulate the parameters going in down to the corresponding methods in your object data source source can see this a number of ways that you can approach using the object is source we ve covered a few of them here but it should give you a good perspective on how the basic functionality works as well as the flight
Minute 32
Ability and using the object data source in different ways and then you can figure out in your own situation what the appropriate approach might be for your particular application to occur to download the sample source code that comes with the video is available in both see sharp and Visual Basic then you can use that as a starting point for figuring out the best approach to using the flexibility of the object is forcing your particular application is as crisp else thanks for watch this video on using the object data source with the custom business objects in ASP net or wall
Click here to go to original video page
Video: How Do I: Work with Master Pages Declaratively and Programmatically in ASP.NET
In this video Chris Pels will show several aspects of defining and using master pages in an ASP.NET web site. First, see how to create master pages declaratively using the ASP.NET master page model and learn what information is best suited to a master page compared to an individual content page. Next, see how to programmatically assign master pages on-the-fly in an individual content page. Also learn how to create a base page class which assigns a master page programmatically for all pages that inherit from the base class. In addition, see how to set the master page in the web.config file. Lastly, see how to access elements in a master page from an individual content page including some best practices for structuring access to master page elements.
The following text is a software generated transcript of the video. Click on a minute link to jump to a location within the video
Minute 0
Of whole skills so you will learn how to work with Master pages in ASP net website lets get started by creating a simple website now many of you are probably familiar with the concept of the Master page because it s something that I m sure many of us who developed websites have encountered from one time twin other until Visual Studio 2005 to really wasn t a systematic way to approach this in ASP net or at least he had to roll your own when created what so just went to assess to what the concept of a master page is and how we can use it let s go over to the ASP net website and look at the layout of this page and many
Minute 1
Any times you have a website similar to this where you have the header area at the top where you have your navigation in a various types of content inside the page and every time you move to a different section of the website you would want the header area with navigation to remain constant you might also have a footer area down the bottom such as we see here and you would also want that to be constant from one page of the website to the next no prior to the Master pages in ASP net who had to figure out a way to do this either on your own where you would have created what is essentially a Master page Roche would have to include the header and footer HTML content in every webpage that you created that becomes problematic because obviously then that s like repetitive code in that every time you want to make a change at the code each
Minute 2
Individual pages and make that change so Master pages and addresses this issue Back to ASP net and Master pages are essentially nested HTML pages and by that I mean you create a Master page and then every time you create an individual page you refer to the Master page and say yes I want my individual page to be based on the master page and then in essence your individual page is nested inside of the Master page and that gives you a consistent look to all your pages in that they all have whatever content you put on a Master page where to start by creating what s called a Master page file for our website like what the website and add a new item and notice here the list templates is one called Master page that sought to use for treating the
Minute 3
Shoes and Murdoch called this default master adds it to the website and noticed that it has a dive master extension and the reason I call the default master that s by no means requirement have been named master within the page name but that helps me avoid conflicts with pages called just default a call to fault master does the little nuance that I ve learned over the time of using Master pages took a semester page here looks very similar to a traditional default ASP X page with a few differences there is an added master directive rather than an act page directive and then there s a server side control called content placeholder and content placeholder essentially represents the location in the Master page where any content
Minute 4
From the individual ASP X page is placed in what I can do is create an individual page here and not that utilizes this default master page and doubt become a little more clear and never to come back and fleshed out the layout of this master page splits can create a new webpage and I m a call this webpage of furniture with Sabre creating a online store type website and would have pages represent the different categories of things we sell and want to go to create this page to notice is a checkbox select master page will check that here s a list of our Master pages in the website kernel really have one default masterful take that notice this furniture page looks pretty different than the regular default ASP
Minute 5
Page there s a lot more elements here in the default ASP experts in our furniture all we have is what s called a content element or control that represents a link back to the content placeholder on the master page notice here we have an attribute called content placeholder IDE and that s content placeholder one back to the Master page received that is the relationship to this content placeholder here on the master page and then hearing content one whatever we put inside of this is essentially any regular HTML or ASP net server control that would put on a typical ASP page so let s just put our furniture here has any these attacks that allow us to see that we are indeed on this page
Minute 6
And now let s go back overtly to say that we ll go back over to the master page no master page by default here just has this content placeholder so it really doesn t look anything like our ASP net page of a cell with a header and footer so let s go ahead and put some additional elements here in the master page and add another dude here which we can call header and a medical one down here below the content area and will put the text footer in there for the moment Elijah said a little bit of in line style here so this will or wouldn t do here is routed to say how a height of 40 pixels and will save background and it will make this a yellow De Soto stand out a little bit only look at it and on the
Minute 7
Be that style mountaineer put it in the footer gave and what we ll do down here is will just put blue is the color so now was starting to have a Master page looks a little bit like ASP net and the censors got a header followed by a content area and the footer on the bottom else back to our furniture paid for a moment and we still only have the text furniture here but let s go into the design mode on our furniture page and now organizing for the first time is the impact of using a Master page Sybil was here visually is the merged of the individual furniture page with the Master page at the header area to top the footer area at the bottom and then here in the middle is our content area and noticed that it
Minute 8
Is an area where we have the design surface just like we would have the full page design service in a regular default aspx page that does not tied to a Master page however we can only so called idiot or a content in our furniture page within the content area are essentially that s representing what s inside the content control so if I were to take something like a button and drag and drop it onto the design surface of the furniture page and we go back to the source It that button is being edited here inside of the content server tag in our furniture page on it as a line break in their now what makes this furniture page tied to the master page is the master page file attribute up
Minute 9
During the page directive and notice that Paul points to the default master page and we created up in the root of the website so essentially when you tie in the GUI designer when he reentered the new item added a web form and selected the Master page although that s doing is putting this master page directive and then including an ASP content control by default so we can do that manually as just as easily summer take this master page attribute that we have here when a gorgeous default SPX and I m in a paste that into default SPX and what we need now is to remove some of this extra HTML element is afterward were getting an era here already so that world to his scientists cannot take all this HTML and get rid of it
Minute 10
And go back over to the furniture page and I m going to take a content control would have put it in here and then we ll just close set out to now are default page is identical to her furniture in that it s using our default master page with the design mode here on the default and you can use it with a safe welcome to the shopping site and that s being added here inside of our content tag on the default page so seen how do creed or associated in any individual page with a master paid using a GUI wizard declaratively here with a Master page file attribute you can also do it programmatically lets go do that you can add another page to the site web form and Islam Burkett were going to call household
Minute 11
For household goods and I m not going to select a Master page went back to our site and we want to end up with is a has a large as they tied to a Master page plummeted do is just get rid of all the HTML inside the page and believed leave the page directive and now we want to go over into the code behind here the code behind page what we can do is programmatically assign a Master page so it went as a defense
Minute 12
I ll add you that we saw in the declarative syntax of the SPX page so many to do it is here we would just put the default master master and that will attach that master page to the individual household page slots go back over the SPX and to put some content in there and women do is copy will we had in the furniture page and put a content tag in here and what does that change furniture and household and now if we go to view this page will will see is that this will have all of the contents of the Master page just like we saw with the other pages and there s a few nuances here notice that I did not assign a master page declared Tivoli here and what that does is it prevents us from going into the design mode
Minute 13
And seeing the representation of the Master page in practicing in an era creating the content control hot because it needs to be in the context of a master page so we could go in here and go to the Master page file at the root and in their pick the default master and then if we go to the design mode we would see the contents of the Master page merged with our individual page so where this is is more useful this programmatic approach is when you have a safe standard Master page and then you may have a situation where you want to apply a different master page when the page is being loaded so you can externalize that to the web config file or you could he bring them in from information database and other situations like that but if
Minute 14
Emulated the little nuances are limitations in terms of going at in design mode that you need to have a Master page file here in the declarative syntax and if you need to set the Master page programmatically across multiple pages on your site or effect may want to do it in a number the pages another approach to this is to actually subclass the net page class and set the default page in narrative must say the Master page in their the way we do that is we would have a class to her website and let s call it a site page at an app code folder and we need to inherit from the page class lets at an import statement and Web UI and then we need to inherit from the page class
Minute 15
Then within this new class we need to go in and create embedded and if its members are sitting in a sign the Master page programmatically has to be an opinionated event or earlier in the page rendering cycle and hear what we might do is very similar to what we had before and we could lead this value from a database Web config file or other location and that s what we would likely be doing here because we would want to set it based upon the current situation barometer do is just hardcoded in here and then you can flush out on your own how you might want to read the Master page file from a different location soldiers in the default master and that will set the Master page file smell in order to use the site page class list at another page to her website and call this one tool
Minute 16
And one didn t do so I get there that do we support them and then the light is that I m going to select the Master page and it will just take the default master this as our page however I m going to into the code behind and instead of hat and hurting from system Web UI page will get into is within inherit from the site page class that we created this is automatically going to a sign that Master page and we do have a Master page file directive here so that when we see it in a design mode we get our header and footer and what we want to do however is let s create a second master page and use that one is
Minute 17
Original assigned programmatically at our site page class a battle flush out the concept little bit more for you this also shows us that we can have multiple master pages within our website project was that a new item Master page in one uses that I found for an additional Master pages used to have one master page that has my navigation another so called standalone and what this does is it is made look very similar to the default master but it doesn t have the navigation for examples on the order to my default master and just take what we have here as far as it did go back over to the standalone master pays things in and in this one I m deleted as his government would back to the default master and were within it do in this one
Minute 18
Is now and we see we ve added a menu so will he go back over to the standalone wanted to do is take that many of them out of there so this would be a non navigational page and then I m going to go over here and instead of default master in the site behind class I m had the standalone so now even though we have the Master page in tools right here as the default master with the navigation will only run this page we should actually see that it is using the standalone ouster before you do that let me just put the word tools inside our content control so we can tell were on this page to now will view tools in the browser and will we see is our header and footer but no menu so it is using
Minute 19
Standalone Master page and just to assure you that s true let s go back to furniture which uses the default master and do that and here in that furniture page and we get the navigational menu now witnessing the Master page file using several different methods in each individual page either with the vast page file attribute are with this new site page class and there is another way they can do it if you know that you can use the same master page file across all your pages in your site you can set it in the web config in fact is that even the majority of pages are using the same master page if you do that and then you could override it on those individual pages or you want to use a different master page the way we do that in the web config that stunningly pages element and you can see that there is a Master page file attribute of the pages
Minute 20
Only and only need to do is use fill in information here just like you did in this attribute in the page directive on an individual basis of a disco default master master and doubtless saw in the default master page as the master for all of the pages on our website and I m going to take that out here because we can continue to use the individual Simon of master pages so let me just close this out now I liked the little time on is the issue of communication between a content page which is your individual page such as furniture aspx and its corresponding master page default master and what s going to default master and I ll show you what we might want to do he and his page is formatted and would like to do in this page is for some of the
Minute 21
Menu and it s so addictive and we cannot leave the header tags as it is for Molyneux in at another give an insight as to because this is a shopping site we like a list of hot products for just that detects hot products in here and the issue is that this list of hot products which is in our master page we would like it to be different for each one of our content pages so for example war on furniture aspx we like to display a list of the hot furniture products up in the header area of our masturbation many documentation between the Master page in the content page so how would we do that although they go into this Dave and I can make it a server side control by putting a run at equal server and amusing addition this example you could beat any ASP net control that you have in your
Minute 22
Header file war anywhere else in the Master page having to this ID who don t call this a hot products contact us and now we have this dude inside of our Master page who want to access it from a content page so let s go down into furniture and inside the code behind for the furniture of content page lets go into the load event for the page and in the load event is where we want to dynamically change what s inside that tiff on the master page so how do we do that well as a couple ways that we could do that and the first one is this so lets to mention a new tribal animal coaches call this a hot products and will to mention this as a system Web
Minute 23
UI HTML controls guide html generic control and this is could be our artist injected control to the master page and organist at that equal to in the page object Thursday in master page property and this represents the master page so the end and on the master page renews fine control and controller want to look for is the hot products content to no hot products variable represents the gift on the master page and we could just go to hot products inner HTML and inside here we can put any HTML that we would like and let s just put the furniture hot product
Minute 24
And then represents so I was getting a list of the database wherever and of the hot furnishing products and displaying data inside of the diff tool view the first page in the browser and indeed we see that the French hot products text is being inserted into the header of the Master page so that s working the way that we want to just assure you that that should let me comment out fresh hot products they and minorities summoned that Texas is the page again and we ll see this time it just has hot products on comment this of this approach works good it does require us to know the actual name of the give ID in the Master page when we re finding that control and well it works its
Minute 25
Believe not the best approach because if we need to change the name of that gave on the master page then we have this intimate relationship with all of the content pages that might access that do so a better way to approach this ID to expose the contents of that do has a property of the Master page in a status similar to having no exposing a the actual variable in when your classes as compared to exposing the contents of that variable through a property in your class muscle back over to default master am going to go into the code behind Faulk Master and let s enter property here so public property and calls is a hot
Minute 26
Products and content as it is framed and what we want to get here it is in the hot products content did so will say I you wouldn t have a problem like to see is a mechanical top products content for sets the name of fictive so when they go over into the master page and underwear is it right here and we ll just call this container and will solve the problems will go back into the code behind and will call is hot products content container inner HTML so that s going to return the contents of it and
Minute 27
Could do a very similar thing you forgot to return and I go through to get out here and say this is a hot products content container and we can assign the value inbound value to that end we just need to put the inner HTML there as well and it now looks good to know if encapsulating your duty and is public property on our master page and we want to access that down on our furniture page 1 order to do that we need to do what s called strongly typing and master page we need to go into the SPX and we need to add a directive that called Master type and Master type needs to point to the page the master page that is some are pointing to default master is
Minute 28
Star Master page that contains our hot products content property so now with the Master type attribute in our furniture page now to go back to the code behind for furniture and let me just comment out this first approach that we did and only to hear in a sample source code for you if you want to see that approach and now we go to the Master page object here in the code behind the sea that we have direct access to that public property hot products content and we could assign and new hot products who products for furniture to that now only view the page you should see this text in our master page or should I say in the messed up
Minute 29
Each area of the furniture page lets you furniture his jacks and indeed here we see the tax in our header area of the Master page while reviewing the furniture ASP next page is probably a better approach in that it s kind of abstracting away in ashes abstracting away in the Master page to a public property to look at a number of different aspects of master pages of both how to create them and how to use them within individual pages I think the next step for you is to download the sample code that comes with this video look at it in and plan out how you would like to use Master pages in your website and an use some of the sample code as a basis for implementing your particular approach this is Chris tells thanks for watch this video and using Master pages in ASP net
Minute 30
Of rule
Click here to go to original video page
Video: How Do I: Create and Use Application Level Events in ASP.NET
In this video Chris Pels will show how to create an Application Class File (Global.asax) that contains application level event handlers such as Application_Start and Application_BeginRequest. Then the sequence of application level events in the application lifecycle will be discussed as a basis for determining where certain types of operations would be best performed during the application lifecycle.
The following text is a software generated transcript of the video. Click on a minute link to jump to a location within the video
Minute 0
Role just as this you will learn how to use Haitian little offense in ASP net this gets sorted by creating a website and this simple websites in Visual Basic and if you download the sample source code you also see these same demo website I m doing here in Visual Basic and see sharp in order to use application level events in an ASP net website you need to have what s called an application level class and you add that class to website by editing a file called global aspx Citicorp to the website and at a new item to see here on the list of templates is one called global application class and that adds the global ASA X Files Sawyer that tour what
Minute 1
Website of the global ASA ex is a class that extends the HT keep the application class and the first time a user visits the website the global ASA ex is compiled into a class in a subsequent visits that class is automatically loaded so does have to be recompiled however for example if you change the global ASA accident replace it up on your website then the next time that a user visited the site he would get recompiled again and stored on the server as you can see Visual Studio has added several stubs for some the application level events in a following naming convention is very similar to the page level of density might be familiar with so its application_in the name of the event soon as Casey at the start and an era in you also see that we have some session state offense here so the global ASA ex is also where you would add code to have been
Minute 2
Tap and when you begin and end the session plus get started by showing how you would add some code to one of these events in which might use them for a number to come back and talk little bit about some the other events are available in the sequence these events occur in so let s do the applications start event ending here what we re going to do is store several values in the application state so will say application and the first from the store is the title of the application in a set that equal to highway use application level events and the second one will produce the counter for the number of users or say application number users and will set that to zero in
Minute 3
Delay and let s put a third one called application counter and this is just in account the number of times the application has been accessed will set that to zero by default as well just format the code you re little bit forgone into our next step want to do is add some code to the application begin requested and to do that I need to add a sub here for that event is one of when they do is just copy the applications start and pasted down here below and then we ll change the name of the event has said the naming conventions this application_event name just some simple just put begin requests
Minute 4
Or application variable and application state so we ll do is to say application application counter is equal to and this is an integer but it s stored as an objects organ have to change its type so we ll do is we ll say seat type and now get the application counter and will convert that to an insecure in limbo incremented by one know what we should do here as well and is licensed for accessing the application for a blue one and make sure no one else is doing that slightly below lock and unlock and
Minute 5
And once for gun wallet locket knowest do something similar for the number of users down in these sessions start so will copy this could end the session start pace in here and let me to scroll up and won t change the application counter to the number of users so what this will do is every time the session starts to increment the counter for the number of users is now let s use the information restoring in its application variables are the aspx page in what I ll do is purchase through the code bind let s go to the pre render event at that and what we ll do is just right out a few of those pieces of information
Minute 6
Sadr Raitt and personals at his title equals and with that will go into the application object and get the title information that we stored this convert that to a string and for the second one will get the counter which is the application counter and will just get that value string as well and then for the third one will will do is just right out the users are able to hold a user as equals to them will get that value from the application object
Minute 7
Now or what is are just going to put a few breakpoints so we can see when these different events are fired will put here in the applications start begin request and down in the session start to let startup the website and will see that the first event is the applications start as you might expect simple store information will let it run from here next hit the beach in request as the requests for the default aspx page is processed and then we start a session so we reach these sessions start at the end let it run from here and you can see we have be the title of the events or application counter of one and the users equals to want from it do is just refresh the page so we should get at another root
Minute 8
But we should not increment the users because that s in this same session preference is to let things run here begin request and as you can see the counter equals to indicate that the begin request event was hit a second time as he saw it with these three events that we implemented that there is a specific sequence in which these events are fired such an important consideration when you re designing your application and overall there is almost 20 application level events and I m not indigo for them one by one here or visit page or an MSDN dad has a good overview of the ASP net page life cycle as well as some information about the application level events let s go over and take quick look at that here s the page and I ll put a link to this page in the source code as comment so you can access it when you download the sample source code
Minute 9
Tell with an overview of the lifecycle of an ASP net application goes to the major stages that occur and down here when it gets to this stage is what s called the processing by the HT key the application pipelines and during this part of the processing is where the application level events occur in senior number three is the begin request event that we used in the demo just a few minutes ago and that s followed by a whole host of additional events in his events related to authentication authorization to caching than some about state that session state and down your number 15 is the actual processing by the handler and for example it s a page of this is where the page processing it occurs multipage level of and so are fired and then that s followed by several posts handling requests for the
Minute 10
State and some other aspects of the application lifecycle is a section here about the lifecycle events in the global ASA asked that we ve been talking about and it lists the major start and end events for the application and it is right down here and you can see here is the application_event name convention that we talked about for specifying the events in your global ASA text file legal appear to the top of our script and will display the comment line and I ll paste in the URL right here and open no right above it that says ASP net
Minute 11
Or event name and then insert the appropriate code to our process for that event and we did some relatively simple operations here just writing to the application state object because of a pretty broad nature of events that are provided you can really intervene and do some pre powerful things at various points in the page processing if you ever need to do so so that the real focus in using application level events is in learning what the page lifecycle contains for an ASP net webpage and then deciding which points in the process what you need to intervene to encourage you to download the sample source code is said it s available both in Visual Basic as we done here and in C sharp I also encourage you to read the MSDN article on the link that put the top of the script here online sex and get a good understanding of the
Minute 12
Lifecycle and ASP net this is Chris tells thanks for watching this video and how to use application level events in ASP net of oral
Click here to go to original video page