• 动态语言越来越广泛的使用,使得微软顺应时代的发展,在下一代Visual Stuio中增加动态语言的开发能力。

    Microsoft is busy factoring in the growing use of dynamic languages in its planned upgrade to the Visual Studio software development platform.

    The upcoming Visual Studio 2010 release boosts interoperability between the Visual Basic and C# languages and dynamic languages, Microsoft's S. Somasegar, senior vice president of the Microsoft developer division, said in a blog entry [1]Wednesday evening. C# 4.0 and Visual Basic 10.0 will be available in Visual Studio 2010 [2] and are currently offered in the beta release of the development platform.

    "C# 4.0's major themes are interoperability with dynamic programming paradigms and improved Office programmability. Dynamic lookup, a new feature in C# 4.0, allows you to use and manipulate an object from IronPython, IronRuby, JScript, the HTML DOM, or a standard .Net library in the same way, no matter where it came from," Somasegar said.

    A dynamic keyword capability in C# 4.0 allows a type to be resolved dynamically at runtime rather than in a static fashion compiled at runtime. "This allows dynamic languages to expose their objects to C# in a way that feels natural to a C# programmer," Somasegar said.

    For Visual Basic, interoperability with dynamic languages is made simpler through such techniques as use of code snippets to call a Python library, Somasegar said.

    The successor to Visual Studio 2008, Visual Studio also is set to feature other improvements for developers using the two Microsoft programming languages. Although Microsoft has not yet said when Visual Studio 2010 will be released, previous estimates have placed its release possibly as early as later this year.

    "Language enhancements such as named and optional parameters and improved support for COM clients give C# developers who are working with Office APIs the same great experience that Visual Basic developers have enjoyed," he said.

    "The Visual Basic team focused on adding productivity features to the language so developers can get more done in fewer lines of code," Somasegar said. "The most common customer request for Visual Basic is to remove the underscore ("_") character when breaking a code statement across multiple lines in most cases. Visual Basic 10 introduces implicit line continuation, which removes the need for the underscore character in most cases."

    Also featured for Visual Basic are auto-implemented properties, in which lines of boilerplate property implementation code can be replaced with one-line declarations. Collection initializers and array literals also are simpler. "Collections can now be initialized when they're declared, and the type of array literals is inferred by the compiler," Somasegar said.

    Support for lambdas has been improved for Visual Basic. With Visual Basic 10, lambdas can contain expressions that do not return a value. Capabilities like multiple lambdas are supported, with the compiler inferring parameter and return types when possible, just like in regular lambdas.

  • 【IT168专稿】在之前关于Visual Studio 2010的新特性介绍文章中,我们已经喊出了“全体程序员注意:Ribbon全面来袭!”的口号。在这里,我们不再去强调Ribbon界面的易用和高效, 也不去强调和证明它将成为未来应用程序界面的一种趋势。为了让我们的应用程序“Ready for Windows 7”,我们有必要根据实际的情况需要,为我们的应用程序添加Ribbon界面。

      在前面的文章中,我们介绍了如何为MFC应用程序添加 Ribbon界面,但是这种方法只适用于基于MFC的Windows应用程序。如果我们的应用程序是标准的Windows应用程序该怎么办呢?为了推广 Ribbon界面,为了讨好程序员们,让程序员可以轻松地为各种应用程序创建Ribbon界面,微软真是不遗余力,不断地推出新的Ribbon界面接口。 为了可以让所有基于C++的普通Windows应用程序都可以添加Ribbon界面,微软在Windows 7 SDK中,又推出了基于COM的接口——Scenic Ribbon API。

      利用Scenic Ribbon API,我们可以更加灵活方便地为各种Windows应用程序添加Ribbon界面,改善应用程序的用户体验。在接下来的文章中,我们就介绍一下如何利用这种新的方式为普通Windows应用程序添加Ribbon界面。

       我们都知道,Ribbon界面是随着Office 2007一同发布的。在过去的几年中,微软不断地吸取用户对Ribbon界面的反馈,不断地对其进行改进,到了Windows 7,微软正式加入了命名为Scenic Ribbon的第二代Ribbon界面,即取代第一代Ribbon的升级版本。随着Scenic Ribbon成为Windows 7的一部分以及微软所提供的Scenic Ribbon API,这意味着今后第三方程序开发者能在自己开发的应用程序中免费用上这种界面形式。Scenic Ribbon作为第二代Ribbon界面,所适用的是所有的Windows应用程序,和前代有所不同是理所当然的。例如,由于最初Ribbon界面是 Office专用,因此使用Ribbon界面的Office 2007程序窗口左上角都有一个比较显眼的Office图标按钮。当应用到其他程序之后,这个图标显然不能继续存在,因此在Scenic Ribbon中,这个位置就被相应应用程序自身的图标所取代。另外,为了满足各种应用程序的需要,Scenic Ribbon还添加了部分Ribbon控件,使得Ribbon界面的控件更加丰富,能够应对各种应用程序对Ribbon界面控件的需要。值得一提的 是,Office作为Ribbon界面的开山鼻祖,到了Office的下一个版本Office 2010,也全面使用了Scenic Ribbon以替代第一代Ribbon界面。

      
     图1 Office 2010全面使用Scenic Ribbon界面

     

    阅读全文:

    VS 2010与Windows7共舞:又见Ribbon

  • 早上上班被雨淋了:(

     

    起床的时候看到窗外在下雨,出门的时候看到雨停了,就没有带雨伞,结果走到半路,雨又下了起来。

    得出两个结论:
    1. 六七八月的天,说变就变,女人也是。
    2. 晴带雨伞,饱带饥粮

  • 也许,这首歌,正是我此刻的心声

    仿佛如同一场梦
    我们如此短暂的相逢
    你像一阵春风轻轻柔柔吹入我心中
    而今何处是你往日的笑容
    记忆中那样熟悉的笑容
    你可知道我爱你想你怨你念你
    深情永不变
    难道你不曾回头想想
    昨日的誓言
    就算你留恋开放在水中
    娇艳的水仙
    别忘了山谷里寂寞的角落里
    野百合也有春天
    你可知道我爱你想你怨你念你
    深情永不变
    难道你不曾回头想想
    昨日的誓言
    就算你留恋开放在水中
    娇艳的水仙
    别忘了山谷里寂寞的角落里
    野百合也有春天

  • 个性化的时代,i字当头,很多产品,包括网站,软件产品都强调界面的自定义,比如Chrome的主题,QQ的皮肤等等。那么如何考虑UI的自定义,Jakob Nielsen'最近有篇文章给了我们一些建议:

    Customization of UIs and Products

    Summary: 
    Websites that let users customize the UI have the same measured usability as regular sites. Sites for customizing products, however, score substantially worse due to complex workflow.

    Web-based customization is not new. As far back as the mid-1990s, people have touted customization as both the Web's destiny and the panacea to all business ills. After filtering out the hype, it's clear that Web-based customization can, in fact, be utilized to benefit both businesses and users…if implemented properly.

    Customization's usefulness is obvious for many applications. Still, there are countless tales of companies investing heavily in customization only to find that users rarely — if ever — customize. There are also numerous studies that tout users' desire for customization, but (as we know) whatusers say is often at odds with what they actually do.

    Ultimately, for customization to succeed, you must have a business need for it and identify realistic hard and soft benefits to offset the expense of implementing it correctly.

    Customization vs. Personalization

    Although not commonly used, we could adopt the term "individualization" to refer to cases in which the user experience is adapted to each individual user's needs. In the early days of computing, everybody got the same thing. Similarly, in the Web's early days, all pages always looked the same, no matter who was visiting.

    Today, designs are often adapted to individual users, so that different people see different screens both in applications and on websites. There are two main ways to individualize the user experience, depending on who initiates the adaptation:

    • Customization happens when the user tells the computer what he or she prefers to see. Examples include:
      • Changing a news site to display the user's hometown weather forecast upon future visits to the homepage.
      • Changing an automobile vendor's site to display a particular car model with specific color and feature options, along with the customized car's list price. Most auto sites now feature such configurators.
    • Personalization happens when the computer modifies its behavior to suit its predictions about the current user's interests. Examples include:
      • An intranet portal employs role-based personalization to show management-related features only to users who are registered as managers in the HR database.
      • An e-commerce site displays a list of the user's last five orders to make reordering the same products easy.
    Our current research doesn't cover personalization. Instead, it focuses on two types of customization:
    1. Interface customization: Functionality that lets users customize their online experience by adapting the user interface to suit their preferences.
    2. Product customization: Functionality, such as a configurator, that facilitates customization of offline products, including custom-manufactured products.
    Customization is not limited to websites. For example, the prevalence of "app stores" and ringtone downloads attests to the attraction of customization for both advanced and simple mobile phones. Even so, we limited our current research to testing customization on the Web.

    User Research

    To assess the usability of customization functionality on the Web, we conducted a usability study with 24 users interacting with 7 sites that incorporate customization: 3 websites that let users customize their online experience (interface customization) and 4 websites that let users customize an offline product (product customization).

    Interface Customization Sites

    • iGoogle
    • My Yahoo!
    • Pageflakes

    Product Customization Sites

    • Custom Ink (custom t-shirts and other wearables)
    • Action Envelope (custom envelopes)
    • [me] & goji (custom cereal)
    • Tiny Prints (custom invitations and announcements)
    On each site, we asked users to perform typical customization tasks, such as:
    • Add a to-do list to your page
    • Take a gadget off the page
    • Add a feature that posts daily pictures of cats
    • Assume that your business is moving and you need to print 500 announcements on a budget of $600

    Business Benefits of Customization

    When deciding whether to add customization features, it's important to first define your business objectives and then determine how customization might help you meet them. Following are some business benefits of Web-based customization.

    Increased Traffic and Loyalty

    In the case of iGoogle and My Yahoo!, customization is a value-add to an existing business model. Ideally, offering customization increases the number of users who will visit the site and choose it as their start page, thereby increasing page impressions and ad-based revenues.

    In 2008, for example, iGoogle reportedly accounted for 20% of visits to Google's home page. As well, users who take the time to create their own custom Google or Yahoo! homepages are more likely to engage with site offerings such as Web-based e-mail and search.

    Reduce Operating Costs

    For businesses such as Action Envelope, there's an operational incentive to not only place catalogs online, but also to provide customization functionality so that users can configure and place their orders online as well. Without the Web, such companies would have to print and mail catalogs and maintain a large sales staff to reach the levels they can with Web-based customization.

    Cast a Wider Net

    Traditionally, geography limited businesses that required customer interaction to determine the product. Today, that's not the case. Tiny Prints, for example, lets users create custom announcements and invitations online. Before the Web, customers typically achieved this only by visiting the printers, where they'd select paper, fonts, and ink colors, and then examine proofs, make corrections, and so on. The same was true with custom cereals: you could create your own at a natural foods market, perhaps, but not everyone lived (or lives) near such stores. The ability to offer customization online makes such individualized products available to the masses.

    Usability Challenges on Customization Sites

    Our study looked at sites with and without customization to see whether there are any marked usability differences. We also separated interface customization sites from those with product customization. Interface customization task success matched that on non-customization websites, with an average completion rate of 83%. However, product customization sites averaged only 66% task completion — a significant gap.

    In our post-task surveys, users generally reported feeling more lost and less in control on the customization websites, as the following (averaged) ratings indicate:

     Non-Customization SitesCustomization Sites
    Feeling oriented 60% 53%
    Feeling in control 66% 60%

    Having users feel less in control on customization sites is particularly unfortunate, given that the goal of customization is to cater more precisely to each user's needs. Current customization user experiences have a tendency to get in the way, rather than empower users and make them feel appreciated.

    The complexities of customization impact both task success and perception of the site.

    For interface customization, the main problems relate to discoverability, findability, and comprehension — that is, getting to the customization in the first place, and then finding and understanding the available options. To reward first-time users with an early success experience, sites should better explain features and provide fast-tracked workflows. In our study, for example, iGoogle's promise to create a simplified personal homepage "in under 30 seconds" was successful and encouraged users to start experimenting with the service.

    For product customization, poor findability caused even more problems: it was responsible for45% of the many task failures on these sites. Overly complex workflows also caused many problems. Users frequently missed steps or misunderstood what was required to successfully design their own products. For example, one site asked users to specify font sizes in units that made no sense to the average person, resulting in a frustrating trial-and-error with different numbers. This particular problem was exacerbated by the unfortunate choice of a default size that was too small for almost all users.

    The Importance of Good Defaults

    Despite its benefits, many users don't avail themselves of customization features. Users exhibit a strong bias toward simply getting things done on a website, rather than spending time fiddling with preference settings.

    It's too easy to resolve a design debate by simply offering all the possible options as preference settings and letting users decide the interface for themselves. Often, it's better for users if the design team decides on a single good, coherent user experience. Customization options should be reserved for those features that offer substantial user benefits, thereby compensating users for the time spent on customizing the UI rather than on accomplishing their tasks.

    In any case, some users won't customize no matter how easy and rewarding you make the customization interface. It's therefore imperative to retain a good default design for non-customizing users.

    Customization: Effective When Implemented Correctly

    None of the sites we studied offered gratuitous customization; each site benefited from its customization and offered great benefits to users who took advantage of it. In observing users interacting with these sites, we witnessed both best and poor practices, which we've distilled into 46 guidelines for customization design. These guidelines outline the design principles that you should follow to ensure that your customization efforts provide an effective, efficient, and satisfactory experience for your users.

    Customization is complicated, both technologically and design-wise. To get a user from blank slate to fully customized interface or product takes exceptional design skill. It also requires cooperation among multiple groups to assemble, organize, and architect a usable customization path. Customization isn't something you can throw together in a couple weeks, and businesses who approach it in that manner are risking their reputation and revenues.