Give us feedback – How can we help you work faster and more efficient?

clip_image002Today’s guest writer is Neha Monga, Program Manager on the Access team. She works on compatibility checker, the runtime, Access developer extensions, and the future of the Access user experience.

I’m starting to think about ways to improve the Access user experience to make YOU faster, more efficient and smoothly connect to what comes before and after. I would love to get feedback from you on the following areas:

  1. Are there any scenarios where you need to follow a lengthy series of steps and extra clicks to accomplish a task?

Example – if you were to use the date picker to change the date to many years in the past (such as a birthday), it will take a lot of clicks to go back each year. It would be nice to be able to ‘jump’ to a specific year.

  1. Are there any scenarios where you find Access is not responsive and the operation takes too long?

Example – a query that ran faster in a previous version of Access.

  1. Are there scenarios where the sequence of operations is not intuitive? i.e. you don’t understand what to do next (until you read about another Access ‘gotcha’)?

Example – how to create re-occurring Outlook saved export task.

  1. Are you able to easily start off, pause, stop and pick up from where you left or do you lose work when you attempt to do that?

Example – you work on an object and close the database but the navigation pane doesn’t reselect the object and you need to go find it.

I look forward to hearing about your scenarios, steps, pain-points and fast and fluid user experience suggestions! No promises but I have a high hopes your feedback will have a big impact in future releases. You can post responses here or send email through the blog

Thanks in advance!

Facebook Add-ons for IE8

Hi,

In this post, I will introduce you to some of the most compelling Facebook add-ons for Internet Explorer 8.

Share with Facebook Accelerator

The Share with Facebook Accelerator allows you to share any text, link, or page with your Facebook friends with a single click. You can use this accelerator by selecting either some text or a link, or by right-clicking on any part of the page.

Install here: http://www.ieaddons.com/en/details/204/Share_on_Facebook/

image of IE Accelerator menu with "Share on Facebook" accelerator

The technical beauty of this add-on is that it is extremely simple. In fact, it is contained in a single XML file, which is based on the OpenServiceDescription specification.

Facebook Web Slice

The Facebook Web Slice allows you to stay up to date with what’s happening in your Facebook network. Regardless what website you are on, you can click at any time on the web slice title and display the recent messages from your friends on your board.

Install here: http://www.ieaddons.com/en/details/social/Facebook_Web_Slice/

Facebook webslice showing some status updates

The Web Slice uses the Facebook Connect APIs to connect to your account and it shows a notification when new content is available. Special thanks go to the MVP Konstantinos Pantos for his contribution to the community.

Facebook Search Provider

Do you need to search for someone on Facebook? You can start right away from the browser search box!

Install here: http://www.ieaddons.com/en/details/searchhelpers/Facebook/

IE search box searching on Facebook

Again, this extension is built on top of an XML file which describes the end-point for the search provider.

Facebook Toolbar

The Facebook Toolbar lets you to share with your friends while browsing anywhere on the web - get notified, share content, upload photos, and update your status no matter where you are!

Install here: http://www.facebook.com/toolbar#!/toolbar?v=app_4949752878

Facebook toolbar

The source code of this toolbar is available on github.

Thanks to the Facebook Team for these great extensions!

If you have any feedback or you would like to highlight other great IE8 add-ons, please leave a comment to this post.

Giorgio Sardo
Web Technical Evangelist
Microsoft Corporation

Access 2010 release date

There is a post on the Office 2010 Engineering blog about our ship date. The magic day is May 12th. Wahoo! We look forward to your feedback. :-)

Lots of Office Team Blog Updates!

It’s been a busy few weeks for many Office product team blogs so we wanted to take a step back and highlight some recent posts you might be interested in.

In addition to the three posts highlighted above many of the other teams in Office also continue to post on a regular basis.  Check out all of the team-specific blogs on the sidebar of this blog.  Can’t find something you’re looking for?  Leave us a comment and we’ll help you find it.

Enjoy!

Microsoft User Experience Kit launched today at SXSW

Today at SXSW, of which Microsoft Silverlight is a major sponsor of the Interactive Festival,  Microsoft User Experience Kit is targeted at technical and creative leads who want to better understand the tools, technologies, and scenarios that span Microsoft’s User Experience ecosystem.  Key topics range from “Building Immersive Multi-channel Solutions using Expression Studio” to “High fidelity and high Performing Desktop Touch Applications using Windows 7” to “Web Branding and Audience Targeting using SharePoint”.  The kit’s contents can be browsed online and/or downloaded for offline use.  It includes videos, presentations, sample code, and much more. Get the kit at http://uxkit.cloudapp.net!

clip_image001The UX Kit is unique because while many technology-specific repositories exist, this is the first kit that helps “map” the Microsoft ecosystem, technology, and tools stack to that of the user experience, agency, and creative world.

Included in the UX Kit is a range of collateral and resources including: videos, reference implementations, sample code, live demos, installable tools, presentations, whitepapers and more. Featured technologies include Silverlight, Windows Presentation Foundation, Windows 7 Touch, Microsoft Surface, Windows Phone, SharePoint, Expression Studio, and Microsoft Advertising. Topics covered on the kit range from Rich Media Delivery using Silverlight and Deep Zoom to Multi-Channel Digital Marketing using Windows 7, SharePoint, Windows Phone, and Surface.


Microsoft User Experience Kit launched today at SXSW

Today at SXSW, of which Microsoft Silverlight is a major sponsor of the Interactive Festival,  Microsoft User Experience Kit is targeted at technical and creative leads who want to better understand the tools, technologies, and scenarios that span Microsoft’s User Experience ecosystem.  Key topics range from “Building Immersive Multi-channel Solutions using Expression Studio” to “High fidelity and high Performing Desktop Touch Applications using Windows 7” to “Web Branding and Audience Targeting using SharePoint”.  The kit’s contents can be browsed online and/or downloaded for offline use.  It includes videos, presentations, sample code, and much more. Get the kit at http://uxkit.cloudapp.net!

clip_image001The UX Kit is unique because while many technology-specific repositories exist, this is the first kit that helps “map” the Microsoft ecosystem, technology, and tools stack to that of the user experience, agency, and creative world.

Included in the UX Kit is a range of collateral and resources including: videos, reference implementations, sample code, live demos, installable tools, presentations, whitepapers and more. Featured technologies include Silverlight, Windows Presentation Foundation, Windows 7 Touch, Microsoft Surface, Windows Phone, SharePoint, Expression Studio, and Microsoft Advertising. Topics covered on the kit range from Rich Media Delivery using Silverlight and Deep Zoom to Multi-Channel Digital Marketing using Windows 7, SharePoint, Windows Phone, and Surface.


TOC and excerpts for Richter’s CLR via C#, Third Edition

9780735627048f We know that full TOCs help you determine whether an author has covered subjects to the depth you need. The full TOC for Jeffrey Richter’s just published CLR via C#, Third Edition (ISBN: 9780735627048) can be downloaded here.

Here’s a collection of our posts sharing excerpts from and other information about Jeffrey’s book.

SharePoint Workspace and the Office Document Cache

There are three storage mechanisms SharePoint Workspace uses to store data on your local computer. Lists, InfoPath forms, schema, and views are stored in SharePoint Workspace itself, BCS data has its own storage mechanism, and your SharePoint documents are stored in a common Office file store called the Office Document Cache (ODC). The diagram below shows the relationships between the three data stores and the content sources for each.

clip_image001

The Office Document Cache

SharePoint Workspace, along with other Office 2010 products, uses the Office Document Cache (ODC) for file storage. Files are downloaded and synchronized using a protocol called File Sync via SOAP over HTTP (FSSHTTP). SharePoint Workspace’s use of the ODC and FSSHTTP has many advantages for XML-based Office documents, including:

· Reduced network load

· Faster saves

· Conflict resolution

· Coauthoring

Differential Sync

After initial sync, only document changes are sent between SharePoint and SPW. This reduces bandwidth consumption and server load, while giving the user a more responsive save experience, even when working with very large files.

Collaborating Online and Offline with Coauthoring and Merging

When you’re offline and working with SharePoint documents, other users may be editing the same document, putting it in conflict when you try to sync your changes. SharePoint Workspace and the ODC handle many of these changes automatically for you, by seamlessly integrating your changes with the updated document on the server. When you get back online, your changes will be merged with the new server copy and any changes on the server will appear highlighted green.

clip_image002

Coauthoring allows multiple users to edit the same document at the same time collaboratively. You will be notified when you open a document someone else is editing, along with easy access to their contact information.

clip_image003

When the other user makes changes to a section of a document, that section will become locked, shown below. Once the user has completed making changes you will be notified and the new changes can be merged into your work.

clip_image005

High Volume Synchronization

We’re actively working on increasing capacity limits to optimize throughput, but for now synching a large number of documents can degrade performance.  SharePoint Workspace will first warn you when the number that you’re scheduled to synchronize gets high, and then it will actually change its behavior when the number gets higher still.

If you are syncing 500 or more documents, SPW will give you a warning, which also serves as a heads-up to suggest that you should expect gradually slower performance as the number of documents gets larger.

When you’re about to synch 1800 documents or more, SharePoint Workspace will change its behavior to make sure that you get your documents in a timely fashion.  It will synchronize only headers (metadata about the document) at this point, and will synchronize actual documents only on demand.  When you actually need one or more documents, you can click on them, and SPW will sync them for you on the spot.

There are several ways to reduce the number of documents you have offline, such as deleting unused SharePoint workspaces, disconnecting from unused document libraries, or discarding local copies of documents.

 

Andrew Harris and Jim McCoy

Some of the ways to keep up with MIX10

Quickly sharing this good summary I received today:

Watch LIVE from MIX10
Follow the news fromMIX10 online on Monday, March 15 and Tuesday, March 16 at 9 AM P.D.T. ( G.M.T. -9 hours) with keynote sessions first.   Once the keynotes end just keep watching as Channel 9 Live will begin streaming automatically until 5:30 PM, with interviews with Scott Guthrie, Joe Belfiore, Bill Buxton, Dean Hachamovich, Charlie Kindel, Albert Shum, Doug Purdy, Erik Meijer and many more. Follow or send questions to @ch9live on Twitter . You can view the full schedule here.

Session Recordings available online
The MIX10 breakout sessions will be recorded and available online within 24 hours of the session. http://live.visitmix.com.

Follow Student Insiders as they blog live from MIX10

Watch as 3 Student Insiders report live from the keynotes and interview industry luminaries.

Use the Session Planner to organize your schedule

The MIX10 Session Planner (Beta) was built to browse sessions, workshops, and speakers, and organize your personal schedule for the conference. MIX10 Session Planner (Beta) uses Microsoft Silverlight together with Microsoft Sync Framework to help you get the most out of MIX10.

I’ve been working on a surprise ebook offering for attendees by one of our favorite (and perhaps best-known) authors. You’re going to love it!

Data Macro Aliases and the Where Condition Demystified

Whenever I debug a data macro, one of the most common mistakes I find is misusing aliases, especially in the Where Condition of a ForEachRecord or LookupRecord data block.  This blog post is an attempt to demystify this area.  Hopefully, by the time you are done reading this you will have a firm grasp of how to use aliases in data macros.

Key points

1. What is the default data context?

2. When does the default data context change?

3. What else is in the data context?

4. What is the default data context in a named data macro?

5. Using an alias in the Where Condition of a ForEachRecord or LookupRecord.

6. Using an alias to reference a data context outside of the current default data context.

What is the default data context?

In a data macro, the "default data context" is what you are using when you refer to a field without using a table name qualifier.  When a BeforeChange, BeforeDelete, AfterInsert, AfterUpdate, or AfterDelete event data macro is triggered, a new default data context is created, which can be used inside that block.

This new context is what I like to refer to as the “incoming default data context” or, for brevity, the “incoming record.”  Note that in event data macros, the incoming default data context is always read-only.  This is a change in behavior from the Beta 2 release.

When does the default data context change?

The data context stack is expanded and the default data context changes whenever you enter a data block (ForEachRecord, LookupRecord, EditRecord, and CreateRecord).

For example, if you are in a data macro in Table1, and you call “ForEachRecord Table2”, and then refer to a field without a table name qualifier, you are referring to a field in Table2.

What else is in the data context?

If you are in Table1.AfterUpdate, then you call “ForEachRecord Table2”, and inside that loop you call “LookupRecord Table3”, the data context at this innermost point contains a record for each of the 3 tables, and can be accessed using the following table name qualifiers:

1. [Table3] contains the record (if any) found by LookupRecord.

2. [Table2] contains the current records in the ForEachRecord loop.

3. [Table1] contains the record that triggered the AfterUpdate event.

4. [Old] contains the record in Table1 from just before the data change that triggered the AfterUpdate event was entered.

At the innermost data block (the LookupRecord on Table3), all of these are available from the data context stack with [Table3] being the current default data context.  So, inside the LookupRecord data block, the data context stack looks like this:

clip_image002[4]

When you exit a data block, the data context for that block is removed from the data context stack.  So, if the LookupRecord on Table3 is finished, but you are still inside the ForEachRecord on Table2, then [Table2] becomes the current default data context, and the data context stack looks like this:

clip_image004[4]

What is the default data context in a named data macro?

If you call a named data macro from an event data macro, the entire data context is carried over.  So, in the above example, if you called RunDataMacro from the innermost data block, all 4 items would still be available inside the named data macro.

Note that there is no data context if you call a named data macro from a user interface macro (UI macro).  In this case, any attempts to refer to a field will fail until you enter a data block, because there is no way to know which record you are referring to.

TIP:

If you define parameters for data that is consumed by your named data macro, then you can also call the named data macro from a UI macro.  Then, if you are viewing a form you can pass the ID of the record being viewed (or any other field in it) to the data macros and then use LookupRecord on the ID to get the same record and perform some processing, such as deleting the record. Note however, that parameter values in data macros are read-only and cannot be edited.

Here is a screenshot illustrating this:
image

Using an alias in the Where Condition of a ForEachRecord or LookupRecord.

In most cases, you will not need to define an alias in a ForEachRecord or LookupRecord and you can just leave it blank, because the alias defaults to the same name as the table or query you are referring to on the first line.

IMPORTANT: The Where Condition is inside the data block.  Therefore, the default data context in the Where Condition argument is whatever table or query the ForEachRecord or LookupRecord refers to.

Suppose you are in Table1’s BeforeChange event, and you want to prevent the change if it would create a duplicate value in the [Text1] field.  The easiest way to do it is to create a LookupRecord on Table1 to find out if there is another [Text1] field in the table with the same data as the incoming record, and raise an error if a duplicate is found.

The solution is to define an alias for the LookupRecord block, then use that alias as the table name qualifier for fields in the Where Condition expression, and call the RaiseError action if any record is returned by LookupRecord to prevent the entry of this data.

Here is a screen shot illustrating this:
clip_image008[4]

Using an alias to reference a data context outside of the current default data context.

Let’s say you want to iterate over all the records in Table1 and look for a match in Table2.Text1, and if found, set Table1.Text2 = "Match found in Table2 at row ID=X".  To do this, I’ll define an alias at each step.  Then, to edit the record from the ForEachRecord instead of the LookupRecord (which would be the default data context for the EditRecord if no alias was specified), I’ll use the alias I defined for the ForEachRecord (T1) in the Alias argument of the EditRecord block.  This is how to edit the record from the ForEachRecord loop and instead of the record found by the LookupRecord.

Here is a screen shot illustrating this:
clip_image010[4]

TIP:

The other benefit of always defining your aliases and then using them in the expressions inside the data block is that if you rename your table, you do not need to update all of your expressions.

That’s it!  I hope this clears up any questions you may have had about using aliases or the where condition in data macros.

-James

JamesR_Headshot