The goal of this site is to put relevant and applicable tools and information at the fingertips
With this blog we want to inform you on our latest initiatives.
Enjoy reading and stay tuned!
This week I had a really interesting discussion/debate with a University lecturer on teaching user interface design and it took me back just to how things have changed since the mid-nineties.
When I was a student a lot of CS courses which looked at interface design had materials which referenced the following statement “The Evil’s of Rapid Prototyping,” and many slide decks contained reasons why rapid prototyping was a bad idea. Most of the reasoning centred around prototyping tools being so complex back then, they needed to be operated by developers; subsequently, the design process tended to be influenced by all design work needing to be interpreted through the lens of what a prototyper could actually achieve with the software available.
Fast forward to today and there’s been a rethinking on prototyping. Is this good or bad?
I recently blogged about how professional organisations are using tools such as OneNote for UI/UX design. Additionally there a lots of new prototyping tools have appeared over the past few years and they’re rapidly being adopted by interaction designers.
So we concluded that the creators of these tools never attended one of these courses!
So the question I now want to pose is.. how do go about teaching modern user interface design and application workflows on your courses and what tools and resources do you use?
As we know prototypes can be as simple or as complex as necessary for the project on which you are working.
What tools do you use?
Microsoft SketchFlow includes several tools to make your prototype interactive in order to more closely mimic the flow of a production application. For example, with SketchFlow, you can do the following:
Begin a prototype with just a site map and a few notes jotted on the application screens, and then continue to refine your prototype as you go along.
Either draw user interface (UI) elements, or import them from common drawing programs.
Animate your prototype, creating a visual representation of the interaction between the user and the application.
Use the full library of standard UI elements and custom controls.
Create sample data on the fly, easily build data-driven UI, and add styles to your data.
Create interactivity without writing code by using built-in behaviours. Behaviours are extensible, making it easy to add custom behaviours to your prototyping toolbox.
Either write code to create custom elements, or use pre-built elements from your development team
For more details on Sketchflow see http://msdn.microsoft.com/en-us/expression/ee215229.aspx
Tutorials on Sketchflow see www.microsoft.com/.../creating-navigation.aspx
But what about considering Modern design principles..
With Windows 8 and Windows Phone 8 we have the following key principles which need to be adhered
So the key things you need to consider when designing your apps for modern applications are..
Ensure that you weave platform features into your core scenarios and prototype design to leverage the power of the underlying platfom..
So lets think about the platform features available..
To help develop these scenarios here are list of the key resources.
Microsoft Design Guidelines for Windows Phone http://design.windowsphone.com
Microsoft Design Guidelines for Windows 8 http://design.windows.com
Microsoft User Experience Fundamentals and online training http://channel9.msdn.com/Events/Windows-Camp/Windows-8-UX-Fundamentals-Training-Workshop-2012
So where to start?
To help you get started on your app development here are some templates and guidance from http://channel9.msdn.com/Events/Windows-Camp/Windows-8-UX-Fundamentals-Training-Workshop-2012
Example of a completed template for a new app design/concept.
In summary, using any form of prototype technique makes it easy to sketch out a conceptual application and ensure the following are achieved.
So what are you waiting for? You can just create a series of screens and use the templates above and then begin to draw. As your idea progresses, you can add interactive elements that make your prototype as close to the finished product as you need it to be to communicate the design idea you want to convey.
Reviewers can use the tools such as SketchFlow, One Note to view the application flow, and then leave feedback directly in the project as annotations. Once the feedback has been incorporated and the prototype is complete, the prototype project can be handed off to a developer for conversion into a final application,
Techila is a middleware solution for High Performance Computing that enables existing applications to utilize more computing capacity. I believe that the key problem in business and operational computing is the lack of application performance. There are enormous amounts of computing capacity available using Windows Azure cloud service.
Techila allows applications to utilise all available computing capacity. To try demonstrate this a great example of the benefits of Techila and the Windows Azure with Techila integration is a case study, which Techila did with a leading cancer researcher. The researchers in question had a project, which would have taken 15 years. He had developed his research application in MATLAB. He used the Windows Azure with Techila integration to boost the performance of his application with the combined power of 1200 Windows Azure instances. This allowed him to complete the project in 4,5 days! Being able to do something in 4,5 days, which usually takes 15 years gives a real competitive advantage.
Techila develop the solution in close co-operation with end-users and system administrators from the very beginning.
Techila has selected Pharma, Economics/ Financial, and Universities/ Academia as the key markets because of the fact that they are strong on Techila's home market, Finland. But I want to emphasize that unlike many other distributed computing solutions, Techila is a fully horizontal middleware, which can be used in any segment and which can increase the performance of any application: The code can be a MATLAB application, or it can be R (or C/C++, Java, Perl, Python, Fortran,...) They also offer an open API, which can be used to connect any ISV application (3DSMax, SAS, COMSOL, Sungard,...) to the Windows Azure capacity.
Also please find below a demo of run a 2-day long computation in a couple of minutes using 500 Azure instances using MATLAB:
Techila with R language can be found here:
New Updates - What’s new
AppHub Integration: Linking your DreamSpark Account with a Microsoft Live ID
I’m very excited to inform you that we’ve completed our “AppHub Integration: Linking DreamSpark Account with Live ID”
This will now dramatically improve the experience of those students that were having difficulties with App Hub registration.
With the update to DreamSpark students and educators create a new DreamSpark account that is not a Windows Live ID. However for students who wish to produce application for Xbox or Windows Phone require a Windows Live ID, to create apphub accounts via http://create.msdn.com. We have now enabled the system, to enable educators or students to map their DreamSpark account to new or existing Windows Live ID.
Here is the workflow:
- Student/Educator visits the page https://www.dreamspark.com/Product/Product.aspx?ProductId=26 and sees [Map your Live ID] button enabled and [Register on AppHub] button disabled.
- Student/Educator Clicks on [Map your Live ID] button.
- Student/Educator Sign in on DreamSpark site with their Verified account (or get the account verified).
- Student/Educator then logs in using Windows Live ID account.
- Student/Educator is shown the message “Are you sure you want your map your DreamSpark login (email@example.com) with your Windows Live ID (firstname.lastname@example.org) with [Ok] and [Cancel] buttons.
- Student/Educator clicks on [Ok] button a Accounts will be mapped a User automatically signed out from Live ID account à User will be redirected to the page https://www.dreamspark.com/Product/Product.aspx?ProductId=26 with [Map your Live ID] button disabled and [Register on AppHub] button enabled.
On the 12th of July 2011 Microsoft released the Surface 2.0 SDK.
The SDK simply makes it easy to create engaging experiences, using multitouch and object interaction, for the next generation device for Microsoft Surface – the Samsung SUR40 for Microsoft Surface.
The Surface 2.0 SDK replaces the Microsoft Surface Toolkit for Windows Touch Beta that was released last year.
Download the SDK and find training, documentation, and guidance on the new Surface development center at www.msdn.com/windows/surface/
The Microsoft® Surface® 2.0 SDK is a set of controls, APIs, templates, tools, sample applications, and documentation for application developers. Using the familiar .NET Framework 4.0, Windows Presentation Framework 4.0 (WPF) or XNA framework 4.0, and the Surface 2.0 SDK, developers can quickly and consistently create innovative applications that take advantage of the new PixelSense™ technology delivered in the Surface 2.0 platform.
The next generation Surface device, the Samsung SUR40 for Microsoft Surface, was announced in January 2011 and will be available to commercial customers in 23 countries later this year. For more information on the Samsung SUR40 for Microsoft Surface, visit www.surface.com.
The Surface 2.0 SDK runs on the Samsung SUR40 for Microsoft Surface or a PC with a 32-bit or 64-bit edition of one of the following Windows® 7 operating systems:
Windows 7 Home Premium
Windows 7 Professional
Windows 7 Ultimate
The Surface SDK supports input devices such as mouse, touch, and tagged objects. With the Surface SDK, you can develop an application that supports various types of input. However, to test your application in a touch-enabled environment, your computer must have a touch-screen digitizer.
The Surface SDK contains the following resources:
These assemblies provide the classes that are necessary to create a touch-enabled application.
Visual Studio project and item templates
These templates enable you to quickly create a touch-enabled application. When you create a project by selecting the Surface template, all of the necessary references and resources are automatically included as part of your project.
The input simulator, input visualizer, and Surface stress tools help you develop and test applications for the Samsung SUR40 for Microsoft Surface and Windows 7 touch-enabled PCs. With the Surface Input Simulator tool, you can simulate different inputs, hardware capabilities, and tilt of the device.
Sample applications are fully functional applications that you can build and run. These applications showcase various features of the Surface environment. You can run these applications to see Surface functionality in action, and examine the source code to see how certain tasks are performed.
The documentation for the Surface SDK includes short examples of how to perform various programming tasks, longer and more detailed examination into various programming scenarios, and a detailed API reference.
Note: When you are ready to distribute an application that you have created with the Surface SDK, download the Microsoft® Surface® 2.0 Runtime from MSDN and include it with your installation package. The Surface SDK Runtime contains the reference assemblies that are required to run your application.
There are two types of APIs; presentation API and core APIs. The Presentation APIs use Microsoft Windows Presentation Foundation (WPF), which is the standard choice for developing touch-enabled applications. The cores APIs are .NET platform agnostic APIs that enable querying a raw image directly and registering for touch events. Learn more about the core API at http://msdn.microsoft.com/en-us/library/ff727894(v=Surface.20).aspx.
Your touch-enabled application will usually contain one or more Surface controls. Some of these controls are specialized counterparts to WPF controls, and others enable you to include functionality in your application in ways that have no WPF counterpart. The following table summarizes the controls that are included in the Microsoft Surface SDK for Windows Touch Beta.
The LibraryBar control enables you to list items horizontally, group items into several groups, and scroll groups. By default, the LibraryBar control supports drag-and-drop operations.
The LibraryContainer control is a dual-view control that arranges items in a horizontal bar or in a vertical stack and enables you to switch back and forth between the two views.
The LibraryStack control enables you to display items that are stacked on each other. Users can view the individual items by rearranging the order of the stack or by removing items from the stack. By default, the LibraryStack control supports drag-and-drop operations.
The ScatterView control is a container for any other User Interface (UI) element. When you place a UI element inside of a ScatterView control, that element automatically gains the ability to be moved, rotated, and resized using one or multiple touches.
The ElementMenu control implements a collection of items in a tree hierarchy that users can select.
The SurfaceButton control is a specialized version of the WPF Button control. SurfaceButton provides a different default look-and-feel, adds support for Touch Visualizations, and customizes the handling of input device events so that if multiple touches are targeting the control, the Click event is raised only after all touches are lifted.
The SurfaceCheckBox control is a specialized version of the WPF CheckBox control. SurfaceCheckBox provides a different default look-and-feel, adds support for Touch Visualizations, and customizes the handling of input device events so that if multiple touches are targeting the control, the Click event is raised only after all touches are lifted.
The SurfaceTextBox control provides an unconstrained data entry field. The SurfaceTextBox control also provides the on-screen keyboard so that you do not have to specifically invoke the keyboard.
The SurfaceInkCanvas control provides a drawing canvas that you can use with touch input to create, modify, and delete drawing strokes.
The SurfaceListBox control is a specialized version of the WPF ListBox control. SurfaceListBox adds support for panning, the ability to move the content by direct contact with the content itself, instead of using a scroll bar.
The SurfaceRadioButton control is a specialized version of the WPF RadioButton control. SurfaceRadioButton provides a different default look-and-feel, adds support for Touch Visualizations, and customizes the handling of input device events so that if multiple touches are targeting the control, the Click event is raised only after all touches are lifted.
The SurfaceScrollViewer control is a specialized version of the WPF ScrollViewer control. SurfaceScrollViewer adds support for panning, the ability to move the content by direct contact with the content itself, instead of using a scroll bar.
The SurfaceSlider control is a specialized version of the WPF Slider control. SurfaceSlider provides a different default look-and-feel, and adds support for Touch Visualizations.
The SurfaceWindow control is a specialized version of the WPF Window control. SurfaceWindow provides and activates the necessary event handlers to make sure that it receives touch events.
Samples that use the Core layer and XNA Framework
Draws small images for every contact at every frame. This sample emphasizes multiple touches and shows how to use the Microsoft XNA APIs.
Provides an extensive sample framework that helps you create controls by using the Core layer. The code in this sample eliminates inconsistent behavior among Core-based applications by using the Model-View-Controller (MVC) design pattern.
An XNA-based application that demonstrates how to use the Core Interaction Framework
Shows how to use the RawImage APIs for XNA applications. This sample displays captured normalized (8 bit per pixel) images that are flipped vertically.
Demonstrates how to use the manipulations and inertia APIs to move graphical user interface (GUI) components around in a Surface application in a natural and intuitive way.
Samples that use the Presentation Layer (WPF)
Shows how to build simple application behaviors from touch-enabled controls that the Presentation layer provides, such as updating a text box when a user touches a button
Shows contact properties that are exposed in the Presentation layer (such as x, y, height, width, major axis, minor axis, and orientation) and how you can read and use these properties in a Surface application.
Demonstrates how to integrate sound into Surface applications based on the Presentation layer.
Represents a simple tool that lets a user compare and contrast the properties of two "items" (tagged objects).
Uses the SurfaceInkCanvas control to implement drawing and painting over pictures and video
Shows an implementation of the ScatterView and SurfaceListBox controls to create a simple puzzle game. The ScatterView and SurfaceListBox controls automatically provide some powerful features related to Surface.
Shows how to implement drag-and-drop functionality in a retail application.
Tag Visualizer Events
Shows how to incorporate hit-testing in the TagVisualizer control to let user interface (UI) elements react when tagged objects move over them.
Microsoft Press have a number of FREE Ebooks now available covering topics from SQL Server 2012, Office 2010 and Windows Phone, there is something here for everyone.
Many of our free ebooks are offered in three formats - PDF, Mobi (Kindle) and epub. Hope you find them useful!
Channel 9 is home base online for technical know how, how to’s and tips and tricks.
Channel 9 is used by millions of Developers worldwide each month through videos, how to articles and events.
We are excited to announce that the team has just released a Channel 9 application in the Windows 8 App Store.
So Install the application today on the Windows 8 Consumer Preview and easily browse the latest content on Channel 9, share content with your friends and view content on any of your Play To Enabled devices.
To find the app, Search the Windows 8 App store for Channel 9.
Are you are a mobile developer and want to extend your reach and your customer base?
Do you want to make your mobile app available on more stores?
Are using open source technologies?
Well lets look at the opportunity of using open source technologies to build apps for Windows Phone and the Windows Store (Windows 8)
Windows has always been a great playground for developers and many open source technologies already support Windows devices. MS Open Tech is working closely with the open source communities interested in cross platform development including engagement with Web and C++ open source communities to enable a wide range of popular open source frameworks on Windows devices.
Open source and the Windows Stores and Windows Phone 8
To learn details on the use of open source licenses for Windows Store apps, you can read the App Developer Agreement. For Windows Phone store, read the App Provider Agreement.
Both the Windows dev center and Windows Phone dev center provide extensive details and instructions on what is required to build apps for Windows devices. In a nutshell, you need to have Visual Studio, which runs on Windows. You can build and publish apps to both stores using the free version of Visual Studio.
If you are developing on a Mac, here are some interesting pointers for you in order to set things up to build apps for Windows devices on your Mac:
If you are familiar with Android or iOS development, and not with Windows or Windows Phone dev, then we recommend looking into the following documentation that has extensive information adapted to your background:
For Windows Phone apps
Solutions exist to help developers build apps across mobile devices running various operating systems. There are different approaches addressing different specific needs. Lots of these solutions are open source like Rhodes from RhoMobile, Appcelerator Titanium, Xamarin or Apache Cordova (a.k.a. PhoneGap), and happen to support Windows devices.
With Xamarin for example, C# developers can build apps for iOS, Android, and Windows devices with a single code base.
MS Open Tech has worked closely with these communities to enable these frameworks on Windows Phone and Windows Store apps which both provide native support for C++ development.
jQuery now fully supports WinRT (the Windows Runtime, powering Windows Store apps), allowing web developers to build Windows 8 apps reusing their existing code and skills. As a direct result from this work, web developers can also use other frameworks that are based on jQuery to build Windows Store apps. You can learn more about what it took to make jQuery support WinRT on this Nettuts tutorial
These other frameworks include
Debugging is another area that is pretty critical for developers and while native development tools (Visual Studio for both Windows and Windows Phone apps) offer extensive tooling, there are some gaps. One of the few example is the missing support for remote DOM inspection of HTML5 code running on an actual Windows Phone 8 device. MS Open Tech filled this gap, contributing to the project weinre, enabling it on Internet Explorer 10 and allowing remote debugging of HTML5 pages.
Most and foremost, MS Open Tech have all the info on the latest open source technologies simply visit http://msopentech.com/
Then this free day of training is the quickest way to find out all you need to know.
The Windows Phone Camps will show you how to learn and build Windows Phone apps from scratch. You'll be guided through the development process with a series of hands-on workshops and short tutorials, with some seasoned experts to give you one on one help when you need it. There'll be topics like; Introduction to Windows Phone Development, Controls & Control Toolkit, Execution Model, Storing Data, Launchers & Choosers, Accessing Cloud Services, Marketplace & Submission. Also, there will be informal Mango tutorial sessions on offer covering topics such as Multi-tasking, Debugging & Profiling, Motion API, Advertising SDK and Sockets. There's even an introductory design session to help you make your app look its best. Just pick the workshops that are most useful for you and work at your own pace.
Once you've got the basics, you’ll be off and running and ready to develop your own apps. You can work on your own projects with assistance from our Windows Phone MVPs, and of course there's the all-important opportunity to meet up with likeminded devs.
The camp kicks off at 9am and finish at 6pm. By registering and attending, you will receive (fanfare please) an exclusive Windows Phone Design Guide Sketch Pad as well as your own customized Hit & Run Windows Phone Camp T-shirt.
Spaces are limited, so register your place in the Windows Phone Camp today!
Got a question? You might find the answer below...
How much do I need to know about Windows Phone to attend this camp?
You don't need any prior experience or knowledge about Windows Phone or app development to attend. The purpose of the camp is to provide you with the basic skills and knowledge to get started with learning about Windows Phone app development.
Who can attend these camps?
Academics, Students, developers, hobbyist, technology enthusiasts. Everyone is welcome! All we ask is that you are ready and keen to learn about developing apps for Windows Phone.
How much does it cost to attend this camp?
Your luck's in - it's FREE.
What do I need to prepare in advance to make the most of this camp?
There are a basic set of things you should prepare before attending the camp. This includes bringing your own suitable laptop with the Windows Phone Developer tools installed (these are free), preferably the latest version of the tools.
It would also be useful if you could read the following documentation:
If you have a Windows Phone please bring it with you.
Are you holding these camps elsewhere in the country?
Yes, this is a series of Windows Phone Camps kicking off around the country. Follow us on Twitter (@ukmsdn) to see where we’re visiting next.
What if I've registered already and can't make it on the day?
Please let us know as soon as you can if you can't make the camp as there will be plenty of people who are keen to take your spot. Please respect the trainers and your fellow delegates by turning up if you've registered and committed. Thanks!
Who are Hit & Run?
They're do cool live on-site event screen-printing. You'll get the chance to create your very own t-shirt with your unique design at the end of the camp.
What’s the Windows Phone Design Sketch Pad?
In the spirit of highlighting good design, we intend to provide each attendee with an exclusive Windows Phone design sketch pad with Windows Phone design guidelines as well as open spaces and templates to sketch your next big Windows Phone app idea. Great stuff!
Register at the event of your choice below. Go on. You know you want to.
London - Saturday 17 September
Manchester - Saturday 24 September
If you have been looking for an opportunity to develop curricula, work books, assessments or simply a walkthrough of a XAML/C# or HTML5/JS application step by step this it! Full source code and instructions are provided in both html and docx formats.
Today, Microsoft announced Windows Azure Toolkits for Devices, consisting of assets for Windows Phone, iOS and a preview of tools for Android.
Using the toolkits, developers can use the cloud to accelerate the creation of applications on the major mobile platforms.
Today announcement and the release of the API is a key goal to allowing developers to quickly develop and build apps that work with unique devices across a dozen platforms.
The toolkits leverage the Microsoft Azure cloud resources to simplify the complexity of supporting multiple devices. As a common back-end, developers can use cloud services to share common requirements like device notifications, authentication, storage and even higher-level services like leaderboards.
Developers can maximize the performance of each mobile device by writing client code that exploits each platform. As more and more mobile applications rely on back-end services, the Microsoft Azure cloud can become increasingly useful and strategic for developers.
A huge opportunity of the Windows Azure Toolkits for Devices to create applications on the major mobile platforms, specifically:
• Windows Azure Toolkit for iPhone (v1.0). Developers can download the package and quickly get started writing iPhone apps on the Windows Azure platform without having to have intimate knowledge of Microsoft tools, such as Visual Studio. Compiled iPhone code libraries to interact with Windows Azure, a sample iOS application, documentation, and a “Cloud Ready” Windows Azure deployment package are included.
Links to access the free toolkits are below:
https://github.com/microsoft-dpe/watoolkitios-lib https://github.com/microsoft-dpe/watoolkitios-samples https://github.com/microsoft-dpe/watoolkitios-doc
• Windows Azure Toolkit for Windows Phone (v1.2). Originally released last month, new developer features available in the next two weeks include integration with the Windows Azure Access Control Service (e.g., a wizard, automatic setup, tooling and code), full support for Windows Azure Storage Queues and an updated user interface for the supporting Web application.
Links to access the free toolkits are below:
Windows Phone 7:
• Windows Azure Toolkit for Android (Prototype Preview). With the forthcoming release this summer, developers will be able to extend the functionality now available for iOS and Windows Phone to the Android platform with the Windows Azure Toolkit for Android.
To simplify the process of setting up services in Windows Azure, we are also releasing a “Cloud Ready” package for the toolkit. This package is designed to allow someone to quickly get started using Windows Azure without having to open and modify the services.
Screencasts are available for developers seeking additional information: Getting Started with the iOS Toolkit and Deploying the Cloud Ready Package for Devices. Windows Azure Technical Evangelist Wade Wegner’s blog contains a more detailed technical review of the iOS toolkit.
By providing toolkits for Windows Phone 7, iOS, and Android, we are making it faster and easier for developers to use Windows Azure to provide services across device platforms