• Expression Web team blog

    Website accessibility lawsuit settled by Target

    • 1 Comments

    You may recall that back in 2006 Target was sued because the Target website was not accessible to the blind. Target attempted to have the suit dismissed at one point, but just settled the lawsuit last week.

    The settlement generated some good discussions here on the Expression Web team about what this means for web developers and their clients. The settlement inspired Steve Hebert (Expression Web developer) to blog about why he recently joined the Expression Web team. In his post, he touches upon the Accessibility and Compatibility tools in Expression Web:

    http://codebetter.com/blogs/steve.hebert/archive/2008/08/29/why-i-made-the-switch-or-writing-good-web-code.aspx

    Here are some additional perspectives on the Target settlement:

    Site Point:
    http://www.sitepoint.com/blogs/2008/08/29/target-settles-accessibility-lawsuit-for-6-million/

    the Web Standards Project:
    http://www.webstandards.org/2008/08/28/what-the-target-settlement-should-mean-to-you/

    CNET News:
    http://news.cnet.com/8301-1023_3-10028109-93.html

    WebAIM (Web Accessibility in Mind)
    http://webaim.org/blog/target-lawsuit-settled/

    Webmasterworld
    www.webmasterworld.com/accessibility_usability/3732919.htm

    NorthTemple:
    http://northtemple.com/2008/09/01/the-target-accessibility-lawsuit-and-settlement

    Opera Developer Network:
    http://my.opera.com/ODIN/blog/two-cheers-for-the-target-nfb-accessility-settlement

    What do you think about the settlement of this lawsuit? Should retail websites be required to make their websites accessible? What features would you like us to develop for Expression Web to help you make your websites more accessible? Would you like more Help content that addresses website accessibility? Comment on this blog and let us know! Better yet, if you have any great ideas for Expression Web, submit a suggestion for the program here: https://connect.microsoft.com/expression . Or discuss this topic with others at the Forum for Microsoft Expression Web: http://forums.expression.microsoft.com/en-US/web/thread/5ce63b85-7199-46a1-9fb2-f605c13ec1f5

    Anna

  • Expression Web team blog

    SlapShot for Expression Web 4

    • 0 Comments

    SlapShot is a new extension written for Expression Web 4. For those of you who already use the SnapShot panel (a feature that debuted in Expression Web 3), you will feel right at home with SlapShot.

    For those of you who haven’t yet used SnapShot (or who need a quick refresher course), SnapShot is a panel in Expression Web that displays an image of the current page as rendered by the selected browser. It allows you to easily change the browser and browser resolution without having to repeatedly preview in browser to see your changes.

    SlapShot is based on the same premise in that you can easily preview a page without loading a browser, however SlapShot extends the features of SnapShot by including full ActiveX support (Silverlight®, Flash®, and so on), as well as interactivity within the page (including navigation).

    In the following screenshot, you can see that SnapShot displays only the Install Silverlight message but SlapShot displays (with interaction) the actual Silverlight content.

    Slapshot works by listening to the Expression Web ondocumentchanged and ondocumentsaved events (for more information about these events, see The add-in manifest in the Expression Web SDK User Guide). When a page is saved or the active document is changed (for example, the user clicks on the tab of a different page), the SlapShot display updates. Quite nifty.

    There are a few conditions that must be met before SlapShot will work correctly:

    • The page must belong to a site on the local computer.
    •  Expression Web must be configured to use the Microsoft Expression Development Server.
    • To configure Expression Web to use the Development Server:
      • On the Site menu, click Site Settings, and then click the Preview tab.
      • Make sure Use Microsoft Expression Development Server is checked and select For all web pages.
    • Run any page once or load SnapShot  to start the Development Server for the site.

    For more detailed instructions configuring and loading the Development Server see the Previewing documentation.

    Version 1 of SlapShot includes default support for the version of Internet Explorer that is installed on your computer.

    You can enable Beta (not all features are available yet) Firefox support in the SlapShot panel using the following steps:

    1. Download the Mozilla XUL SDK from the Mozilla download center: http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/.
    2. Unzip the latest version to your hard drive.
    3. Start a command prompt as an administrator and change to the bin subdirectory where you unzipped the XUL SDK.
    4. Type regsvr32.exe mozctl.dll and press ENTER.
    5. Restart Expression Web 4. The SlapShot panel now supports Firefox.

     

     

     

     

    The SlapShot add-in uses a fairly large swath of the extensibility layer and, hopefully, can provide a reference about how to get various pieces of data out of Expression Web 4 (as well as be a useful tool). SlapShot is already available on the Expression Gallery.

    To install SlapShot

    1. In Expression Web, click Tools, and then click Add-Ins. The Manage Add-ins dialog box is displayed.
    2. Click Install, browse to the location you downloaded SlapShot.xadd to, click SlapShot.xadd, and then click Open. The extension is unpacked and added to the list of add-ins, SlapShot can then be found towards the bottom of the Panels menu item.

    Enjoy!

    John Dixon
    Expression Web

     

  • Expression Web team blog

    Still on the fence? pricing and upgrade details for Expression Web 2

    • 6 Comments

    For those of you that have been enjoying the trial version of Expression Web 1, but have been sitting on the fence about purchasing it ever since you saw the BETA of Expression Web 2 come out...well now you can safely commit to the purchase because version 2 will be provided to you for FREE if you buy Expression Web 1 sometime between February 24th and June 1st of 2008.

    image

    The Expression website now provides all of the pricing details for Expression Web 2, Expression Studio 2, and all Expression programs.

    The details:

    " If you purchase any Expression product between February 24th 2008 and June 1st 2008 you qualify for a free upgrade to version 2 of the same product (Web 2 for Web, Studio 2 for Studio, etc.). Details on how to get the upgrade will be published on the Expression website on May 1. Product registration and proof of purchase will be required. "

    And just like before, you can get Expression Web for only $99 if you own any of the following:

    • Microsoft Office (any version)
    • Microsoft FrontPage (any version)
    • Adobe/Macromedia Creative Suite (any version)
    • Adobe/Macromedia Dreamweaver (any version)
    • Adobe/Macromedia Flash or Director (any version)
    • Adobe GoLive (any version)

    And note that if you own the Academic version of a program, you will qualify for the upgrade price for the nonacademic version.

    And here's another bonus tip that you will NOT find on the Expression website (at least not at the moment)...you can buy the upgrade version of Expression Media for only $99 if you own Expression Web. Why do you want to own Expression Media? For one thing, you can generate photo galleries for the web with the click of a button and create your own custom photo gallery templates with HTML and CSS. Expression Media also comes with Expression Encoder, which lets you create slide shows and deliver video for the web, and so much more. If all that is of interest to you, perhaps you should invest in the entire Expression Studio while you're at it!

    Anna

    anna_avatar

  • Expression Web team blog

    Working with xml in Expression Web

    • 0 Comments

    One of the features of Expression Web is the ability to add xml files  to your website and then to style that xml appropriately as html without needing to learn messy technologies like xslt.  One of the things we have received feedback about in the product is that it can be hard  to figure out how to use this feature with remote xml files - like rss feeds.  One of our Program Managers, Andrew Jewsbury, has written a post in his blog about how to do just this.  It's pretty neat, you should check it out.

    Erik Saltwell

    Development Manager - Expression Web

  • Expression Web team blog

    Lorem Ipsum Code Snippet on Expression Community Gallery website

    • 1 Comments

    I just made my first contribution to the newish Gallery section of the Expression Community website where anyone can add content and templates to share. Here’s a screenshot of the current categories:


    categories of the Gallery section of the Expression Community website

    One of many cool things about the gallery is that you can select a friendly URL name for your contribution and it’s instantly generated. I chose LoremIpsum because I contributed a code snippet that enables Expression Web users to easily insert up to five paragraphs of Latin lorem ipsum filler text into their page. Here are the new code snippets as they appear in the Code Snippets list of of Expression Web:

    list of Code Snippets with custom Lorem Ipsum code snippets

    Here’s the URL of my contribution:

    http://gallery.expression.microsoft.com/LoremIpsum

    To read the rest of my blog post, in which I show you how to install and use the Code Snippet, and link to a post on how to create your own code snippet, see my post Lorem Ipsum Code Snippet.

    Anna

  • Expression Web team blog

    Why doesn't Expression Web SuperPreview work with Firefox 3.5.5 on Windows XP?

    • 0 Comments

    [Update 12/16/09: Firefox 3.5.6 has fixed the bug so it can again be used in SuperPreview.  If you followed the steps below to revert to an earlier version of Firefox, you may now turn auto-updates back on.  Firefox will then update to 3.5.6 and continue to work with SuperPreview.]

    Unfortunately, this particular Firefox update included a change that broke the ability of 3rd party applications, such as SuperPreview, to embed Firefox on Windows XP and Windows Server 2003.

    Those affected by this issue will see the error text:  "Attempted to read or write protected memory.  This is often an indication that other memory is corrupt." 

    Firefox 3.5.5 Error

    Until Firefox releases an updated version with the fix, the only solution is to roll back your version of Firefox to 3.5.4 or earlier.  To do this you will have to:

    1. Uninstall the 3.5.5 version of Firefox

    Once you've reinstalled you will need to turn off auto-updates for Firefox to ensure it doesn't update back to 3.5.5. To disable the auto-update functionality in Firefox, follow these steps:

    1. Disable your Internet connection so Firefox does not attempt to automatically update.
    2. Start Firefox.
    3. On the Tools menu, click Options.
    4. Click Advanced.
    5. Click the Update tab.
    6. Disable auto-update.
      • Click to clear the Firefox check box OR
      • Click the radio button to “Ask me what I want to do” when updates to Firefox are found.
    7. Click OK to apply the changes.
    8. Re-enable your Internet connection and restart Firefox.

    NOTE: The above is a temporary workaround as this will also stop you from picking up all further updates of Firefox. 

    The Firefox team is aware of the bug and has fixed it.  However, an updated version of Firefox containing the fix is not yet available.    We will update this blog when we have more information.

    For those interested in the technical details:

    Precise Firefox change that broke other applications:
    https://bugzilla.mozilla.org/show_bug.cgi?id=521750

    Bug logged that fixes the issue caused by the above:
    https://bugzilla.mozilla.org/show_bug.cgi?id=526586

    MSDN article including note on problems with this implementation in XP and 2003:
    http://msdn.microsoft.com/en-us/library/9w1sdazb(VS.80).aspx

    Alex Moskwa
    Program Manager
    Microsoft Expression Web

  • Expression Web team blog

    Until June 30, 2009, free copy of Expression Web 2 and 60 days free hosting

    • 1 Comments

    To learn more about this offer, go to the following URL and be sure to read the fine print:

    http://www.microsoft.com/web/jumpstart/platinum-hosting/default.aspx

  • Expression Web team blog

    Simplify Your Add-In Development with the Extensibility Tester Add-In

    • 1 Comments

    I created the Extensibility Tester add-in to provide Expression Web 4 developers a way to test out ideas and troubleshoot their add-ins without the endless cycle of edit, save, and refresh.

    ExtensibilityTesterPanel

    The add-in panel lets developers evaluate JavaScript expressions from within the panel, giving access to the full extensibility model.  This allows add-in developers to interact with the Expression Web application while seeing all output, errors, and events that come from the interaction.

    Click here to download the Extensibility Tester add-in. Once you’ve downloaded it, you can install it from within Expression Web 4 via the Add-Ins Manager under the Tools menu.

    Using the Extensibility Tester Add-In

    Once you have installed the Extensibility Tester add-in you can display it via Tools -> Extensibility Tester. Enter any JavaScript expression into the Input box and click Evaluate. The resulting output or error messages appear in the Output and Error boxes, respectively. Extensibility events are logged into the Events box as they are fired, with the most recent event on the top. The Clear All button clears all the textboxes if you want to start from a clean slate.

    The JavaScript expression is evaluated within the global scope, so variables you create are available from evaluation to evaluation (instead of falling out of scope after the evaluation is completed and not being available). This can save you quite a bit of typing, but comes with one small gotcha: these variables are properties of the window object and must be declared without ‘var’ (see example in image above).

    Here are a few expressions you can try to see some of the cool stuff you can do with the extensibility model:

    • xweb.document.selection.set(10,100);
    • Xweb.document.selection.insert(“text”);
    • xweb.application.newdocument("HTML 4.01 STRICT");
    • xweb.document.getElementsByTagName("div").length;
    • xweb.document.getScriptElementByCode("var foo = 1");
    • xweb.document.replaceRange(15, 20, "replacement");

    Let me know what you think!

    Erik Mikkelson
    Software Development Engineer in Test, Expression Web

  • Expression Web team blog

    Interactive buttons - a better way using CSS

    • 1 Comments

    Anna Ullrich has launched her own blog, starting with a post on how to create a standards-based navigation menu using CSS in Expression Web.

    Check it out:

    http://blogs.msdn.com/anna/archive/2008/02/17/interactive-buttons-a-better-way-with-css.aspx

  • Expression Web team blog

    HTML, CSS, and JavaScript reference at your fingertips: FireScope add-on for Firefox

    • 0 Comments

    SitePoint has released the “first phase” of their JavaScript reference, and they’ve also completely redesigned their Reference Site for improved usability. To coincide with the redesign, they’ve released a handy Firefox add-on called FireScope to integrate their HTML and CSS reference (sadly not their new JavaScript reference) into Firebug and your Firefox browser:

    FireScope logo

    http://tools.sitepoint.com/firescope

    Here’s a screenshot of the new Reference panel in Firebug:

    FireScope reference panel in Firebug in Firefox

    Read the list of features on the SitePoint website to learn more about the tool:

    http://tools.sitepoint.com/firescope/

  • Expression Web team blog

    Solve Expression Web installation problems

    • 3 Comments

    The team that provides technical support for Expression Web maintains a very helpful blog at http://blogs.msdn.com/xwebsupport, which I’ve just added to our blog roll. Their latest post provides solutions for solving problems with installing Expression Web 2:

    http://blogs.msdn.com/xwebsupport/archive/2009/04/21/known-causes-for-expression-web-2-installation-crashes.aspx

  • Expression Web team blog

    Just What is UX Anyway?

    • 0 Comments

    Working with design & authoring software all day, every day for many, many years got me thinking that great UX is just the latest buzzword for user interface design. We all appreciate a well-designed website, a beautiful, immersive game environment, and a computer program that is intuitively designed so you can get started right away with it.

    But all of this assumes that UX only takes place only within the confines of my fine LCD monitor.

    So, it was eye opening for me, to say the least, to hear presentations at UXWEEK.com on creating engaging UX:

    • A Chicago-based theater troupe that takes the philosophy of "try hard, fail fast, try hard again" to engage their audiences with a continual stream of new plays
    • The design of Zipcar's UX, from initial customer contact, through rental/usage of the car, and then follow up
    • A game designer's perspective on the future of happiness through UX
    • Knowing demographics and your user's requirements are not sufficient to design great UX…the essential starting point, yes, but not sufficient

    I'll write more about some of these sessions in future posts (assuming that my editor lets me!).

    What this tells me is:

    • UX is about engagement with your customers and that engagement is based on communication in one form or another, maybe on a computer screen, but just as likely not
    • You, whether you're a technical writer, a user interface designer, or a performer create that user experience or part of it
    • Without your communication skills, your user's experience will be less engaging and your product, whatever it may be, will be less successful.

    So, there you have it. UX is way bigger than I thought and there are many, many more people working on UX in ways that I never thought of. Seems that's the reason they send us to conferences, no?

    As a footnote, the UX Week site is now posting slide decks and other session materials from the conference. Go check them out!

    Ed Meadows' face


    Ed Meadows
    Product Manager, Expression

  • Expression Web team blog

    Elementary, my dear watson

    • 2 Comments

    Hi! I’m Luis Dieguez and I am a tester on the Expression Web team.

    luis

    One of my tasks on the team is to monitor Watson data for our product. Watson is probably one of Microsoft’s most useful customer feedback technologies but it definitely takes the first spot as one that our customers hate the most. Why? Because Watson is a tool that appears only when Expression Web has crashed.

    clip_image002

    This dialog, my dear friends, is one of the main components of Watson.

    In all seriousness, it seems inevitable that a software program will ship with bugs. Our testing team and Beta efforts target to minimize the number and severity of the bugs we ship with in order to make the program as stable as possible. However, the chance of not finding a critical crashing bug is always there and in this case, we want to know about it and fix it as soon as possible.

    Watson allows us to comprehensively track what crashes and hangs are being hit by users of Expression Web in the real world (and during development of the program). Every time a user hits a crash, by providing the dialog above, we give our users the option to transfer the crash data to Microsoft automatically, providing us with all the system information we need in order to investigate the root cause for what could have caused the crash.

    Basic Watson Flow

    In a nutshell, this is what happens the instant the Watson dialog hits your screen:

    · When a crash, hang or other tracked failure event occurs, the Watson program is activated and the dialog appears.

    • If you opt to send the information to us, Watson prepares an error report containing multiple files including a minidump. The minidump contains a subset of memory with the data that is most useful for developers, such as stack details (a list of the program code functions that were last hit), some system information, a list of loaded program modules, the type of error, and global and local variables. Minidumps are packaged into CAB files and sent via a secure HTTPS connection to Microsoft.
    • Error reports that indicate the same code defect are grouped into buckets.

    Bucketing permits us to prioritize the Debugging Effort and allows us to focus on the buckets that get the most hits. (Approximately 80% of failures in the real world are caused by 20% of the bugs.)

    It is important to note that we only receive the data after you explicitly give your permission and the data is strictly used to improve the Expression Web program.

    Watson is particularly useful in providing crashing trends in our product. Every time I look at the Watson database, if I notice that many users are hitting a particular bucket I need to escalate this immediately and trigger the investigation process. Once we know the cause of the crash and we can reproduce it locally, we implement and test the fix and depending on the severity of the bug, we will ship it in the form of a security patch, service pack or in the next release.

    What can you do to help?

    While Watson provides us with very good information on the system and the place in code where the crash might have occurred, one of the hardest challenges with Watson data is coming up with the right set of steps that trigger the crash. For example, Watson might tell us that we are trying to use a null pointer, but it doesn’t tell us where or how in code that pointer was nullified.

    Moreover, if we cannot reproduce the crash locally, we can’t fix the bug. Here is where you can become a key element in helping us fix a bug.

    When you encounter a crashing bug:

    1. Always, always submit the Watson data. It is easy, just click the “Send information” button and the data will take a short time to submit.

    2. Log a bug at connect.microsoft.com/expression with the steps you did to get the crash. Adding the file or set of files you reproduced the bug with also helps.

    3. Make a comment on the bug with the Watson bucket that was created with your crash. This will help us match a set of repro steps with Watson buckets we don’t have repro steps for. To get the Watson bucket, just follow these steps:

    · Right-Click on “My Computer”

    · Click “Manage”

    · Go To “System Tools | Event Viewer | Application”

    · Sort by Type

    · All Watson Events will have ID 1000 and 1001.

    Event 1000 is fired when Watson first encounters a crash.

    Event 1001 is fired when information (including the bucketID) comes back from the server.

    clip_image004

    If you were successful at reporting, double click on the most recent 1001 event and you will see the bucket ID:

    clip_image006

    Just add this bucket ID into the bug you log and that's it!  We will then link your bug to our Watson buckets and we'll have a set of clear set of steps to reproduce the bug. 

    Cheers!  See you next time.

  • Expression Web team blog

    Workaround for viewing password-protected pages in SuperPreview

    • 1 Comments

    I'm Steven Schermerhorn - one of the developers that worked on the SuperPreview program provided with Expression Web 3. Ever since we released the first BETA version of SuperPreview for Internet Explorer, the Expression Web team has received a lot of constructive feedback about SuperPreview. One suggestion we frequently receive is to add support for password-protected web pages.

    Currently, if you use either the BETA version or the finished version of SuperPreview to view a page that requires login credentials, instead of displaying the page you requested, SuperPreview displays whatever page normally appears when a site visitor tries to view a password-protected page without logging into the site. We weren't able to provide that support in time for this year's release, however I have one suggestion that might help you work around this: enable debug access to the website you are developing. How you or your server admin enables debug access to the website all depends on your server's configuration and I cannot document all scenarios here.

    Once you've enabled debug access to your website, you can use SuperPreview to display your password-protected page by opening the URL using this syntax: http://www.example.com/default.php?user=joe , where http://www.example.com is your site's domain, and default.php is the path to your page, and joe is a valid username.

    This basic debug access isn't a feature you want enabled in a live, publically accessible server environment, so you should also setup additional security for your debug environment, such as to allow requests from only a particular IP range or a specific port that isn't available outside your network. For what it's worth, I used this kind of debug environment in nearly every web application I developed in my former life as a web developer.

     Hope this helps!

    -Steven

    Steven Schermerhorn

  • Expression Web team blog

    The sordid life of software bugs

    • 2 Comments
    Triage – (French, from trier, to sort)
    2. the assigning of priority order to projects on the basis of where funds and other resources can be best used, are most needed, or are most likely to achieve success.

    In over 20 years of professional software development, I’ve never yet worked on a software project that had sufficient time and resources to do everything we wanted.  One of the most painful tasks that project leads face is making tough choices about what features to add and remove, and what bugs to fix.  Alas, Expression Web is no exception.

    When you’re dealing with an application with so many features, it’s not really a surprise that there might be a few bugs. The real question is, given our limited resources and time, how do we decide which bugs to fix as we individually review each bug?  Before I answer that, let me back up a step and review the various ways that bugs are found and submitted for triage.

    1. Bugs that are filed by our users, usually via the Microsoft Connect website at http://connect.microsoft.com/expression – we have a very knowledgeable core base of users who have found some of the oddest, as well as some of the most common, bugs in our program. While we would, of course, prefer that our users never experience a single bug, we’re very grateful for those users who have reported bugs to us, particularly when those users go to the extra effort of doing some investigations on their own, reporting additional data that can help us reproduce the bug and fix it.

    2. Bugs that have been postponed from version 1 or version 2 – the bug may have been postponed because it came in too late to fix or it was in an area of code that we hadn’t planned to invest in.  If it was important enough, though, it got held over and re-triaged in the version we’re currently developing.

    3. Bugs in features developed for version 1 or version 2, discovered by someone on the Expression Web team (usually by our test team or by other team members) – even features that have been in the product for a couple of releases can still have a bug crop up through some new set of circumstances or someone on the team saying, “What will happen if I do....?”

    4. Bugs in new features, discovered by our test team – as new features are developed, our test team puts those new features through a rigorous set of automated tests and manual tests, and they inevitably find several bugs in the process.

    5. Regressions – Occasionally, we’ll change code in one area of the program, either to fix a bug or implement new functionality, which may cause a problem in another area of the program.  These bugs are flagged as regressions – something that used to work that no longer does.

    All of these bugs are added to our bug database and they are considered, and occasionally reconsidered, in daily triage sessions.  These triage sessions include one or more representatives from the development team, the test team, and the program management team.  Discussions in our triage meetings can be fairly extensive, and occasionally heated, as we tend to be very passionate about the quality of our program, as well as the importance of meeting our deadlines.

    So how do we actually decide which of these bugs to fix?  We look at several factors:

    1. What is the priority? – Every bug is given a priority rating of 1, 2, or 3.  A priority of 1 means that the bug is very important and that we need to fix it in the current milestone, would even hold back the program from shipping, if necessary.  A priority of 3 means that this is a “nice to have” fix that we would like to do if time permits.  Sadly, time rarely permits, and most Priority 3 bugs remain unfixed.

    2. What is the severity? – Every bug is given a severity rating of 1, 2, 3, or 4.  A severity of 1 means that there is significant user impact – that the bug can cause a crash or data loss, or has security and privacy implications.  A severity of 4 means that there is minimal user impact – this could be something like awkward wording on an error message that few of our users will ever encounter.

    3. What is the risk? – The risk of fixing a bug has to do with where the fix is in the code and how likely it is to cause a regression in that feature or in some other feature.  Evaluating the risk is highly subjective but developers and testers alike develop over time a pretty good idea of where our potential “problem” code is and where the “safe” code is.  All other factors being equal, we’re far more likely to approve a bug in code that’s safe than we are in code that’s high risk, particularly as we get closer to the end of the project.

    4. What is the cost? – As with risk, the cost of fixing a bug is subjective, but it is still an important consideration.  If, for example, a developer has left out a little-used parameter from a PHP command, such that it doesn’t show up in our IntelliSense list, that’s a bug with pretty low severity and priority ratings.  On the other hand, I can have this fixed and tested in less than an hour, which means that it will likely be accepted by our triage team even with its lower priority.  The test cost is just as important as the development cost, since there are times when a bug may be easy for a developer to fix, but the fix may be in an area that affects several core scenarios, requiring the need for a full test pass to validate the fix.

    5. What is the likelihood that our users will encounter this bug? – The more likely it is that our users will encounter a bug, the more likely it is that we will fix it.  A bug that hits 1% of our users roughly 1% of the time is not very likely to be fixed.  If this hits everybody, though, and it’s something that they will encounter fairly frequently, we would definitely want to fix it.

    6. Is this a regression? – A bug in a feature that used to work that now no longer does will be given a higher priority than if that same bug had been there all along and had just never been found. We’re actively investing in automated tests of both the basic functionality of our product and the high priority and high risk bugs that we find. Our goal, over time, is to reduce the number of regression bugs introduced in the product by catching them as soon as the developer makes the mistake.

    7. Where are we in the development process? – We often get bug reports, either from our internal users and testers or from our Public Beta users, very late in the program lifecycle.  The later we are in our development process, the higher our triage bar gets.  By the time we get to the final weeks of the project, we are usually only willing to consider recall-class bugs – a bug that is so devastating that we would literally recall the program if we found that we had submitted the program for release with this bug included.  One of the most frustrating scenarios we face in triage is rejecting a bug that we know we would have fixed had we found it just a few weeks earlier. As noted above, we’re investing heavily in improving our automated test suite so that, in future releases, we can take bugs fairly late in the development process with a higher confidence level that the fix won’t cause a problem elsewhere in the product.

    8. Is this a security or data loss issue? – We take both of these scenarios very seriously, more seriously, perhaps, than just about any other kind of bug.  If someone can compromise your data or your machine because of a bug in our code, we cannot, and will not, ship the program with that bug.  If a bug can cause you to lose data that you have just spent hours entering, then we will do our best to fix it.

    9. Is this bug in a core investment area? – In each release, we pick a few areas of the code that we intend to invest in heavily.  If a reported bug is in one of those core investment areas, we will look on it a bit more favorably than we otherwise would.

    Product Box for Expression Web 2An example of a really painful triage decision we had to make in Expression Web 2 was the issue of link fixup for PHP include files.  A bug came in fairly late in our development process regarding including a PHP file in an HTML file, then renaming that PHP file.  In other link fixup scenarios, the program recognizes that you have renamed a file that is referenced by other web pages and asks you if you want to automatically adjust the links to point to the renamed file.  For included PHP files, this process was failing.

    After careful investigation, we had the following answers for the various triage criteria:

    1. Priority = 1.  This is a core scenario.
    2. Severity = 2.  This wasn’t a crash, a security issue, or data loss but it was pretty important functionality.
    3. Risk = High.  The change affected code that was central to quite a few core scenarios and it was in code that had had problems in the past.  The risk of regression was quite high.
    4. Cost = High.  The development cost was medium but the test cost in this case was pretty high.
    5. Likelihood = High.  This is a core scenario that anyone using PHP includes is likely to encounter.
    6. Regression = No.  This was new functionality, so no regression.
    7. Where are we in the development process = Late.
    8. Security or data loss = No.
    9. Core investment area = Yes.

    Earlier in the development cycle, this bug is a no-brainer to fix.  It’s a core scenario that is likely to affect many of our users, in an area where we’re investing significant resources.  End users can work around this issue by using the Find and Replace feature, or manually updating their links, but that’s not as convenient and it’s contrary to our behavior with other types of included files.  However, given the risk, the cost, and the time that the bug was reviewed, we ultimately decided that, painful though it was, we just could not take this fix for Expression Web 2.  I’m pleased to say that the bug has already been reconsidered for, and fixed in, Expression Web 3, and that the fix will be available in our first preview release.

    As you can imagine, seeing the list of criteria, not to mention seeing how subjective many of them are, our triage sessions are often contentious.  At Microsoft, one of the core attributes we value and cultivate is passion and we definitely have a lot of passion around which bugs we want to fix and which we don’t.  At the end of the day, though, the one thing that holds us together is that we also have a passion for doing the right thing for our end users.  Sometimes, the right thing is to not fix the bug, as with the example I cited above.  We just could not take the risk of destabilizing the program, potentially causing any number of other problems for our end users, painful though that decision was.  Sometimes, though, and these are happier decisions, the right thing is to fix the bug, as was the case when we re-triaged the bug for Expression Web 3.

    If you are ever wondering whether you should submit a bug report to the Expression Web team, the answer is an unqualified yes. We need this kind of feedback from you, our end users, in order to help us meet our goals for shipping a quality product. The detail you provide in your bug report could be the final clue that helps us track down the cause of the bug and yours could be the report that helps us fix a bug that thousands of our users could encounter. We need the feedback from you, both positive and negative, in order to help us assess whether we’re meeting your needs and our own goals. Without you, and your support, we cannot succeed. We are always grateful for any feedback you can provide and will always do whatever we can to meet your needs.

    Paul Bartholomew's face Paul Bartholomew
    Development Lead
    Expression Web

  • Expression Web team blog

    "Page Cannot Be Found" Issue when Previewing via Expression Development Server

    • 2 Comments

    When you use the Preview in Browser feature in Expression Web for an ASP.NET or PHP page, Expression Web runs the Microsoft Expression Development server to preview your content in an environment that emulates a real-world web server.

     Microsoft Expression Development Server

    Microsoft released a signature update to Windows Defender and Microsoft Forefront Security on March 9, 2009 that modifies your system’s hosts file to address a vulnerability. One of the side effects of this update is that an entry for localhost may have been removed from your system hosts file.

    This means that, when you preview your application using the ASP.NET Development Server, your browser will simply show a “Page cannot be displayed” (or equivalent) message.

    To fix this problem, open C:\Windows\System32\drivers\etc\hosts in Notepad, and add the following entry:

    127.0.0.1       localhost

    For example, here is what a system host’s file looks like (note, if you are not running Windows 7, the below lines may not be commented out):

    system host's file in Notepad

    A subsequent signature update to both Windows Defender and and Forefront Client Security, released on the same day as the earlier update, should not cause this problem.

    The original source for this information comes from the Visual Web Developer Team’s blog post on this topic.

  • Expression Web team blog

    Expression Web documentation at your online fingertips

    • 1 Comments

    The Help documentation for Expression Web has been available on the MSDN Library website ever since version 2 was released. Now the Help documentation is also available through the Expression community website at http://expression.microsoft.com/en-us/library/cc295701.aspx

    Expression Web 2 online Help on the Expression community website

    What’s so great about seeing the same ol’ Help that you can launch from within Expression Web but in online form? Well, if you look at the bottom of any topic in the online version of Help you’ll see that you and others can

    • add tags to topics
    • add new content
    • annotate the Help

    community content widgets on the Expression community website

    In addition, at the upper right corner of any topic you can rate a topic and send feedback which goes directly to the writers on the Expression team:

    feedback widget

    So if you can’t find what you’re looking for in the Help, or want more information than we’re providing, or maybe you have the answers but the Help isn’t providing them, well then dive in and share your knowledge with the world: http://expression.microsoft.com/en-us/library/cc295701.aspx

    Anna

  • Expression Web team blog

    Suggest and vote on new features for SuperPreview!

    • 4 Comments

    The SuperPreview team is always looking for new ways to reach you, our customers. We want to continue to create a product that will solve your cross-browser testing and web development needs.

    Another way you can reach us is through the new SuperPreview User Voice site.

    Here you can submit your feature ideas and also vote on the ideas others have submitted.  Through this we will continue to grow our understanding of you, our users, and create a product that does what you want.

    Let us know what you think and be heard.

    Alex Moskwa
    Program Manager
    Expression Web and SuperPreview

  • Expression Web team blog

    Increase your search rankings with better web page titles

    • 0 Comments

    Are you still waiting for a flood of visitors to find your site? Wondering if you need to invest in some online ads or an SEO specialist? Before you do any heavy lifting, first try the simple task of reviewing the titles of your web pages for their search relevance. I just published the following post to introduce you to one basic SEO concept and also show all of the options for efficiently reviewing and editing web page titles in Expression Web.

    Read the entire post here:

    http://blogs.msdn.com/anna/archive/2010/03/11/increase-your-search-rankings-with-better-web-page-titles.aspx

     Anna Ullrich

  • Expression Web team blog

    Transitioning from FrontPage to Expression Web

    • 1 Comments

    If you've been using FrontPage and are ready to embrace the world of standards-based web design with Expression Web, or if you're still unsure and need more convincing, PixelMill has created a helpful series of in-depth articles to help guide you on your way:

    http://www.pixelmill.com/support/al1095.htm

    Anna

     Anna Ullrich

  • Expression Web team blog

    Use a dataview to create a color table from XML

    • 2 Comments

     

    I’m Steve Schermerhorn, one of the new developers on the Expression Web team. Steve Schermerhorn's face

     

    When I’m developing a website or application I’m typically dealing with a wide range of colors throughout my project. On more than one occasion it would have been really handy to have a visual reference that also mapped the colors to their names and hex values. I eventually managed to come up with a solution using an XSL to transform an XML file into a nice little color reference table I could print off and hang on my wall. This little ‘how to’ is going to give you a very hands on example on how you can take an XML file and create an HTML page.

     

    1. The data
      For this example I started with an XML file I that I created referencing the system colors used by Windows. [ http://msdn.microsoft.com/en-us/library/system.drawing.systemcolors.aspx ].

      Code view of XML file
    2. Create a dataview of the XML file
      Next, I created an HTML page in Expression Web, and then simply dragged the ColorTable.xml file from the Folder List task pane into the Design view of the HTML page. When you do that, Expression Web generates an XSL file and JavaScript for you, which display the data in a table.

      Dataview in Design view
      When you save the page, Expression Web prompts you to save the JavaScript and XSL files to your website.

      Save Embedded Files dialog box
    3. Add style to the XML data

      You can format the dataview of your XML file as you would any other table or text in Expression Web. When you format the table or text in a data view, Expression Web automatically updates the XSL file for you. For example, I used the Highlight button in the toolbar to add a color background to the top header row of the table, changed the font of the header cells, and reduced the width of my columns. I also added a new column to the left of the first column.When I saved my page, Expression Web prompted me to save the changes it made to the XSL file.

      Formatted dataview 

      Next I opened up the XSL file that Expression Web generated, located my new blank column, and added the following attribute to the <td> tag for that column:
      bgcolor="{@ColorValue}"
    4. That attribute sets the background column of every cell to the value of the ColorValue specified for that row in the Color Value column.

      clip_image002[9]

  • Expression Web team blog

    Software update for Expression Web 2: KB957827

    • 0 Comments

    Microsoft has released an update for Microsoft Expression Web 2.0. This update fixes a problem that prevents macros from running on a Windows Vista-based client computer.

    http://support.microsoft.com/?kbid=957827

    Note: If you’ve set Windows to automatically update, the update for Expression Web 2 appears in the Office 2007 list of updates as shown in the following screenshot.

    Update for Expression Web 2

  • Expression Web team blog

    How to get 60 days out of your free 30 day Expression web 2 trial

    • 0 Comments

    The free trial version of Expression Web 2 is described as a "30 day" free trial on the FAQ for Expression Web 2 and in one of the screens that appears during installation of the program. In theory, after 30 days have passed the program should not start unless you enter a product key that you've purchased.

    In reality, the trial period ends and the trial program stops running at the end of the month that follows the month you installed the program. This means that if you download and install Expression Web 2 on July 1, 2008, the program won't expire until August 31, 2008, or 62 days later. If you install the program on July 31st, the program will also expire August 31...giving you only 32 days with the program. So if you want to get the most out of your free trial period, download the program at the start of the month!

    After the trial version of Expression Web 2 expires, don’t forget that you can get the upgrade version for only $99 if you own any one of the following:

    • Licensed copy of an earlier version of Expression Web
    • Microsoft Office - any version
    • Microsoft FrontPage® - any version
    • Quark QuarkXPress - any version
    • Adobe Creative Suite - any version
    • Adobe/Macromedia Flash or Director - any version
    • Adobe/Macromedia Dreamweaver - any version
    • Adobe GoLive - any version

    Anna

    anna_head_greenbg100

  • Expression Web team blog

    Steve Krug on creating usable web pages

    • 4 Comments

    A few of us from the Expression Web team attended a talk by Steve Krug, usability consultant and author of Don't Make Me Think, at an event hosted by the Puget Sound Special Interest Group on Computer-Human Interaction (SIGCHI) in Seattle.

    Steve believes there is a short list of design conventions that make some web pages inherently more usable than others, and his talk presented two of these conventions:

    1. Effective "You Are Here" indicators
    2. Prominent and well-placed page titles

    Effective "You Are Here" indicators

    Steve suggests that subtle design distinctions that some designers love to craft simply don't work in practice and are less effective than "louder" design choices that clearly establish where you are in a website. To demonstrate how quickly website visitors can plow through a website and overlook subtle design elements, he showed an interesting video of software that tracked his eye movements as he navigated a website in search of information. The software drew red lines all over the web pages, showing the paths of his eye movements, how fast his eyes scanned the page and where his eyes dwelled.

    Steve is a big fan of tab-based site navigation, especially when the tab color blends into the page color. For good examples, he pulled up http://www.stumbleupon.com/ with this tabbed navigation:

    Stumble Upon website's tabbed navigation

    and http://www.cnet.com/ with this navigation:

    Based on usability studies he's reviewed, Steve contends that subtler global navigation menus that are placed on the edge of a web page, such as this:

    horizontal navigation bar

    are often overlooked by users, who will click around within the main content area of the page and not discover the main navigation menu until some time later.

    Prominent and well-placed page titles

    Steve's second recommendation to help improve the usability of your websites is to simply ensure each page has a primary heading that is bigger (although not necessarily the biggest) and bolder than other headings in the page, and clearly identifies the title or content of the page. He'll give you bonus usability points if your website supports "WYCIWYG" or "what you click is what you get" which means a hyperlink's label and the title of the destination page are the same or virtually the same.

    -  Anna

  • Expression Web team blog

    Service Pack 1 for Expression Web 1.0

    • 3 Comments

    Microsoft Expression Web Service Pack 1 (SP1) delivers important customer-requested stability and performance improvements for Expression Web 1.0, while incorporating further enhancements to user security. You can download the SP1 for Expression Web and get more details about it on this page:

     http://www.microsoft.com/downloads/details.aspx?FamilyId=4C840D64-C95A-4328-9D80-47DC681741AD&displaylang=en

Page 3 of 5 (120 items) 12345