Hesam Seyed Mousavi, Nov 18, 2012
If you want to write application what might need to show html (RSS reader for example) you would be much better off going with HTML/JS. Due to airspace issues with WebView in XAML, ads integration could be a major pita for XAML apps. On other hand if you want your app to have freedom of using Direct2D, 3D integration then you are better go with XAML. Some other considerations could apply as well, so I would invest some time into learning both stacks. Good news is that many system api are the same for XAML or HTML app and you will be able to use your knowledge across the divide.
Here are the templates that ship out of the box:
- Blank App: A single-page project for a Metro app that has no predefined controls or layout.
- Grid App: A multipage Metro project that navigates among groups of items. Dedicated pages display group and item details.
- Split App: A two-page Metro project that navigates among grouped items. The first page allows group selection, while the second displays an item list alongside details for the selected item.
- Fixed-Layout App: A Metro project that scales a fixed-aspect ratio layout.
- Navigation App: A Metro project with predefined navigation controls.
1. Skill Ready
I and other people in the world have gathered a ton of experience on the MVC stack. Websites became applications as some point, and they became essential in the enterprise. I would guess that the web stack has drastically more developers than any other stack… but that’s a guess.
7. Query Selection
In XAML, it’s easy enough to give a control an ID and then select it in the code. But how do you select all of every third paragraph, the third element in the grid, or something like that. The answer is imperative code. There’s no part of the object model that you can’t access, but with query selectors in CSS and JS, you can use simple strings like “div#myDiv p:nth-child(3n)” to select every third paragraph in the div with the ID of myDiv.
CSS is amazing. With a collection of style rules, I can style, animate, layout, add images, position things, and a ton more. With declarative CSS code I can make the same HTML view look entirely different. Style rules cascade down to the eventual screen element and allow a developer to set a style globally and then override that style locally given the need. There’s a JS library called LESS that extends CSS’s capabilities and allows me to set style variable and even do variable math. So I can set the base color of my app to red and then create a number of derived colors (darker or lighter for instance). That way, the change of a single color variable will result in a complete change to my app’s color palette.