Exam 70-515 Pt 1 Focus on Developing Web Forms Pages

I’m going to be taking the Web Application Development with Microsoft .NET Framework 4 in the very near future.  Since I’m going to be scribbling a few notes and studying up, it seemed like I’d publish my studies.  With that, here is round 1.  My intent is to study each focus area and make a blog post about it.  Beware, these could be some rather messy blog entries, I’ll try to keep them somewhat cohesive though. (Note, the base of these notes are from the actual 70-515 curriculum and also Niall Merrigan’s Blog Entry “MCTS Web Applications .NET 4 – 70-515 – Objectives List Part 1” helped a lot!  I’ve of course added my extra 2 cents to most of these.  Cheers!)

Focus Point:  Developing Web Forms Pages

Configure Web Forms Pages

A page directive is a page-specific attribute used by the ASP.NET page parser and compiler.  Some of these attributes I’ve linked and detailed below:

  • Page.AsyncMode Property – Sets a value indicating the page is processed synchronously or asynchronously.  The AsyncMode property is set by the Page parser when code for the page is generated. Use the Async attribute in @ Page directive to set this value.  Asynchronous pages do not work when the AspCompat attribute is set to true or the Transaction attribute is set to a value other than Disabled in the @ Page directive.
  • Page.AsyncTimeout Property – Gets or sets a value indicating the time-out interval used when processing asynchronous tasks.  The asynchronous time-out of the page represents the amount of time that the page will wait to perform asynchronous tasks. In most circumstances, do not set this property in code. Set the page asynchronous time-out interval using the pages element of the Web configuration file or in the @ Page directive. Values set in the page configuration section are overwritten by the page directive.  Define your asynchronous task using the PageAsyncTask class and register a beginning, an ending, and a time-out handler. If the asynchronous task does not complete in the time interval specified, the time-out handler will be invoked.
  • Page.AspCompatMode Property – Sets a value indicating whether the page can be executed on a single-threaded apartment (STA) thread.  This allows the page to call STA components, such as components developed with Visual Basic 6.0. Setting this property to true also allows the page to call COM+ components that require access to the unmanaged ASP built-in objects. These are accessible through the ASP ObjectContext object or the OnStartPage method.  In most circumstances, do not set this property in code. Set the aspcompat attribute to true using the @ Page directive in the .aspx file. When the page is requested, the dynamically generated class sets the property.
  • Page.Buffer Property – Sets a value indicating whether the page output is buffered.  In most circumstances, do not set this property in code. Set the Buffer attribute to true using the @ Page directive in the .aspx file. When the page is requested, the dynamically generated class sets the property.
  • Control.ClientIDMode Property – Gets or sets the algorithm that is used to generate the value of the ClientID property.  The values are AutoID which generates the value by concatenating the ID values of each parent naming container with the ID value of the control, seperated by an underscore character.  The Static value sets the value statically and makes the control the top of the hierarchy of naming containers if it is a container.  Predictable algorithm is used for controls that are data-bound controls and concatenates the ClientID value of the parent with the ID value of the control.  Inherit sets it to the parent control.
  • Page.ClientTarget Property – Gets or sets a value that allows you to override automatic detection of browser capabilities and to specify how a page is rendered for particular browser clients.  If you do not set the ClientTarget property, the HttpBrowserCapabilities object associated with the Page.Request property reflects the browser capabilities associated with the value (alias) that you provide.  uplevel, which specifies
  • CompilationMode Enumeration – Defines constants that specify how ASP.NET should compile .aspx pages and .ascx controls.  Members include; Auto sets ASP.NET to not compile the page if possible, Never states the page will not be dynamically compiled, and Always sets ASP.NET to compile every time.
  • Control.EnableViewState Property – This one has been the disdain of many serious web developers, as the view state becomes a horrifying beast to deal with.  But I digress, it may appear on the test so know about it.  🙂  This property gets or sets a value indicating whether the server control persists its view state, and the view state of any child controls it contains, to the requesting client.
  • Page.EnableViewStateMac Property – Gets or sets a value indicating whether ASP.NET should check message authentication codes (MAC) in the page’s view state when the page is posted back from the client.
  • Page.ErrorPage Property – Gets or sets the error page to which the requesting browser is redirected in the event of an unhandled page exception.
  • Page.MasterPageFile Property – Gets or sets the file name of the master page.
  • Page.MetaDescription – Gets or sets the content of the “description” meta element.
  • Page.MetaKeywords – Gets or set the content of the “keywords” meta element.
  • Page.Theme Property – Gets or sets the name of the page theme.
  • ViewStateEncryptionMode Enumberation – Specifies whether view-state information is encrypted;  Auto sets the encryption by calling the RegisterRequiresViewStateEncryption method, Always sets it to encrypt always and Never does not encrypt even if the control requests it.
  • Control.ViewState Property – Gets or sets the view-state mode of this control.
  • Control.ViewStateMode Property – Gets or sets the view-state mode of this control.
  • Compiler.WarningLevel Property – Gets the compiler warning level.
  • Saving and reading values in View State:  Save Values / Read Values
  • Auto Event Wire Up – i.e. ASP.NET Web Server Control Event Model.
  • PageSection.EnableEventValidation Property – Gets or sets a value that specifies whether event validation is enabled.
  • General configuration settings (ASP.NET) – This topic covers web.config files and setting up configuration sections within this file.  Some of the topics to be familiar with include; connectionStringssystem.web, configSections, appSettings, location, System.Configuation, and System.Web.Configuration.
  • XHTML Standards in Visual Studio and ASP.NET
  • Editing ASP.NET Configuration Files – Case-sensitivity, custom sections, remote configuration files, etc.
  • Making controls easier to access via JavaScript since they’re often cryptic…  Walkthrough:  Making Controls Located in Web User Controls Easier to Access from JavaScript, How to:  Access Controls from JavaScript by ID, and Walklthrough:  Making Data-Bound Controls Easier to Access from JavaScript.

Implement Master Pages and Themes

Implement Globalization

Handle Page Life Cycle Events

Implement Caching

There are a few more topics for this section of the test, I’ll follow up with the remainder of those notes, and move on to the next topic section.  Enjoy…

Clash of the Titans

Over at Microsoft’s Partner Conference (WPC) there is the awareness now that Azure (Microsoft’s Cloud) is absolute their big push.  I’d say it is by far their biggest push among products right now, maybe even more so than Windows 7.

The other big announcements at the WPC are really just a continued push of the Windows 7 Series Mobile Phone and Ballmer stated that, “You will see a range of Windows 7 slates. They will run Windows 7. They will run Office. They will accept ink- as well as touch-based input.” via eweek.

While Microsoft is doing the WPC Show & Tell, Amazon has released some serious computing advances for their cloud with the new EC2 Instance Type, Cluster Compute InstanceAmazon CTO Werner Vogels’ blogs more in his entry titled “Expanding the Cloud – Cluster Compute Instances for Amazon EC2”.  Also be sure to check out the main AWS Blog titled “The New Amazon EC2 Instance Type, the Cluster Compute Instance”.

My Thoughts on This…

I’m stoked that Amazon keeps releasing bigger and better functionality.  It appears Microsoft and Amazon are going to quietly go tit for tat on cloud features.  For consumers of the cloud that’s awesome, anyone understanding basic economics knows that this is going to lead to bigger, better, faster, at a much faster rate than just having one king player.  I still ponder how intense it would get if Google actually got into this play, since they don’t seem to have any intent to play in the Enterprise Space.

However Amazon’s release is cool, I still am waiting for these next few releases when Microsoft really starts laying on the heat.  Amazon is still, by far, in the lead over Microsoft’s Cloud Technology and Capabilities.  However, one has to keep in mind that Azure was released in February.  Look at what is available now versus in February and it is shocking, especially considering Microsoft’s History.  I have to say though, over the last 2 years or so I’ve seen an amazing external change at Microsoft.  From ASP.NET MVC to Azure, the code quality improvements, framework capabilities, social media, and community involvement has been very impressive.  Even with these advances, if I had to choose between the two services, Amazon Web Services would get my dollar without doubt.

This is where I actually ponder Microsoft’s efforts to move into markets where they’ve notoriously messed up their reputation.  Their efforts into open source, and the startup realm in general, has been slow and steady.  As of today though, Microsoft has a weak foothold with startups.  Startups, in the next 5-10 years will become the major players of growth within the technology industry.  It isn’t a matter of startups being a nice to have, but a matter of survival over the next decade.  Again, Microsoft’s efforts are paling in comparison and being met with the same lackluster interest.  Amazon meanwhile, with their amazing cloud continues to rock the startup world.

What Should Microsoft Do?

I’ve got an opinion, imagine that.  Microsoft should start releasing their primary development platforms completely open source.  Not slightly, but completely.  Visual Studio and Team Foundation Services should be free.  As it is currently Visual Studio is an awesome product, and Team Foundation Services still needs serious help in some areas and is doing great in others, but together they’d be a proposition that could truly get startups going with Microsoft Products.  Be it in Azure (or AWS), hosted, or whatever.  This would get startups paying attention to Microsoft again.  Otherwise I’d wager on Microsoft continually being pushed out of the important and growing parts of the technology industry.

Then of course, I could be completely off base.  Anyone else got an opinion on what Microsoft, or Google for that matter, should do strategically or tactically?  Post a comment and give me a thought or three.

IBM Cloud Services?

I’m kind of surprised, I didn’t even realize that IBM has made some inroads into cloud computing.  I however shouldn’t have been at all surprised, as IBM has made great changes over the years.  Their offering doesn’t seem as well laid out as AWS or Azure but it is a significant presence just being IBM.

IBM Cloud Computing looks like most of the other things the company does these days, which is primarily services based.  I don’t mean web services either, even though I’m sure they use those, but literally services based versus offering actual products, hardware, or some type of applications.  They do have their iNotes and other tools like that in the cloud.  Otherwise it isn’t immediately obvious how their cloud compares to Azure, AWS, vmware or Force.com.  IBM’s website for cloud computing seems as disorganized as vmware’s or Force.com’s, which make Azure and AWS seem super well put together and structured.  With clearly defined features and tools for developing in their respective clouds.

Overall the services look attractive if IBM is already a provider of other services.  Kind of like Azure looks more attractive to the .NET Stack of Developers and AWS looks more attractive to PHP or Java Developers.  Even though both Azure and AWS support .NET, Java, PHP, and more, just from the IaaS or PaaS perspective though.

This begs the questions:

  • What are the differences between the IBM Cloud Computing Services, Azure, AWS, Force.com, vmware, and others?
  • Besides IBM, Azure, AWS, Force.com, and vmware, what other cloud services are really doing it right and pushing forward with redundancy, uptime, compute capabilities, and other key features?
  • Anyone guessing on consolidations in the future with the current big players (AWS, Azure, Force.com)?