Archive

Monthly Archives: September 2010

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…

NETDA
I went to the last .NET Developers Association (NETDA) in Redmond this week.  It was a decent meet, covering the Windows Phone 7.  For the most part it was some basic material, but good to get out and make some connections on the east side.
Seattle Android Users Group
On Tuesday it was time for the new Seattle Android Users Group.  This time the presentations covered two topics, and I’m going to quote from the actual meetup page:
“Two App Creation Engines Enter! One Exits!
In the red corner we have Abraham William who will be demonstrating live the Google App Inventor, and it’s untold powers in education and usability!
In the blue corner we have, coming direct from Adobe, Ryan Stewart to show Flash, and how Adobe is going to change the way you, application engineers, will write software!”
…and The Week Review in links…

WordPress is a great platform for blogging.  I’d even venture to say one of the best, if not the best platform.  Having so many features from just a default installation is awesome.  One of the features I really dig is the mobile format provided for phones.  Recently while doing some Windows Phone 7 Development I checked out my own blog in the Internet Explorer available for Windows Phone 7.

Windows Phone 7

Windows Phone 7, Displaying This Blog

The WordPress formatting for mobile devices is pretty cool.  The little arrow icon in the upper right hand corner will minimize or make larger the blog entry.  The little 2 displayed in the red globe on the upper left on the date displays comments.

Windows Phone 7

Windows Phone 7, displaying minimized entries.

This image shows the minimized entries.  I like also, how the months are color coded to show a clear differentiation.  This is a prime example of good UX and UI design.  That’s all I have for this blog entry today, just felt compelled to blog this as I found it to be a great example of doing a lot with a minimal amount of screen space and such.  Do you have any good examples of UX & UI Design?  Please leave a comment in regards to good UX, I’d love to check it out.

This entry is from some notes I’ve taken while reading the book Rework.  Considering my recent write up “Don’t Give me Rework Refusal!” one may consider me a supporter of the ideas presented in the book.  Out of all the books I’ve read recently, this one is definitely on the top of the heap of “things to do to succeed”.  Great book; simple, to the point, great real world examples, and shows a keen understanding of the larger business world as well.

Go to Sleep

In the section titled Go to Sleep I thought of some additional stories and events that I’ve experienced in the past.  These experiences helped me to realize the difference between me on good sleep and me on bad sleep.

Push These Chairs

One of my team leads for a team I worked with years ago stated to me, “If you come in tired, you’re useless to me, except I could get you to push chairs around.”  We had a good working camaraderie so I just laughed it off, until I came in tired one day.  Eric P. saw me plugging along yet could tell I was kind of in a dirge.  He said, “Hey Adron, see those chairs?  Could you go move those chairs over to that part of the room?”  I looked at him quizzically thinking, “I’m a software developer, you want me to move chairs?”  Then I thought back to what he had said and I realized I was tired and it showed.

:(   Not cool on my part, I was bummed.

I realized what he was making a point of and asked if I should just head out and get some sleep and come back nito the office?  He said that would probably be best, as the team really needed to be 100%.  We were all tired a little bit, but crunching and coming in the next day sloppy tired wasn’t helping project velocity at all.  So off I went to get some sleep.

In the book Rework the writers point out some key facts of the tired:

  • Stubbornness
  • Lack of Creativity
  • Diminished Morale
  • Irritability

I wanted to add a few myself:

  • Negatively Contagious
  • Misdirected
  • Oft Confused

A negatively contagious individual affects those around with a bad vibe.  Often making even those that aren’t tired, feel and act like it.  It makes the day of work more difficult and diminishes their morale as well as the tired individual’s.

A misdirected individual fits into the whole “useless” category.  Sure, they can move chairs around as my Team Lead Eric P. proved, but beyond that a tired programmer isn’t a programmer, they’re a chair mover.

A oft confused person comes to work tired, attends meetings or other high cost events during the day and adds to the confusion instead of adding clarity.  This affects these high cost events by making them even more high cost and less useful.

So if you heed the advice in the book, which Eric P. and I reiterate, GET SOME SLEEP!!!

A few weeks ago I published a comparison between hosting a WordPress Blog in Windows Azure vs. Amazon Web Services (AWS).  A major new feature at AWS has made the price shift even FURTHER into the Amazon’s Favor.  The release of micro-instances now makes it even cheaper, even on a pay as  you go setup.

The basic price difference is now about $100+ a month on Windows Azure and about $5-10 a month on AWS.  If you’re as wowed by getting the awesomeness that is cloud computing featuresets and technology as I am for a measly $5-10 a month go check it out yourself.

Amazon Release Micro-Instances

Follow

Get every new post delivered to your Inbox.

Join 3,712 other followers