.NET

.NET

Application and Data / Languages & Frameworks / Frameworks (Full Stack)

I want to start a SaaS or product based company and thinking of going with the .NET family of technologies, as I have been working on it for the past 3 years. Can anyone provide insights on the pros and cons of this approach? Would I be able to run modern JavaScript frameworks on top of it like React/Vue.js/Node.js?

READ MORE
16 upvotes·83.1K views
Replies (9)
Recommends
on
JavaScript

You can totally make JavaScript and associated frameworks work with .Net. Anyway, you'll keep the client-server and different modules in the system loosely coupled. I don't see any issue with this. Write the backend using .NET and use JavaScript for the front end.

READ MORE
9 upvotes·1.8K views
Recommends
on
JavaScript

You should be totally fine with .NET. You would benefit immensely if you are planning to use some of the PAAS services on Microsoft Azure. Most Azure PAAS services have a first class support for .NET.

A small advantage of going with Javascript on server side would be that you get to use/learn only one language both on the frontend and the backend.

READ MORE
8 upvotes·1.8K views
View all (9)
Needs advice
on
Azure PipelinesAzure Pipelines
and
JenkinsJenkins

We are currently using Azure Pipelines for continous integration. Our applications are developed witn .NET framework. But when we look at the online Jenkins is the most widely used tool for continous integration. Can you please give me the advice which one is best to use for my case Azure pipeline or jenkins.

READ MORE
7 upvotes·636.1K views
Replies (1)
Software Engineer at Lisec Automation·
Needs advice
on
Handlebars.jsHandlebars.js
and
LiquidLiquid

@All: I am searching for the best template engine for .NET. I started looking into several template engines, including the Dotliquid, Handlebars.js, Scriban, and Razorlight. I found handlebar a bit difficult to use when using the loops and condition because you need to register for helper first. DotLiquid and Scriban were easy to use and in Razorlight I did not find the example for loops.

Can you please suggest which template engine is best suited for the use of conditional/list and looping and why? Or if anybody could provide me a resource or link where I can compare which is best?

Thanks In Advance

READ MORE
5 upvotes·222.9K views
Replies (1)
Frontend Engineer ·
Recommends
on
Handlebars.js

I like Handlebars, it's very mature... some would say-- outdated.

Handlebars loops are done via {{#each myList}}. Read the docs! https://handlebarsjs.com/guide

Remember, don't put logic in your templates! Keep this layer simple. Sorry to hear you have to use dotNet.

READ MORE
3 upvotes·129.2K views
Needs advice
on
Amazon S3Amazon S3
and
Azure StorageAzure Storage

I want to build an application for my company, mostly focusing on sharing files within employees but in a more secure and controlled manner. Please suggest a data store that would suit my needs. I am a .NET developer and looking for developing a Website in ASP.NET.

READ MORE
2 upvotes·71.5K views
Replies (1)
Technical Lead at Arimo·
Recommends
on
Azure Storage

For .NET, it may be better to use Azure Storage, which is supported natively by Microsoft

READ MORE
2 upvotes·302 views
Needs advice
on
MongoDBMongoDBNode.jsNode.js
and
ReactReact

Hello,

I will be programming my project in the coming months. I would need advice on the technology I will use.

I focus mainly on mobile apps, so it's clear there that it will be a native app written in Kotlin.

I will also need a backend (database, API). In the database, I will need to store words and their translations along with users and some statistics to start with.

I don't know which database to choose, whether NoSQL or SQL. Maybe NoSQL would suffice for some words and key-value data.

I would like to connect the web and a chrome extension to that backend. I assume that chrome extensions are made in JavaScript and I would use either Vue.js, AngularJS, or React on the web. The web would be quite simple, some flashcards, statistics, and so on ... I don't know which framework would be ideal, I've never done it, I'll be basically learning it. Ideally, also where you need as little CSS as possible.

With that backend, I have a dilemma as to which framework to use. Basically, it will be such a new for me, I just played with Flask a little bit, but It doesn't matter. Basically, everything runs on JS except the Android app. So is it advantageous to choose Node.js on the backend? I have no experience with this, is it an advantage when everything runs in almost one language? I also thought about Flask / Django, but I also quite like Node.js since it's in JS. But I'm open to all the possibilities of .NET, Spring .... What would be your choice?

To summarize: Android App - Native app in Kotlin Chrome Extension - JavaScript (I don't know if it can be done in anything else) Web - Vue, Angular or React and that's JavaScript Database - SQL / NoSQL? - I don't know which is more suitable, or some specific types Backend - the dilemma of what language and framework to use

I'll write everything myself, it's a project for school, but I want to move it to a higher level and release it. If it doesn't work out, at least I'll learn something. Thank you for the answers.

READ MORE
9 upvotes·217.7K views
Replies (2)

Let's start with the database. First, in my experience, there are few applications where choosing a document database (NoSQL) over a relational database (SQL) is advantageous. While document databases are conceptually very straight forward, I find the tradeoffs down the road are simply not worth it (I wont get into all the details here, but please do some research on the downsides of NoSQL databases). If your data storage needs were exceedingly simple, I might reach for something from the Google Firebase suite, Realtime Database or Cloud Firestore; but I find even simple storage needs tend to expand and grow over time as your application matures. Postgresql is an excellent choice, and an absolute powerhouse for a ton of applications. With the somewhat recent additions of hstore, json, and jsonb datatypes, the advantages of reaching for a pure document datastore melt away.

For the Chrome extension, I would probably favour going for something a bit more lightweight than React or Angular. I'm a huge fan of React, but it comes with a somewhat hefty download, so if it were me, I might reach for Vue instead on that one. React is better for bigger, more complex single-page applications, whereas Vue is probably a better fit for simpler applications which require a smaller set of components.

For the backend, I would pick something mature with a strong and active community. Flask is a nice choice, but I've felt a bit "on my own" when using it in terms of community/documentation. I've used Rails extensively, but the learning curve is a bit of a headache; the time you'll save using Rails is very much down-the-road rather than immediate. If you're comfortable already with Javascript, then node + express is probably your best bet.

But, let me change my tune a little bit. You mentioned that this is a school project. In light of that fact I suggest you gravitate towards languages and frameworks that will help grow your career. Making smart choices based on the requirements of the task at hand is always prudent, but in this case I think it may be more valuable to gain some experience with some of the current "industry standard" stacks. Ask yourself what you can build a career on, and dabble in some of those areas until you find something that clicks for you. So, here are my revised answers, with options for each category ranked in order of preference

  • Database: PostgreSQL, MySQL
  • Backend: Node/Express, Rails, Django, Spring
  • Frontend: React, Angular, Vue
READ MORE
10 upvotes·11K views
Principal Engineer at Crowd Emotion / Element Human Ltd·

Hi Karin, I really liked your take on this whole school thing, I'm amazed you want to put such a huge effort in it.

And please appreciate your project is a lot to take and it can also be a lot to do: the risk is going beyond the assignment for the sake of exploring technologies, architecture styles, desing patterns, and so on, just for the sake of it (don't take me wrong, I've done it all my life).

So my first advice, as quite an experienced software developer, is always go back to some fundamental principles before starting anything, before thinking to anything, and perhaps the most important principle of all is KISS: Keep It Simple and Short (search it up, there are a few versions of what those letters represent :) ). In your case, since it's a school assignment, simplicity is even more important because it makes things clear which makes learning so much more effective.

When dealing with complex tasks like this, another fundamental element is focus: where should you keep your attention when designing and then developing a software product?

In this specific case, I lack what the original assignment was requesting, but I'm quite sure the point (or one of the points) was to make you think and then act on something that didn't require months to be developed, it was to make you learn how to accomplish a task without getting lost in details or in a project too big to be finished in a finite time.

I may be wrong, but I'll keep this in mind when writing the below lines.

FIrst, the architecture of the software product looks like a classic three tiered one: frontend, backend, database. Keep in mind another fundamental principle here: the separation of concerns, which leads to different decoupled architectural elements. Also, just for clarity, the frontend(s) will talk only with the backend, while the backend will talk with the database: this will help you isolate the database from the frontend, ideally enabling you to change database technology if needed.

Second, you explained you want to go web and mobile for the frontend tier: this inevitably will lead you to the conclusions you pointed out correctly, having to choose a number of platforms and languages to basically create the same application, but the fragmentation of different knowledge and procedures can make your life quite complicated and probably miserable.

Personally I'd go for native Android and React for web. Recently, though, I stumbled upon Flutter which, through the same codebase (in Dart, very similar to JavaScript) can create for you applications for mobile (Android and iOS) and the web: I tried it and I've been blown away by the effectiveness and easiness of using it.

For the backend, keep playing with Flask and build a RESTful API, all in all python is a language way more readable and maintainable than JavaScript, and with node.js is so easy to fall into the callback hell (recently less and less but still). Stay away from Java and its ecosystem if you want to finish you project at all (just kidding).

On the database tier, remember NoSQL databases can be quite powerful, but in your case try something very simple (redis can do), or just go with MongoDB as it makes easy to start and evolve your data structures. If you're more the structured type and you want to go RDBMS, try postgresql, it's easy to start (it has also NoSQL features) but so much more powerful and you could learn real SQL on it (stay away from the omnipresent MySQL, it's kind of odd sometimes).

I hope the above didn't sound too much of a lecture, and I also really hope you learn the most important lesson of all: always keep in mind the big picture!

READ MORE
7 upvotes·11.3K views
Software Engineering Manager ·

Hi,

We are planning to develop a brand new UX for an already existing desktop software. The previous version is developed on C#.NET with Winforms & WPF. Our plan is to use JavaScript/HTML5 based frontend technologies for the new software. For some components, we are highly dependent on .NET/ .NET Core because the JS-based versions are not mature enough.

What would you choose for a desktop-based Engineering Software that supports multi-OS and has rich UI capabilities considering the .NET dependencies?

Thanks in advance,

Semih

READ MORE
5 upvotes·51.2K views
Developer at Arshal Freelancing·
Needs advice
on
.NET.NET
and
React NativeReact Native

I want to make a dynamic website that will be easier to create as well as maintain. I am comfortable in JavaScript, and currently, I know the React framework. Should I consider using .NET?

READ MORE
2 upvotes·253 views
Needs advice
on
.NET.NET
and
SpringSpring

Hello, I need clear advice. I am a fresher, and I want a bright and demandable career. I cannot decide which one will be better for a long and bright career .NET or Spring (Java)? Please give me some career advice. I will be very grateful to you.

READ MORE
3 upvotes·26.8K views
Replies (1)
Software Engineer ·
Recommends
on
Spring

In my opinion, between these 2 Spring (Java) would be a good choice. .NET is also good, but in general Spring (Java) is more flexible as a back-end implementation and it does provide a very easy REST and other integration in Spring (Spring Boot). This makes it a good independent back-end and any front-end built on any technologies like React, Angular, Vue.js can be used easily with such a back-end. WIth .Net as well this is feasible but .Net is more suitable when you are dealing with more Microsoft technologies. Also comparatively, Spring (Java) gives a better pay scale in the industry compare to .Net with similar experience. This is just my opinion based on my experience so far.

READ MORE
2 upvotes·1.3K views
It and DevOps manager at Tzunami Inc.·
Needs advice
on
AnsibleAnsible
and
AWS CodeDeployAWS CodeDeploy

We have a .NET application hosted on Amazon EC2 instances. We have a WEB server instance and application instances. We use VS and TFS server for development, build and release. For deployment, we use a script we wrote. The script is activated at the end of the release process. What is the best tool for the automatic deployment of our application?

READ MORE
5 upvotes·3.9K views
Replies (1)
Software Engineer & Support Operations Lead ·
Recommends
on
AWS CodeDeploy

While I haven't use AWS Code myself, I have a few years of experience with Ansible.

  • It doesn't play nice with Windows.
  • Dependency hell is real.
    • Playbooks and tasks are built off of other playbooks and tasks, which are built off other playbooks and tasks. Actually figuring out what Ansible is really doing, to install mysql for instance, requires digging several layers deep into other ansible scripts.
  • Debugging is a chore.
    • When a dependency needs updating, or there's a newer pattern for install/update of OS and libs, it can be very difficult to find what parts of your ansible script need updating, and where to update. Often it's in one of those playbooks you've built from, and you're left waiting for them to update, or taking on that whole playbook yourself.
READ MORE
3 upvotes·2.6K views
Needs advice
on
C#C#F#F#
and
KotlinKotlin

Hi there. I want to expand my coding toolset. So I want to learn a second backend language besides Kotlin. Kotlin is fantastic. I love it in every aspect, and I think I can never return to Java. And also why should I? It is 100% interoperable with java and can co-exist in every project.

So my question here is. Which language do you think will bring me more joy? I think F#; it is more like Kotlin. Then C# (it's more or like 100% java). But, let's say I learn F#. Is it 100% interoperable like Kotlin? can they live side by side? Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow? I would like to learn .Net.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go?

READ MORE
4 upvotes·270.3K views
Replies (3)
Recommends
on
C#

animefanx1,

First let's get your questions sorted: Which language do you think will bring me more joy?

This you will have to decide for yourself, I am a long time C# developer and have seen it grow into a very compelling platform. The language and I'd compare it more to Kotlin than Java (by a long margin). More on .NET in a bit.

say I learn F#. Is it 100% interoperable like Kotlin?

You can have 100% interop with a caveat, your F# libraries have to implement certain guidance in order to be referenced from C#. Some (dare I say most) of the differences between F# and C# are predicated on language constructs that are not available in C#. For instance F# functions that return Unit.

can they live side by side?

Yes.

Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow?

I don't know if I take your meaning, but let me say this: Learning either C# or F# will likely force you to understand concepts such as garbage collection, primitive types, etc. which apply to all .NET languages, thus a lot of the effort you put into .NET is bound to pay off regardless of your choice.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go? You can't go wrong with any of these and I venture to say whether you select C#, F#, Dart or Go as your next adventure, your willingness to learn will take you to try other languages, some which mey not even exist yet!

PS1: .NET is an end to end environment now. With the introduction of Blazor and Razor pages one does not need JavaScript or other browser scripting languages, it even interops with JavaScript. PS2. Microsoft is working on unifying .NET. Soon there will be only one version: .NET 5! Caveat: Some features such as WinForms will still be specific to the windows environment but all of those are likely things you don't need in Mac or Linux

READ MORE
4 upvotes·1 comment·245.7K views
Kranael
Kranael
·
February 8th 2021 at 11:54AM

Ok thanks for the advice - really thanks :-)

Concepts like garbage collection which don't exist in C++, I know and primitive types are also a thing in java. I came from java (suprise ^^) and moved to kotlin because I like that the language is not bound to the jvm ecosystem. Also I'm more productive with less bugs in my code, because clever compiler don't let me assign a null to a variable and some other stuff. Not writing - if (x != null) ... anymore.

The language and I'd compare it more to Kotlin than Java (by a long margin) <-- In which kind? For example the syntax is more Kotlin in F# it has range expression and so on.

Like that: F#

let function1() =

for i in 1 .. 10 do

printf "%d " i

printfn ""

function1()

Kotlin:

for (i in 1..10) {

println(i)

}

And the classic one:

C# and Java really similar

for (int i = 0; i < 5; i++)

{

Console.WriteLine(i);

}

Sry for the syntax here but i would understand why it is more like Kotlin? Or did you mean F# and not C#?

Last question:

You say it can live side by side -> Lets say i know after a long time enough F# would I be able to apply to .NET / C# Jobs? When I say in an Interview yes all fine for me, but you should know I write F# not C# code? Is it acceptable for company's?

I really like the idea from Microsoft to unify all the frameworks so no .NET Core, ASP etc. only .NET 5 :-)

Thank you for your time in advance :-)

·
Reply
Recommends
on
C#
Kotlin

Exceptional decision to go with Kotlin. For the other story, go full with C#. "is C# the holy cow? Yes it is.". Specially now when netCore is crossplatform and you can build asp.net core applications on Windows, Linux and macOS via Visual Studio Code which is also multiplatform. Nothing will beat C# in the near future. Also, at the end of 2021 Microsoft will release Net 6.0 which will include MAUI.

"For those new to .NET MAUI (standing for .NET Multi-platform App UI), Microsoft says it's "the evolution of Xamarin.Forms extended from mobile to desktop scenarios with UI controls rebuilt from the ground up for performance and extensibility."

So, C# all the way sire!

READ MORE
4 upvotes·245.9K views
View all (3)