.NET vs Kohana: What are the differences?
What is .NET? A free, cross-platform, open source developer platform for building many different types of applications. .NET is a general purpose development platform. With .NET, you can use multiple languages, editors, and libraries to build native applications for web, mobile, desktop, gaming, and IoT for Windows, macOS, Linux, Android, and more.
What is Kohana? An elegant HMVC PHP5 framework. Kohana is an elegant, open source, and object oriented HMVC framework built using PHP5, by a team of volunteers. It aims to be swift, secure, and small.
.NET and Kohana belong to "Frameworks (Full Stack)" category of the tech stack.
"Tight integration with visual studio" is the top reason why over 245 developers like .NET, while over 3 developers mention "Open source" as the leading cause for choosing Kohana.
.NET and Kohana are both open source tools. .NET with 11.1K GitHub stars and 2.4K forks on GitHub appears to be more popular than Kohana with 1.61K GitHub stars and 464 GitHub forks.
Stack Exchange, Microsoft, and Starbucks are some of the popular companies that use .NET, whereas Kohana is used by Huia, Zeel Networks Inc, and Plinga. .NET has a broader approval, being mentioned in 1566 company stacks & 239 developers stacks; compared to Kohana, which is listed in 3 company stacks and 3 developer stacks.
What is .NET?
What is Kohana?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Kohana?
Sign up to add, upvote and see more consMake informed product decisions
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
I use .NET because now that it is cross platform it is a perfect choice for creating small containerised web api apps that can be used in a micro-services architecture.
C# in particular is a very mature and feature rich general purpose language. Great to be able to pivot to a predominantly Linux platform and reuse our skills and investment in .NET
Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.
After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...
My first introduction to .NET was in the early alpha days, back in the early 2000s. In nearly the two decades that have passed since, it has matured into a very powerful platform. .NET as a platform has always had a great deal of polish that I haven't been able to find anywhere else. The ease of use and general technical excellence of the platform meant that I was delivering value at a consistent rate and with relatively little trouble.
That didn't make anything perfect, of course. The closed nature and the single platform that .NET was traditionally limited to took their toll. In particular, a bug fix that you found and reported might be fixed in the next release (18 months away) or not, with very little input or ability to understand what was going on.
And then the CoreCLR came along. In 2015, we made the decision to move the all of our applications and code into the CoreCLR.
That has been an amazing experience. The fact that I can dive into the source directly has made things so much simpler, and the fact that you can submit patches and interact directly with the core team has been an absolute joy. Our company has contributed several times (some code and mostly some interesting bug reproductions and perf issues) and has been continuously at awe at the level of commitment and (I have no other word) grace that we get from the team.
The fact that we can now run .NET code (and our product) on Windows, Linux, Raspberry PI(!) and Mac has been a great boon to us. We recently deployed our software to a whole lot of industrial robots running custom ARM boards. That is something that would have just been unimaginable every as much as five years ago.
In pretty much respects, the overall community, the core team, the engineering quality and the fact that it brings the polish that I've gotten so used to in environments where you are generally left cobbling things all by yourself means that it is my platform of choice for projects big and small.
I chose .NET Core because it finally let me work natively on my macOS and Linux machines but collaborate with coworkers using Windows. Devs use the devices that they feel most capable with.
Having services that can run without changes on Linux let us migrate to containerized deployments on Kubernetes without much effort. The performance we've gotten from small ASP.NET Core services running on Alpine images has been great.
While the versioning of SDK and libraries/meta packages/etc has been kind of nuts.. We also keep getting new features that are really valuable and easy to package into our services.
Just rolling out v3 of the WebJobs SDK which brought simpler DI, filters and more to our Async backend workers. Also preparing to run v2 of Functions in our Azure Kubernetes cluster with virtual-kubelet.
In the last year, the community has finally started heavily moving towards NETStandard 2.0 which has eliminated some of our last points of frustration -- not finding compatible clients/libraries/tools that we could use from .NET Core apps (and, funny enough our older .NET Framework apps too!).
We're all in on .NET Core now.
I have been working in .NET for more than 10 years. As an architect, I understand that enterprises want to lower costs. Full .NET framework, although excellent, has lot of costs around it - starting from Visual Studio for development (Enterprises cannot use Community edition) to Windows Server licensing for hosting. .NET Core makes development faster, cheaper and accessible to anyone. It is easier to convince bosses to go with .NET Core than with the full framework. With Visual Studio Code, development teams can install it in minutes compared to the full day they had to submit their laptop to IT team to get full Visual Studio installed. .NET Core is also highly performant and has been my choice for an IoT project that I have been executing with microservices running in a Docker container managed by Kubernetes! Unless I have a specific need, I preach the gospel of .NET Core.
I use .NET because of its community and Microsoft's commitment to open source. Game backends require many different design strategies, ranging from latency sensitive customer facing services to high-throughput eventually consistent data pipelines. Performance, tooling, and predictability are qualities that make these services successful and .NET helps me get there by having framework features which promote quick prototyping, but are mature enough to harden for production.
I use .NET Core 2.1 because it allows me to bring my OSS applications cross-platform. We're using .NET Core for everything since version 1.1- both front and back end services, or windows services. Moving to newer versions did cause us some problems though, because of the too many breaking changes brought by those versions. We really like dotnet cli extensibility model "DotnetCliTool", because we create plugin for docker build, reportgenerator.
I use .NET because because it allows me to use a functional language like F# and still get the benefit of a massively rich ecosystem of libraries and tools. Coupled with the ability to target different OSs and platforms (from cloud to mobile to IoT) it really feels like a solid investment. In my current contract we are using .Net to build REST APIs and websites - we do this using F# and the Giraffe framework (a functional wrapper on Asp.Net Core) allowing us to benefit from teh advantages of functional approach and yet leverage security and speed of Asp.Net Core. We package these as Docker containers based on an Alpine image and deploy into Azure manage Kubernetes service in the form of Helm Charts. The build and continuous delivery are handled by Azure Dev Ops.
Context: GivePenny is the charity sponsorship platform for the modern world. We are re-platforming onto .NET Core-based microservices and ReactJS-based micro-frontends in Docker containers hosted on Azure Kubernetes Service.
We use .NET Core because of the easily attainable high quality bar for our microservices. We love the succinct yet clear C# language making code easy to read. We rate the advantages of the strongly-typed aspect of C# and of compiled (so type-checked) unit tests in a "backend" service context. The test stack and tooling support in Visual Studio around service tests, contract management, unit tests, web APIs and publish/subscribe message handlers is easy to work with. The easy integration between Visual Studio and Azure Resource Manager based infrastructure, Azure DevOps, Nuget and Docker makes build, publishing, release and hosting very easy. The cross-platform nature of .NET Core allows Windows and Linux developers to co-exist and services to be hosted on multiple platforms.
I started using .NET in the early 2000s. Ever since version .NET 3.5 (and even .NET 2.0 if we take a proper generics implementation into account), C# was dominating in the feature battle against its rival, yet wasn't advancing significantly in the product coverage due to its platform dependency.
Thus I was very excited to hear the news about plans to develop an open-sourced cross-platform .NET Core framework. We started using .NET Core in production from version 1.1, and a global decision to migrate the entire solution to .NET Core was made with the release of .NET Core 2.0. Now we have more than 100 .NET Core (micro)services running on Linux containers inside Kubernetes, using Kafka for reactive communications and a number of open-source relational and NoSQL storage engines.
I use .NET because of the quality of the environment, for every need there is a .NET solution for doing it. The Microsoft solution for doing anything is well documented and the community is very active. The .NET Stack is full, meaning there is everything a stack need, every part : database, server, cloud, AI, mobile, backends and frontends. And of course : IDE => Visual Studio ! There is no competition to Visual Studio.
I use .NET Core basically because my code runs everywhere! Being able to host ASP .NET Core web applications on Linux, Mac, and Windows environments allows me to deliver cross-platform solutions for all my customers so they don't have to acquire specific technology/hardware anymore!
Moreover, .NET is an amazing technology which is focused on productivity: I can develop mobile, web, desktop, IoT and AI solutions and all I need is C#, a really powerful (and easy-to-learn) language. Add cloud-powered modules to the equation and you'll get a boost in your software!
I first found .NET in 2003 when I first began learning to create software. Every year since then, I've watched as .NET matured into something great, and now we have .NET Core! At Contessa Health, we use .NET Core for a mixture of things including fine-grained and coarse-grained web services, worker processes for long running tasks, and for our Azure Functions that serve as a replacement for distributing our base class libraries. As a startup, we are constantly evaluating technologies to make sure we stay fresh, and we keep coming back to .NET Core because of its ecosystem, maturity of the tooling, and for its ability to help us iterate and move quickly. Take all of that and combine it with the Kubernetes ecosystem, and we have an easy way to orchestrate and compose power service offerings that meet the needs of our customers. It cannot be said enough that Microsoft’s commitment to open source has yielded incredible benefits for small companies such as ourselves. Our voices are heard, and we get to help make .NET Core better, which in turn helps everyone else.
I've used .NET for many years, but only in recent years, after Microsoft introduced .NET Core, I've found a new love and excitement for the technology again. The main driver for us using .NET Core is not that it is cross platform compatible, open source or blazingly fast (which it is!), but the fact that we can use (what we consider) the best programming languages (mainly F# and C#) to carry out our jobs without sacrificing the other benefits.
Today we run most of our web infrastructure on .NET Core in Docker containers, deployed into a Kubernetes cluster which spans across multiple time zones in the Google Cloud and we couldn't be happier. Due to the portability of the .NET Core platform we are even able to develop many new services as serverless functions with F# which has become an absolute game changer.
Our focus is on mobile. I use .NET because most of my work involves Xamarin. We haven't had a need for .NET Core lately since Xamarin covers the iOS, Android bases. .NET Core seems best suited to larger organizations who need to port and migrate between Windows, Linux, and macOS. Seems incredibly useful, particularly the Windows/Linux crossover. But for us, Mono takes care of that already in Xamarin.
Microsoft has done an incredible job of keeping the .NET Framework powerful and stable. It is well designed and keeps getting more robust with each release. It isn't the most popular technology in this space, but I think a good case can be made to use .NET in many new projects.
As we started on Windows Phone we use C# and .NET for most of our apps and sites. Being a small team of 2, using .NET enables us to work on each part of the service without having to switch to different languages.
I use .NET alongside with C# since my university studies, and I really enjoy it. Especially .NET Core, which is the best thing that happened to Microsoft since... ever.
Server side development language and frameworks: ASP.Net MVC 4, Asp.Net WebApi 2, Razor View engine, Moq, Entity Frameworks, etc.