Avatar of José Perez
José Perez
Flag for Chile asked on

Develop a software for the cloud

Hi, I am an old programmer so that's why I will ask a question that can be considered dummy for the modern colleagues.

I have an idea on a system I would like to develop, know everything that is required functionally and know how would it be done... In the old days (html, sql, etc.)

But I am fully aware the technologies have changed, and changed a lot! So I need an advise on what modern technologies to use.

These are my questions:
1. Allow users to connect from anywhere on internet.: So I supposed It should be a cloud based system.
2. Programming lang: This worries me the most! If I develop a system in C#.Net with SQL server, is it easy to move it to the cloud? or Should I develop with Azure SQLfrom the beginning?
3. If I develop the software for the Microsoft Cloud, is it easy to use it in other cloud platforms like Amazon o Google? or should I have to develop in different languages?
4. Is there a programming lang I can use to develop once and use it for Microsoft Cloud, Amazon and Google platfomrs, also?
5. Is it recommended to use C#.Net for the cloud?
SoftwareMicrosoft SQL ServerProgrammingCOBOLGoogle

Avatar of undefined
Last Comment
dpearson

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
dpearson

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Chinmay Patel

Hi Jose,


1. You are right. Cloud also allows you to move quickly as it requires less upfront cost and removes a major headache of managing everything on your own.


2. Do not worry. C# + SQL or C# + AzureSQL - you can easily migrate around. I am leaning towards PostgreSQL nowadays but I have my reasons (and some really nasty Gotchas as well).


3. This is why I have chosen PostgreSQL, All cloud providers support Microsoft SQL Server so that should not worry you either. It is more about your comfort level with the database.


4. C# and .Net Core should allow you to run on Microsoft Windows, Linux and even on Mac so you are covered there. And you might find it surprising but even Microsoft SQL Server is available on Linux (in case you want to give it a shot).


5. C#. Net is one of the most popular language to code on Microsoft stack. Being the first class citizen of .Net world, C# always receives the latest features first. Also, if you target a complex scenario on Microsoft Stack, there is a greater chance you will get help on C#.


HTH,

Chinmay.

Chinmay Patel

And I forgot to mention, .Net Core is open source ;)... Enjoy!

Pavel Celba

Cloud is just a platform where you don't need to manage the hardware or even the OS. You may access the cloud in several various ways, e.g. you may access Windows Desktop via RDS and develop software as if you were in Windows, or you may use the cloud to host your internet applications etc.

Basic cloud types are described e.g. here: https://www.globaldots.com/blog/cloud-computing-types-of-cloud

Almost all internet providers offer some kind of hosting subscription program which includes databases, ASP.NET, PHP etc. Hosting program is the basic cloud service in fact. Cloud offers much more, namely (price dependent) scalability so you may ask for more CPU cores, more RAM, more disk space. Everything is reconfigurable in minutes. End users of your application should not see any visible difference between the internet application running on company intranet or in the cloud. Just the URL may differ.

The application portability depends on the specific features of given environment hosting in the application. .NET Core should run in many different environments but you'll still find certain parts which will need a small update or several switches to ensure the application run "anywhere". But don't worry to start programming.

And where to start? That's a question of the future goals. Azure is good if your potential customers are large companies. If you subscribe for MSDN then you can use Azure for development which is almost free. Small customers which prefer lower price would appreciate e.g. Rackspace or AWS.
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.
rwheeler23
David Favor

These are my questions:
1. Allow users to connect from anywhere on internet.: So I supposed It should be a cloud based system.

As Chinmay suggested, this just means you're writing server based software.

Might be a site built around a CMS like WordPress or an API.

"Cloud" - Drop this term from your vocabulary... It will only "Cloud" your thinking.

"Cloud" - Normally refers to very slow VM software slicing up very fast servers, so "Cloud" is code for slow running systems.

2. Programming lang: This worries me the most! If I develop a system in C#.Net with SQL server, is it easy to move it to the cloud? or Should I develop with Azure SQLfrom the beginning?

My normal approach is writing code using MariaDB, as there are many pluggable storage engines covering every data access pattern imaginable. In fact the Facebook MyRock storage engine provides support for blazing fast heavy write data access patterns.

I normally use Apache + FPM PHP + Opcache for simple to understand code running at high speeds.

When choosing a language consider focus of free development dollars you can leverage.

PHP is a good choice, as WordPress/Laravel/Other Frameworks, are all written in PHP, so there's currently massive development dollars poured into PHP. Each release boosts performance. PHP-8.0, when released, looks to be potentially same type of increase as PHP-7.X was over PHP-5.X so if you stick with PHP you leverage all these free developers.

3. If I develop the software for the Microsoft Cloud, is it easy to use it in other cloud platforms like Amazon o Google? or should I have to develop in different languages?

See above. Avoid "Cloudy" thinking.

If you're looking for 100% free software (with no license fees) stick with LAMP Stacks.

LAMP - Linux + Apache + MariaDB + FPM PHP.

Also LAMP Stacks scale forever across cheap commodity hardware with tuning practices being well understood.

For example, a well tuned WordPress site can easily run at 1M+ requests/minute throughput.

Note: When measuring performance, always run your test tools on the local machine, otherwise you'll be testing your Internet connection speed, not true site throughput speed.

4. Is there a programming lang I can use to develop once and use it for Microsoft Cloud, Amazon and Google platforms, also?

Answered above.

5. Is it recommended to use C#.Net for the cloud?

No real recommendation. You'll determine your own requirements.

For me, I prefer the 1000s of developers working on PHP daily for free, to produce rock solid + fast software.
Pavel Celba

Yes, if you have enough money or enough free time then you may develop software for a free. If you still need to pay your bills then for how long you may do it?
Mark Edwards

I have a quick question about all this talk about software that's "free":  Does it come with support and easy-to-use interfaces?
If so, what do you recommend as far as the "free" software.
If not, then don't you have to "pay" for someone's "packaging" of the "free" software with their "paid" support and utilities (i.e. Red Hat?)
If you don't pay for it, aren't you on your own?

Please be honest about "free" software.  I hear a lot about the "Microsoft Tax", but don't you get a lot more than what you would get if you downloaded just their bare-bones software for free with no support or utilities?  There's a lot of companies making a lot of money taking the "free" software and building support packages around it and selling that (i.e.  Red Hat...)
⚡ FREE TRIAL OFFER
Try out a week of full access for free.
Find out why thousands trust the EE community with their toughest problems.
noci

@pcelba: David meant the plethora of Solid tools out there that already exist and you can extend by yourself. And in the mean time you're invited to use the tools mostly without paying a fee... If you Change the tools you need to publish the tools.


@Jose Perez, 

Cloud is nothing "Special"  it is the commercial word for outsourcing of hardware, or even software use "As a Service". 

You can even run the service from your own house IP connection  (depending on capacity and popularity of your application).


WRT. languages...

You can write in Cobol or Fortran if you like... i guess it will be harder than PHP, Python, GO or other languages that are built to be used on networking tasks


WRT. environment...

There are capable database tools, which one is probably not too relevant. Which ones you Know or You can obtain if you decide to use some Cloud server (Amazon, Google Cloud, Azure or one of the others..., or run a bare service server...).


Maybe look around a view a few tools like Nextcloud as a personal data service , or Wordpress, or Drupal,  .... so many available "half" products that just need contents to be made useful.   Many of those are written in PHP. 

José Perez

ASKER
Thanks a lot. Good answers.
David Favor

Along the lines of noci's comment about the term "Cloud".

Whenever I see "Cloud" I translate this as 10X more dollars at 90X speed reduction.
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes
dpearson

Whenever I see "Cloud" I translate this as 10X more dollars at 90X speed reduction

Certainly that may have been your experience David, but I wouldn't think that was a widely held view.  To most people a cloud server is very similar to one you run yourself in a data center, except somebody else is handling the management of the server.

If you move to cloud services (not cloud servers) then that may well come out much more expensive for the throughput.

But today most people recognize that you can get better total utilization from virtual servers over bare metal ones (which I assume is the comparison point in a data center?) so total cost should be pretty similar for a certain amount of throughput.

At least in our case when we moved a highly tuned app from data center to cloud servers we got a 50% speed boost for the same price point.  That didn't come immediately, we needed to understand how to optimize for the cloud first.

Everyone's mileage may vary, but I think the general assertion that cloud tends to be slower and more expensive doesn't need to be true.

Doug