Windows-XAML / Template10

Making Windows 10 apps great again
Apache License 2.0
1.41k stars 388 forks source link

Windows Template Studio vs Template 10 #1465

Closed harvinders closed 7 years ago

harvinders commented 7 years ago

During the build I saw windows template studio (WTS) and wondering how it is different from T10?

I am starting a new project and confused if it should be based on T10 or WTS? Shouldn't the best parts of T10 be integrated with WTS?

callummoffat commented 7 years ago

Which one you use depends on your needs, really.

WTS has a much finer degree of customization, and is in the form of a wizard (which allows you to essentially create your own template which is tailored to the task at hand) rather than just a collection of ready-made templates.

T10, on the other hand, doesn't possess that degree of customization. But many of the APIs we've developed are superior in many ways to those provided by WTS.

As for integration, they have different goals, so I don't think that will happen.

VagueGit commented 7 years ago

As for integration, they have different goals, so I don't think that will happen.

I've been working with Template10 for 12 months trying to port a significant business application to UWP and I share the confusion of @harvinders. I thought the goal of both was to get from zero to F5 as quickly as possible.

In the //Build video Windows Template Studio at 14:40 when asked where does Template 10 fit in, Clint Rutkas said "we're up for discussion".

There does seem to be significant overlap between Template10 and WTS. Further clarification of the relationship between Template10 and WTS ... how they differ and how each is expected to fit into the overall picture long term would help developers choose which is more appropriate for them.

JerryNixon commented 7 years ago

The one thing to remember is that the Studio is not a solution for navigation and MVVM. It is just a template subsystem. Perhaps a template subsystem in need of an excellent solution for navigation and MVVM.

VagueGit commented 7 years ago

BUILD Day 1 keynote didn't mention UWP. We were on the point of abandoning porting a large app to UWP, then day 2 keynote was all about UWP. We got all excited again.

On day 2 WTS hits us out of the blue.

Clint Rutkas said "we're up for discussion".

Is that discussion going to happen? Looking from the outside in it does look like T10 and WTS were developed without knowledge of each other.

We like T10. WTS dropping in on us like that sets us to wondering if WTS will ultimately replace or absorb T10. Our main work at the moment is porting a 20 year old code base. We can wait another year if necessary for the dust to settle, but we are worried by the apparent lack of communication between Microsoft teams.

We need some solid official guidance from Microsoft with some fully fleshed out examples showing the benefits of each given the chosen path. I think we are asking to much for @JerryNixon to fill in those gaps. There needs to be more from other Microsoft teams, but as of Day 2 it didn't look like the WTS team knew T10 existed.

JerryNixon commented 7 years ago

Thank you for considering me. That being said, WTS is not a framework like T10 that handles and simplifies the implementation of your app. It just handles the creation of the app from templates. That's only a portion of what Template 10 does, as I am sure you already know. Even still, they are not competing technologies. Consider the Community Toolkit. It gives you some nice helper classes, but it's not a framework like Template 10 solve app-wide issues. As a result, they work great together. I have a feeling WTS and T10 will be friends in short order, wait a little for me to announce something.

VagueGit commented 7 years ago

A T10 template in WTS would have been nice ... make it look like everyone is on the same page.

callummoffat commented 7 years ago

The very nature of the two projects suggests that partnership at some point would be the smart choice. But only time will tell if those in charge of WTS feel the same way. And planning that sort of thing isn't just overnight, it takes time and resources.

They may be on the same page already, but just not ready to share the fact (or the results).

VagueGit commented 7 years ago

I've also asked the question on the WTS repo Where does Template 10 fit with WTS?

VagueGit commented 7 years ago

Would be interested in a response to the comment

Looking at the project again now it seems plans for version10.2 may have been shelved

in Where does Template 10 fit with WTS?

mvermef commented 7 years ago

I can assure 10.2 is very much work in progress, if you haven't noticed the latest issues they are code up for grabs, no comment by anyone is open for completion and PR

fmonroe commented 7 years ago

I support VagueGit's comments. The current situation is quite confusing for developers that are investing considerable resources (time and money) trying to build LOB UWP apps. T10 offered much hope, but then WTS came up. Jerry wrote above "wait a little for me to announce something" months ago, and any news on v10.2 ? The last update above was months ago. Is T10.Core the same as v10.2? Also, there does not seem to be much support for T10 on SO. Please do not get me wrong: I appreciate Jerry's team's contribution and I see it's a great tool (and I can sympathize with the team's likely frustrations when they first saw WTS) but the important business side asks: will it be supported in the future. AFAIU I agree with Jerry that WTS is "Perhaps a template subsystem in need of an excellent solution for navigation and MVVM", but there are ways to address this without involving T10. Positively looking for advise/guidance. Thank you kindly.

VagueGit commented 7 years ago

We see Microsoft pushing WTS but never a word about T10. Refer the last month on Channel9. There is a hatful of videos about WTS but T10 doesn't get a mention. In Windows Community Standup with Kevin Gallo July 2017 Kevin Gallo plugged WTS and didn't mention T10, even though he ran out of things to say! He also didn't mention Windows phone. Microsoft finds it difficult to kill products off as each product has it's support base internally and externally, but you have to read between the lines to see which products have official support and which are being left to die on the vine.

Our company has a significant investment in T10 and we are really grateful to @JerryNixon , but we are unable to commit further to T10 given the messages we see from Microsoft and the lack of progress from T10.

darenm commented 7 years ago

TL;DR

  1. Template10 is not a Microsoft product and has never had official support so why would Kevin Gallo talk about it?
  2. WTS and T10 have overlap, but perhaps not as much as you may think.
  3. T10 Refactor is still underway - much code has changed and been improved
  4. Jerry and I do videos on T10 when we find time - we intend to do more, just need to fit it in!
  5. We would be sorry to see you go.

Longer Post

I guess there is some confusion here... Template10 is not a Microsoft product and has never had official support so why would Kevin Gallo talk about it? Template10 is an open source product that has many contributors, some of whom are Microsoft employees, but many that are not and it certainly is not a Microsoft product. Does this confusion arise from the fact that the main repo is called "Windows XAML" perhaps?

I personally see WTS and T10 solving different problems and I certainly wasn't frustrated to see WTS arrive - I knew it was being built since November 2016 in fact. Yes, T10 and WTS agree that there is a lack of guidance on how to start building a UWP app, and so both have starting templates, but from there they diverge:

So, similar yet different. There is certainly room for both. Would I like to see T10 as an option in WTS? Of course! I would like to see a baseline implementation that allows someone to get up and running quickly and work out a path to increasing the foot print down the line. After the T10 team is happy with the current round of work on T10, the team can take a long hard look at what can and can't be done with WTS integration.

As for WTS not acknowledging T10? As they mention here they have reached out to this team (as well as Caliburn) to discuss integration. They were and are fully aware of T10's existence - however, the integration of T10 into something like WTS is non-trivial and we all have resource constraints. It has taken the WTS team many months to implement what they have in-place today and although MVVM Light is wonderful, it doesn't do many of the things that Template10 does such as simplify app lifecycle management, navigation, state management, custom controls, etc. As such, for WTS and T10 to integrate requires that for every option, switch, etc. that is available in WTS, there are many permutations of code and templates that need to be made, tested and then maintained, in parallel with the T10 codebase. Further, if you take into account that there is a major refactoring of T10 underway (yes - still underway - a major naming a code structure refactor is happening as I type), it makes it a bit pointless spending the time to integrate with WTS until that work is complete.

T10 was always about choice and simplifying API usage for the most common use cases, while providing the power to dive deeper if necessary. The current version has code that makes it easy to use the most common scenarios for certain features (settings, state, etc.) with more expert implementations available that show the patterns for successfully leveraging some of the more low-level functions. Yes, the templates are "cool" from a starting point perspective (I prefer to start from Blank) but I find the Samples to be more useful in terms of consuming specific features.

The work going on right now will break T10 into smaller nuget chunks, so you can can pick and choose what you want - you can just use the settings service without needing to use anything else, as an example. There is a more consistent a naming convention that we hope will help more clearly communicate what each class does, it's lifecycle, and so on.

I'm always sad to read when people are unhappy with an open source project and the pace it moves but I do certainly understand the problem if you are waiting for something - no-one else ever moves at the pace we need. But, here's the thing - no ones is paying for this. It's not officially supported by any organization, certainly not by Microsoft. It's a group of individuals with day jobs - much like yourself - and everyone is balancing changing priorities. I wish I was able to contribute more to the codebase, but I have a company to run and projects to deliver. There are some contributors to this project that have many products that leverage T10 and they contribute the features they need or fix the bugs that they find. From a responsiveness perspective, sometimes, people go on vacation and the last thing they want to do is monitor an issues board on GitHub.

I hope this "brief little post" helps provide some context. I hope you find features and code here that makes the job of you and your team producing awesome apps that much easier. As I mentioned earlier, when the current refactoring is complete, picking and choosing components will be easier than ever and you will always be able to add T10 nuget packages to WTS generated projects.

Good luck and thanks for using T10!

fmonroe commented 7 years ago

Daren: Thank you very much for taking the time to answer our concerns. You are going a long way in making things clearer for us all. Comments:

  1. Overlap: the more I look at it the more I agree. At first sight, in a simplified way, WTS seems more for 'simpler', 'consumer oriented' apps while T10 addresses deeper problems that are more related to 'real life' 'LOB' applications (I'm no expert yet - don't quote me).
  2. Refactor: Interesting: I can't find much info on this in the repo. The WTS team publishes their roadmap; perhaps a roadmap for T10 (with no date commitments) would be appreciated by the fan base. Should we wait for this new version soon before we invest? Or any work done now will not be needing much refactoring for the new version?
  3. The videos on T10 are very good! You obviously had a fun day doing those... I learned a lot watching ALL of them. My feeling is these are superb and complete - now what is needed is "how to understand and modify the generated/templated code to fit your needs".

Important: You write "the last thing they want to do is monitor an issues board on GitHub" but the site says to submit questions to SO! So which is it? Respectfully follow your guidance and submit questions on SO or bypass the system and pollute the issues database with newbies question? I want to play by the rules since people are short on time - either SO or the issues board.

Also: We sure understand that "everyone is balancing changing priorities... but ...have a company to run and projects to deliver." That is why I hope I can become better at T10 and contribute to it and help the team as best as I can ... but the Masters need to find ways to train the Padawans otherwise "we're doomed!" ;)

VagueGit commented 7 years ago

I can tell @fmongeau that T10 solved a lot of problems for us as business application developers. We chose T10 way back because Prism looked at that time to be 'dying on the vine' and MVVMLight was still in the Windows 8 days. Prism and MVVMLight have both moved on since then but the last stable release of T10 was 1.1.12 in October last year. We have been using 1.1.13-preview since December last year.

And it is still really hard to write a UWP business application.

@darenm Why would Microsoft mention Template 10? It was featured in a 1 hour Visual Studio Toolbox in February and there were MVPs blogging left right and center. That's a code smell for Microsoft support.

But nothing now for months.

We know Microsoft use the notion of the developer community to test drive ideas and technologies with limited risk. If an idea has any legs it gets official support. I would have thought given repeated claims by Microsoft that they want to make UWP more business application friendly, they would have committed resources to T10, as they have to other 'community projects'. Would the T10 volunteers welcome Microsoft support? Would @JerryNixon like to have his life back?

WTS has their own MVVM Basic. Why? WTS would have been so much more useful to business application developers if they had put that effort into supporting T10. That is really hard to understand from outside.

There is a gap between the official message from Microsoft and what is delivered which leaves developers wondering. Yes we want to make UWP more business friendly, but you are going to have to find the tools out in 'the community'.

That really doesn't work for business application developers. We need to know that the product will be supported long term. The small group of volunteers who support T10 doesn't guarantee the long term support we require.

We really like T10. We were early adopters and struggled with early issues, but we hung on in there. We really want to see UWP incorporate out of the box the functionality that T10 provides. Unfortunately the demands of the market require us to go elsewhere for a solution. For now.

But we will keep an eye on T10.

I apologise that my posts on this issue have been negative. We invested more than a year in UWP/T10, hoping problems would be solved as we went, but we are losing market share waiting.

callummoffat commented 7 years ago

Again, it is not an official Microsoft project. IIt's a community thing. They (Microsoft) aren't obligated to provide support for it, or to provide official word on it. The lack of official word on it does not constitute the lack of a future for T10. T10 will survive as long as the community still wants it, because it is not a Microsoft project.

If you want to quit because it doesn't provide a large-scale support team or get officially acknowledged by Microsoft, then Template 10 probably wasn't the best choice for you in the first place.

tibitoth commented 7 years ago

Well, WTS and I need to mention the UWPCommunityToolkit are also not offical Microsoft projects. Both has a very vibrant community and yes they have some publicity in the offical Microsoft channels, like T10 had before. I think the main reason is that they have more clear vision about where they heading for. Main aspects that T10 need to improve to achive the project consistency like in the other two project:

JerryNixon commented 7 years ago

Well, @totht91, to say UCT is not a Microsoft thing might be a misnomer, but certainly Template 10 is not. The work on Template 10 right now is pretty freaking great. @VagueGit , if T10 it shows up in WTS or not doesn't it really matter? I mean it. You only say [File]>[New Project] one time per app, right? I am closing this issue only because I think the discussion is clear and potentially endless. I will close with just this, Template 10 is fully supported by you and everyone else who contributes to it. And me.