9 ms·
.NET Core Tooling in Visual Studio “15”
- hitr 10y agoHope this csproj is final breaking change on this!.I am not sure if any other project has gone through so much of changes from the initial release. It was called kvm,kre,klr [1]-> dnx,dnu,dnvm [2] ->coreclr,corefx ->changes to project.json to csproj system . I have started writing a gitbook[3] on asp.net core when this was in the RC phase but everything I learned or wrote had to be rewritten .I did not merge my dev branch to master for whatever new I was writing and eventually I stopped.I am wondering what would happen to all the books currently published where most of the book will be referring project.json [1]https://weblogs.asp.net/imranbaloch/k-kvm-kpm-klr-kre-in-asp-net-vnext https://weblogs.asp.net/imranbaloch/k-kvm-kpm-klr-kre-in-asp... [2]https://blogs.msdn.microsoft.com/webtopics/2016/01/14/getting-to-the-crux-of-dnvm-dnu-and-dnx-in-asp-net-5/ https://blogs.msdn.microsoft.com/webtopics/2016/01/14/gettin... [3]https://www.gitbook.com/book/openlearningportal/all-about-asp-net-core/details https://www.gitbook.com/book/openlearningportal/all-about-as...
- jsingleton 10y agoGlad to see a more unified approach, particularly with .NET Standard and Xamarin [0]. I've been experimenting with Xamarin.Forms recently and put together a little mobile game. There are a couple of blog posts coming on that, including the whole shared projects / PCLs / .NET Standard thing. [0]: https://unop.uk/net-core-1-0-1-and-net-standard https://unop.uk/net-core-1-0-1-and-net-standard
- Longhanks 10y agoComing from a Linux/macOS background, this article is really hard to read. So many .Net-Buzzword things, MSBuild, project.json, csproj, sln... I'd really appreciate if they streamlined how to get started with C# cross platform.
- taspeotis 10y ago> how to get started with C# cross platform. The .NET Core documentation needs improvement, but "Getting Started" seems pretty well-done [1]. [1] https://www.microsoft.com/net/core#macos https://www.microsoft.com/net/core#macos
- manigandham 10y agoThis is obviously not the article for how to get started with C# cross-platform. There are plenty of great articles for that already that you can search for, or just start at the official site: https://www.microsoft.com/net/core/platform https://www.microsoft.com/net/core/platform https://docs.microsoft.com/en-us/dotnet/articles/core/getting-started https://docs.microsoft.com/en-us/dotnet/articles/core/gettin...
- UK-AL 10y agoThis isn't a getting started article, thats your problem.
- stinos 10y agoBuzzword things, MSBuild, project.json, csproj, sln. Those, except project.json maybe, aren't buzzwords by the typcial definition of it: they have existed for >10 years or so and are the names of a build system and a bunch of project files readable by that build system.
- DSteinmann 10y agoWhat a disaster. The tail wagged the dog in the .NET Core team. Every step of the way it became clearer that this was a pet project of some ivory-tower programmers and that we would be left to patch together this mess. Try adding a .NET Core project on your build server. You'll hate yourself by the time you get it building.
- mking1024 10y agoReally? We haven't had any problems with our .NET Core projects (a few web apps running on core and a bunch of libraries targeting core). In addition, ASP.NET Core (on .NET core) has been a great stack so far (using it since beta5); I feel very productive with it as well as enjoying the development experience. Why do people need to get fired for this? It doesn't seem like it will be hard to move from project.json back to (a new and improved) csproj.
- mattmanser 10y agoEveryone's been having problems with them, how can you have had none? They seem to massively change something every 10 minutes. I also don't get the 'massively productive' comment, in essence very little has changed since, hell even MVC 3, apart from the obsession with DI and a load of packages now don't work. If you weren't 'massively productive' before, you were probably doing something wrong. They just moved a couple of things around and now insist you use npm/bower/whatever hotness they latch onto next week instead of nuget. I'm sure we'll have another blog post about them ditching support for anything but yarn next week. And how long before they change their minds about how controllers work again, it's been like 4 times in the last 5 years now. First MVC controllers, then Web API, then Web API 2, then OData, then .Net Core, all very similar but slightly different with slightly different ways to register them at startup and slightly different things available on the context. Apart from the utter madness that is OData, great for data tables, bloody awful for everything else. It's getting almost as bad as javascript churn but it's one company so it doesn't make any sense.
- UK-AL 10y agoIt's was an alpha/beta/prerelease product, you should expect change.
- dustinmoris 10y agoHow come this story could be reposted so quickly when it has been submitted already 11 hours ago? https://news.ycombinator.com/item?id=12747592 https://news.ycombinator.com/item?id=12747592
- Tomte 10y agoHN software auto-resubmits some stories. Additionally, HN mods manually resubmit stories they feel have potential for a fruitful discussion.
- dustinmoris 10y agoOk thank you, but that doesn't seem to be the case here, because this doesn't appear to be auto-posted by some HN bot? Normally when I try to post an article that has already been posted in the last 24hours then Hacker News redirects me to the original post, so I was surprised how this could be duplicated so quickly after the original post. Also why does my question get down voted? Was I wrong to ask that question or do people feel offended by my question?
- Tomte 10y agoThose auto-reposted submissions look like the original submitter resubmitted them. You can usually see that their are conflicting time-stamps, some pages show the original time, some the resubmission time. I don't know if it was the case here. It may simply be that it was a normal submission and the URL duplicate detection didn't work. It's hard to do that, if you're too strict you probably get a lot of false positives. Questioning downvotes never leads to any real answer, so it's useless at best. And it invites further downvotes, because it's unproductive (and can seem whiny – not in your case, though). I am regularly astounded which of my comments get many downvotes, and also which of them get many upvotes. Also sometimes comments start with -4 and get to +8 or vice versa. It's best to shrug it off entirely.
- sctb 10y agoThe duplicate detection software allows reposts when the original story didn't get much attention, which is the case here.
- nowprovision 10y agoWhat's the story with fsproj ?
- coolgoose 10y agoI might be the odd one out since I don't find the XML format that bad. A bit sad when you can't add comments in json like formats. (nobody really uses json5)
- elcct 10y agoWell, you can do something like: { "comment-version": "Tells the version of the file", "version": "1.0.0-*", "buildOptions": { "comment-debugType": "What kind of debug type would you like?", "debugType": "portable", "emitEntryPoint": true } } :D
- snarfy 10y agoThose aren't comments. That's all live data, sent over the wire using up bandwidth and resources. It probably wouldn't matter for this project file, but you really shouldn't do that in json.
- topbanana 10y agoXML comments get sent across the wire too
- jsingleton 10y agoCorrect, but I believe what they may mean is that the data will be parsed at an attempt to deserialize it. This may have unintended side-effects. For example, you have to make sure you don't want to add a property to your POCO with that name now. The wire isn't that relevant here. This is about a config file, not an API. Size isn't too important.
- hood_syntax 10y agoThis can be solved by sanitizing it prior to parsing and removing any property that starts with 'comment'. I know it's not a pretty solution, but it works. It's an additional step, but it might be preferred by some people when it means working with a data format they prefer.
- romanovcode 10y agoVery glad they ditched json. It was completely unreadable.
- joesb 10y agoYou can see the syntax below to specify the set of targets that you want to build for, as a semicolon-separated list. <TargetFrameworks>netstandard16;net452</TargetFrameworks> Fresh release of XML-based config file that already uses single string field for array?
- nmeofthestate 10y agoIt's a real missed opportunity make project files bigger and less human-editable.
- naasking 10y agoYeah, totally didn't get that either. I suspect it's for backwards compatibility with older Visual Studio releases.
- wvenable 10y agoNo, this is pretty much all new. But there are plenty of places in the tooling besides the project file where you would list off the target frameworks (e.g. nuget). I assume they're all a semi-colon separated list thus making this consistent across everything.
- snarfy 10y agoI'm sad I spent any time learning the project.json format. I wish I could dotnet migrate those brain cells back and free up some memory.
- hacker_9 10y agoThe .csproj msbuild file is here to stay? really? Why are we having to fit programming a build system around an archaic xml declarative language? The .csproj is the single worst point of the visual studio experience. Terrible format, editing experience, having to reload, having to copy paste GUIDs, manually lookup .target files ugh the whole thing is horrible.
- kierenj 10y agoIf you read the article, you'll see many of the things you refer to aren't applicable
- wmccullough 10y agoLot of people in this thread crapping on Microsoft, but that's not to say that there's not some valid criticism here. Microsoft is trying to unscrew the single platform nature of dotnet. This is going to take some time. They are having to break bones to set them correctly. Let's not pretend that any of us devs have never inherited an old project that we had to fix, and left a wake of destruction. That said, shame on them for not listening to the community more. Many, many people on Github were very vocal about the project formats and the build system, and it was obvious that Microsoft made up it's mind. While I'm a huge fan of dotnet, I also have to chastise Microsoft here. You can't leap to open source and then crap on your contributors when they are telling you that you're making a blind decision. If it was the one contrarian person that always complains about everything, I could see it, but it wasn't. Very notable members in the dotnet ecosystem raised the warning flag on this. I for one kept with the mindset of not building anything for production with their v1 release. This is an old rule. By v2, I'm betting this thing will be awesome. Hell it already is. Let's not throw the baby out with the bathwater.
- justin66 10y ago> You can't leap to open source and then crap on your contributors when they are telling you that you're making a blind decision. Are any very large companies doing this better? (Not Google, certainly... Oracle? I kid...)
- jsingleton 10y agoYes, it's always worth waiting until v2 (or at least the first service pack / patch) before using something in anger, but experimenting in non-critical areas is fine. This applies to almost all software, but particularly the core stuff like OS and DB. I believe this is why the first Oracle DB was "v2". I'm not sure many people were fooled by this trick.
- sqeaky 10y ago> Microsoft is trying to unscrew the single platform nature of dotnet. This is the largest effort and the longest without overt attempts at screwing people to be customers. I am going to hold out for some more time, I am not yet convinced Microsoft is acting in good faith yet, their history is so bad. Are they still suing companies for distributing android.
- ed_blackburn 10y agoStop. Before moaning about json vs xml consider that the sln file is a non-stand external dsl that's existed since the early nineties. Now that's something I'd like to see being replaced.
- stinos 10y agoThis. Years ago I already heard 'there are plans to convert sln to msbuild' and I've been waiting since, to no avail.
- wilde 10y agoSo...when do folks think it will be safe to use this? Often 1.0 is reserved for "we'll try to make less painful interface breaking changes after this release". But if this is any indication, we're still a ways off from API stability.
- WorldMaker 10y agoThe API is stable and worth building for. The remaining upheaval seems to be in tooling: how Visual Studio works with .NET Core projects and how command line/Linux/OS X works with projects. The existing tooling is alright enough that it is "safe" to use. This blog post reminds that the update to more final tooling should be somewhat seamless (VS will handle it for you automatically like any other project upgrade/migration; `dotnet migrate` will do the job for CLI and other platforms) and is on its way.
- manigandham 10y agoThis doesnt change anything with the API and NetStandard 2.0 coming soon will add back several missing APIs to .NET Core that are in the .NET full framework. .NET Core is safe to use right now, it's the IDE and command line utilities getting finalized for 1.0 release (of the tooling) so that it's easier to work with.
- adrianlmm 10y agoDoes this mean that now you need MSBuild in .NET Core? is it ported to Linux?, how does it work?
- oldmanhorton 10y agoI am currently working on two dotnet core projects (both ASP.NET Core) and my only complaint has been the tooling. Visual Studio talking in terms of solutions and the dotnet cli talking in terms of projects means that I have `launch.{sh|ps1} scripts for those not using VS and launchOptions.json/the sln file for those working in VS. It feels like something that should have been sorted out, even if it took a new `dotnet startup` command to emulate Visual Studio's StartUp projects. Entity Framework Core tooling, especially with SQLite, has also caused some issues around migration handling (in that there basically is no migration handling for sqlite, causing you to write a custom script to nuke the database and migrations every time you make a change). The platform itself, however, is fantastic.