aspnet / Templates

This repo is OBSOLETE - please see the README file for information
Other
150 stars 57 forks source link

Feedback on changes to the One ASP.NET dialog #422

Closed sayedihashimi closed 6 years ago

sayedihashimi commented 8 years ago

We are planning to make some updates to the One ASP.NET dialog. The latest proposal is at one-aspnet-krtw.pdf

Note: this is an interactive pdf (in browser pdf readers don't seem to enable interaction though). Most of the interaction is present in the ASP.NET Core Web Application version of the One ASP.NET dialog.

Edits to mockups after initial posting
peterblazejewicz commented 8 years ago

Sayed, if you have this written down into doc, you could send me and I'll review during weekend! Thanks!

sayedihashimi commented 8 years ago

@peterblazejewicz I have a .pdf file above, that's all I have for now.

tobiaszuercher commented 8 years ago

just one little request: the "empty" one should really be empty!

sayedihashimi commented 8 years ago

@tobiaszuercher our empty projects today are pretty empty. Is there any content in there that you think we should remove? I did just find one issue while checking on this.

pksorensen commented 8 years ago

image

  1. I moved the yellow stuff all way up, thats where I expect it to be.
  2. I removed the name ontop of templates, it was redundant as we already picked AspNet Core / AspNet 5 in the create project menu.
  3. I felt that the button part was messy, making summary go all way up helps (but of cause that is my opinion).

I dont think I have input that is worth 30min of chat, so i just included it here :)

Nepomuceno commented 8 years ago

The empty project should start with no database. And the ones with database should start or with sql azure or with sql lite to be platform agnostic by default

tobiaszuercher commented 8 years ago

VS 2015 Update 1 (yes, not the most recent) i get the following with an "empty" project:

image

there is too much in it for an "empty" project, for example application insight (8 nuget packages, webconfig, javascripts & ApplicationInsight.config)

i totally see the use of starter templates which lets you quickly setup an web application with MS tools & frameworks. But there is people who just want to start of with an empty sln.

TheBlueSky commented 8 years ago

I agree with @peterblazejewicz and @Nepomuceno. Empty project template should be really empty by default; i.e., not authentication, not database, and no tests, so if I chose Empty and pressed OK, I get nothing more than the bare bones. This goes for both, ASP.Net 4 and ASP.Net Core templates. Another thing. Is it important to have a version number for ASP.Net Core? I.e., why ASP.Net Core 1 not just ASP.Net Core?

sayedihashimi commented 8 years ago

Hi everyone I realized that the mockups had a bug in which the Empty project was selected when the Web project should have been selected for the screens. For empty project as some have suggested here will default to No Auth and No DB. You will be able to add those to the empty project but by default you will not get those.

sayedihashimi commented 8 years ago

@tobiaszuercher the AI references and files are added because of the App Insights checkbox on the core new project dialog. app-insights

If you uncheck that you will not get the AI references and files. Besides that I think empty is good in your case right? We could remove the web.debug.config and web.release.config but that would mean that we would have to change the default in web.config to Debug=false otherwise it would be easy to publish your site in debug mode from VS. We could also remove the AssemblyInfo.cs but I think that would get added at some point anyway. Let me know your thoughts here.

sayedihashimi commented 8 years ago

@s093294 thanks for the feedback!

I moved the yellow stuff all way up, thats where I expect it to be.

Noted

I removed the name ontop of templates, it was redundant as we already picked AspNet Core / AspNet 5 in the create project menu.

Good point, now that we have seperate entry points we don't need that heading. Instead I'll update the title of the dialog. For asp.net 4 it will be _New ASP.NET 4 Project - _ and fore core _New ASP.NET Core 1 Project - _.

I felt that the button part was messy, making summary go all way up helps (but of cause that is my opinion).

I'm guessing that you are referring to the tabs on the bottom right for Project, Auth, etc. I'm working with a designer to come up with an alternate design that we can evaluate. In that set of mockups (which I'm hoping to post here next week) we may see a better approach for the tabs.

lucamorelli commented 8 years ago

selecting sql azure will be possible to select a sql azure dbase in my subscriptions or provision a new db? same question for the other azure options, like app services deployment and active directory accounts

sayedihashimi commented 8 years ago

@lucamorelli that is the idea, but I don't have mocks for that yet. You should be able to create new DBs or use existing DBs. For Host in the Cloud we are thinking to have the same features we have today in that area.

sayedihashimi commented 8 years ago

FYI I have added some interactive mockups in the issue text above. The download size is < 2MB. If you have time I would love to hear if they worked for you and what your thoughts are.

TheBlueSky commented 8 years ago

@sayedihashimi is the version number in ASP.Net Core necessary?

Also, there is inconsistency between when we get warning because the project is not multi-platform and having the green tick when the project is multi-platform.

gabrewer commented 8 years ago

Like TheBlueSky commented it seems strange that you get a big yellow bar on the bottom (or top) of the dialog box with a warning icon when the project may only run on Windows but when the project will run on multiple platforms you get a little green check on the summary pane. The difference in placement and importance seems to imply there is something wrong with developing an web app only for Windows.

ryanbnl commented 8 years ago

This is a dumb question: but how far can you make options such as app insights, azure, unit tests etc separate components in the templates + vs? I often prefer to start with empty project then add features in; if the components were really small encapsulated things could you support adding them to an existing project. I'm thinking of the way Server 2012 has the "add role/feature" where I can add a grouped set of functionality after I have installed the server (and of course easily via the console).

ryanbnl commented 8 years ago

I also think it'd be cool if you made the OS support explicit: i.e. show radio boxes with operating systems, then disable/enable options based on that choice. Invalid options can have an (!) next to them (I think that SQL server's installer does this for invalid options).

I assume that there will be something similar for the whole framework targeting matrix (which is, for the average user, pretty complex).

rschiefer commented 8 years ago

I like the idea of helping developers understand their choices during the new project creation process. This UI option is definitely placing emphasis on a project that won't be cross-plat which I believe is the right call for a ASP.NET Core application. I like it.

TheBlueSky commented 8 years ago

Saying that the project is Windows-only just because SQL Server is selected is confusing and can be misleading, in my opinion. I can create and host my application in Linux or Docker and still use SQL Server as my database. System.Data.SqlClient is part of .Net Core after all. Although I tend to agree with @ryanbnl regarding OS support, I understand that having many options can be overwhelming.

rschiefer commented 8 years ago

It said "SQL Server - LocalDB" was Windows only. I assume the "SQL Server" (last option in the list) option would not have the Windows only warning. I do see how this could be confusing though.

sayedihashimi commented 8 years ago

@TheBlueSky regarding including the version number for Core 1. I will inquire about that. Typically we match the name completely. I will ask if we should rename to "ASP.NET Core" instead of "ASP.NET Core 1"

sayedihashimi commented 8 years ago

@TheBlueSky

Saying that the project is Windows-only just because SQL Server is selected is confusing and can be misleading, in my opinion. I can create and host my application in Linux or Docker and still use SQL Server as my database. System.Data.SqlClient is part of .Net Core after all.

Sorry maybe the UI is not clear enough here. The issue is with LocalDb as @rschiefer stated. SQL Server itself is fine and we will have an entry for a custom connection string under SQL Server.

sayedihashimi commented 8 years ago

@ryanbnl

I also think it'd be cool if you made the OS support explicit: i.e. show radio boxes with operating systems, then disable/enable options based on that choice. Invalid options can have an (!) next to them (I think that SQL server's installer does this for invalid options).

I included such a checkbox in a previous proposal that was not very well liked internally. Below you can find screenshots as well as what that feature would have done. I'm including the details here for transparency. If the community is strongly for this item then I can push back to the internals who were against this. Without significant community support I'd have a hard time getting this through.

picture1

picture2

When checked

rschiefer commented 8 years ago

I like the checkbox but instead of hiding options when this is checked just default to the cross-plat options and warn if defaults are changed to non-cross-plat options. This checkbox could also be the trigger to enabling the warning. Meaning if you don't check the cross-plat checkbox you wouldn't see the warnings.

ryanbnl commented 8 years ago

It's weird to have "cross-platform development" - you're basically saying that windows is special and that everything else is "other". You need to list them - Windows, iOS, Linux, BSD. This is exactly the same as you need to do for the Frameworks.

Then you can disable options (or better still - grey them out + include something like "(windows only)" in the name) that aren't supported (but don't change existing choices!).

Are there templates that are only compatible with certain Framework/Platform targets? Then the choice should move to an earlier stage in the wizard.

Ryan

On 7 March 2016 at 19:41, Sayed Ibrahim Hashimi notifications@github.com wrote:

@ryanbnl https://github.com/ryanbnl

I also think it'd be cool if you made the OS support explicit: i.e. show radio boxes with operating systems, then disable/enable options based on that choice. Invalid options can have an (!) next to them (I think that SQL server's installer does this for invalid options).

I included such a checkbox in a previous proposal that was not very well liked internally. Below you can find screenshots as well as what that feature would have done. I'm including the details here for transparency. If the community is strongly for this item then I can push back to the internals who were against this. Without significant community support I'd have a hard time getting this through.

[image: picture1] https://cloud.githubusercontent.com/assets/1283154/13579184/df2b64d8-e450-11e5-9a1c-e36bb894ce42.png

[image: picture2] https://cloud.githubusercontent.com/assets/1283154/13579186/e4efe5b0-e450-11e5-8d2c-a2b423b5c065.png

When checked

  • Add a property to the project to indicate that it’s intended for xplat development
  • Limit DB provider to SQL Lite, SQL Azure and Remote SQL
  • Add Roslyn Analyzers for known xplat issues (i.e. check paths for \ instead of /) which will do a build time check of code
  • Publish: generate .sh files during publish
  • Auth: Do not show Windows Auth option
  • Azure: Host in the cloud creates .sh files

— Reply to this email directly or view it on GitHub https://github.com/aspnet/Templates/issues/422#issuecomment-193387982.

rschiefer commented 8 years ago

I had assumed there wouldn't be any other platform specific options (other than Windows). So the options are cross-plat or Windows only. @sayedihashimi is that right?

TheBlueSky commented 8 years ago

Unless there will be a platform-specific options, other than Windows, there is no need to confuse users with many options, including selecting the platform/OS. Having Windows-only option makes sense for "legacy" reasons (ASP.Net historically is Windows-only) and there are many NuGet packages that don't, or even won't, target .Net Core and might not necessarily run on Mono. I work with developers who are not very familiar with ASP.Net Core and they are confused already. In my opinion, the dialog and the templates should provide seamless transition to the "new world" for the majority of developers, and anyone who knows a bit more, knows where to go and what options to choose anyway.

peterblazejewicz commented 8 years ago

@sayedihashimi I think you folks should use a Build Conference to make a guerrilla style UX tests with developers. It seems a hard topic to crack correctly on the first try (take couple of machines, make a lap-top sitting ad-hoc workshops). For example - I'm quite new to C#, coming from x-plat, open-source world, so the options you are trying to implement in VS have a great Wow factor for me ('Ding, The MS's added SQLite option when picking a project template, marvel.'). I can quickly see direction you're trying to update VS UX and I'll give everything you add as a great add-on. But on other hand for folks accustomed to VS and not yet used to x-plat differences (which - honestly, are under constant the flux in .NET Core), all these can be a little confusing. Thanks!

sayedihashimi commented 8 years ago

Thanks for the feedback everyone. I just wanted to let you know that I've been swamped this week with hi priority items and will not be able to get to the user study this week. I'm hoping that I'll be able to get to this next week.

dmccaffery commented 8 years ago

@sayedihashimi I was wondering on how this is going. I still have an interest in creating CLI scaffolding within OmniSharp, but am still on hold pending the dotnet-cli changes that are taking place. Once that has stabilized a bit, I'd like to have a quick conversation with you to see if a cli scaffolding solution is still of interest -- should it include file -> new project in addition to scaffolding, or should that still rely on generator-aspnet; etc.

sayedihashimi commented 8 years ago

@dmccaffery I'll come back here with more info soon, but in the mean time we are having an OmniSharp meeting today in which we can discuss more details https://github.com/OmniSharp/OmniSharp/issues/11.

sayedihashimi commented 8 years ago

FYI I'm working with a designer to create some updated mockups. I will post them here when they are ready. Maybe in a few days I should be able to do that.

sayedihashimi commented 8 years ago

Note just updated the main comment above with the following.

One ASP.NET Next. Note: this is an interactive pdf (in browser pdf readers don't seem to enable interaction though). Most of the interaction is present in the ASP.NET Core Web Application version of the One ASP.NET dialog.

sayedihashimi commented 8 years ago

You may also be interested in https://github.com/aspnet/Templates/issues/498

sayedihashimi commented 8 years ago

FYI I have made a few minor updates and posted the latest mockups in the issue text above. Edits I made:

peterblazejewicz commented 8 years ago

@sayedihashimi I wonder where SQLite options (connection strings, etc) are coming into VS templates from? I cannot spot a template source for this option.

aspnet-hello commented 6 years ago

All issues in this repo are being closed because this repo is no longer in use. Please see the readme for more information: https://github.com/aspnet/Templates/blob/dev/README.md.