Wednesday, November 28, 2007

Visual Studio 2008 - released

Microsoft Visual Studio 2008 provides an industry-leading developer experience for Windows Vista, the 2007 Microsoft Office system, and the Web. In addition, it continues in the Microsoft tradition of development language innovation.

You can find trial downloads for evaluation of Visual Studio 2008 here.


Brief history of Visual Studio

The first release of Visual Studio in 1997 featured separate IDEs (that required their own installation) for Visual C++, Visual Basic, J++, and a tool known as InterDev. Visual Studio 6.0 was a dramatic improvement that marked the birth of Visual Basic 6 and embodied the idea of a set of unified services across all languages.

With Visual Studio .NET 2002 and Visual Studio .NET 2003, this vision was realized with the .NET Framework. For the first time an individual developer could write an application in the language of their choosing while taking advantage of a common set of tools including designers, drag and drop controls, and IntelliSense. Along with the increase of individual developer productivity was an increase in the size and complexity of development projects and teams.

Visual Studio 2005 was born to help developers in teams of any size increase collaboration and reduce development complexity.

Visual Studio 2008 will no exception and will be delivered on the commitment to make every software project successful on the Microsoft platform.

Wednesday, November 21, 2007

XSSDetect - Free Visual Studio Plugin (Public Beta)


XSSDetect is a VisualStudio plugin designed to detect XSS vulnerabilities in managed code which is very common and unfortunately, still an issue that have to deal with in many web applications.

Cross-site scripting (XSS) is a type of computer security vulnerability typically found in web applications which allow code injection by malicious web users into the web pages viewed by other users. Examples of such code include HTML code and client-side scripts. An exploited cross-site scripting vulnerability can be used by attackers to bypass access controls such as the same origin policy. Vulnerabilities of this kind have been exploited to craft powerful phishing attacks and browser exploits. (Cross-site scripting was originally referred to as CSS)

XSSDetect is a stripped down version of enterprise ready Code Analysis Tool for .NET code bases (CAT.NET for short). CAT.NET adds such features as VSTF integration, centralized reporting using web services, customized rulesets and filters, integration with FXCop and MSBUILD as well as the ability to run from the command line to integrate with your build processes.

XSSDetect is currently in beta! This current version of the beta will expire after 60 days.

You can download XSSDetect from here.


Wednesday, November 14, 2007

gOS


gOS is a Linux distribution created by gOS LLC. The company advertises it as “An alternative OS with Google Apps and other Web 2.0 apps for the masses and simple, user friendly, beautiful desktop for normal people.”

It is based on the Ubuntu 7.10 distribution. It uses the Enlightenment 17 window manager instead of the usual GNOME or KDE desktops, allowing for lower memory and speed requirements.

Its primary feature is its usage of a Mac-like Dock featuring icons linking to various web applications such as Google Docs, Wikipedia, and Gmail, as well as local applications such as GIMP and Skype. Also come with all the software you need to browse the web, email, instant message... play movies, music, and connect to iPods... create and edit documents, spreadsheets, presentations, databases, images... out of the box.

Tuesday, November 13, 2007

SpaceTime™



SpaceTime is a 3D search application which can be used to Search Google, YouTube, RSS, eBay, Amazon, Yahoo!, Flickr and Images all in one 3D space. The days of mining through pages and pages of tiny thumb-nails in an effort to find the item you are looking for are over. Because SpaceTime™ has unlimited space, you can display hundreds of items at once to find exactly what you are looking for.

3D Image Search

Using SpaceTime you can search Yahoo! Images and Google Images and take advantage of your computer's high powered graphics and fast broadband connection as SpaceTime™ displays thousands of images at once. Enter your search term and SpaceTime™ displays your search results in their own visual stack. Enter another search and SpaceTime™ displays your second search results next to your first.

3D Web Search

With SpaceTime's™ 3D Web Search, you choose your search engine from the drop down menu, type in your search term and enjoy the experience as SpaceTime™ displays all your search results at once in our patent pending interface. Enjoy the perks that immediate visualization has to offer as you save time, eliminate clicks and find the web pages you are looking for at a fraction of the time.

Monday, November 5, 2007

Mahalo

Mahalo is a web directory (although it is represented in the form of a search engine). It differentiates itself from algorithmic search engines like Google, as well as other directory sites like Yahoo by tracking and building hand-crafted result sets for many of the currently popular search terms. Mahalo means “thank you” in Hawaiian.

Mahalo’s directory employs human editors to review websites and write search engine results pages that include text listings, as well as other media, such as photos and video. Each Mahalo search results page includes links to the top seven sites, as well as other categorized information, and additional web pages from Google.

Mahalo has started with the top 4,000 search terms in popular categories like travel, entertainment, cars, food, health care and sports and is adding about 500 more terms per week with a goal of covering the top 10,000 by the end of 2007. Mahalo also offers “how to” guides offering instructions on popular topics in an editorial fashion.

Mahalo’s goal is to improve search results by eliminating search spam from low-quality websites, such as those that have excessive advertising, distribute malware, or engage in phishing scams.

Wednesday, October 31, 2007

Microsoft Popfly

Microsoft Popfly (codenamed Springfield) is a website that allows user to create web pages, program snippets, and mashups using the Microsoft Silverlight rich internet applications runtime and the set of online tools provided. It requires users to login with their Windows Live ID, and fill-up additional information about themselves when logging in for the first time to use Popfly.

The Popfly includes three tools based on Silverlight technology.

Mashup Creator

The Mashup Creator is a tool that lets users fit together pre-built blocks in order to mash together different web services and visualization tools. For example, a user could snap together photo and map blocks in order to get a geotagged map of pictures on a topic of their choice. Also available is an advanced view for blocks, which allows users to modify the code of the block in JavaScript, as well as giving users flexibility in designing the programs. Additional HTML code can also be added to the mashups. A feature similar to IntelliSense, with autocompletion of HTML code, is available as well.

The Mashup Creator also provides a preview function, with live preview in the background as users link blocks. Tutorials are available, and error notices are given to users when incompatible data is sent between blocks.

Web Creator

The Web Creator is, as its name implies, a tool for creating web pages. The user interface layout is similar to the ribbon user interface for Office 2007. Web pages are created without HTML coding, and can be customized by choosing predefined themes, styles, and color schemes. Users can embed their shared mashups in the web page. Completed web pages will also be saved in each user's Popfly space.

Popfly Space

Completed mashups and web pages are stored in 25MB on Popfly Space, where users also receive a customizable profile page and other social networking features. Public projects can be shared, rated, or "ripped" by other users. Popfly allows users to download mashups as gadgets for Windows Sidebar or embed them into Windows Live Spaces, with some support for other blog service providers.

Another feature Popfly Space is the Popfly Explorer plug-in for Visual Studio Express. Users can utilize Visual Studio Express (only Visual Basic Express or Visual C# Express), to download the mashups and modify the coding, as well as performing actions as uploading, sharing, ripping, and rating the mashups.

Tuesday, October 30, 2007

Google Phone or gPhone


Google Phone (or gPhone) is a potential mobile phone or smartphone speculated to be connected with search engine giant Google.

The speculation that Google would be entering the mobile phone market with a gPhone was first raised in December 2006. Since that time, various reports noted that Google wanted Google search and Google applications on mobile and it is working hard every day to deliver that. Further, it’s now believed that Google is showing the prototype to cell phone manufacturers and network operators as it continues to hone the technical specifications. As many as about 30 prototype gPhones are reported to be operating in the wild.

Network World reported that Google’s GPhone is actually an open source software phone operating system, rather than a specific hardware device like the iPhone.

Features and specifications

It is believed that the specifications Google has laid out for devices suggest that manufacturers include cameras for photo and video and built-in Wi-Fi technology to access the Web at hot spots such as airports, coffee shops and hotels. It also is recommending that gPhones be designed to work on carriers’ fastest networks, known as 3G, to ensure that Web pages can be downloaded quickly. Google suggests the phones could include Global Positioning System technology that identifies where people are.

Some sources say it is only a mobile OS, designed to run on hardware from other manufacturers. At Google, a team has developed a Linux-based mobile device OS which they're currently shopping around to handset makers and carriers on the premise of providing a flexible, customizable system—with really great Google integration. One was likened to a slim Nokia Corp. phone with a keyboard that slides out. Another phone format presented by Google looked more like a Treo or a BlackBerry. It’s not clear which manufacturers might build the Google Phone, though people familiar with the project say LG Electronics Co. of South Korea is one company that has held talks with Google. However, other sources such as gizmodo.com and silicon.com have reported HTC might be demonstrating new concepts as well. Google has already lined up a series of hardware component and software partners and signaled to carriers that it’s open to various degrees of cooperation on their part, the people say.

gPhone payment patent

Google has applied for a patent for a mobile payment system to complement its’ plans to launch’ the Google phone, or GPhone. Known as 'GPay', it covers a system that would let the user send a text message to Google giving the details of a payment to a specified recipient. GPay then debits the user’s bank account, crediting the money to the payee.

likely free mobile phone service

It has been suggested that the gPhone offer an ad-supported phone service in which users watch a 10 to 30 second advertisement before making a call. Users would also have an advertisement banner across the top of the screen while browsing the Web. Mostly aimed at teens and young adults, the ads would be aimed accordingly. Consumers may have the option to have them removed by paying a premium for the service.

Monday, October 29, 2007

New Product Family – Virtual Server

Microsoft Virtual Server is a virtualization solution that facilitates the creation of virtual machines on the Windows XP and Windows Server 2003 operating systems. Originally developed by Connectix, it was acquired by Microsoft prior to release. Virtual PC is Microsoft's related desktop virtualization software package.

Virtual machines are created and managed through an IIS web-based interface or through a Windows client application tool called VMRCplus.

The current version is Microsoft Virtual Server 2005 R2 SP1. New features in R2 SP1 include Linux guest operating system support, Virtual Disk Precompactor, SMP (but not for the Guest OS), x64 Host OS support (but not Guest OS support), the ability to mount virtual hard drives on the host OS and additional operating systems including Windows Vista. It also provides a Volume Shadow Copy writer which enables live backups of the Guest OS on a Windows Server 2003 or Windows Server 2008 Host.

Although Virtual Server 2005 R2 can run on hosts with x64 processors, it cannot run guests that require x64 processors (guests cannot be 64-bit).

It also makes use of SMP, but does not virtualize it (it does not currently allow guests to use more than 1 CPU).

Thursday, October 25, 2007

New Google product - Fusion

"Fusion," is a personalized home page.

In this early stage, it incorporates Gmail, news, weather, stocks, driving directions, and movie data. Also it pulls in Web content from the BBC, NY Times, Slashdot, Wired, Quote of the Day, and Word of the Day. To come in the future: Any other RSS feed.

Its live now on labs.google.com
Usability looks good - nice edit-in-place for the page, and drag-and-drop modules.

On this one self-designed page, you can select and organize the content you choose:

  • Latest Gmail messages
  • Headlines from google news and other top news sources
  • Weather forecasts, stock quotes and movie showtimes
  • Bookmarks for quick access to your favorite sites from any computer
  • Your own section with content you find from across the web

Wednesday, October 17, 2007

Microsoft Expression Media


Microsoft Expression Media is a commercial digital asset management (DAM) cataloguing program for Microsoft Windows and Mac OS X operating systems. It is the next version of iView MediaPro which Microsoft acquired in June 2006, and is available as:

* Standalone
* As part of the Expression Studio suite of design applications
* As part of the future Office 2008 for Mac Media Edition

Expression Media's key function is cataloguing digital assets. Professional and amateur photographers use the program to display and manage a wide range of formats from high resolution raw image formats to complex multi-layered Photoshop files and more common formats such as JPEG and GIF. It can also catalogue a wider range of other media formats including music and video, Adobe PDF, fonts, and rich media formats like Adobe Flash. The user is able to efficiently organize and categorize without being limited to assets' actual folder locations, can add metadata including IPTC annotations, and locate assets which may spread over multiple folder and drive locations, including offline discs.

As well as cataloguing, Expression Media has a range of output functions:

* Print - formats include contact sheets, lists
* Web gallery output
* Conversion to other formats - e.g. raw files can be resized, output as JPEG, and attached to emails
* Slideshow

Sunday, October 14, 2007

Microsoft Expression Design


Microsoft Expression Design is Microsoft's commercial professional illustration vector and raster graphic design tool based on Creature House Expression, which was acquired by Microsoft in 2003. It is part of the Microsoft Expression Studio suite and is written using Windows Presentation Foundation.

Expression Design was codenamed Acrylic and was originally announced as Expression Graphic Designer until the current name was adopted in December 2006.

Expression Design requires the .NET Framework 3.0 as it is written in Windows Presentation Foundation. Expression Design is only available as part of Expression Studio; it is not included in any MSDN subscription as it is purely a design tool, and it cannot be purchased individually.

Unlike the original Expression product, Expression Design will be only available for Microsoft Windows XP and Windows Vista on the Windows platform. The Mac OS X version has been discontinued.

Thursday, October 11, 2007

Microsoft Expression Web


Microsoft Expression Web, code-named Quartz, is a WYSIWYG HTML editor and general web design program by Microsoft, replacing Microsoft FrontPage. It is part of the Expression Studio suite.

Expression Web is focused on the needs of professional Web designers seeking to build high-quality, standards-based Web sites for companies. It provides support for integrating XML, CSS 2.1, ASP.NET 2.0, XHTML, XSLT and JavaScript into sites. It requires the .NET Framework 2.0 to operate. Its sibling is Microsoft SharePoint Designer. Expression Web uses its own standards-based rendering engine, different from the browser-based FrontPage, which uses Internet Explorer's Trident engine. Microsoft claims that Expression Web's rendering engine currently provides the most accurate standards-compliant rendering on the market, especially CSS rendering.

On May 14, 2006, Microsoft released the first public preview version of Expression Web on their web site. On Sept 5, 2006, Microsoft released Beta 1. The major changes from CTP 1 are that nearly all of the old FrontPage bots and functions have been removed. On December 4, 2006 Microsoft released the final version, which can be found on the Expression Web homepage.


Wednesday, October 10, 2007

Microsoft Expression Blend


Microsoft Expression Blend is Microsoft's user interface design tool for creating rich graphical interfaces for web and desktop applications that blend the features of these two types of applications. Expression Blend is itself written using the .NET Framework 3.0 and Windows Presentation Foundation (WPF). Expression Blend is effectively an interactive, WYSIWYG (What You See Is What You Get) front-end for designing XAML-based interfaces for WPF and Silverlight (Blend version 2.0 onwards).

Expression Blend was code-named Sparkle, and originally the product was announced as Microsoft Expression Interactive Designer, before it was renamed Expression Blend in December 2006.

Expression Blend supports the WPF text engine with advanced OpenType typography and ClearType, vector-based 2D widgets, and 3D widgets with hardware acceleration via DirectX. It is completely written using WPF, as opposed to Windows' older GDI or GDI+ graphics technologies. It is one of the applications in the Microsoft Expression Studio suite.

A trial version of Expression Blend is available. [2] A preview version of Expression Blend 2.0 is also available which supports developing Microsoft Silverlight browser-based Rich Internet Applications providing animation, vector graphics, and interactivity and video playback capabilities.


Monday, October 8, 2007

Windows Workflow Foundation

Windows Workflow Foundation (WF) is a Microsoft technology for defining, executing, and managing workflows. This technology is part of .NET Framework 3.0 which is available natively in the Windows Vista operating system, and can be installed on the Windows XP SP2 and Windows 2003 Server operating systems.

Authoring Workflows

A new XML-based language XAML is commonly used for declaring the structure of a workflow. However, the workflow may also be expressed in code using any .NET-targeted language (VB.NET, C#, C++/CLI, etc.).

Workflows comprise 'activities'. Developers can write their own domain-specific activities and then use them in workflows. WF also provides a set of general-purpose 'activities' that cover several control flow constructs.

Windows Workflow Foundation is supported by a companion set of extensions to Visual Studio 2005. These extensions contain a visual workflow designer which allows users to design workflows, a visual debugger which enables the users to debug the workflow designed, and a project system which enables the user to compile their workflows inside Visual Studio 2005.

Moving data through Workflows

Activities that require or provide data can use properties to expose them, and enable the Workflow author to bind them to the containing workflow by declaring 'dependencies'.

Hosting Workflows

The .NET Framework 3.0 "workflow runtime" provides common facilities for running and managing the workflows and can be hosted in any CLR application domain, be it a Windows Service, a Console, GUI or Web Application.

The host can provide services like serialization for the runtime to use when needed. It can also hook up to workflow instance's events such as their becoming idle or stopping.

Communicating with Workflows

WF workflows define interfaces with methods and events to communicate with the outside world. A host application typically sets up an environment before running a workflow, providing objects that implement those interfaces.

When an object implementing such interfaces raises an event, the corresponding workflow is retrieved and the data passed on to it.

Methods on the interface may be used by the workflow to communicate with its host.

Sunday, October 7, 2007

Windows CardSpace

Windows CardSpace, formerly known by its codename InfoCard, is the client software (or Identity selector) for the Identity Metasystem, a concept developed by Microsoft which securely stores and delivers the digital identities of a person, providing a unified, secure and interoperable identity layer for the Internet. The identity selector provides a unified interface for choosing the identity for a particular transaction, such as logging in to a website.

When a CardSpace-enabled application or Information card aware website wishes to obtain personal information about the user, the application or website demands a particular set of claims or a particular token type from the user. CardSpace then appears, locking the display to the CardSpace program which displays the stored identities as virtual information cards. The user selects the card to use and the CardSpace software contacts the issuer of the identity to obtain a digitally signed XML token that contains the requested information.

CardSpace allows users to create self-issued identities for themselves, which can contain one or more of around 15 fields of telephone book-quality identity information. Other transactions may require a managed identity issued by a trusted identity provider, such as a bank, employer or a governmental agency.

Windows CardSpace is built on top of Web Services Protocol Stack, an open set of XML-based protocols, including WS-Security, WS-Trust, WS-MetadataExchange and WS-SecurityPolicy. This means that any technology or platform which supports WS-* protocols can integrate with CardSpace. In order to accept information cards, a website developer simply needs to declare an HTML tag that specifies the claims the website is demanding from the user and then implement code to decrypt the returned token and extract the claim values. If an Identity Provider (IP) wants to issue tokens, they must provide a means by which a user can obtain a managed card and provide a Security Token Service (STS) which handles WS-Trust requests and returns an appropriate encrypted & signed token. If an IP does not wish to build an STS, they will be able to obtain one from a variety of vendors including PingID, BMC, Sun, Microsoft or Siemens, as well as other companies or organizations.

Because it is token-agnostic, CardSpace does not compete directly with other Internet identity architectures like OpenID and Liberty Alliance. In some ways the three approaches to identity can be seen as complementary.

In February 2006, IBM and Novell announced that they will support the Higgins trust framework to provide a development framework that subsumes a support for the Web Services Protocol Stack underlying CardSpace within a broader, extensible support for other identity-related technologies, such as SAML and OpenID.

Microsoft included Windows CardSpace within its new operating system Windows Vista, and is also available as part of Microsoft's .NET Framework 3.0 for Windows XP and Windows Server 2003.

(Identity Metasystem is a platform for managing digital identities and provide authentication services. An identity metasystem manages authentication service providers and facilitates authenticating the user to resources that require authentication. It thus provides interoperability between various authentication credential providers (including password based authentication systems to biometric systems) and allows the user to authenticate himself to any resource using the authentication system of choice.)

Friday, October 5, 2007

Windows Presentation Foundation

The Windows Presentation Foundation (or WPF), formerly code named Avalon, is the graphical subsystem feature of the .NET Framework 3.0 (formerly called WinFX) and is directly related to XAML. It is pre-installed in Vista, the latest version of the Microsoft Windows operating system. WPF is also available for installation on Windows XP SP2 and Windows Server 2003. It provides a consistent programming model for building applications and provides a clear separation between the UI and the business logic. A WPF application can be deployed on the desktop or hosted in a web browser. It also enables richer control, design, and development of the visual aspects of Windows programs. It aims to unify a host of application services: user interface, 2D and 3D drawing, fixed and adaptive documents, advanced typography, vector graphics, raster graphics, animation, data binding, audio and video.

Features:

Graphical Services
All graphics (including desktop items like windows) will be routed through Direct3D.

Deployment
WPF deployment model offers both standalone and XAML Browser Applications (XBAP) flavors.

Interoperability
WPF provides interoperability with Win32: Via hosting, and interoperability with Windows Forms through the use of the ElementHost and WindowsFormsHost classes.

Media Services
WPF provides shape primitives for 2D graphics, 3D capabilities, time-based animations, text rendering.

Data binding
WPF has a built-in set of data services to enable application developers to bind and manipulate data within applications.

User interface
A powerful concept in the WPF is the logical separation of a control from its appearance.

Imaging
Windows Imaging Component (WIC) for WPF allows developers to write image codecs for their specific image file formats.

Effects & Text rendering
Special effects and text rendering features that was not available in GDI.

Alternative input
WPF supports digital ink-related functionality.

Accessibility
WPF supports Microsoft UI Automation to allow developers to create accessible interfaces.

Wednesday, October 3, 2007

Windows Communication Foundation

WCF









Introduction

Windows Communication Foundation (WCF) is Microsoft's unified programming model for building service-oriented applications. It enables developers to build secure, reliable, transacted solutions that interoperate with applications in different platforms.

Interoperability is the fundamental characteristic of WCF. The fundamental communication mechanism is based on Web Services specifications such as SOAP, XML, XSD, WSDL and newly established standards including the WS-* protocols. These specifications address several areas, including basic messaging, security, reliability, transactions, and working with a service's metadata.

WCF relies on WS-Policy and WS-Metadata Exchange to discover information about the communications partners. Reliable communication is essential for most situations (no duplicates messages), and WS-Reliable Messaging would be used to interact with many of the other applications in this scenario. WS-Security and the related specifications might also be used for establishing a secure channel. The specifications support the main security services such as authentication, integrity and confidentiality. WS-Atomic Transaction is very important for managing transactional context involving several transactional resources.

The key point is that WCF implements interoperable Web services, complete with cross-platform security, reliability, transactions, and other services. It also is transport neutral, protocol neutral, and format neutral. For example, services are free to make use of HTTP, TCP, named pipes, and any other transport mechanisms for which there is an implementation. It is possible the WCF-to-WCF communication to be optimized, but all other communication uses standard Web services protocols.

The architecture

The architecture is based on layers.

~ Contracts

~ Service Runtime

~ Messaging

~ Activation and Hosting

Contracts

Contracts define various aspects of the message system. The data contract describes how every business object to be on the wire is going to be persisted using XML. The message contract defines specific message parts (header and body) using SOAP protocols, and allows finer-grained control over parts of the message. The service contract specifies the actual method signatures of the service. The policy and binding contracts enable you to specify transport, security details, and other aspects that must be met in order to communicate with a service.

Service Runtime

The service runtime manages the execution of services. It is possible to be specified the run-time behaviors through attributes or configuration settings. For example, a service can indicate that its instances are not thread-safe. Throttling behavior allows you to put limits on the number of connections, sessions, and threads. Error handling behaviors control how errors are handled and reported to clients. Metadata behavior governs how and whether metadata is made available to the outside world. Transaction behavior enables the rollback of transacted operations if a failure occurs. Dispatch behavior is the control of how a message is processed by the WCF infrastructure. Parameter filtering allows preset actions to occur based on filters acting on message headers.

Messaging

The messaging layer illustrates the possible formats and exchange patterns of the data. WS Security channel is an implementation of the WS-Security specification enabling security at the message layer. The WS Reliable Messaging channel enables the guarantee of message delivery. The encoders present a variety of encodings that can be used to suit the needs of the message. The HTTP channel specifies that the HyperText Transport Protocol is used for message delivery. The TCP channel similarly specifies the TCP protocol. The Transaction Flow channel governs transacted message patterns. The Named Pipe channel enables inter-process communication. The MSMQ channel enables interoperation with MSMQ applications.

Activation and Hosting

The specific method by which a service is started is determined by its activation options. And services can be either self-hosted or hosted in the context of another application. The Windows Activation Service (WAS) enables WCF applications to be activated automatically when deployed on a computer running the WAS. Services can also be manually run as executables (.EXE files). A service can also be run automatically as a Windows service. And a service can also be run as a COM+ application.

Tuesday, October 2, 2007

Microsoft Announces Public Beta of Newest XML Parser

XML Parser Significantly Increases XML Standards Conformance, Includes Extension of SAX2 Programming Interface for Visual Basic.(Available for immediate download from the MSDN XML Developer Center)

An XML parser (or processor) is the programming component that implements the core XML standards and provides XML services to applications. This version of the parser, MSXML3, increases XML conformance over previous releases by achieving a pass rate of over 98 percent using the OASIS (Organization for the Advancement of Structural Information Standards) XML Conformance Test Suite. It also extends support for the Simple API for XML (SAX2) programming interface, making SAX2 accessible from the Visual Basic development system.

This version of the parser marks the transition from "technology preview" to full beta, with general product availability scheduled for Web release in fall 2000. XML is a key technology of the Microsoft .Net Platform, and MSXML3 lays the groundwork for that vision by allowing developers to rapidly build and deliver XML-based Web services today.

Interoperability is one of the primary benefits of using XML for communications and data exchange, but can only be achieved when producers and consumers of XML process the language in a consistent way. This does not require the use of the same software or programming language, or even the same operating system, but it does mean that both applications must conform to the World Wide Web Consortium (W3C) XML 1.0 Recommendation. To help ensure vendors support this recommendation in a consistent way, OASIS - working with the support of the National Institute of Standards and Technology - has produced the XML Conformance Test Suite containing over 1,000 tests. Microsoft is committed to supporting and ensuring the interoperability of XML, as demonstrated by the significant advances in this beta release.

Since the last release just two months ago, when SAX2 support was added, one of the most requested features was access to SAX2 from Visual Basic. Extending access to developers using Visual Basic is a reflection of Microsoft's commitment to delivering the features its customers demand in "Internet time." SAX2 is designed to enable fast and efficient processing of XML by allowing programs such as the Visual C++ development system, and now Visual Basic, to read, review and process XML files without having to load the entire document into memory.

Microsoft released the first version of the new XML parser in January 2000 with updated versions posting in March and May.

Monday, October 1, 2007

Google Updates Sitemaps



The webmaster-friendly project started by Google over the summer has its own blog and some new features available for its users.

Google Sitemaps makes a tool available that lets site publishers create a map Google's spiders can use to more effectively index its content. On the official Google Blog, Grace Kwak posted about some new features in the Sitemaps service.

In our latest release, we provide even more interesting statistics that webmasters can use to improve the way their pages work with web crawlers, which will ultimately benefit their visitors.
I think the most fun are the new "query stats" -- they show top Google search queries that return pages from a site, as well as the top search queries that led users to click on a site. We've also enhanced the crawl errors we show, like specific HTTP errors Google runs into when crawling a page.


Google posted some more details about the new stats available on the Sitemaps blog:

With query stats, we show you the top Google search queries that return pages to your site as well as the top queries that caused users to click on your site in the search results.

With crawl stats, you can see how we view crawled pages. You can see a distribution of the pages successfully crawled and the pages with errors as well as a distribution of PageRank for the pages in your site.

Page analysis shows you what we detect about the content and encoding of your pages.

Index stats provide an easy way for you to use our advanced search operators to return results about how we see the indexed pages of your site.

Mobile stats
You can now verify your mobile sites and see stats for them.

More detailed errors
Now you'll have more details about problems we had crawling your site. We report on 40 different types of errors in 5 categories.

Microsoft Silverlight

Microsoft Silverlight (code-named Windows Presentation Foundation/Everywhere or WPF/E) is a proprietary runtime for browser-based Rich Internet Applications, providing a subset of the animation, vector graphics, and video playback capabilities of Windows Presentation Foundation.

Silverlight aims to compete with Adobe Flash and the presentation components of Ajax. It also competes with Sun Microsystems' JavaFX, which was launched a few days after Silverlight.

Version 1.1 will include a complete version of the .NET Common Language Runtime, named CoreCLR, so that Silverlight applications can be written in any .NET language.
Contents

* 1 Overview
* 2 Compatibility
* 3 Versions
- 3.1 Silverlight 1.0
- 3.2 Silverlight 1.1
* 4 Development tools
* 5 Licensing
* 6 Criticism
* 7 See also
* 8 External links
* 9 References

Overview

Silverlight provides a retained mode graphics system, similar to WPF and integrates multimedia, graphics, animations and interactivity into a single runtime. It is being designed to work in concert with XAML and is scriptable with JavaScript. XAML can be used for marking up the vector graphics and animations.

Silverlight supports playback of WMV and some VC-1 profiles-based video content and WMA and MP3 audio content across all supported browsers without requiring Windows Media Player, the Windows Media Player ActiveX control or Windows Media browser plugins. However, the Software license agreement says VC-1 is only licensed for the "personal and non-commercial use of a consumer".

Content created with Silverlight would be more searchable and indexable than that created with Flash as it is not compiled, but represented as text (XAML).

Silverlight makes it possible to dynamically load XML content that can be manipulated through a DOM interface, a technique that is consistent with conventional Ajax techniques. Silverlight exposes a Downloader object which can be used to download content, like scripts, media assets or other data, as is required by the application. With version 1.1, the programming logic can be written in any .NET language. It also supports common dynamic programming languages like Ruby and Python.

Notes:
* Opera will be supported with future builds
* On Linux, the Firefox, Konqueror, and Opera browsers will be supported.
* Support for the major Linux distributions through the 100% Silverlight compatible implementation Moonlight has been announced.
* Mobile device support is planned for the future, according to Scott Guthrie.
* Additional platforms are being considered as well.

Silverlight 1.0
A Silverlight 1.0 application hosted in Internet Explorer
A Silverlight 1.0 application hosted in Internet Explorer

Silverlight 1.0 consists of the core presentation framework, which is responsible for UI, interactivity and user input, basic UI controls, graphics and animation, media playback, DRM support, and DOM integration. It is made up of the following components:

* Input - handling input from devices like keyboard, mouse, stylus etc.
* UI core - managing rendering of bitmap images (including compressed raster images like JPEG), vector graphics, text and animations.
* Media - playback of MP3, Windows Media and VC-1 streams.
* XAML - to allow the UI layout to be created using XAML markup language.

A Silverlight application starts by invoking the Silverlight control from the HTML page, which then loads up a XAML file. The XAML file contains a Canvas object, which acts as placeholder for other elements. Silverlight provides various geometrical primitives like lines, ellipses and other shapes, to elements like text, images, and media etc. The elements are properly positioned to achieve the desired layout. Any arbitrary shape can be created as well. These elements can be animated using Event triggers; some animation effects are predefined, others can be created as composite of the pre-defined effects. Events like keyboard or mouse movements can also raise Events which can be handled by custom scripts.

Programmatic manipulation of the UI is achieved by using scripting languages to modify the Document Object Model of the Silverlight Canvas object. To facilitate this, Silverlight exposes a DOM API, accessible from any scripting language supported by Silverlight, which in version 1.0 release is limited only to JavaScript running in the browser. However, there are no UI widgets built in. The native widgets of the browser must be overlaid on top of the Silverlight Canvas for user input. Support for data formats is limited to XML, POX, and JSON only.

Silverlight 1.1
A Silverlight 1.1 application hosted in Internet Explorer
A Silverlight 1.1 application hosted in Internet Explorer

Silverlight 1.1 includes a version of the .NET Framework, with the full Common Language Runtime as .NET Framework 3.0; so it can execute any .NET language including VB.NET and C# code. Unlike the CLR included with .NET Framework, multiple instances of the CoreCLR included in Silverlight can be hosted in one process. With this, the XAML layout markup file (.xaml file) can be augmented by code-behind code, written in any .NET language, which contains the programming logic. It can be used to programmatically manipulate both the Silverlight application and the HTML page which hosts the Silverlight control. Silverlight ships with a lightweight class library which features, among others, extensible controls, XML Web Services, networking components and LINQ APIs. This class library is a subset of and is considerably smaller than .NET Framework's Base Class Library. Silverlight code runs in a sandbox which prevents invoking platform APIs. Silverlight 1.1 also adds support for DRM in media files.

The version of .NET Framework in Silverlight adds a subset of WPF UI programming model, including support for shapes, documents, media and animation objects of WPF. However, the set of UI controls Silverlight ships with in the current release is limited. Also, in the current release, the UI controls do not have support for databinding to any data source. But, Microsoft has clarified that the limitations are due to this being an early preview release. Future releases will add more UI controls, add databinding support, and automated layout management. However, third party libraries for expanded sets of UI controls are being made available for the current alpha release as well.
Silverlight 1.1 Architecture
Silverlight 1.1 Architecture

The included Base Class Library (BCL) provides classes for collections, reflection, regular expressions, string handling and data access. It also supports LINQ, with the full support for LINQ to Objects and expression trees. Almost all of the System.LINQ and System.LINQ.Expression namespaces are exposed. However, LINQ to XML is not present in the Silverlight 1.1 Alpha release, though further releases of Silverlight 1.1 will include it. It also supports serialization of objects, for data persistence. Silverlight can handle data in either RSS, POX, and JSON formats, in addition to XML. The BCL provides enhanced support for working with XML data, including the XMLReader and XMLWriter classes. Silverlight also includes classes for data access over XML-based Web services (POX), REST and WCF Services. The networking support in Silverlight can be used by Silverlight applications to communicate over HTTP. However, in the current release of Silverlight 1.1, cross domain communication is not allowed. Silverlight also supports asynchronous programming via the use of the threading libraries.

Silverlight 1.1 is distributed with the Dynamic Language Runtime which allows dynamic compilation and execution of dynamic (scripting) languages. The first available languages written for the DLR are Managed JScript and IronPython 2.0. Microsoft is also building IronRuby and Dynamic Visual Basic (VBx) languages. All four languages share the same infrastructure to allow Silverlight to compile and execute the language source. Conversely, other .NET languages must be compiled ahead of time and delivered to Silverlight as .NET assemblies. The implementation of Managed JScript conforms to the ECMAScript 3.0 specification, and Microsoft claims that it is 250 times faster than interpreted JScript.

With the integration of .NET Framework, Silverlight also allows HTML-managed code interaction, which allows manipulation of HTML DOM elements from managed code, as well as allow JavaScript code to call managed code and use objects instantiated by managed code. Silverlight encloses JavaScript objects and DOM elements in managed wrappers to make them available from managed code. However, in the 1.1 alpha release directly calling JavaScript code is not implemented, but managed code events can fire JavaScript handlers. A Silverlight instance does not need to have a UI component in order to manipulate the HTML DOM from managed code. It is done by creating a XAML Canvas with its width and height set to zero, and using its code-behind code to modify the Document Object Model of the HTML page via the APIs in the System.Browser namespace.
A Python interpreter in Silverlight 1.1 hosted in Mozilla Firefox
A Python interpreter in Silverlight 1.1 hosted in Mozilla Firefox

Silverlight 1.1 also allows limited filesystem access to Silverlight applications. It can use the operating system's native Open file dialog box to browse to any file (which the user has access to). The file will be sanitized of path information to prevent the application from getting access to information like user name. It will be opened in read-only mode. For local storage of data, Silverlight provides isolated local storage (isostorage), which is stored, outside the browser cache, in a hidden folder inside the user profile's private folder. In the current releases, isostorage is limited to 1 MB per URL, though this limit will later be made configurable. Data stored by a Silverlight application, identified by the URL that it loads from, can be accessed by that application only. All instances of Silverlight share the same isostorage, so all instances of a Silverlight application can share the saved data, even if they are running on different browsers.

Silverlight CoreCLR uses an attribute based security model, as opposed to the Code Access Security (CAS) model of the desktop version of .NET Framework. All assemblies are marked with a security attribute, which can be either transparent (SecurityTransparentAttribute), safecritical (SecuritySafeCriticalAttribute) or critical (SecurityCriticalAttribute). Methods in transparent assemblies runs with partial trust, and any code in such assemblies cannot call critical methods. They also cannot contain unverifiable code (use the unsafe C# keyword or use pointers) or invoke system functions by means of P/Invoke. Code in both critical and safecritical assemblies run with full trust, and are not subject to such limitations. However, critical methods can only be called from safecritical methods and not transparent methods. Thus transparent methods are prevented from using methods that can cause system wide changes. Instead, they have to call safecritical methods which will verify that the call is safe and within the limited rights of the caller, and then proxy it to the critical methods. In fact, the IsoStorage APIs are exposed as safecritical methods. An assembly that does not have any attribute set is run as a transparent method. The limitations also apply for type inheritance, virtual method calls and interface method calls as well. Silverlight assemblies can contain members that are not usable by CoreCLR but can be by .NET Framework CLR; such methods will not be loaded when the assembly is being executed by CoreCLR.

However, only platform code is allowed to be marked as Critical or SafeCritical. The Silverlight runtime ensures that platform assemblies are loaded only from the Silverlight installation directory, and are signed by Microsoft. This effectively means that all user application assemblies can only be transparent code and run under partial trust and limited rights. Platform code can be marked with either attribute. The BCL methods of the .NET Framework, which have the Internet attribute set allowing them to be called from untrusted code originating from Internet, are exposed in Silverlight BCL as transparent methods.

Development tools

Silverlight applications can be written in any .NET programming language. As such, any development tools which can be used with .NET languages can work with Silverlight, provided they can target the Silverlight CoreCLR for hosting the application, instead of the .NET Framework CLR. Microsoft has positioned Expression Blend 2.0 for designing the UI of Silverlight applications. Visual Studio 2008 can be used to develop and debug Silverlight applications. However, the current beta release of Visual Studio 2008 requires the Visual Studio Tools for Silverlight (currently an alpha release) to create Silverlight projects, and let the compiler target CoreCLR. A Silverlight project contains the Silverlight.js and CreateSilverlight.js files which initializes the Silverlight plugin for use in HTML pages, a XAML file for the UI, and code-behind files for the application code. Silverlight applications are debugged in a manner similar to ASP.NET applications. Visual Studio's CLR Remote Cross Platform Debugging feature can be used to debug Silverlight applications running on a different platform as well.

Licensing

An unattributed report claimed that Microsoft aims to release certain parts of Silverlight source code as open source software, but Sam Ramji, director of platform technology strategy at Microsoft, said the company has no plans to do so. However, portions of the Dynamic Language Runtime, included with Silverlight, have been made available on Microsoft's CodePlex website using the Microsoft Permissive License.

Criticism

Silverlight has received criticism for ignoring existing international standards. According to Ryan Paul of Ars Technica, Microsoft could have chosen SVG to implement the vector graphics subset instead of XAML, described as a "limited and incompatible facsimile", to show their commitment to open standards, as well as to fix the standards problems which plague Internet Explorer. He thinks this is consistent with Microsoft's ignoring of open standards in other products, as well.

However, according to David Betz, a standards advocate, Microsoft would have needed to alter the SVG specification to add .NET integration and UI constructs on top of SVG. Consequently, the "choice by Microsoft to use XAML over SVG, served to retain the SVG standard by not adding proprietary technology". He further says,

"Silverlight can be viewed as a web extension of the Windows Presentation Foundation (WPF), a .NET 3.0 technology and not simply as a new web technology. As such, it makes sense that Silverlight uses XAML, not SVG. If Silverlight were based on SVG, then there would be a chasm between Silverlight and the .NET Framework, but as it stands Silverlight's use of XAML makes it part of the .NET family. In fact, it’s important to note that elements in XAML usually represent objects in the .NET Framework; this would simply not be possible in SVG."