When performing a data-compare in VSTS Database Edition (aka Data Dude), if you do not see one of the tables in your source or target databases – the reason is most probably very simple:
Prevents a match when X appears at this point in the expression. For example, real~(ity)matches the "real" in "realty" and "really," but not the "real" in "reality."
the current ASP.net version started of as a project with 2 developers, and then ramped up to 12 developers and with an ops team at its peak.
Full time designer was dedicated to the project -> consistent look and feel
tech stack used Asp.Net 3.5 Commerce Server 2007 (cart, profiles, etc) SqlServer 2005 Endeca (search - Java based)
Dev methodology: Scrum
Need to Define what done means on your project (do it early) XHTML compliance Unit tested Browser support WAVE test
FireBug - useful tool for FireFox (similar for IE dev toolbar)
Used XHTML 1.1 standard
XHTML 1.1 deprecates stuff like iframe, target, etc. Use XHTML 1.1 as base for most pages and XHTML 1.0 on the pages that require it. Why target is not supported by XHTML 1.1 http://www.w3.org/MarkUp/2004/xhtml-faq#target -ASP.Net pages by default target XHTML 1.0 transitional -XHTML 1.1 supported natively by VS 2008 -To change your page use: Update the doctype in your aspx page: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> To the web.config set: xhtmlConformance mode="strict" (default is transitional) -use CSS friendly adapters -use ASP.Net themes & skin files -Do all of the above in one easy step while setting up your project using the "Visual Studio 2008 XHTML 1.1 Project" http://www.codeplex.com/VSXHTML11Templates
The future - ASP.Net 4.0 – cool features coming: -allows you to control the ID that is used on controls sample options: static, predictable also allows you to add a row suffix makes it easier to use CSS to control design -disable viewstate at container level Panel disabled, means all contained controls have viewState disabled you can still enable it for each control individually
ASP.Net Accessibility: - its the law - WCAG 1.0 & 2.0 - WebAim.org - WAVE accessibility evaluation tool http://wave.webaim.org/
Make XHTML compliance part of development Cycle. - Uses a VSTS integration test - need to find out more AspNetDevelopmentServer Speaks to W3C validator to determine compliance
Server Controls: - typically can be used only within a Form tag - can be hacked to be used outside the Form tag override - VerifyRenderingInServerForm to always return true for the page http://msdn.microsoft.com/en-us/library/system.web.ui.page.verifyrenderinginserverform.aspx -using multiple forms in one page: only one server form allowed use action attribute to submit to a different page action="page.aspx" use it as a client.form need to test this
Support for multiple browsers (increasing reach) - dont target browsers instead target standards set the baseline standard (typically CSS3/extensions - which is FireFox 3, Safari 3 Opera 9.5 and IE8) CSS 2.1 for IE7 and FireFox 2 support
Think about users who might be on slow internet connections - use YSlow http://developer.yahoo.com/yslow/ - use GZip Compression - CSS sprites - need to read up on this
Progressive enhancements -make basic site -add bells and whistles (javascript, etc) later. -eg: shoppingg cart drop down on same page *created as a simple link *used jquery to add behavior to link to show a div containing cart details
Testing -unit tests *tests the basic unit of code -integration *combines some of the units to test them together -functional * uses whatin - a wrapper around IE -performance Mocks - RhinoMocks http://ayende.com/projects/rhino-mocks.aspx
As I said before, OptiRoute in an approximation for the optimal route to visit a bunch of points. Its an approximation that runs in O(n), and can handle unlimited number of points, which is its uniqueness. But because it is an approximation – it might not be the best solution possible.
iPhone GeoLocation in Safari uses the Safari’s new geoLocation api to retrieve the current location and in turn gets address information using Google Maps geoCoding api.
var geocoder;
function initialize() { geocoder = new GClientGeocoder(); findLocation(); }
function findLocation() { if (navigator.geolocation != null) navigator.geolocation.getCurrentPosition(foundLocation, noLocation); else document.getElementById("map_canvas").innerHTML = 'Browser does not support geoCoding'; }
function foundLocation(position) { getAddress(new GLatLng(position.coords.latitude,position.coords.longitude)); }
function noLocation() { document.getElementById("map_canvas").innerHTML = 'Could not find location'; }
function getAddress(latlng) { if (latlng != null) { geocoder.getLocations(latlng, showAddress); } }
The reason that this happens is that IE does not use the entire network stack when processing traffic from http://localhost/ or http://127.0.0.1/. And because the complete stack is not used, Fiddler does not see the traffic that is being sent to these addresses. The easiest work around for this is that you use your machine name instead of localhost.
How to modify the request data that is being sent to a web-site using Fiddler.
There are many ways to skin this cat. You can write custom script, you can write a plugin, etc.
But the easiest method is to enable breakpoints in Fiddler. Fiddler will break any request and allow you to inspect and modify the request before sending it along.
Here is how:
Turn on break points for before requests:
Hit the web-site that you wish to modify the request off.
The minute Fiddler detects the request, it will break the request and give you a chance to modify the request.
The red icon in the web-sessions panel represents a request that has hit a break point and is waiting for your input. If you select the entry, you will find that in the right pane, it will show you options to respond to the break point.
Before selecting “Run to Completion”, you can modify the response headers using the TextView of the Request headers (upper right pane).
If you select “Break on Response”, you will get a chance to modify the response headers using the TextView (lower right pane).