• 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

    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

    Using a Tracing Image to Guide Web Page Layout

    • 2 Comments

    I used Expression Design to layout and create the elements for my wedding homepage (see my blog Composing a Wedding Page in Expression Design.) In this post I will describe how to use Expression Web to layout those elements on the page based on the composition image.

    Using a Tracing Image is one way a web developer can be sure that the web page that they’re marking up will look like the page the designer intended.

    Expression Web Trace Dialog

    To read the full post go mosey on over to my blog: Little-Endian.

    Greg's Noggin Greg Smith, Expression Web Software Tester (I'm a PC)

  • Expression Web team blog

    CSS Layouts – Oh, the Humanity… ! by Steve Guttman

    • 2 Comments

    Back in the earlier days of the web—like 5 years ago—the standard fashion for laying-out pages was to wrap your page in a table and to use “colspan” and “rowspan” properties to combine table cells into merged entities, and to embed additional tables into those merged cells (when necessary) to hold and position subsidiary pieces of content. A pretty standard 3-column layout w/header and footer, using tables is shown below.

    clip_image002

    This strategy worked “OK,” although the use of tables generally meant that graphics falling at the intersection of rows and columns needed to be sliced up and inserted into individual cells. The complete graphic was reconstituted when the table laid itself out. Also, in many cases, HTML authors had to resort to the evil “single pixel transparent GIF” trick to position elements accurately within these layouts. This lead to HTML code that “worked,” but was bulky, difficult to read and maintain, and was generally not very elegant.

    With the advent of CSS-P, the positioning of content moved from tables to DIVs—with the position of content regions (within DIVs) being specified in the CSS classes applied to each DIV. This has lead to a host of new problems—some of which I’ll talk about here, and some of which really require CSS 3 to address.

    The key to doing CSS layouts is mastering “float” and “clear” CSS properties. I’m going to use a variant of the CSS, 3-column layout included with Expression Web 2. The CSS layouts in Expression Web are found by going to FILE>NEW>PAGE and choose “CSS Layouts” from the left list box. These are good starting points for most page layouts. But, I’m going to create a CSS layout from scratch. If you want to follow along, create a blank HTML page.

    image

    The nice thing about CSS layouts is that the page layout—or arrangement of content on the page—is mostly independent of the content itself. This means that we can start by creating the HTML page structure, first, and then apply CSS classes to get the content into the right positions. The basic structure of the HTML within our body tag is:

    <body>
    <div id=’container’>
    <div id=’header’>
         Here is my header content
    </div>
    <div id=’contentcontainer’>
    <div id=’leftcol’>
         Here is my left column content
    </div>
    <div id=’rightcol’>
         Here is my right column content
    </div>
    <div id=’centercol’>
         Here is my center column content
    </div>
    </div>
    <div id=’footer’>
         Here is my footer content
    </div>
    </div>
    </body>

    There are a few things to note here:

    1. It’s good practice to always wrap your page in a “container” div. This lets you apply page specific styles (if needed) inside the body tag

    2. I give IDs to all the div’s that I’m going to position using CSS. I think this makes it easier to understand your page.

    3. The right and left content columns fall before the main/center content column. This seems a little bizarre. But, it is a necessary part of this particular 3-column layout technique.

    Without any styling at all—this is what my page looks like:

    clip_image002[5]

    So, let’s apply some styling to this structure.

    The strategy for 2 and 3-column layouts is pretty straightforward. Divs—by their nature—have a display style of “block,” which means that they will break a line. If you want to line 3 columns up next to eachother—our center, right and left columns—you need to use the float property. As its name implies, float lets you make specific content layout within the flow of whatever else is happening within a page. This is ideal for things like images, which you may want to display within a text block. If, for example, I insert a photo before a text block, it’s going to display like the screenshot below:

    clip_image002

    If I tag that photo with style=”float:left”, we get the following:

    clip_image004

    Nice, eh? The text flows nicely around the picture. What you need to remember about floats is that the page content following the floated element will flow around it. Any content preceding the floated element will be unaffected.

    So, our trick for creating 3 side-by-side columns follows a similar vein. We apply float:right to the right column and float:left to the left column, we’ll move everything to the correct position. Here’s the HTML layout and markup below:

    image

    #leftcol{
         width: 200px;
         float: left;
    }
    #rightcol{
         width: 200px;
         float: right;
    }
    <body>
    <div id=”container”>
    <div id=”header”>
         Here is my header content
    </div>
    <div id='contentcontainer'>
    <div id='leftcol'>
         Here is my left column content
    </div>
    <div id='rightcol'>
         Here is my right column content
    </div>
    <div id='centercol'>
         Here is my center column content
    </div>
    </div>
    <div id=”footer”>
         Here is my footer content
    </div>
    </div>
    </body>

    However, there are a few problems, here. If we add additional content into the center column, we see we have a bit of an overflow problem.

    clip_image002[5]

    To fix this, we set the right and left margins of the center container to the width of the right and left columns, respectively. This will constraint the text to the area between the left and right columns.

    There will be another issue if the text in the right or left columns happens to run longer than the text in the center column. The footer will run next to the column instead of under it.

    clip_image004[5]

    To eliminate this condition, we add the clear:both property to the footer div. Clear moves the element such that it is below any content, either to the right, left or both sides (depending on the value of the property you apply). Our final markup looks like:

    clip_image006

    #leftcol{
         width: 200px;
         float: left;
    }
    #rightcol{
         width: 200px;
         float: right;
    }
    #centercol{
         margin-right: 200px;
         margin-left: 200px;
    }
    footer {
         clear:both;
    }
    <body>
    <div id=”container”>
    <div id=”header”>
         Here is my header content
    </div>
    <div id='contentcontainer'>
    <div id='leftcol'>
         Here is my left column content
    </div>
    <div id='rightcol'>
         Here is my right column content
    </div>
    <div id='centercol'>
         Here is my center column content.
         Lorem ipsum…
    </div>
    </div>
    <div id=”footer”>
         Here is my footer content
    </div>
    </div>
    </body>

    You can do some really powerful layout tricks with floats and clears. Expression Web 2 has some pretty nice starting markup for columnar layouts. Check them out! There’s an excellent tutorial on floats and clears, here: http://css.maxdesign.com.au/floatutorial/index.htm

  • Expression Web team blog

    Phasing out Internet Explorer 6

    • 2 Comments

    This is Paul Laberge, Web Platform Advisor for Microsoft Canada.

    I wanted to share this with you as it shows some great work by Morten Rand-Hendriksen, an Expression Web MVP out of Vancouver.  Morten is a web designer and feels the pain of supporting multiple browsers (and multiple versions of each browser) when building a web solution for his clients.  As a result of this, he’s decided to take an idea that was implemented in one of the news sites from his home country of Norway (for story see http://blog.wired.com/business/2009/02/norwegian-websi.html) and implement it for his own sites.

    He believes that IE6 is a browser that ought to be retired given IE7 is out and since IE8 will be available very soon.  As a result, he has written a piece of JS code that he is hosting on http://StopLivingInThePast.com that will hopefully get people to upgrade to the newest version of IE.

    StopLivingInThePast.com

    Below is the post he has written for his blog describing this work:  http://www.designisphilosophy.com/browsers/stoplivinginthepastcom-is-live-join-the-movement-to-phase-out-ie6-forever-20090221/).

    And here is a link to the public forum for Expression Web where Morten and others are earnestly discussing Morten’s http://StopLivingInThePast.com website and his efforts to phase out IE 6:

    http://social.expression.microsoft.com/Forums/en-US/web/thread/b83381a9-859b-479e-882c-0dcee8bf2601

    What do you think? Should web developers continue to ensure their designs work in Internet Explorer 6 or should they push their site visitors to upgrade their browser? Join the discussion! --> http://social.expression.microsoft.com/Forums/en-US/web/thread/b83381a9-859b-479e-882c-0dcee8bf2601

    paul laberge

    web platform advisor | microsoft canada | blog:  http://blogs.msdn.com/seesharp

    paul laberge | web platform advisor | Microsoft Canada

  • Expression Web team blog

    Getting started with the silverlight 2 media player in expression web 2

    • 2 Comments

    Expression Web 2 has built-in support for Silverlight version 1 in the Insert menu ( Insert > Media > Silverlight) and in the Media category of the Toolbox task pane,
    Media category in Toolbox task pane

    but what if you’ve already moved onto working with Silverlight 2? There’s no need to wait for version 3 of Expression Web - you can get started with Silverlight 2 right now in Expression Web 2.

    The Silverlight 2 Beta SDKs provide a Silverlight ASP.NET server control and also a MediaPlayer ASP.NET server control. We will look at how you can use Expression Web 2 to use the MediaPlayer ASP.NET server control that makes adding video to your website a breeze without writing any code at all.

    Silverlight 2 Media Player in Internet Explorer 7

    Setup

    To work with Silverlight 2 ASP.NET controls in Expression Web 2, you need to install the Silverlight SDK. The Silverlight SDK Betas are available on the Microsoft Downloads site. Take a look at the requirements of each Beta before choosing which SDK beta to install.

    · Beta 1

    or

    · Beta 2  - NOTE: this version requires you to also have Visual Studio 2008 on your system

    Once you have successfully installed one of those Silverlight SDKs, restart Expression Web 2 and take a look at the toolbox – 2 new Asp.Net server controls appear in the AJAX category.

    clip_image002[6]

    1. MediaPlayer Control lets you integrate media sources such as audio (WMA) and video (WMV) into your Web application, without requiring any knowledge of XAML or JavaScript

    2. Silverlight Control is a generic control that enables you to reference XAML that you provide.

    Steps

    When you add the MediaPlayer or Silverlight ASP.NET control to a page in Expression Web, Expression Web 2 adds a Bin folder and Silverlight assembly file to your website. This way your website is ready to be deployed at any time without having to install the SDK on the host server.

    1. Open an ASPX page or create a new one (File > New > ASPX).

    2. Drag a ScriptManager control onto your Aspx Page. The ScriptManager must be the first ASP.NET control on the page and is required at runtime.

    ScriptManager control in Design view

    3. Now click on the red asp:scriptmanager error text shown on the ScriptManager control in Design view to add a Web.config file to your website. Click Yes in the Confirm dialog that appears.

    Confirm dialog box

    4. Drag a MediaPlayer control onto your ASPX page, making sure it appears AFTER the ScriptManager control.

    MediaPlayer control in Design view

    5. Next click on the error on MediaPlayer control to add the Silverlight assembly to your website, and click Yes in the dialog box that appears.

    Bin folder dialog box

    6. This will now render the MediaPlayer control on the Design View. The control looks plain in Design view but there are settings you can use to customize the control’s appearance. But you won’t ever see the custom appearance in Expression Web, you always need to preview the page in a web browser to see the visual changes.

    Media Player control

    7. Click the Preview in Browser button to show the media player with its default skin.  (Your browser may first prompt you to install the Silverlight plug-in. )

    MediaPlayer control in Internet Explorer 7

    8. Now that we have tested that it works, we can set various properties. On the right side of the control, click the flyout arrow and set the following options:

    a. Choose Player Skin – I chose Expression Skin

    b. Choose Media Source – a video File (I picked up a URL to a video on the Channel 9 website)

    c. Choose Placeholder Image  – the main image to show before the video begins.

    9. In the Tag Properties task pane, find the Chapters property and click the ellipses button to bring up the MediaChapter Collection Editor dialog. Use the Position option to set chapter markers (similar to “bookmarks”) according to the number of seconds into the video that you want – and use Thumbnail Source to specify images for those bookmarks, at specified intervals so that one can directly jump to that portion of the video. I simply used screenshots I took in the video at each point of time.

    MediaChapter Collection Editor dialog box

    The code that is generated for you looks like this:

    <asp:MediaPlayer id="MediaPlayer1" runat="server" Height="341px" Width="444px" MediaSkinSource="Expression.xaml"

    MediaSource="BillGStories_ch9.wmv" PlaceholderSource="Placeholder.JPG" Source="Expression.xaml">

    <chapters>

    <asp:mediachapter ThumbnailSource="Chapter1.JPG">

    </asp:mediachapter>

    <asp:mediachapter Position="108" ThumbnailSource="Chapter2.JPG">

    </asp:mediachapter>

    <asp:mediachapter Position="240" ThumbnailSource="Chapter3.JPG">

    </asp:mediachapter>

    <asp:mediachapter Position="420" ThumbnailSource="Chapter4.JPG" Title="Soma">

    </asp:mediachapter>

    </chapters>

    </asp:MediaPlayer>

    10. Now click Preview in Browser again to look at our video – Looks way cooler with the new skin, easy to navigate using chapters and all this without writing any code at all.

    Media Player control in browser

    Wasn’t that easy ???

    When you’re ready to publish your content, check out the free Silverlight Streaming service provided by Microsoft at:
    http://www.microsoft.com/silverlight/overview/streaming.aspx

    Vijay V
    Software Developer Engineer in Test
    Microsoft Expression Web

    Vijay V, Software Developer Engineer in Test for Expression Web

  • Expression Web team blog

    Free online Training from HP

    • 2 Comments

    Hewlett Packard is providing a free online training for Expression Web 1 (not version 2 of Expression Web) by Virginia O'Connor. Even though the course is for version 1 of Expression Web, I didn't see anything in the content that can't be applied to version 2.

    The training consists of four lessons from May 8 - June 13th, 2008 and their website indicates the training materials will be taken down when the course ends so be sure to sign uo and get the content before June 13th, 2008.

    Here's the course description from the HP website:

    Building websites with Expression Web

    This class covers the basics for creating a website with Microsoft's Expression® Web with features such as toolbars, formatting, page layouts and link creation. With this easy website creation software, you'll apply cascading style sheets, then learn how to create complex queries, how to configure the software for different browsers and how to create interactive web pages with ASP.NET 2.0 capabilities.

    http://h30187.www3.hp.com/sessions/overview/p/courseSessionId/16257

    Anna

    anna_head_greenbg100

  • Expression Web team blog

    Safari for Windows

    • 2 Comments

     

    Apple has released an update (version 3.0.4) for the Safari web browser for Windows, which fixes the problem we blogged about in the post Previewing Your Web Pages in Safari.

    If you have version 3.0.4 or later of Safari for Windows, you can preview your web pages from Expression Web in Safari without pointing to the batch file provided in that earlier blog post. To add Safari to your list of browsers in Expression Web, do the following:

    1. On the File menu, point to Preview in Browser and click Edit Browser List.

      Edit Browser List command

    2. In the Edit Browser List dialog, click Add.

      Edit Browser List dialog box

    3. In the Add Browser dialog box, enter a name for the browser, and click Browse.

      Add Browser dialog box

    4. In the Add Browser dialog box, navigate to the Safari program folder, select the Safari.exe application file, and click Open.

      Add Browser dialog box

    5. Click OK in the remaining dialog boxes.
    6. To preview a page in Safari, click the arrow to the right of the Preview in Browser button Preview in Browser button in the toolbar, and select Safari from the list of web browsers.

      drop down menu of Preview in Browser button
  • 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

    Submitting Feedback About Expression Web

    • 1 Comments

    We have a new Connect website setup for you to submit suggestions and bug reports about Expression Web or any other Expression product, including Expression Blend, Expression Design, Expression Media, and Expression Media Encoder: https://connect.microsoft.com/Expression

    Up until now, the Expression Web team has used the Connect: Expression Web site to gather bug reports and suggestions from Expression Web users like you. The team behind Expression Web regularly reviewed these submissions – and you have sent us some excellent feedback, thank you! On Friday August 17th, 2007 we will take down the existing Expression Web program in Connect and transition over to the Connect website we have setup for all Expression Studio products. 

    The Connect website for Expression Studio provides a feedback form that allows you to submit feedback for any program in the Expression Studio line of products, including Expression Web. The feedback you submit for Expression Web continues to go directly to the Expression Web development team, and you can still vote on, validate, and comment on the feedback of others.

    Although feedback you and others have submitted to the original Connect website for Expression Web is not available within the new Expression Studio Connect website, all previous feedback remains active in our internal database which we use to track issues and feature requests.

    Thanks again for all of your feedback, please continue providing it, and we look forward to your participation in the new Connect: Expression Studio website!

  • Expression Web team blog

    Expression Web VPAT now available

    • 1 Comments

    The Expression Web Voluntary Product Accessibility Template, or VPAT, is now available. The VPAT outlines how Expression Web meets key regulations of Section 508 of the Rehabilitation Act.

    For more information on Microsoft’s commitment to accessibility and a list of available VPATs for Microsoft products, see Section 508 VPATs for Microsoft products.

  • Expression Web team blog

    From Comp, to CSS, to Code - view the talk online

    • 1 Comments

    Tyler Simpson, our Principal Test Manager, and Nishant Kothary, Expression Technical Evangelist, presented a lively talk and demonstration of Expression Web 2 at MIX 2008 earlier this week. The recording of the session is already available online:

    http://sessions.visitmix.com/?selectedSearch=C04 

    Here's the description from the MIX website:

    Explore key features of Microsoft Expression Web through real-world scenario-based exercises focused around building a great blog template. The topics cover PHP support, Photoshop comp import workflow, CSS features, and more.

    Let us know what you think!

    Oh, and hey, have you had a chance to download the Expression Web 2 Beta yet? You haven't? Get on it then! PHP, AJAX, Custom ASP.NET controls, Photoshop support ...and more, await you here: http://www.microsoft.com/expression/products/download.aspx?key=web2beta

  • Expression Web team blog

    NEW Expression discussion forums

    • 1 Comments

    The Expression family of products has new and greatly improved discussion forums:

    http://forums.expression.microsoft.com

    The new forums have many new features including a tag cloud, user avatars, richer ux, and official forum moderators from each product team.

    The previous discussion forums (http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.expression.webdesigner&cat=&lang=en&cr=US) will remain open and available while its threads are ported over to the new forums. But please use the NEW forums instead.

     Join us!

  • Expression Web team blog

    Meet us at MIX 2008 !

    • 1 Comments

    Four members of the Expression Web team are headed to MIX 2008 in Las Vegas, and would like to meet up with anyone who will also be there. Please comment on this post if you'd like to get together and chat with us...we'd love to hear from you.

    MIX 08 bling tag - I'm speaking at MIX 08Tyler Simpson, our Principal Test Manager, will be leading a session at MIX with Nishant Kothary titled "Microsoft Expression Web: From Comp, to CSS, to Code!". They'll be showing how they designed a WordPress blog template with Expression Web for Nishant's Rainy Pixels blog - http://www.rainypixels.com/ . Here's the session's description from the MIX 08 website:

    "Explore key features of Microsoft Expression Web through real-world scenario-based exercises focused around building a great blog template. The topics cover PHP support, Photoshop comp import workflow, CSS features, and more."

    Visit the MIX 08 sessions page to get the location and time of this and other sessions:
    https://content.visitmix.com/public/sessions.aspx

    If you're not going to MIX, you'll be glad to know that the Tyler and Nishant's session will be recorded and available on the MIX website after MIX. We'll blog about it once the recording is available.

    Again, if you're going to MIX, let's get together!

  • Expression Web team blog

    Eric Meyer's CSS Sculptor for Expression Web

    • 1 Comments

    We're pleased to let you know that Eric Meyer's CSS Sculptor for Expression Web is now available for purchase! The add-in works with Expression Web 1, the Expression Web 2 BETA, and will work with the final version of Expression Web 2 when it is released. See our earlier blog post about this add-in for more information about it.

    You can quickly go to the product page for Eric Meyer's CSS Sculptor, as well as many other add-ins for Expression Web, by choosing Help > Extending Expression Web:

    expressionweb_extending

    The Extending Expression Web command takes you to the Add-ins web page for Expression Web at http://www.microsoft.com/expression/community/addin.aspx . ( WebAssist, the company behind Eric Meyer's CSS Sculptor, also provides the PayPal eCommerce Toolkit add-in and the Communication Toolkit for Skype add-in for Expression Web. )

    If you're using Eric Meyer's CSS Sculptor for Expression Web, join a discussion about it in the new forum for Expression Web at http://forums.expression.microsoft.com/en-US/web/threads/ . Or talk to the man himself through his blog at http://meyerweb.com/eric/thoughts/2008/03/06/expressive-sculptor/ .

    Anna

    anna_head_greenbg100

  • 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

    Expression newsletter overflows with Expression Web

    • 1 Comments

    The April 2008 edition of the Expression newsletter was published today and contains no less than four articles directly related to Expression Web, including an interview with Eric Meyer who talks about CSS:

    https://www.microsoft.com/expression/news-press/newsletter/2008-04/Default.aspx

    The newsletter also contains articles on Deep Zoom and Silverlight 2.

    To subscribe to the newsletter and receive it in email (approximately every 2 months), click here.

    Anna
    Anna Ullrich

  • Expression Web team blog

    If you’re Canadian and a web developer, get Expression Web 2 for FREE

    • 1 Comments

    This is Paul Laberge, Web Platform Advisor for Microsoft Canada.

    Microsoft Canada has a great offer for any Canadian web solution provider that isn’t already a Registered Microsoft Partner.

    For a limited time, we are offering a free copy of Expression Web 2, our premier web design tool for building compelling web sites.

    All you need to do is go to this site, register as Microsoft Partner on the site (which is completely free) and enter your Partner ID to get your free copy of Expression Web 2.

    There are many other benefits with this offer as well.  We are offering access to free training on Microsoft web platform technologies, great hosting offers and other benefits as well.

    In addition to all that, by registering as a Microsoft Partner, you get other offers for training, deeply discounted software to help you start your business as well as support from Microsoft to help you grow your business.

    If you haven’t registered as a Microsoft Partner yet, this may be a great time to do it!

    -Paul

    http://blogs.msdn.com/seesharp/

  • Expression Web team blog

    Meet Expression Web team members at MIX 2009

    • 1 Comments

    If you’ll be at MIX 2009 this week, be on the lookout for the following folks from the Expression Web team:

    Steven Guttman (Product Unit Manager):

    image

    Tyler Simpson (Development Manager):

    image 

    Erik Saltwell (Group Program Manager):

    image

    and Steven Schermerhorn (Software Developer Engineer):

    image

    Erik is doing a demo of Expression Web 3 as part of Wednesday’s Keynote from 9 – 11am. Steve Guttman and Tyler are presenting the following session:

    Microsoft Expression Web: No Platform Left Behind MIX09-C03F

    Thursday March 19 |2:30 PM-3:45 PM | Delfino 4105

    By: Steve Guttman, Tyler Simpson Tags: Expression

    Come learn how to use Expression Web to build resilient standards-based sites for use across a wide range of browsers and platforms. Hear about the current version of Expression Web and also some sneak peeks at future work that will make creating great sites even easier for designers. With a focus on workflow, you will also see how well Expression Web integrates with ASP.NET and PHP.

  • Expression Web team blog

    Article on SuperPreview on Expression Community website

    • 1 Comments

    Steve Guttman, Product Unit Manager for Expression Web, contributed the following article on SuperPreview to the Expression Community website:

    http://expression.microsoft.com/en-us/dd565874.aspx

  • Expression Web team blog

    Twitter on PHP VERSUS ASP.NET

    • 1 Comments

    NETTUTS is a good website for web development and design tutorials: http://nettuts.com/.

    Jeffrey Way, the person behind the NETTUTS website also maintains a NETTUTS profile on both Facebook and Twitter. Turns out he innocently posted an update to TWITTER in support of ASP.NET with a slight knock against PHP, and apparently that brought a lot of responses from other Twitterers, both ASP.NET and PHP developers.

    For all the dirty details, see my complete blog post here http://blogs.msdn.com/anna/archive/2009/01/23/twitter-on-php-versus-asp-net.aspx

  • Expression Web team blog

    Microsoft sponsors uxweek

    • 1 Comments

    UXweek.com homepage

    We know that great user experience is good business…the more engaging a web site, application, or device is, the more likely we want to spend time with it, buy it, and tell everyone we know about it.

    With this is mind, Microsoft is sponsoring a user experience conference, UxWeek, put on by Adaptive Path, August 12 -15 in San Francisco.

    In addition, we'll be presenting two sessions:

    • "The Challenge of Emotional Innovation," presented by Dennis Wixon of Microsoft Surface Computing, who will talk about how Surface introduces an exciting innovation in user experience. You can find out more about Microsoft Surface here.
    • "The Story of the Ribbon" in Microsoft Office 2007, presented by Jensen Harris, who led the effort to redefine the user experience of millions of Office customers worldwide. You can find out more about Jensen and his work on his blog here.

    You can find out more information about UxWeek here.

    Hope to see you there!

    Ed Meadows, Expression Web Product Manager

    Ed Meadows, Product Manager
    Microsoft Expression Web

  • Expression Web team blog

    Looking up HEX values in Photoshop

    • 1 Comments

    I've written up a few tips on quick ways to look up hexadecimal values in your document in Photoshop. Check it out:

    http://blogs.msdn.com/anna/archive/2009/02/11/the-vexing-hunt-for-hex-values.aspx

    Anna

  • Expression Web team blog

    New online web development training on lynda.com

    • 1 Comments

    Lynda.com has released two new training modules for Expression Web 2, delivered by Brian Wood, including CSS Workflow and Migrating from FrontPage to Expression Web.

  • Expression Web team blog

    Holiday Upgrade savings – add Expression Web 2 to your web authoring tool set

    • 1 Comments

    Expression Web 2 boxshot

    For a limited time, customers in the United States can shop the Microsoft Online Store for Microsoft Expression Web, Expression Blend, and Expression Studio and get 50% off.

    Chances are good that you qualify for the Upgrade pricing if you have any existing web design or creative software, or Microsoft Office software, including any ONE of the following:

    • A licensed copy of an earlier version of Expression Web
    • Adobe Creative Suite (any version)
    • Adobe/Macromedia Flash or Director (any version)
    • Adobe/Macromedia Dreamweaver (any version)
    • Adobe GoLive (any version)
    • Microsoft Office (any version)
    • Microsoft FrontPage (any version)
    • Quark QuarkXPress (any version)

    [Note: Pricing and specials are set on a locale-by-locale basis.  This deal applies only to US customers of the Microsoft Online Store and is valid only for a limited time.]

Page 3 of 5 (120 items) 12345