Recommendations for a web stack?
-
We need to make a website that is very pretty and capable of displaying dynamic data.
I don't feel I'm up to the task on the pretty, and my knowledge of dynamic things ends at XHR.
So, I'm going to get a third-party to develop this. What I'm unsure about is what technologies to request from them.
I'm thinking Python would be limiting so no Django, ditto for Ruby, PHP is just horrible, ASP.net means expensive hosting, so Javascript is probably best. But what framework? Angular seems very popular.
For a web server I'm thinking of NGINX as I've used that before myself.
The dynamic data bit might be a problem too, We currently have this data in SQL databases on-site. I'm guessing most places would be happy with some SOAP endpoint they can query, or should we really be shoving it in AWS/Azure for them?
Any thoughts gladly appreciated!
-
@Cursorkeys said in Recommendations for a web stack?:
Javascript is probably best. But what framework? Angular seems very popular.
The rest of the list implies server-side Javascript (), but Angular is front-end.
-
@Cursorkeys You could give various third parties some reasonably detailed requirements that do not specify any particular technology, then let them come up with ideas. It seems to me that specifying a stack up front is putting before .
-
@kazitor said in Recommendations for a web stack?:
@Cursorkeys said in Recommendations for a web stack?:
Javascript is probably best. But what framework? Angular seems very popular.
The rest of the list implies server-side Javascript (), but Angular is front-end.
Aha, I see, thanks. Angular is the frontend and NodeJS is backend, I couldn't work out the difference between them.
@lolwhat said in Recommendations for a web stack?:
@Cursorkeys You could give various third parties some reasonably detailed requirements that do not specify any particular technology, then let them come up with ideas. It seems to me that specifying a stack up front is putting before .
It's a good point, I'm mostly trying to avoid being totally clueless when talking to them. And also walking into a trap such as the ASP.net being expensive for hosting one, I'm sure there's many more I don't know.
I'll probably have to maintain this thing too, because that's what usually happens with things we buy in...
-
@Cursorkeys I hear ya. Yeah, the fact that you'll likely be stuck with maintaining it does put a different spin on things.
Re: dynamic data, I can easily see that becoming a Denial of Service vector if not done right.
What sort of security and privacy requirements do you have?
-
There’s no $5/month shared hosting plans for ASP.NET like you see with PHP, but otherwise it should be price-competitive. (And it’s not like you can run NodeJS in those environments either.)
ASP.NET Core could be the answer to that, though. Cross-platform so you can run it on whichever’s cheaper for you, Windows or Linux.
-
@lolwhat said in Recommendations for a web stack?:
@Cursorkeys I hear ya. Yeah, the fact that you'll likely be stuck with maintaining it does put a different spin on things.
Re: dynamic data, I can easily see that becoming a Denial of Service vector if not done right.
What sort of security and privacy requirements do you have?
It's commercially sensitive. This platform will be serving multiple customers who are competitors of each other, accidentally letting one see another's data would be very bad™ for us.
I don't believe we have any issues with GDPR on this data and PCI-DSS won't be an issue.
@Unperverted-Vixen said in Recommendations for a web stack?:
There’s no $5/month shared hosting plans for ASP.NET like you see with PHP, but otherwise it should be price-competitive. (And it’s not like you can run NodeJS in those environments either.)
ASP.NET Core could be the answer to that, though. Cross-platform so you can run it on whichever’s cheaper for you, Windows or Linux.
TIL, thank you. I have experience with ASP.NET so that might be good for the maintainability bit. I'll do some research on it.
-
Some of this appears contradictary.
@Cursorkeys said in Recommendations for a web stack?:
So, I'm going to get a third-party to develop this. What I'm unsure about is what technologies to request from them.
The dynamic data bit might be a problem too, We currently have this data in SQL databases on-site. I'm guessing most places would be happy with some SOAP endpoint they can query, or should we really be shoving it in AWS/AZURE for them?Are you just getting them to write the shiny frontend? Might be worth asking them what they specialise in instead of dictating a frame work. Beware of wordpress hackers though.
ASP.net means expensive hosting, so Javascript is probably best. But what framework? Angular seems very popular.
For a web server I'm thinking of NGINX as I've used that before myself.if you're going to be bringing it in house afterwards then you have to dictate the one you're comfortable in. Another angle could be how can you pad your CV with it. Go for React with a backend you're comfortable with then. Java/.Net stacks aren't going anywhere soon and React is one of the buzzwords at the moment. From the little exposure I've had to it building shiny frontends that pull their data from soap endpoints is what it's meant for.
-
@DogsB said in Recommendations for a web stack?:
Some of this appears contradictary.
Are you just getting them to write the shiny frontend? Might be worth asking them what they specialise in instead of dictating a frame work. Beware of wordpress hackers though.
I'm probably just using the terminology wrong. I want a complete thing that pulls data, some static, some rapidly changing, from our collection system, sends changes users make back to the collection system and that looks shiny to the users. It doesn't have to do any data processing itself but I guess that still counts as backend & frontend then?
@DogsB said in Recommendations for a web stack?:
if you're going to be bringing it in house afterwards then you have to dictate the one you're comfortable in. Another angle could be how can you pad your CV with it. Go for React with a backend you're comfortable with then. Java/.Net stacks aren't going anywhere soon and React is one of the buzzwords at the moment. From the little exposure I've had to it building shiny frontends that pull their data from soap endpoints is what it's meant for.
Thanks, I'll investigate React.
-
@Cursorkeys said in Recommendations for a web stack?:
SOAP endpoint
Did I wake up in the wrong decade?
-
@hungrier said in Recommendations for a web stack?:
@Cursorkeys said in Recommendations for a web stack?:
SOAP endpoint
Did I wake up in the wrong decade?
My web programming experience is, unfortunately, from the last decade.
-
@Cursorkeys said in Recommendations for a web stack?:
. And also walking into a trap such as the ASP.net being expensive for hosting one, I'm sure there's many more I don't know.
You keep saying that ASP.NET hosting is expensive, yet my ASP.NET website is hosted for free on Microsoft Azure
-
@Cursorkeys said in Recommendations for a web stack?:
@hungrier said in Recommendations for a web stack?:
@Cursorkeys said in Recommendations for a web stack?:
SOAP endpoint
Did I wake up in the wrong decade?
My web programming experience is, unfortunately, from the last decade.
Fair enough. But if you're making a new thing that won't have to interface with ancient SOAP-driven technology, why not go for something more modern and simpler like a REST API that serves JSON?
-
@bjolling said in Recommendations for a web stack?:
You keep saying that ASP.NET hosting is expensive, yet my ASP.NET website is hosted for free on Microsoft Azure
That's interesting, I hadn't heard about the free tier, we are going to need a cloud DB for the next part of the project even if we don't need it now. So, that is useful to know.
@hungrier said in Recommendations for a web stack?:
Fair enough. But if you're making a new thing that won't have to interface with ancient SOAP-driven technology, why not go for something more modern and simpler like a REST API that serves JSON?
Hmm, doesn't look that much more complicated. I'll bear in mind that REST would be better than SOAP then as that bit's not written yet.
-
@hungrier said in Recommendations for a web stack?:
@Cursorkeys said in Recommendations for a web stack?:
SOAP endpoint
Did I wake up in the wrong decade?
Yeah, I was going to say REST endpoint is what you probably want.
-
I'm from the last decade too.
-
@DogsB And in less than two years we'll be in yet another decade.
-
@Cursorkeys said in Recommendations for a web stack?:
@hungrier said in Recommendations for a web stack?:
@Cursorkeys said in Recommendations for a web stack?:
SOAP endpoint
Did I wake up in the wrong decade?
My web programming experience is, unfortunately, from the last decade.
It's okay. Web programming experience from 12 minutes ago is already hopelessly outdated.
-
@Zecc said in Recommendations for a web stack?:
And in less than two years we'll be in yet another decade.
-
@Cursorkeys said in Recommendations for a web stack?:
Hmm, doesn't look that much more complicated. I'll bear in mind that REST would be better than SOAP then as that bit's not written yet.
In general, dealing with rest is easier than soap.
-
@DogsB said in Recommendations for a web stack?:
I'm from the last decade too.
I don't want to think about what decade I'm from.
-
@HardwareGeek said in Recommendations for a web stack?:
@DogsB said in Recommendations for a web stack?:
I'm from the last decade too.
I don't want to think about what decade I'm from.
-
@Carnage said in Recommendations for a web stack?:
In general, dealing with rest is easier than soap.
That's only really the case on the client, and even then it depends on the degree of self-description that the server provides, which in turn depends on the stack that you're using. And on the basic nature of the service itself; the devil is in the details.
-
@dkf What server-side stack is it easier to emit SOAP than REST?
Certainly not true for ASP.NET (regular or core). I assume not NodeJS either.
-
@bjolling said in Recommendations for a web stack?:
@Cursorkeys said in Recommendations for a web stack?:
. And also walking into a trap such as the ASP.net being expensive for hosting one, I'm sure there's many more I don't know.
You keep saying that ASP.NET hosting is expensive, yet my ASP.NET website is hosted for free on Microsoft Azure
Apparently since we use SSL (i.e. HTTPS) the minimal we can use is the $60/mo plan. Balls.
-
@Unperverted-Vixen said in Recommendations for a web stack?:
@dkf What server-side stack is it easier to emit SOAP than REST?
Certainly not true for ASP.NET (regular or core). I assume not NodeJS either.
Java made it surprisingly easy for clients and servers compared to .NET's WCF. It also tolerates changes quite well because it doesn't expect a service's WSDL to be identical to the client's, it merely needs to be equivalent for the messages being used.
-
@JBert I wasn’t aware WCF was that picky. The more I learn about it, the more I’m glad we still use the older Web Services (.asmx) framework for our SOAP stuff.
(The main downside to it is that there’s some stuff that just plain doesn’t work like you’d expect - e.g. Application_Error does not fire on a server-side exception. If it worked like the rest of ASP.NET I’d probably consider it equal to Web API for ease of use.)
Of course, neither of those SOAP server frameworks is an option with ASP.NET Core - it can consume WCF, but server-side it’s REST or bust.
-
@JBert said in Recommendations for a web stack?:
@Unperverted-Vixen said in Recommendations for a web stack?:
@dkf What server-side stack is it easier to emit SOAP than REST?
Certainly not true for ASP.NET (regular or core). I assume not NodeJS either.
Java made it surprisingly easy for clients and servers compared to .NET's WCF. It also tolerates changes quite well because it doesn't expect a service's WSDL to be identical to the client's, it merely needs to be equivalent for the messages being used.
I think JAX-RS makes REST even easier than SOAP in Java. Well, not that SOAP is particularly hard, but I think the classes that are generated by wsimport is a disturbance in the source.
-
@Carnage said in Recommendations for a web stack?:
I think JAX-RS makes REST even easier than SOAP in Java. Well, not that SOAP is particularly hard, but I think the classes that are generated by wsimport is a disturbance in the source.
They're about equivalent on the server side, with REST being a bit more complex to do well only because of the expectation to support more different read queries. Slap the right annotations on methods, add a couple on some classes, and you're done. Client side is mostly fairly easy too when the other side supports good service descriptions (commonly true with SOAP, and very piecemeal with REST). Services without descriptors remain ugly, and just because you have a descriptor doesn't mean that that's really the API you want to expose to the rest of the client program; a thin wrapper layer often makes things much better with both styles.
Thankfully, we're mostly past the era of needing to make complicated skeleton classes and stuff like that. That was always fragile and horrible.
-
The only thing I've used before is Rocket so I nominate it.
-
The truth is, the server side language hardly matters, as long as you pick a decent one. Python3 would be a fine choice. Javascript -- less so, but there is a big eco-system around it now. There are plenty of others. I wouldn't exclude Django just because.
Hell, I use Haskell for my server-side web-development. But that's just a detail: what matters is the architecture which I will now describe:
server-side framework:
- handles auth, http, routing, generating HTML and some JavaScript, CSS
- use the server-side framework to implement REST-like JSON end-points. Most of these are VERY shallow translations of what's actually in my database. (Indeed, I get auto-generated JSON and JSON endpoints for all my static types)
Single-page webapp:
- written in JavaScript, typically with a library like Angular or Knockout (plus plugins) to make it easy to "bind" values to your HTML. Think of how WPF does it, this is the HTML analog.
- Depending on how complex your data/logic are, you may need to write ViewModel handlers in your server stack, so you can do multiple queries in one transaction. Not a big deal, do it the same way as your RESTful endpoints: Parse the JSON, do your logic, do your transaction.
-
As a follow up, if anyone cares. We have a partner, and I don't think I sounded totally clueless during the discussions.
Their answer is using Heroku, because PaaS is apparently the way forward. Then Prisma and GraphQL on top of that, pretty SPA frontend is provided by React. Software language, front and back, is JavaScript, JavaScript or JavaScript.
I have to provide a RESTful interface to my existing thingy.
Thank you all for the help!
-
@Cursorkeys said in Recommendations for a web stack?:
Heroku
@Cursorkeys said in Recommendations for a web stack?:
PaaS
@Cursorkeys said in Recommendations for a web stack?:
Prisma
@Cursorkeys said in Recommendations for a web stack?:
GraphQL
@Cursorkeys said in Recommendations for a web stack?:
SPA
@Cursorkeys said in Recommendations for a web stack?:
React
Sounds like a winning card for IT Buzzword Bingo!
edit: If you're already using AWS/EC2 or Azure then I'm not sure adding Heroku into the mix offers anything. Its Salesforce integration is obviously better but if you don't need that then it's a little restrictive compared to EC2 IME.
-
@loopback0 said in Recommendations for a web stack?:
Sounds like a winning card for IT Buzzword Bingo!
Oh yes, you also had my boss who loves saying 'we'll use an aye-pee-eye' as much as possible, even if it has no relevance to the current discussion.
@loopback0 said in Recommendations for a web stack?:
Its Salesforce integration
Potentially we will need this, so it doesn't seem like a terrible choice. I am moving my backend processing thing to Azure though (hosted locally at the moment).
-
@Cursorkeys said in Recommendations for a web stack?:
you also had my boss who loves saying 'we'll use an aye-pee-eye' as much as possible, even if it has no relevance to the current discussion.
Everyone loves an API.
-
@Cursorkeys said in Recommendations for a web stack?:
you also had my boss who loves saying 'we'll use an aye-pee-eye' as much as possible, even if it has no relevance to the current discussion.
I love how APIs briefly became a big marketing buzzword. It's like "look guys, we can make computer programs that interact with other programs! How futuristic is that?"
-
@anonymous234 said in Recommendations for a web stack?:
@Cursorkeys said in Recommendations for a web stack?:
you also had my boss who loves saying 'we'll use an aye-pee-eye' as much as possible, even if it has no relevance to the current discussion.
I love how APIs briefly became a big marketing buzzword. It's like "look guys, we can make computer programs that interact with other programs! How futuristic is that?"
"Greetings, Program!"
-
@Cursorkeys said in Recommendations for a web stack?:
As a follow up, if anyone cares. We have a partner, and I don't think I sounded totally clueless during the discussions.
Their answer is using Heroku, because PaaS is apparently the way forward. Then Prisma and GraphQL on top of that, pretty SPA frontend is provided by React. Software language, front and back, is JavaScript, JavaScript or JavaScript.
I have to provide a RESTful interface to my existing thingy.
Thank you all for the help!
Here's some extra advice. Make the restful interface your sole responsibility and keep as far away as possible from the rest of it. Ideally keep a BA/manger like person and a Jira board as your sole means of communication.
-
@Cursorkeys If I had the choice, I would be using ASP.NET. Not MVC or WebForms, just ASP.NET with some JavaScript. Access to SQL Server is a huge benefit of having to use Windows hosting, assuming they let you connect with Management Studio and not just a derpy web front end. "Derpy web front end for mySQL" is probably the biggest complaint I have for being forced to use PHP on Linux hosting.
-
@Zenith said in Recommendations for a web stack?:
ASP.NET
It's what I'm personally familiar with. But the only people we could find were people who did things with JavaScript. I was expecting it to be a bit more diverse out there. I've heard a ton about Ruby, for example, but no-one round here seems to be offering design with it.
"Derpy web front end for mySQL"
phpMyAdmin? It's OK, seems to mostly work when I've had to deal with it.
-
@Cursorkeys said in Recommendations for a web stack?:
phpMyAdmin? It's OK, seems to mostly work when I've had to deal with it.
The raw data and structure part of it is fine. It's hard to work with when you're writing their version of stored procedures and functions. That window is painfully small and defining parameters is clunky. It also has some strange text selection behavior. It got to the point that I just started writing full calls in Notepad and pumping them through their generic query executor.
I also had to use a web front end for SQL Server on one hosting service. It was painfully slow. Like Citrix over dialup slow. It seemed like every bit of speed I gained from being able to use ASP/C# again instead of PHP was lost fighting the database interface.
As I read through the rest of the thread, I would second some of the JSON suggestions. My web experience is a little dated too and I was able to pick up posting/parsing JSON relatively quickly. Good luck with the project.
-
@Cursorkeys said in Recommendations for a web stack?:
It's what I'm personally familiar with. But the only people we could find were people who did things with JavaScript. I was expecting it to be a bit more diverse out there. I've heard a ton about Ruby, for example, but no-one round here seems to be offering design with it.
People around here are choosing java spring, angular and nodejs for projects where they have any say about the stack.
-
-
@boomzilla said in Recommendations for a web stack?:
ipI
God, that takes me back. Having to bootstrap the PDP-11. After you took a hairdryer to the power supplies first of course, because they wouldn't start up if it was cold.
aye
Shropshire pronunciation of course, not Yorkshire
-
@Cursorkeys don't despair or feel like a bad person, there are some people still being stuck in the last century and SOAP got "validated | vendor approved" 2018 as in "we do not fully support it just right now but it should work, YMMV..."
I do know that doesn't help you but it might raise your self-esteem ;-)
-
@iKnowItsLame said in Recommendations for a web stack?:
@Cursorkeys don't despair or feel like a bad person, there are some people still being stuck in the last century and SOAP got "validated | vendor approved" 2018 as in "we do not fully support it just right now but it should work, YMMV..."
I do know that doesn't help you but it might raise your self-esteem ;-)
to quote myself:
depending on what you are familiar with -> choose a <stack> that looks the least alien to you, I do not see much sense in switching from <X> to <blah> where one has to struggle to get a simple <hello, world!> from the database 'cos the approach is completely different.Time-constraints blahblah be fscked (one can dream), either there is a sufficient time for ramp-up/getting familiar with <new thingy> or <product> needs to be shipped yesterday, one cannot have both.
"we'll just (can't find an icon for wing) it" will bite you in the mid-to-long run.