Software Architect at Genzeon Corporation in Malvern, Pennsylvania, Microsoft .NET MVP, Husband, Dad and Geek.
35717 stories

Design Systems - DZone - Refcardz

1 Share

Before diving into design systems, let’s review how the collaboration artifacts between design and development have progressed. We can classify this broadly into four levels:

  1. Static visual specifications
  2. Interactive visual specifications (inspect)
  3. Visual specifications linked to UI components (design systems)
  4. Generating components from visual specifications (design systems +)

In all levels, it is assumed that some form of design activity precedes development. That is, specifications for the UIs and flows are created prior to development.

Image title

Level 1: Static Visual Specifications

This form of design-to-development communication is most common. At this level, visual mock-ups are created using tools used by visual designers (e.g. Sketch, Adobe XD). The specifications for styles, layout, sizing, etc. are added as annotations on top of the mocks for review.

Image title

Vertical spacing guidance — Google Material Design

Developers refer to this documentation as part of their development process and manually transfer this into code form. This approach is okay for custom one-off projects that don’t need to be maintained.

Level 2: Interactive Visual Specifications (Inspect)

At this level, the visual design team is still sharing mockups and style guides with developers, but instead of a static document, they rely on tooling to provide the specs in a more accessible format. Using tools such as, designers can upload their designs without taking the effort to markup the designs and developers can then view designs in the browser. More importantly, as they click on the design, developers can view the specifications on demand — even in a format that aligns with the target platform (e.g. HTML, CSS).

Image title

Viewing design specifications on demand using

The key benefit of this approach is that designers don’t have to worry about manually adding annotations, and developers can still grab assets and specifications for any part of the UI. However, it’s not directly linked to any software components that are used by the organization.

Level 3: Visual Specifications Linked to UI Components

At this level, we can expect that design and development have collaboratively created an inventory of styles, layouts, and UI components that are relevant for their app domain; in other words, a design system. At this stage, design teams tend to create designs using a UI kit that reflects the design system. UI kits are collections of reusable visual design elements created using the design tool itself (e.g. Sketch) and match the components in the codebase. This makes it easier for the development team to implement the designs because matching UI components exist.

Image title

UI kit for the Indigo.Design System for use in the Sketch App

This by no means implies that the application is done. It’s just that developers can re-construct the mockups in code more easily. As you can tell, developers will still need to write UI code to make it looks like what’s specified, but at least they are doing it using reusable components that they know exist. This approach also reduces potential for miscommunication.

However, the bigger issue is that not all organizations have invested in a design system, so this level of collaboration is still in the future for most.

Level 4: Generating Components From Visual Specifications

Having a design system does not automatically ensure that UIs can be quickly created, but it makes it easier. Within the enterprise, an application may get updated over time (versions) and the UI updates may not be that significant. This reduces the dependence on generating complete UIs. However, for those organizations that are getting started with large migration projects — for example, moving desktop apps to web apps — being able to create UIs in a visual tool and then generating “good” UI code is significant in terms of cost-savings.

Image title

Generating components or UIs from visual specs using the Indigo.Design Code generator

Solutions like Indigo.Design aim to kick-start a design system for organization who don’t have one, and at the same time help generate the new UI components for a target platform (e.g. Angular). The additional ability to generate layouts for the components is unique. Using the Indigo.Design approach, designers can create their mockups using the Indigo.Design UI kit and developers can use a code generator extension in their IDE to select and generate components from the mock-ups.

Read the whole story
49 minutes ago
West Grove, PA
Share this story

UWP Tip #24 - Get Started Building Windows UI XAML with XAML Studio

1 Share
XAML Studio was recently made available as a Microsoft Garage project without much fanfare. You may have heard of it if you're a regular viewer of the On .NET show on Channel 9. XAML Studio's creator, Michael Hawker, joined Jeremy Likness to discuss the project last week.

What Is XAML Studio

XAML Studio aims to provide Windows UI developers with a quick way to create and prototype XAML markup for Windows. If you miss old lightweight XAML editors like XamlPad, you should install XAML Studio today. These are a few of the features already available in this early version of the tool.
  • Live Preview
  • Live Binding
  • Binding Debugging
  • Data Context Editor
  • Auto-Save (with Restore)
  • IntelliSense
  • Documentation Toolbox with Links to MS Docs
  • Alignment Guides
  • Namespace Helpers

Getting Started

You can search for XAML Studio in the Microsoft Store and install it from there or use this handy link. When you open the app for the first time, you'll be greeted by a Welcome screen like this.

XAML Editor

If you have an existing WinUI XAML file you would like to try, you can use the Open File link. Let's get started today by clicking the New File link to create and start editing your first XAML file.

The new XAML file is a Windows Page containing a Grid with a 2-line TextBlock. Let's start slow and the Run text of each line a little bit to read "Get Started with XAML Studio on UWP Tips" and "Check out the live preview.". You'll notice that the live preview is exactly that... live. The text in the preview will refresh as you change it in the editor.

IntelliSense and Live Preview

Let's test out the IntelliSense by adding a couple more controls to the page. We'll switch out the Grid for a StackPanel with the default vertical orientation and add a Button and another TextBlock.


The IntelliSense is quite nice, but I think the default Live Preview refresh interval is a little fast. The bright pink error messages about invalid markup are distracting while working in the editor. You can either disable auto-compilation or edit the interval in the app's settings. The default interval is to compile after 0.8 seconds of inactivity in the editor. I updated mine to 2 seconds.

You should take some time to explore all of the XAML Studio settings as you're getting familiar with the app.

Documentation Toolbox

Something else you should explore is the Documentation Toolbox in the left panel.

Here you can view all of the WinUI XAML controls available to the editor, complete with little info icons that link to the Microsoft Docs online documentation. The control name and namespace appear in the list for each item. If you have controls that you frequently use, you can add them to your favorites so they always appear at the top of the list.

Data Binding

Want to add some dynamic content to your page without coding up your model, view model or connecting to a live data source? You can create a mocked up data source with some JSON data in the Data Source pane on the left.

For this prototype, I grabbed some sample JSON data from one of Adobe's sites. This data contains an array of donuts, each with its own array of batters and toppings and some other properties. It's a handy bit of small, yet semi-complex data.

From the Data Source pane, you can save your JSON, open other JSON data files, or connect to a Remote Data Context. Using a remote data context is as simple as entering a REST Url that returns valid JSON data. The returned data will populate your Data Source window and can be saved for later use.

Here is my XAML markup from the screenshot above with bindings added for the donut JSON data.

<StackPanel Padding="40" DataContext="{Binding}">
     <TextBlock Margin="8">
         <Run FontSize="24" Foreground="#FFFC5185">Get Started with XAML Studio on UWP Tips</Run><LineBreak/>
         <Run>Check out the live preview.</Run>
    <Button Content="I Do Nothing" Margin="8"/>

    <ListView ItemsSource="{Binding}">
                 <StackPanel Orientation="Horizontal">
                     <TextBlock Text="{Binding Path=id}" Margin="4"/>
                     <TextBlock Text="{Binding Path=type}" Margin="4"/>
                     <TextBlock Text="{Binding Path=name}" Margin="4"/>
                     <TextBlock Text="{Binding Path=rating}" Margin="4"/>

These binding expressions are all valid except for one. Want to quickly know which of your bindings is invalid? Switch to the Debug Bindings pane and turn on the Debug toggle.

After debug is enabled on bindings, a list of the binding expressions will display in the pane with a 'Successful' or 'NotBound' status next to the binding target. A timestamp of the last bound time will display with any bindings that have been successful. In addition, the binding expressions in the code editor will be highlighted to indicate their status, making it easier to navigate to the failed bindings.

In my case, I tried to bind to a "rating" property, which does not exist on the donut array items in the JSON data.

Next Steps

That's all we're going to explore in this intro to XAML Studio. Next time we'll dive a little deeper into remote bindings, bind some more complex controls, and see how easily we can take our prototype XAML over to a real UWP application in Visual Studio.

Go check out XAML Studio today and be sure to provide feedback to Michael on Twitter!

Happy XAMLing!

Read the whole story
1 hour ago
West Grove, PA
Share this story

Amazon and Microsoft diverge on approach to housing crisis in their home region

1 Share
Microsoft President Brad Smith announces a new $500 million affordable housing fund. (GeekWire Photo / Monica Nickelsburg)

As two of the world’s most valuable companies, Amazon and Microsoft have created mind-boggling wealth and economic vitality in the Seattle region. But around them, housing prices have skyrocketed and the number of people experiencing homelessness has spiked as the rising tide of the tech industry fails to lift all boats.

Now the two tech giants are taking on the housing crisis, but their approaches are as different as the companies themselves.

That’s one of the topics we discuss on the new episode of GeekWire’s Week in Geek Podcast.

We also delve into the story of Bill Gates standing in line for a hamburger and the Seattle Sounders dropping Xbox in favor of Zulily on their jerseys.

But the more substantive news this week was Microsoft’s announcement of a $500 million initiative in the hopes of correcting the Seattle region’s dysfunctional housing market. It’s a novel approach. Microsoft plans to invest $475 million in low- and middle-income housing developments at market rate returns or lower. Microsoft President Brad Smith said the returns will be re-invested into the program so that it is sustainable long term. The remaining $25 million will be donated to organizations tackling the region’s homelessness crisis.

In recent years, Amazon has targeted a different symptom of the housing crisis: homeless families. Amazon is building a permanent shelter for Mary’s Place, a non-profit that provides services to homeless women and families, on the company’s Seattle campus. Through its support of groups such as Mary’s Place and FareStart, an organization that provides job training for people experiencing homelessness and poverty, Amazon has donated tens of millions of dollars.

Amazon CEO Jeff Bezos is also using some of his personal fortune on the issue. Last year he announced a new $2 billion philanthropic initiative called the Day One Fund. About $1 billion of the fund will be donated to homeless service providers.

There’s also a difference in optics between the two companies and their efforts to mitigate the housing crisis. Amazon was the poster child for an opposition effort to Seattle’s short-lived head tax, which would have collected funds from the city’s top-grossing companies to fund affordable housing. The tax was repealed quickly after passage because the Seattle City Council didn’t believe they could win a fight with the business community, including Amazon.

Here’s what Smith said when we asked him about the contrast between the companies.

GW: Lots of tech companies in the area have used their voice on this issue, but on some occasions, they’ve used their voice in ways that might seem a little bit incongruous. I’m thinking of the head tax and Amazon really loudly using their voice to say that they didn’t support it. So do you think that there’s dissonance between these things?

BS: I don’t know that there’s dissonance. I think we need to address the right problems, but we need to focus on the right solutions. I think it’s understandable that there were companies last summer in Seattle that thought that the solution that was being offered was going to be a step backwards rather than forwards. At the end of the day though, we all have to decide what we stand for and not just what we stand against, especially when we’re talking about a problem that affects our region as broadly and deeply as this one does. One of the benefits of being proactive is that it’s actually easier to fashion some ideas and hope to build some momentum behind them. That’s part of what we’re doing here. I do think that all of us in the tech sector in Puget Sound have an opportunity to take more steps to show the region what we stand for.

Microsoft stayed out of the head tax fight. fight. The company has also chosen to grow in the suburbs of Seattle, rather than the urban core. As a result, Microsoft hasn’t become the visible symbol of tech growth that Amazon has. Its foray into the housing issue comes off as more forward-looking than reactive.

Read the whole story
3 hours ago
West Grove, PA
Share this story

One Dev Question - Is VSCode only good for JavaScript?

1 Share
From: Microsoft Developer
Duration: 01:39

In this One Dev Question series on Visual Studio Code, Chris Heilmann (@codepo8), Ramya Achutha Rao (@ramyanexus), Peng Lyu (@njukidreborn), and Daniel Imms (@Tyriar) answer questions about VS Code, a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. To learn more and to download VS Code, head to

Read the whole story
4 hours ago
West Grove, PA
Share this story

One Dev Question - What is the relationship between Visual Studio and Visual Studio Code?

1 Share
From: Microsoft Developer
Duration: 01:31

In this One Dev Question series on Visual Studio Code, Chris Heilmann (@codepo8), Ramya Achutha Rao (@ramyanexus), Peng Lyu (@njukidreborn), and Daniel Imms (@Tyriar) answer questions about VS Code, a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. To learn more and to download VS Code, head to

Read the whole story
4 hours ago
West Grove, PA
Share this story

SQL Server Data Migration: Tools and Services

1 Share

The Database Migration Team of the SQL Server Product Group has created the following tools and services to facilitate migration between different versions of SQL Server or between on-premises and SQL Azure DB in the cloud (but not only)!

Azure Database Migration Service (Azure DMS)

Designed as a seamless, end-to-end solution for moving on-premises SQL Server databases to the cloud.

Database Migration Guide

Review all your options for an upgrade from on-premise SQL Server versions to Azure SQL Database.

Azure Migrate

Easily discover, assess and migrate your on-premises virtual machine to Azure.

Azure Data Factory (ADF)

Create, schedule and manage your data integration at scale with our hybrid data integration (ETL) service.

Data Migration Assistant (DMA)

Prepare your upgrade to a modern data platform by reviewing compatibility with your new SQL Server.

SQL Server Migration Assistant (SSMA)

Automate database migrations to SQL Server from Microsoft Access, DB2, MySQL, Oracle, and SAP ASE.

Database Experimentation Assistant (DEA)

An A/B testing solution for changes in SQL Server environments, such as upgrades or new indexes.

SQL Server Data Tools (SSDT)

A modern development tool for SQL Server databases, Azure SQL databases, RS data models and IS packages.

Microsoft Data Migration Blog

The official team web log for Azure Data Magnet’s Database Migration Team 


If you are considering the migration to SQL Azure Database, I suggest you read this white paper: Choosing your database migration path to Azure.

For more information, you can follow the Data Migration Team YouTube channel, you will find videos and tutorials on SQL Server Data Migration Tools.

This opportunity is perfect to remind you that the next July 9, 2019 SQL Server 2008 and SQL Server 2008 R2 will exit from the maintenance program, Microsoft will not release updates on these two products, not even security updates. You can find all details here. This is the time to migrate!

You can also provide your feedback on Data Migration Tools and Services by writing to @Data_Migrations (datamigration at microsoft dot com).

Read the whole story
6 hours ago
West Grove, PA
Share this story
Next Page of Stories