4 ms·
I work with C#/.NET but if I had to start from scratch I wouldn't use it. With a lot of platforms you are a second class citizen with .NET because most APIs get
by maxxxxx 8y ago
I work with C#/.NET but if I had to start from scratch I wouldn't use it. With a lot of platforms you are a second class citizen with .NET because most APIs get released as Java, Javascript or Python. The .NET version often comes much later. After working with MS for 20 years I am also not convinced they will sustain long term what they started with .NET Core.
With a startup I would stick to open source. It's the more vibrant and reliable option.
- CyanLite2 8y agoLotsa FUD here.
- maxxxxx 8y agoI think it help if you added some substance to your comment.
- CyanLite2 8y ago.NET Core is open source and is the flagship development environment for Microsoft. They have no other alternative and have publicly announced multi-year roadmaps and support agreements spanning nearly the next decade.
- maxxxxx 8y agoI hope they will stick to it but after seeing what they did with Winforms, WPF, WinRT and Silverlight I have my doubts. We'll have to see.
- angry_octet 8y agoSo much irony.
- pnloyd 8y agoReally surprised on your comment when it has so many amazing things going for it. - state of the art language features from .net (linq, async&await,powerful generics) - Multiplatform runtime and SDK, even development is great via Vscode + omnisharp. - MIT license - llvm backend via Ryu jit compiling straight to machine code (Wow!) - unparalleled language server capabilities via Roslyn's API, even available on Linux / Osx via omnisharp. And more stuff I'm not thinking of. Almost everywhere you turn .net is the toughest beast in the arena if you exclude ecosystem. I don't see how you could possibly think it doesn't have a fighting chance.
- maxxxxx 8y agoC# is great, no question. The Roslyn stuff is also great. But if you also need other libraries or systems then things get thinner. For most cloud providers that aren't called Azure the .NET support usually is behind. A lot of popular libraries are either written in Java, Javascript or Python with maybe an outdated unmaintained .NET wrapper. Most CI/CD pipelines are not geared towards .NET. To me MS is a warm cozy place but the open source world is more chaotic and much richer.
- scarface74 8y agoI'm using AWS, the SDKs for the most part are in lock step with Boto3. The SDK for Python. There are a few gaps like troposphere for cloud formation. What do you mean most CI/CD platforms aren't "geared" for .Net? Which CI/CD platform are you using?
- maxxxxx 8y agoI was looking at Jenkins a while ago. All samples were for git and PHP, JavaScript and others. .NET, TFS and windows just felt like second class citizens. You can make it work but I feel that the main work is done for things other than .NET. Same for AWS. C# is a fantastic language, .NET framework is good but in my view the ecosystem is too weak.
- scarface74 8y agoI’ve seen companies do it for years. There is both an MSBuild plug-in and an Nunit plug-in for Jenkins. I really hope no one in 2018 is using whatever Microsoft’s old version control system is with TFS. TFS has had first class support for git for years. As far as AWS, using CodeBuild and CodeDeploy, AWS has provided a .Net Core Docker Build image for Linux for awhile (https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-available.html https://docs.aws.amazon.com/codebuild/latest/userguide/build...) They just recently added Windows support for CodeBuild, they have a prebuilt image for .Net Core for Windows and they have instructions for how to create a .Net framework image (https://aws.amazon.com/about-aws/whats-new/2018/05/aws-codebuild-adds-support-for-windows-builds/ https://aws.amazon.com/about-aws/whats-new/2018/05/aws-codeb...) I had never used Docker before and I was able to create the .Net Framework Docker image following their instructions. For deployment, AWS has a code deploy agent for Windows and Linux. There is no “support” for any language. Just a yml file that you use to specify the batch files/Shell scripts you want to run during each stage. Actually the same is true for CodeBuild. You just specify the commands you want to run in a yml file and the output srtifacts.