Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update on scaffolding #135

Closed
sayedihashimi opened this issue Nov 4, 2015 · 31 comments
Closed

Update on scaffolding #135

sayedihashimi opened this issue Nov 4, 2015 · 31 comments
Assignees
Milestone

Comments

@sayedihashimi
Copy link
Member

sayedihashimi commented Nov 4, 2015

For scaffolding there are two high level scenarios.

  • Scaffolding from the command line
  • Scaffolding in Visual Studio

When we started scaffolding our goal was to create a command line scaffolding experience and then build the VS experience on top of that.

After working on the command line scaffolding experience, we realized that we need to take a step back to ensure that we have the right set of features there. At the same time many users are used to, and expect, a scaffolding experience in Visual Studio.

Our current plan is to shelve the command line support and focus on the in Visual Studio experience. At a later time we will revisit the command line scaffolding experience, and when we do we will update the in Visual Studio support to call those new command line scaffolders. You can find a click through of the experience we are targeting at https://github.com/aspnet/Tooling/blob/master/specs/vs-scaffolding.pptx.

With that said, the Visual Studio support that we are currently working on building will use the gen package to execute scaffolding. The gen command won't be included in the templates. You can add the command to projects and invoke it from the command line, but that scenario won't be formally supported until we revisit command line scaffolding later.

@erichexter
Copy link

This is extremely disappointing .

@dmccaffery
Copy link

While I understand the thought process, I do believe it is the wrong approach. In all likeliness, most hard and fast .NET developers that have been using Visual Studio for years aren't going to move to DNX anytime soon. The vast majority of your early adopters are going to be web developers coming from other platforms, or the more versatile .NET developers who will have no problem dropping to the command line for scaffolding (or any other reason).

My two cents are, that if you go down this path, the Visual Studio scaffolding capabilities will always be out-of-step with cmd line capabilities, and if Visual Studio is the only way users can get a decent experience, you're going to hurt DNX's changes for a huge growth opportunity in the x-plat and web-dev space, where .NET is still the minority.

Obviously, I don't have any statistics to back this stuff up; its just based on my experience, and the history of any product using a disjointed duplication of effort attempting to solve the same problems using different technologies while expecting the same results -- it never goes according to plan.

@itomek
Copy link

itomek commented Nov 4, 2015

I second the disappointment and good point @dmccaffery

@ghost
Copy link

ghost commented Nov 4, 2015

@dmccaffery +1

@sayedihashimi
Copy link
Member Author

Thanks for the feedback. I too am disappointed. We thought that we would have the time to have a great command line story and a great Visual Studio experience. Unfortunately we didn't have the resources to pull it off. I understand your feedback on the importance of command line utilities and we are not forgetting that scenario. Just prioritizing the Visual Studio feature since we've heard specific feedback on that and it's a big take back to not have scaffolding in VS.

If there is enough interest I'd love to be involved in a community effort around a command line scaffolding experience. If it matures then perhaps we can base the VS scaffolding on that in the future.

@dmccaffery
Copy link

@sayedihashimi While my time is limited, I would love to get involved in a community effort to help evolve the command line functionality. I would want it to maintain feature parity with what you have planned for Visual Studio so it has at least some chance of remaining relevant in the future.

@sayedihashimi
Copy link
Member Author

For everyone who is interested in a community project around an xplat command line scaffolding for ASP.NET 5 either list your email below or email me at sayedha@microsoft.com. If there is enough interest I'll put something together.

@dmccaffery

. I would want it to maintain feature parity with what you have planned for Visual Studio so it has at least some chance of remaining relevant in the future.

I mentioned it above but wasn't very clear. The VS scaffolding feature will still use the Scaffolding NuGet packages from this repository. So it would certainly be possible to create a command line based experience with parity to VS. If we did go down that road we would want to have good automated test coverage so that we can learn about any breaks as soon as possible.

@dmccaffery
Copy link

@sayedihashimi I just emailed you, but here it is for reference: dmccaffery@pulsebridge.com

You won't find any arguments from me with regard to testing and automation. I am the principle developer on condo, which is a build/test automation stack for DNX-based projects: https://github.com/pulsebridge/condo if that is any indication of my sincerity. 🚀

DMM

@Daniel15
Copy link

Daniel15 commented Nov 4, 2015

What about Yeoman? I know there's at least some basic support for ASP.NET 5 scaffolding via Yeoman, maybe some more templates could be added.

@erichexter
Copy link

I am always willing to help out. @sayedihashimi
https://github.com/sayedihashimi , One of the features that the team came
close to implementing two or three years ago was the multi
file generation from a model. I have spike that I updated from a vs 2008
scaffolding project.
https://github.com/erichexter/scaffold/blob/master/README.md Its just
another use case to consider. This has a commandline and vs interface.

Eric Hexter

blog | http://Hex.LosTechies.com
info | http://www.linkedin.com/in/erichexter

On Tue, Nov 3, 2015 at 8:52 PM, Daniel Lo Nigro notifications@github.com
wrote:

What about Yeoman? I know there's at least some basic support for ASP.NET
5 scaffolding via Yeoman, maybe some more templates could be added.


Reply to this email directly or view it on GitHub
#135 (comment).

@dmccaffery
Copy link

@Daniel15 Yeoman is a little bit different. I use it constantly, but this level of scaffolding can do things such as automatically generate add, edit, delete functionality for a specific entity type that is part of an EF data model, etc. Yeoman wouldn't be able to reflect a model type for this level of code generation.

@sayedihashimi
Copy link
Member Author

@erichexter thanks, got it. I should reply by the end of next week.

@Daniel15 Yeoman is a little bit different. I use it constantly, but this level of scaffolding can do things such as automatically generate add, edit, delete functionality for a specific entity type that is part of an EF data model, etc. Yeoman wouldn't be able to reflect a model type for this level of code generation.

Yes I completely agree, thanks for saying that I felt like I was the only one. I have expanded on the difference between yeoman and the kind of scaffolding that we are discussing at #105 (comment).

@Daniel15 if you are interested in creating more templates (generators and sub-generators in yeoman speak) then please file an issue at https://github.com/OmniSharp/generator-aspnet/issues with the templates that you'd like to add. That's a community project that I'm a part of. Make sure to mention me in the thread so I get a notice. See this related wiki https://github.com/OmniSharp/generator-aspnet/wiki/goals-and-related-generators.

@TerribleDev
Copy link

This makes me a little sad only because I think .NET is arriving to a Write-Windows Run everywhere scenario (that being said its still better than the Write-Windows, Run-Windows of the past).

One of my huge gripes with NodeJS is when I make express apps on windows I constantly run into the max filepath problem, thus I have to make sure I have a unix machine to write my node apps on (making node a Write Linux Run Everywhere situation)

Obv.. long term Visual Studio is always going to have the better experience, but between the omnisharp atom plugin, Monodevelop (aka xamarin studio), and VS code a rich ecosystem on a non windows platform could evolve (and has already started), but by supporting the VS only way and not the CLI you are alienating the core people whom you targeted the cross platform story. Leaving the platform in Write-Windows run everywhere.

Will we will see the CLI tools release after launch?

@sayedihashimi
Copy link
Member Author

Will we will see the CLI tools release after launch?

Yes, but I'm hoping that we (the community) can come up with something before that.

@TerribleDev
Copy link

:+1

@TerribleDev
Copy link

Emoji fail

@dmccaffery
Copy link

way to go @tparnell8 👍

@mykebates
Copy link

@dmccaffery and @tparnell8 have summed things up very well, IMO, so I'll refrain from saying much more other than that I agree with their sentiments. I would very much hate to see forward momentum slow down for tools like this that are incredibly important to the success of the cross-platform aspect of ASP.NET 5

@functionalfunctions
Copy link

So is the scaffolding not yet included in VS2015? Is there a way to get it?

@TerribleDev
Copy link

@mykebates agreed although I do like the sentiment that @sayedihashimi put forward which is that we could always create our own scaffolding tools....

@Muchiachio
Copy link

I'm an old T4Scaffolding user, and after I found out that scaffolding repository is stalled, I started creating my own scaffolding engine. Now it only works from command line and is similar to T4Scaffolding only with Razor.

I will continue to work on this unless there is a better alternative made already.
It will be updated it to RC1 and published to nuget in upcoming days.
For those interested you can find it here.

@dmccaffery
Copy link

@Muchiachio Very interesting stuff; I'll look through it later today. @sayedihashimi Any update on spinning up an "official" community project?

@sayedihashimi
Copy link
Member Author

Sorry I'm a bit behind, I'm actually travelling.

@Muchiachio I'm trying to organize a community effort around command line scaffolding. Maybe we can join forces? Could you email me at sayedha@microsoft.com?

I'll send out a mail to everyone tomorrow.

@dmccaffery
Copy link

No worries. I was just curious. Safe travels!

@sayedihashimi
Copy link
Member Author

For those interested in working on a command line story please see my new issue at #139

@sayedihashimi sayedihashimi mentioned this issue Dec 2, 2015
@gkochanowsky
Copy link

If it's not too late I would like to contribute as well. I have some very specific ideas on what I'd like to be able to do. So I'm sure further discussion is called for.

@sayedihashimi
Copy link
Member Author

@gkochanowsky the best thing to do is to interact with us at https://github.com/OmniSharp/omnisharp-scaffolding. Also we have an OmniSharp meeting coming up next week OmniSharp/OmniSharp#7 if you can attend we can discuss there as well.

FYI we had some discussions at #139 as well.

@dmccaffery
Copy link

@gkochanowsky It is definitely not too late. I've been absolutely crushed this past month between work, traveling, and the holidays, and have made virtually no progress, so we're still at a very early stage in the game. I do plan to focus on this "hardcore" in the coming weeks, and am very interested in what ideas you have for the project.

Those of us who are working on it are looking forward to hearing from you; feel free to document a few of your ideas on the scaffolding repo so we don't lose sight of them. :)

@gkochanowsky
Copy link

Great! I look forward to a fruitful collaboration. However I am pretty new to open source and particularly this project. Is there some basic background material on running and debugging in this environment. Anything to help me get started would be greatly appreciated.

@barrytang
Copy link

TFS Bug#232578

@mlorbetske
Copy link
Contributor

Closing per @sayedihashimi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests