www.fgks.org   »   [go: up one dir, main page]

Welcome to MSDN Blogs Sign in | Join | Help
Microsoft BizSpark: Serving 15,000 startups and counting!

Eight months ago, Microsoft announced the availability of Microsoft BizSpark, a program that helps early-stage startups succeed by providing Microsoft software, support and visibility at no upfront cost. 

 

Today, I am pleased to announce that more than 15,000 Startups have joined BizSpark to date.

 

Participating companies receive full-featured Microsoft platforms and development tools, such as Windows Server, SQL Server, Visual Studio and Expression Studio.  Available in 99 countries, BizSpark does not require exclusivity, and many open source ISVs are leveraging BizSpark to test the interoperability of their applications or increase the number of client platforms they can reach.

  

The 15,000 participating companies innovate in areas such as social networking, software services, healthcare, education, mobility, entertainment, and finance.  These startups are successfully building on the Windows platform and include names such as: ZocDoc, Tweba, SquareClock, Eduify, StackOverflow, Sobees, MixedInKey, Develomatic.

 

Here are a few innovative companies that recently joined BizSpark.

 

 after-mouse.com

After seeing Microsoft Surface in December 2008, Nicolas Chaillan was inspired to create after-mouse to build custom tactile user experiences for Windows 7 and Surface.  after-mouse uses WPF and Silverlight to build rich experiences with multi-touch interfaces for travel agencies, retailers, real estate agencies, and hospitality in Europe and beyond.  BizSpark’s production licensing allows after-mouse to create hosted solutions using Microsoft technology.

 

Below, after-mouse’s bar and restaurant application allows guests place their dinner orders directly from their table.

 

 Restaurant Surface Application

 

curse.com

Based in Silicon Valley, Curse is a portal for the massively multiplayer online game, or MMO, community. The site provides forums, wikis, reviews, downloads, blogs, videos, and other resources for MMO gamers. Curse focuses on gamer-generated content and allows gamers to create their own pages.  Curse includes gaming portals for World of WarCraft, StarCraft and Age of Conan.

 

Curse now has over 1.4 million total users and is growing quickly.  Their website is powered by three IIS7 web servers and a single database server running SQL Server 2008. The Curse desktop client receives data from a .NET web service written in C# that runs on just two IIS7 web servers.  In Curse’s CEO’s words, “I attribute much of our success to the performance and stability of Microsoft's technology, and the productivity offered by using Microsoft development tools.  We'll be continuing to use Microsoft technology exclusively. We have a next-generation version of the Curse client in development, being built in Windows Presentation Foundation, and a guild-hosting service being built in ASP.NET MVC.”

 

lokad.com

Lokad, a 5-person French startup created in 2007, provides online business forecasts and statistics to clients from the retail, manufacturing, and call center industries.  Send Lokad your historical data such as sales, cash flows, call volumes, and customer demand, and they will send you back forecasts.  The team of mathematicians at Lokad allows retail companies to take advantage of state-of-the-art operational business forecasts with minimal investment. Lokad’s web application is written for .NET 3.5 and makes use of LINQ to interact with data from SQL Server. In addition, Lokad was one of the first ISVs to use Windows Azure services in their production environment.

 

It is exciting to see the kind of innovative work that these startups are doing using the Microsoft platform and tools. 

 

To learn more about or join BizSpark, visit BizSpark on Startup Zone.

 

Namaste!

 

Expression Web 3

As the web continues to play an increasingly central role in terms of enabling people to create and deliver experiences and applications for consumers around the world, it is important to have a tool that is up to date with modern web standards and relevant to the needs of web designers.

Earlier this year at MIX ’09, we released a preview of Expression Web SuperPreview for Internet Explorer.  This is a tool that helps web designers diagnose page layout problems across multiple browsers. SuperPreview will be released as a feature of Expression Web 3, and SuperPreview for Internet Explorer will be available as a free download. We are putting the final touches on Expression Web 3 now, and it will be available this summer 2009.

Here is a quick look at some of the new features in Expression Web 3, including SuperPreview.

SuperPreview

SuperPreview is a tool that shows how pages display in multiple browsers and helps diagnose the root cause of any display differences. We recognize that customers have a choice over their preferred browsers – and so do web designers. Unfortunately, all browsers do not render pages exactly the same, so it is important to test pages across multiple browsers to ensure compatibility and design fidelity.

SuperPreview shows what a web page looks like in multiple browsers, including IE6, IE7, IE8 and Firefox 3. You can view the web page side-by-side or as an overlay and use rulers, guides, and pan and zoom tools to precisely identify layout differences. You can even overlay the page on top of a Photoshop image to verify that a page is visually close to the original design.  Below, you can see how minor rendering differences between Firefox 3 and IE6 can impact the look of your website.

SuperPreview Mirror 

Since announcing SuperPreview at MIX09, we have added many new features. Now you can view the HTML Document Object Model (DOM) of your page in each browser.  As you click on any visual elements in the rendering, they’ll appear selected in the DOM.

SuperPreview DOM

When you select an HTML element, Expression Web also shows a small bubble with additional information, such as size, distance from the left, and distance from the top. When these values differ from what they should be, the differences are highlighted.  Below, the differing Left, Top, and Height values are shown in red text.

SuperPreview Bubble

Often, you will want to preview your web page at different resolutions to ensure that your customers are getting a great experience at every screen resolution.  You can select a preset browser rendering resolution, or enter any resolution using the Browser Size option.

SuperPreview Resolution

Finally, if you are developing an ASP.NET or PHP web application and you preview an ASPX or PHP file, SuperPreview will launch ASP.NET or PHP to render the page and display the page as it would appear in each browser.

Snapshot Preview

SuperPreview is a useful feature if you want to use a comprehensive set of tools to validate that your web page appears as desired in multiple browsers. While designing a page though, you may want to take a quick look at how a page is progressing in other browsers.

Snapshot Preview shows a browser preview of local HTML, ASPX, or PHP pages and updates live as you edit your markup, saving you the time and effort of loading the page in a browser to verify markup changes.

Snapshot Preview

The Snapshot Preview panel can be dragged and docked anywhere in Expression Web 3 – you can even let it float on a secondary monitor. On the top left of the panel, you can choose the browser for the page rendering in Snapshot Preview. Snapshot Preview renders the page with true fidelity based on the chosen browser. It uses SuperPreview technology so the rendering is fully accurate, using the browser’s actual rendering engine.

Publish with SFTP or FTPS

We recognize that the web is a diverse place, so web designers need a standards-compliant tool that supports as many publishing standards as possible. Expression Web 3 supports publishing sites using WebDAV, FTP, SFTP, or FTPS to multiple destinations with real-time status of publishing progress.  Expression Web 3 also supports multiple publishing destinations per site and multi-channel file transfer for fast performance.

Publish

Photoshop PSD

With Expression Web 3, we have significantly improved capabilities and workflow when working with Photoshop files.  When you import a PSD file, you can choose just the layers you want to import in to your website. You can save the layers as JPG, PNG, or GIF and scale the image before saving the individual layers in Expression Web 3. If the source file has changed, Expression Web 3 prompts you to update it.

Import Photoshop Image

Silverlight Video

Expression Web 3 allows you to quickly encode and insert Silverlight video into your website with a wide range of encoding and transcoding features using Expression Encoder 3. You can even choose from a set of video player skins that best matches your site graphics.  Expression Encoder 3 supports high quality VC-1 and H.264 Silverlight video for streaming.

Silverlight Video

Other improvements in Expression Web 3 include support for Team Foundation Server source code control and Deep Zoom Composer for building arbitrarily large zoomable images.

For more information, please visit the Expression Web Team Blog.

Namaste!

MSDN - Where Developers Come First

When developers want to learn how to build software on Microsoft platforms, finding content and connecting with others should be easy.  Microsoft Developer Network offers Help documentation, articles, blog posts, videos, and forums to more than 20 million unique visitors every month.

 

Over the last few months the MSDN team has made hundreds of updates to the MSDN website. Many of these are subtle changes you may not notice directly, but together they help developers easily find current, relevant information on the site using a consistent look and feel.  I want to share with you two changes that capture the essence of the updates.

 

Context is Everything

We’ve received strong feedback from the community that developers want to stay within the context of their language’s Developer Center as much as possible as they navigate content on MSDN.  Using that feedback, the MSDN team rolled out an update to the MSDN Forums which integrates the forums into the Developer Center experience.  When a Visual Basic Developer Center user clicks on the Forums tab, the user now sees only the Visual Basic forums. Having a consistent user experience and location ensures the content and activities you care about are relevant and related.

 

VB Forums 

This forums update had many other features, including a new faster-loading rich text editor, updates to Top Answerers lists to show contributions over the last 30 days, and the capability for moderators to “Mark as Answer” in thread preview.

 

Make Your Voice Heard

Getting feedback from the community is essential to making MSDN better. To make it easier to share your ideas and suggestions on improving MSDN, we have added a Site Feedback link at the bottom of every page (excluding the library). Clicking on this link displays a separate window where your comments can be entered.

 

Site Feedback

 

Clicking the Submit button generates an email which is sent directly to the MSDN team. The team reads every mail and uses your suggestions to better understand the types of issues the community is running into on the site and to fix reported problems. As always, you can report a problem with a Microsoft product on Microsoft Connect or ask product questions on the MSDN forums.

 

I’ve highlighted two examples of the many changes we have made to MSDN to provide a better experience for developers online.  Connect with millions of developers already on MSDN and send your feedback to help us make MSDN even better in the future.

 

Namaste!

Visual Studio 2010 and .NET FX 4 Beta 1 ships!

Today, we are releasing Beta 1 of Visual Studio 2010 and .NET FX 4.  If you are a MSDN subscriber, you can download the Beta today from here.  For the rest of the world, the Beta will be publicly available on Wednesday.

 

Over the last many months I had blogged about a lot of new and interesting features that are in VS 2010 and .NET 4.  You can see those features and many more in Beta 1.  We have more work to do in terms of finishing up the feature work for some of the scenarios and getting to the right levels of quality and performance, but we have made enough progress that we wanted to start getting your feedback.

 

As with any software development process, getting customer feedback in a timely manner helps us make better products.  We are looking forward to hearing your feedback on this beta.  

 

To find out how to download the beta and where to share your feedback, please visit the Visual Studio 2010 Product Page.

 

Namaste!

Building Parallel Applications using Axum

Earlier today, we made available on MSDN DevLabs a .NET language for building parallel applications – Axum.

Axum enables developers to easily build scalable and reliable applications for multi-core and many-core scenarios using the power and convenience of the .NET Framework.  Axum makes use of several concepts to enable safe parallel programming:

·         Domains isolate state, which helps you avoid implicit dependencies in your code that can result in difficult-to-find concurrency bugs.  Domains make you more productive by allowing you to worry less about concurrency and focus more on your algorithms and code.

·         Agents are threads of control that process messages asynchronously to stay scalable and responsive.  Axum employs a cooperative blocking model that utilizes latencies to do meaningful work; agents that wish to receive a message will block, allowing another agent to execute in its place.

·         Message-passing isn’t always feasible – in certain situations it just implies too much overhead.  With Axum, you have the option to declaratively state how an agent intends to use domain state.  The compiler will enforce that agents uphold their stated intentions and the runtime will schedule your agents accordingly to maintain safety.

·         In Axum, concurrency is the default.  All agents execute concurrently unless you explicitly restrict them. This means you spend less time on boiler plate code for multi-threading and more time on your code.

·         Agents can be hosted in a single process, in a separate process, or on a separate machine.  This unified programming model means you don’t need to rewrite your code when you want to run it in a distributed scenario.

You can download Axum from DevLabs, tell us what you think on the project forum, and stay up-to-date via the team blog.

Namaste!

VS2008 AJAX Profiling Extensions

Today, the team released Microsoft Visual Studio 2008 AJAX Profiling Extensions - a new power tool to measure the performance of the portions of web applications that execute JavaScript inside the web browser.

The AJAX Profiling Extensions provide much-needed visibility into often complex, web client-side interactions for the first time.  You do not need to download and install any additional software, plug-ins, or ActiveX controls on the machine where the AJAX web client code is running to use the AJAX Profiling Extensions to gather JavaScript execution-time data.  Also, this works with any web browser, including, of course, the latest version of Internet Explorer.

AJAX Profiling Extensions is an add-on to the performance tools that are available in Visual Studio Team System 2008 Development Edition and Visual Studio Team Suite, extending them to allow you to profile the client-side JavaScript code in your AJAX application.

Developed in collaboration with Microsoft Research, AJAX Profiling Extensions automatically rewrites JavaScript functions to enable instrumentation that measures and logs each function’s performance data. This performance data is then periodically uploaded from the client browser to the IIS web server, where it is collected and available for analysis.

How it Works

AJAX Profiling Extensions consist of two major pieces:

1.     a server-side component that handles JavaScript instrumentation and data collection

2.     a Visual Studio Team System add-in that reads and analyzes the performance data gathered into the Visual Studio Performance Explorer.

The server-side component installs into the IIS 7.0 integrated pipeline and adds instrumentation to your JavaScript code on the fly before it is sent to the web browser. The AJAX Profiling Extensions are designed to work with any web browser, but they require IIS 7.0 running in Integrated Pipeline mode. A Profiling Extensions Administration panel on the web server allows you to define and manage profiling sessions.

Administration Panel

Once you have gathered AJAX client performance data, you can install AJAX Profiling Extensions onto your copy of Visual Studio 2008 Team Development Edition or Visual Studio Team Suite. You can then use the Visual Studio Profiler to analyze the performance data gathered from your client-side JavaScript applications. The Visual Studio Profiler will provide data such as which JavaScript functions your application is calling most frequently and which ones take the longest amount time to process.  As you are analyzing the data, you can navigate directly to JavaScript source.

Report Summary 

To get started monitoring the performance of your client-side AJAX code, download Visual Studio 2008 AJAX Profiling Extensions from Code Gallery, then join the discussion.

Namaste!

Prototyping with SketchFlow

Recently, we introduced a new set of tools that add on to Expression Blend 3 that are designed to address the early stages of design. 

 

With SketchFlow, you can

 

a)     sketch out ideas

b)    turn those ideas into working prototypes that are as rough or as real as you want them to be

c)     present those interactive user experiences for review and comment in the SketchFlow player 

 

SketchFlow prototypes are quick and informal, enabling designers to easily explore a variety of ideas.  You can run and explore prototypes from the first rough sketch on. When you are ready to develop further, you can convert a prototype into a real application in Expression Blend or Visual Studio.

 

Sketching ideas

When you start working on a new prototype project for either WPF or Silverlight, you’ll see the panels, control toolbox, and artboard that you are likely accustomed to in Expression Blend.  You can use the existing set of controls found in Expression Blend 3 or your own custom controls. 

 

SketchFlow also provides a set of “sketch-styled” controls that provide your prototype with a consistent sketch look so focus can remain on the concepts of the user experience without being distracted by the details of the visuals too early. The sketch-styled controls are fully functional and can be reverted to the high fidelity controls at any moment.  Below is a flavor of how the sketch-styled controls appear.

 

Sketch styles 

 

Mapping flow and navigation

While the artboard provides a view on an individual screen, the Application Flow panel allows you to map out the flow of your application, and then quickly make changes to that flow without reworking the design.

 

In the application below, solid blue arrows represent stops along the way in the user experience, while dashed green arrows represent content that can be shared or reused between screens, such as a set of common site navigation buttons that appear on multiple pages.

 

Application Flow

 

Gathering feedback

SketchFlow provides a way to showcase your prototype to others using the SketchFlow Player. The SketchFlow Player allows you to explore the prototype from the first moment on, even while it consists of nothing but a few rough sketches. The player lets you navigate your prototype, run animations that illustrate how your prototype might work, or switch into different states of your UI, all without wiring up actual UI elements. This lowers the cost of evaluating ideas in early stages before much expense has been incurred.

 

But showing a prototype to others is only part of the review process, so the SketchFlow Player provides tools to collect feedback from reviewers.  Reviewers can provide feedback either as text, like the comments in the Feedback tab in the screenshot below, or as ink, like the red arrow in the screenshot below.  Then you can incorporate this feedback into the prototype using the Feedback panel in Expression Blend, allowing you to iterate on your design using suggestions from your team.

 

SketchFlow Player

 

Adding interactivity and data

SketchFlow leverages features of Expression Blend 3 to let you make your prototypes come alive. Add interactivity without code using Behaviors, prototype your data-driven UI with sample data, and import content from Adobe Photoshop and Illustrator. 

 

For more information, watch a video on SketchFlow or read my previous post on the Expression Blend 3 Preview.

 

Namaste!
Expression Blend 3 Preview

Building compelling and usable UI should be easy and fun.  We all can point to our favorite products (either the ones we build or the ones we use) and think about how much better it would be if the UI was simple, intuitive and easy to use. 

 

Whether you choose to build rich desktop applications using WPF or slick web-based applications using Silverlight, Expression Blend can help you design a great user experience.

 

Recently, we released the Expression Blend 3 Preview, which continues to deliver features that enable a workflow for designers and developers from the design phase to production.

 

Here are a few of the interesting features available in the Blend 3 Preview.

 

Expression Blend 3 Preview 

 

Adding Interactivity without Code

Behaviors are re-usable chunks of code that can be dragged and dropped onto any object, giving that object interactivity without having to write any code. For example, you can drop the DragMove behavior onto a button on the artboard, run your application, and then instantly be able to drag the button around the application window. In the photo editing application below, the user can drag the green button onto the picture to show the brightness at that point in the photo.

 

Behaviors 

 

Behaviors follow a design pattern extended from the Trigger and Action model in WPF and are available for use in both Silverlight and WPF.  Therefore, behaviors can navigate, change state, validate input, talk to web services, or play animations and sound.  Blend 3 will ship with a set of general purpose behaviors including behaviors that navigate between pages in an application, simulate physics on a control, and run animations, but the model is entirely extensible so you can create your own reusable building blocks of interactivity.  Behaviors, like user controls, can be defined in a library or as of the application itself, and will be automatically included in your assembly.  For more ideas or to share your own behaviors, check out the Expression Gallery.

 

Seeing is Believing with Sample Data

At design time, you may not have access to the live data that will eventually display in your application.  Without data, it’s very hard to get a good feel for how your application will look at runtime.  Blend 3 helps solve this problem by enabling you to quickly create sample data that you can work with on the artboard to make it easier to customize those controls that will display data.  Additionally, you can decide if you want to use live data during runtime: the sample data bindings are stored in design time properties.  At runtime, live data can override sample data, or you can continue working with the sample data when testing your application.

 

When creating sample data, you can either import data from an XML file or choose to let Blend generate data for you.  Generated data is fully customizable and can include flat collections, hierarchical collections, strings, numbers, Boolean values, and images. When you drag data items onto the artboard, Blend 3 interprets the values to determine the best way to display the data. For example, if the item is a path to an image file, the image is displayed.  If the item is a collection of image file paths, a list box of images is created.

 

Sample Data 

 

Embracing the Design Ecosystem

One of the new features of Expression Blend 3 Preview is the ability to import Photoshop (.psd) and Illustrator (.ai) files directly into Blend.  Layers are imported as individual layout containers to make them easy to work with. Vector layers are imported as vectors, text layers as text with significant font information remaining intact, and gradients as gradients.  Additionally, you can take a Photoshop file, import it into Blend 3, and then quickly convert it to a control skin using the new state-based control skinning!

 

Embracing the ecosystem 

 

Collaboration Powered by TFS

Expression Blend 3 is now integrated with Microsoft© Team Foundation source control. This means that project source files can now be easily shared by a team with all the benefits of source control.  This minimizes the risk that one person might inadvertently overwrite the changes that someone else made to a file. At any time, you can view an older version of a file and compare it to the current version to see the changes that were made.

 

TFS IntegrationTFS Integration

 

These are just some of the highlights of Blend 3. 

 

For a complete list of new and enhanced features, such as Intellisense in the XAML editor, a built-in code editor, and design time annotations, check out the “What’s new” link. Then, download the preview, visit the Expression team blog, and watch the following videos for more tips:

·         The Future of Expression Blend

·         Integrating Expression Blend with Adobe Creative Suite

·         Creating Interactivity with Expression Blend

 

Namaste!

Delivering ongoing value

It has been a little over a year since we shipped VS 2008 and .NET FX 3.5.  Since then the team has been heads-down focused on the next version of our product line with VS 2010, VSTS 2010 and .NET FX 4.0. 

In addition, we have been working on a number of interesting technologies that we have updated you with in various forms.  I have always been a big believer of continuous innovation and the work we have done in the last year to deliver ongoing value proves that.  Just last week, I talked about the announcements for a number of products including Silverlight 3 Beta, Expression Blend 3 Preview and the Web Platform Installer. 

I thought it would be a fun exercise to catalog many of the tools and technologies that we have made available to you since we shipped VS 2008 and .NET FX 3.5.  Here we go:

Libaries, Tools & Tooling 

Windows Azure Tools for Microsoft Visual Studio

o    Windows Azure Tools for Microsoft Visual Studio extends Visual Studio to enable the creation, building, debugging, running and packaging of scalable services on Windows Azure.

 

Visual Studio Team System Database Edition PowerTools (DataDude PT2008 v1)

o    A set of enhancements and tools that complement and improve the user experience of VSTS Database Edition 2008

 

Microsoft Visual Studio Tools for the Office System Power Tools

o    The VSTO Power Tools are a set of 9 freely-downloadable tools and code samples for use by developers building VSTO solutions.

 

Web Deployment Projects for Visual Studio 2008 & Visual Web Developer

o    Additional functionality to build and deploy Web sites and Web applications in Visual Studio 2008.

 

StyleCop (StyleCop 4.3.0.x)

o    StyleCop analyzes C# source code to enforce a set of style and consistency rules.

 

FXCop 1.36

o    The latest version of FXCop; FXCop analyzes managed code assemblies reporting information such as possible design, localization, performance, and security improvements.

 

Managed Extensibility Framework (MEF)

o    A new library that enables building extensible applications, frameworks, and application add-ins whether they be web based, smart client, or back-end services.

 

VB Powerpacks

o    Free add-Ins, controls, components, and tools for you to use with Visual Basic to make developing great applications even easier.

 

Captions Language Interface Pack (CLIP)

o    Captions Language Interface Pack for Visual Studio 2008 is a tool that uses a tooltip caption and/or a small  dialog to display translations for user interface items in Visual Studio 2008. The CLIP downloads are available in the following languages: Arabic, Czech, Hebrew, Hindi, Malayalam, Oriya, Polish, Tamil & Turkish.

 

MSF for Agile Software Development Process Template v4.2

o    An agile software engineering process that incorporates key ideas from the Agile software movement for teams through Visual Studio Team System.

 

Team Foundation Server Power Tools

o    Team Foundation Server Power Tools is a set of enhancements, tools and command-line utilities that improve the Team Foundation Server user experience.

 

Visual Studio Team System 2008 Team Foundation Server MSSCCI Provider

o    Enables integrated use of Team Foundation Version Control with products that do not support Team Explorer integration

 

Silverlight & WPF

Silverlight 2 Controls Source and Unit Test

o    Source code to the controls shipped with Silverlight 2 RTW.  Application developers are free to use this code, modify it, and then re-package it in their applications.

 

Deep Zoom Composer

o    Free power toy that allows you to import and compose high-resolution images for export to Silverlight Deep Zoom and Seadragon Ajax technologies.

 

Silverlight 2 Control Pack

o    This download contains the source code and unit tests for the managed Silverlight 2 controls included in System.Windows.dll, System.Windows.Controls.dll, and System.Windows.Controls.Data.dll.

 

Silverlight Toolkit

o    The Silverlight Toolkit is a collection of Silverlight controls, components and utilities made available outside the normal Silverlight release cycle.

 

WPF Toolkit

o    The WPF Toolkit contains three WPF controls including Datagrid, DateTime control and Ribbon.

 

WPF Ribbon

o    CTP of Office Ribbon control implemented in WPF for use by WPF developers.

 

photoSuru

o    A WPF starter kit for multimedia applications.

 

ASP.NET

ASP.NET MVC

o    ASP.NET MVC enables you to build Model View Controller (MVC) applications by using the ASP.NET framework.

 

ASP.NET Lightweight Test Automation Framework

o    The Lightweight Test Automation Framework for ASP.NET was developed and is currently used by the ASP.NET QA Team to automate regression tests for the product.

 

ASP.NET AJAX 4.0 Preview

o    A number of ASP.NET AJAX updates built on ASP.NET AJAX 3.5 SP1.

 

ASP.NET Dynamic Data

o    ASP.NET Dynamic Data provides a framework that enables you to quickly build a functional data-driven application, based on a LINQ to SQL or Entity Framework data model.

 

ASP.NET Image Generation

o    For displaying images from a DB or generating an image dynamically.

 

Languages

DLR in MVC

o    Integration samples of DLR in MVC.

 

JQuery Intellisense Updates

o    Updates for rich JQuery Intellisense for Visual Studio 2008 and Visual Web Developer

 

Iron Python

o    IronPython is an implementation of the Python programming language running on .NET.  It is well integrated with the rest of the .NET Framework and makes all .NET libraries easily available to Python programmers, while maintaining full compatibility with the Python language.

 

Visual C++ 2008 Feature Pack

o    The Visual C++ 2008 Feature Pack extends the VC++ Libraries shipped with Visual Studio 2008 to include MFC extension support for Office Ribbon style interfaces, fully customizable, modern Visual Studio-style docking toolbars and panes, advanced GUI controls and more.  The Feature Pack also includes an implementation of TR1 including, but not limited to, regular expression parsing, new containers and polymorphic function wrappers.

 

CLR

New CLR Interopability Support

o    Open source tlbimp and A PInvoke Signature Generator that conveniently converts from C/C++ to managed P/Invoke signatures or verse visa and Tlbimp, a command line tool which creates a managed, Interop assembly from a COM type library.

 

New CLR Security Enhancements

o    A set of projects that extend the security APIs shipped with the .NET framework to provide additional functionality; these include CAS Helper library, New Crypto-algorithms and Automated security debugging library.

 

VS Helper and FxCop for CLR Addins

o    System.AddIn helper VS add-in and FxCop rule to validate versioning and isolation safety of contracts on object models

 

Guidance

Composite Application Guidance for WPF and Silverlight – February 2009

o   This release helps you build modular and composite WPF and Silverlight applications, simplify the composition of your user interface, and reuse code between Silverlight and WPF. With it, you'll build solutions that take advantage of the full power of Silverlight and WPF and that are highly maintainable and testable. It includes source code, sample applications, and guidance on building client architectures and implementing UI patterns.

 

Composite Application Guidance for WPF – June 2008

o   This release will help you build modular and composite WPF and simplify the composition of your user interface. With it, you'll build solutions that take advantage of the full power of WPF and that are highly maintainable and testable. It includes source code, sample applications, and guidance on building client architectures and implementing UI patterns.

 

Smart Client Software Factory – April 2008

o    The Smart Client Software Factory provides an integrated set of guidance that assists architects and developers in creating composite Windows Forms applications. The software factory provides guidance that helps to automate designing and developing occasionally-connected modular Windows Forms client applications. The resulting application architecture is both extensible and customizable.

 

Web Client Software Factory – February 2008

o    The patterns & practices Web Client Software Factory is a comprehensive set of guidelines, assets, and automation that developers use to create architecturally sound, modular, Web applications. The factory provides guidance that helps you build highly maintainable and testable ASP.NET applications.

 

Microsoft Enterprise Library

o    A collection of reusable software components designed to assist software developers with logging, validation, data access, exception handling, and more.  Entlib is provided as source code, test cases, and documentation that can be used "as is" or extended and encapsulates the Microsoft recommended and proven practices for .NET application development. 

 

Namaste!

MIX '09 - The next big milestone for web developers and designers

This morning, we kicked off MIX 09 in Las Vegas and announced the release of a number of technologies including Silverlight 3 beta, Expression Blend 3 Preview and the SuperPreview feature in Expression Web.

 

This powerful set of technologies enables developers and designers to create unparalleled end to end rich internet experiences.  We also demonstrated solutions from key partners including Netflix, Bondi Digital Publishing, StackOverflow.com and KEXP. 

 

Additionally, building on Silverlight’s success during the Beijing Olympics Games last summer, NBC Universal has chosen Silverlight to deliver the 2010 Vancouver Olympic Winter Games on its official Web site, NBCOlympics.com.

 

With Silverlight 3, we’re introducing more than 50 new features and 20 new controls, including support for running Silverlight applications out of the browser, dramatic video quality and performance improvements. 

 

Expression Blend 3 Preview dramatically improves designer and developer workflow and productivity by facilitating a complete end-to-end experience. 

 

SuperPreview, a feature of Expression Web, enables developers to quickly and easily troubleshoot web page rendering across a wide variety of browsers. 

 

Below is a brief summary of the key features across Silverlight 3 and Expression Blend 3:

 

High Quality Video & Audio

With support for native H.264, live and on-demand IIS7 Smooth Streaming, full HD (720p+) playback, and an extensible decoder pipeline, Silverlight 3 beta brings rich, full-screen, stutter-free media experiences to the desktop.

 

Powerful Graphics

Silverlight 3 support for perspective 3D graphics as well as built‑in and extensible shader effects enable even more exciting scenarios for developers.  Hardware acceleration improves graphics performance by taking advantage of graphics hardware.

Out of Browser

Applications now work everywhere the Web works and even where it doesn’t.  Silverlight allows users to take applications out of browser where they can be accessed on the desktop while being just as secure as those in the browser.   With Windows 7, out of browser Silverlight applications can be pinned to the task bar.

 

Breakthrough Tooling Support

Expression Blend 3 delivers Sketchflow, a radically innovative capability for designers to be able to rapidly prototype the interactive flow of applications, receive in context annotated feedback from their clients to enable the rapid iteration of their ideas from concept to reality.   

Namaste!

Interoperability - Eclipse Tools for Silverlight

You have heard us talk about our commitment to interoperability in the past. 

 

Today, I’m excited to tell you about new support for Silverlight in Eclipse.  Microsoft funded a project by Soyatec, a France-based IT solutions provider and Eclipse Foundation member, to develop an open source plug-in called Eclipse4SL which enables advanced Silverlight development capabilities in the Eclipse IDE.

 

Soyatec’s Eclipse4SL is a plug-in that works with the Eclipse Integrated Development Environment (IDE) and Eclipse Rich Client Platform (RCP) to enable both Silverlight development and better interoperability between Silverlight and existing Java investments in web sites and web services.  Soyatec is releasing Eclipse4SL under the Eclipse Public License Version 1.0 on SourceForge, and has submitted it to the Eclipse Foundation as an open Eclipse project.

 

Getting Started with Eclipse4SL

 

A release candidate from Eclipse4SL’s M2 milestone has recently become available and is very easy to get up and running in Eclipse.  The easy way to pick up Eclipse4SL is just to download it from Eclipse and install it through the Eclipse Update Wizard (seen below.)  You simply choose http://www.eclipse4sl.org  and click “Install” to get started.  Alternatively, you can manually install it from http://www.eclipse4sl.org/download/#MixedInstall - instructions for the required steps are listed on this page.

 

 

 

 

With Eclipse4SL installed, you can now build Silverlight applications in Eclipse.  To start, select Windows->Open Perspective->Other… to open the perspective selection dialog where you can choose between the Visual Studio or Eclipse Style Silverlight perspective.

 

 

 

Once you set the Silverlight perspective, select File->New.  Here, you will find two types of Silverlight projects to choose from - Silverlight Project and Silverlight Web Project. Select Silverlight Web Project, which enables you to embed your Silverlight application within a Web page that has other elements.  Specify your project name to create the project file and you’re all set for Silverlight development in Eclipse!

 

 

 

Here is a quick summary of some of the features:

 

Resource & Project Management

With Eclipse4SL, developers can use pure Eclipse project & resource management or Visual Studio.  A project explorer is also available to manage the project resources.  The following sets of wizards generate desired project templates.

 

·         Silverlight project

·         Silverlight Web project

·         UI component

·         Import Visual Studio project in Eclipse

 

Code and XAML Editor

The code & XAML editor is one of the key components of Eclipse4SL and is focused on developer productivity through two components: Silverlight viewer and XAML code editor.  Following are some of the key features supported in this area.

 

·         In memory code preview

·         Powerful context code completion in template

·         Drag and Drop tool palette

·         C# code generation and synchronization

·         Code Format

 

Code Patterns & Interop Guidance

Eclipse4SL provides facilities for automatically running code analysis tools that help for building interoperability with Java web services (JAX & REST.)  You can find more information at the following two locations.

http://www.sl4eclipse.org/documentation/userdoc/html/webservice/restlet/

http://www.sl4eclipse.org/documentation/userdoc/html/webservice/cxf/

 

Namaste!

DevLabs: Code Contracts for .NET

In October of last year, I blogged about Dev Labs - a site dedicated to software innovations for the developer community.  Today, Dev Labs released a new innovation that our Microsoft Research organization has been working on: Code Contracts for .NET.

 

Design-by-contract is an idea that was pioneered by Eiffel.  Today’s release, Code Contracts for .NET, is a general design-by-contract mechanism that all .NET programmers can now take advantage of.  Using it, programmers provide method preconditions and postconditions that enrich existing APIs with information that is not expressible in the type systems of .NET languages. Additionally, contracts specify object invariants, which define what allowable states an instance of a class may be in (i.e. its internal consistency.)

 

The contracts are used for runtime checking, static verification, and documentation generation. Contracts also allow automatic documentation checking and improved testing.  Code Contracts for .NET currently consists of three components: the static library methods used for expressing the contracts, a binary rewriter and a static checker.

The Library Methods

The static method Contract.Requires() is used for preconditions and Contract.Ensures() is used for postconditions. Programmers write calls to these methods as a preamble at the beginning of a method. The Contract.Invariant() method is used to specify object invariants. All object invariants are put into a method marked with the attribute [ContractInvariantMethod].

You can see how these are used in the screenshot below. Notice the use of the method Contract.OldValue() within the postcondition to refer to values as they existed at the beginning of the method. The code is then compiled by the normal .NET compiler, e.g., C#, to produce IL. 

 

image1

 

 

The Binary Rewriter

The Intermediate Language (IL) that the C# compiler produces for the above example cannot be executed as is. To provide for the runtime checking of contracts, the binary rewriter takes the compiled IL and transforms it so that contracts are evaluated at the correct program points. For instance, postconditions are evaluated just before each return point within a method. Any expression within a call to OldValue() is evaluated upon entry into the method with the corresponding value replacing the call when the postcondition is evaluated. (There is also the method Result() which is used to refer to the return value of a method. Its use is illustrated below.) If the instrumented code happens to follow an execution path that violates a contract, then there is a programmable notification component that signals an error.  You can see an example in the screenshot below, which shows a precondition that failed at runtime: the method Divide was expecting a non-zero argument. (For this example, the notification resulted in an assert dialog, but you can customize it to perform any action you would like.)

 

image2

 

 

The Static Checker

This tool analyzes code to look for contract violations without having to execute the code. The checker issues a warning if it is not able to determine that the code is correct for all possible executions. 

In the example in the screenshot below, the checker warns about a possible violated precondition in the invocation of MyMath.GCD.

 

 image3

 

If the programmer adds the precondition to NormalizedRational that x must be non-negative and y must be positive, then the checker proves that the precondition of MyMath.GCD will be satisfied in all possible executions.

Furthermore, the checker proves that MyMath.GCD always satisfies its postcondition (i.e. the GCD is positive). The checker uses the postcondition of GCD to prove: (1) that at line 45 there will never be a division by zero; and that “y/gcd” is non-zero, so that the precondition of the Rational constructor is always satisfied.

 

And, of course, you can use Code Contracts directly in Visual Studio.  Installing the Code Contracts MSI enables the “Code Contracts” tab in project properties where you can set your preferences for Code Contracts use. For configurations where the runtime checking is not performed, the library methods are compiled away (via conditional compilation attributes on their definitions --- a very neat feature of .NET!) so that your code pays no performance penalty at all for contracts that you do not want executed.

 

image4

 

Here is some feedback from a customer who had a chance to look at an early drop of this.   “You have a really nice product here. I enjoy the library+rewriter combination which makes it language agnostic.  I can't wait to see the tools improve.” 

 

 

Namaste!

Sharepoint tools support in Visual Studio

Today, developers can use Visual Studio 2005 or Visual Studio 2008 to develop solutions for Microsoft Office SharePoint Server 2007 (MOSS) and Windows SharePoint Services 3.0 (WSS).  In addition to the features in VS 2005 and VS 2008, developers can also use Visual Studio Extensions for WSS and dozens of third party tools. 

 

In Visual Studio 2010, we’re going to expand Sharepoint support in two key areas.  First, Visual Studio 2010 will deliver a broad set of project templates, designers, and deployment infrastructure that will make any .NET developer instantly more productive on the SharePoint platform.   Second, we are exposing an extensibility API that will continue to foster the ecosystem of third party developers who create development tools and technologies.

Visual Studio 2010 will come with a broad set of project and items templates.  You’ll be able to use these to quickly create or update SharePoint elements such as list definitions, list instances, site definitions, workflows, event receivers, Business Data Catalog models, and content types.

 

In Visual Studio 2008, the supported workflow projects could be created only for lists and document libraries. In Visual Studio 2010, you’ll be able to create list and site level workflows as well as create aspx association and initiation forms.  And, as you would expect, the new Visual Studio 2010 designers can be used to create Web Parts, application pages, and user controls for a SharePoint site (see screenshot, below.)

SharepointApplicationPage 

Of course, you get all the benefits that you would expect while developing in Visual Studio such as full support for code debugging, Intellisense, and statement completion.  The WSP Importer enables you to quickly import existing SharePoint content and project wizards simplify solution development. For example, the wizard for Event Receivers allows you to simply select the events you want to handle and it will generate the necessary code and XML for you.  And, you will be able to quickly navigate and browse your Sharepoint site directly in Visual Studio with use the Server Explorer (see screenshot, below.)

 

ServerExplorer

 

Visual Studio 2010 provides a rich set of project templates and tools that developers can use to create custom SharePoint solutions. Although these SharePoint projects and tools work well for many application development scenarios, there are times when different or new functionality is needed. In these cases, you can adapt the SharePoint projects and tools in Visual Studio by using a new Visual Studio extensibility API. The API will let you create new SharePoint project items, automate and extend existing SharePoint project items, enhance deployment and retraction functionality, and extend the display and actions of SharePoint nodes in Server Explorer.

If you’d like to learn even more, you might check out Reza Chitsaz on Channel 9.

 

 

Namaste!

Silverlight Toolkit

Last November we introduced the Silverlight Toolkit, an open source project designed to provide additional Silverlight controls and functionality between versions of Silverlight. Since then, we have received significant positive feedback and have already released a 2nd revision in December.

  

The December release contains even more themes, a new sample app, fine-tuned components, and a bunch of features and fixes requested from the development community.  We’re also shipping designer DLLs to integrate the experience some, plus unit tests and the latest release of the unit test framework.

 

For those of you familiar with Windows Presentation Foundation, you’ll recognize the names of some of controls available in the toolkit.  The controls in the "Stable" quality band are AutoCompleteBox, DockPanel, HeaderedContentControl, HeaderedItemsControl, Label, NumericUpDown, TreeView and WrapPanel.  Controls in the "Preview" quality band include Charting, Expander, ImplicitStyleManager and Viewbox.

Using the controls is a matter of adding references to the assemblies in the toolkit and using them as regular controls in your Silverlight application.  Below, you’ll find a few examples.

  

NumericUpDown

NumericUpDown is a TextBox that only allows numeric values while also providing the ability to nudge values up or down using either the mouse or keyboard. Setting various properties allow you to control Minimum, Maximum, Value and by how much to Increment.  In the following Xaml, you can see how easy it is to use the NumericUpDown control.


autocompletexaml

And, the result would look as follows:

 autocomplete

 

This is a great control to use when you want to constrain user input to numeric only while also providing a quick means to adjust the value.

 

Charting controls

Silverlight chart is a set of completely new classes that enable developers to easily create professional-looking column, bar, pie, line, scatter, and bubble charts.  These different re‑stylable and re‑templatable charts are exposed as series controls that the chart control can host, allowing you to combine them.

 

Here's all it takes to create a simple column chart in XAML (note that there's no code required):

 

Let's take a look at a simple example:

 chartxaml

 

The XAML above produces the following chart:

 chart

 

Themes

In addition to the controls listed in this post, you’ll also find ten themes available for your applications within the toolkit.  Below, you can see a screenshot of what these themes look like. 

 themes

You can learn even more about these controls and the Silverlight Toolkit on CodePlex here.

 

 

Namaste!

Office client developer enhancements with VS 2010

At the Office Developer Conference last year Bill Gates remarked, “If you look at the success of our software or any software, this emphasis on it being a platform, reaching out to developers, having great tools has been the key to its success.”

 

Since the beginning, Office has included features which enable developers to extend the Office applications and allow them to become a better functional fit. With the introduction of Visual Studio Tools for Office in 2003, we ensured that .NET developers could easily build solutions which integrate back-end business data into the standard Office applications that are used on a daily basis.

 

Visual Studio 2010 extends this and includes some dramatic improvements which will ease the development, deployment, and management experience for your solutions which complement the Office suite.

 

Installation and configuration is often the most challenging task for Office developers.  For VS 2010, we have focused on providing developers and IT professionals the flexibility needed to customize the deployment experience while simplifying some of the common challenges faced by all Office developers. We recognize that it is critical for developers to be able to ensure a smooth end-user installation experience, particularly when the solution being deployed provides access to the business‑critical data that information workers need to do their jobs.  There are three key improvements we’re making in VS 2010 timeframe:

 

 

1.     PIA-less Interoperability

If your solution uses the CLR v4.0, you’ll be able to use a new feature which will embed a closure of the interop type interfaces your solution needs directly in your application assembly. This reduces the overall application footprint by removing the 6.3Mb PIA redist file and embedding only those interop types used. And, you’ll have one less worry during installation. 

 

2.     Publish to SharePoint

When we introduced ClickOnce deployment for Office solutions with Visual Studio 2008, you could easily publish solutions to a Web site, UNC share, or CD/DVD media.  With VS 2010 you’ll be able to publish documents to SharePoint servers as well.  This means that you no longer have to manually upload the document to SharePoint and maintain a network location from which the assemblies are installed when the document is opened.  Simply select a SharePoint Document Library as an option in the publish wizard and the customized document will be added to the appropriate document library; the assemblies will be stored on the SharePoint server itself.  This eliminates the requirement of having both a SharePoint server and a UNC share for deploying document solutions to SharePoint. 

 

3.     Customize the Deployment Package

As Office solutions become more sophisticated and provide integration across multiple Office applications and backend data sources, you may require more customization during install.  With VS 2010, you can deploy multiple solutions in a single deployment package, so your users can install both Word and Excel add-ins at once.  You’ll also be able to include post deployment which will run after the solution has been installed.  This allows you to set up a database connection, add registry entries, or copy documents to the end user computers. 

 

At the PDC in 2008, Anders Hejlsberg introduced several new C# features in VS 2010 which will dramatically simplify interoperating with COM based OMs exposed in Office. For instance, in the following example, we just want to save the document of the object doc to the filename Test.docx.  This is what you’d write today:

 

object fileName = "Test.docx";

object missing  = System.Reflection.Missing.Value;

doc.SaveAs(ref fileName,

    ref missing, ref missing, ref missing,

    ref missing, ref missing, ref missing,

    ref missing, ref missing, ref missing,

    ref missing, ref missing, ref missing,

    ref missing, ref missing, ref missing);

 

 

With VS 2010, the previous code changes to one simple line!

 

object fileName = "Test.docx";

doc.SaveAs(fileName);

 

 

Another new language feature of C# is named arguments.  Those of you who familiar with VB but who use C# may appreciate the added readability and flexibility this adds to your code.

 

var result = namedRange.Find(

              MatchCase: true,

              What: "dog",

              SearchOrder: XLSearchOrder.xlByRows);

 

 

With Visual Studio 2010 and .NET FX 4.0, we want to continue making it easy for you to build and deploy .NET based solutions for Office.

 

Namaste!

 

More Posts Next page »

Page view tracker