first of all sorry if this question is stupid. I'm building a website from scratch and I don't want to use a CMS. I'm doing well with all, unless that I don't know how to manage the backend data. It's suposed to make a direct connection to the database, for example, to create a new post on the blog page? Or should I implement a software in some language that connects to the database and manages all the posts that I post?
This is a very broad question to ask and if you're designing something on your own you should do what works for you. There are multiple solutions to the question you're asking but what fits you is the right answer. Stack is mostly questions for problems that have an actual example or something happening. Your asking an architectural question which isn't a bad thing just a very broad question to ask. Try Googling storing Blog posts. I assume this is what you want to do...
Some options:
Cloud based Architecture - Azure, Amazon Web Services (AWS) pay as you grow.
MongoDB, PostGres, SQL databases, Oracle, use a database that fits your code base.
Maybe spend some time learning a Full Stack Web Development cycle and what it takes to achieve. Some stacks are:
M.E.A.N. - MongoDB database, Express (Node Package) web server, Angular (1.. to 5) Web Development, Nodejs multiple uses
L.A.M.P. - Linux operating system, APACHE web server, MySQL (Database), PHP web development
.NET Stack or ASP.NET C# For your backend, use jQuery, SQL, Angular/React.
As you can see a lot to look at or learn. No simple answer to your question.
Related
Good day,
I have a question for the experienced developers:
At the moment I work a lot with the PHP framework Symfony.
Out of interest, I would now like to delve into the topic of native app development
using React.
As part of a practice project, I want to transfer/sync data between a SQL DB on a server and the app.
My question is, is it a good way to write a symfony application for this,
which only acts as an API for the database?
Does this make sense from a performance and effort point of view?
What alternative ways are there?
Which ways of storing data on servers are used most frequently in the productive environment?
I am happy about suggestions, links and informations in every direction.
Thanks and Greetings
My answers (based on my experiences and my collegues answers) :
As you can see on the documentation here it's very easy to made your own api with Symfony tkants to API Platform. For the performance it's very acceptable especially if you use Symfony (>= 5.4) because a lot of cleaning has been done in the kernel and PHP 8 for its performance improvements especially at compile time (JIT compiletor). More info here if you need it.
Alternatively you can create your API rest with NodeJS but it doesn't bring much especially if your application is already made in PHP. Adding a layer can sometimes make things heavier instead of lighter.
It's depend of your need, the size, the number of users ... You have to determine the target to choose the better solution. If you have it already I can help you.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I apologize in advance for the open-ended question. I tried searching, but wasn't sure what specifically to search for, in all honesty...
Briefly put, I'm a novice iPhone programmer and I've made applications that have communicated with a Java server. For example, my iphone application would use HTTP Get or POST requests and would receive back data. However, I'm not the person writing the server side code and frankly, have no idea how it's done!
I'd like to learn at least the mechanics of how things are done on both sides, so now I'm trying to learn. I picked up a book on Google App Engine since it seems like an economical way just in case I do decide to release a server/client app.
However, I assume that I could have chosen RoR or PHP as well. I'm assuming the principles must be the same.
If anyone could point me towards tutorials that shows the "other side" of what happens in a server/client app, that would be most appreciated! By other side, I mean, on the client side, I already know how to request and receive data. I just dont know what happens on the server side...
Thank you and sorry for the general question..
These are most important components of web application:
an http server: serves static files, works as a pipe to your applplication for dynamic content. For example: apache, nginx.
An actual web application: handles requests for dynamic content. Usually you use a a web-framework. For example: django for python, symfony for php, RoR for Ruby, node.js for javascript.
A database server. For example: MySQL, PostgreSQL
Some other things which might be considered:
a mail server to send email messages
image processing libraries
fulltext search engines
These components are less common:
memory caching server, for example: memcache
non relational databases, for example: redis, couchdb, riak, mongodb
task queue server: for example RabbitMQ
The reason why appengine might seem easier for novice is that you don't need to configure web server or database. You only need to write your application code. Fully-managed hosting with task queue, memcache, datastore, content-delivery-network are already available in appengine.
The problem with appengine is that it forces many limitations on you.
If you don't need memcache, task queue and distributed system then it is very easy to develop applications with popular frameworks, they provide tutorials how to set up your own http server and database.
If you need these advanced parts then it will be more difficult to configure everything.
Common practices in web application development include:
using ORM to work with relational database
using MVC or similar pattern to structure code
Html code is kept away from code in templates. Thus templating language is used.
As a web-backend developer aside from coding application code you also need to understand well the database which you use.
If you only build a backend for your mobile application, you won't need HTML, CSS, Javascript and templating. Though MVC pattern and ORM still applies. You also will need to know more about HTTP protocol and various methods of implementing an HTTP API. If you like XML, the WSDL does a good job. There are great libraries for WSDL which makes writing HTTP API easy.
The base API in Java is the Servlet API. Read this tutorial.
On top of this API, there exist a myriad of frameworks (Stripes, Spring MVC, Struts2, JSF, Wicket, etc.), which all have their own philosophy. There are two groups of frameworks, though: action-based ones (Stripes, Spring MVC, Struts2, ...) and component-based ones (JSP, Wicket, ...).
The action-based ones usually use JSPs for their view technology (to generate the markup), but also support others. What you'll learn if you learn JSP will be useful in a variety of frameworks, so I would learn it as well. Read this tutorial.
I applaud your choice of starting with App Engine:
Some concepts of GAE are hard, but so is SQL. If you don't know either you might just start with GAE which is a modern noSql system.
GAE is not a good fit for all problems. But I believe it is a good fit for your setup: a lot of independent clients with limited need for heavy queries.
About the cost: GAE is cheap if you know how to programm it. I have both EC2 and GAE in different setups, and while they are hard to compare, I believe GAE is cheaper.
IMHO most of the cost of hosting comes from support/management cost. We have a team 10+ developers, but no system/database admin.
I think, starting from app engine may not be good idea for starter for server side developing.
Asp.net ( or php) will be more "efficient": not only source for learning and tutorials but also better for make mistakes and learn better
Once you done with asp.net, and have good pratice about your server side project,
it is easy and very fast move to app engine
good luck
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
I'm relatively new to the web development scene, so please excuse any frustratingly obvious questions.
What I've found myself to struggle with is understanding how all the different technologies of web design fit together - how they all fit into the flow of development and their heirarchy.
I understand the basic html,css,javascript flow. HTML defines your structure and content, CSS comes in and then defines the presentation of said content, and finally javascript adds a layer of interaction and defines how the website behaves. Given that, it's easy for me to see how jQuery etc fit into the picture.
As I move towards making more dynamic sites though, I find myself inundated with trying to learn/balance many web technologies and frameworks (django, mysql, sql, innodb, drupal, rails, php, wordpress etc, etc). I realize that some of what i just listed overlap and serve the same function, but that just goes to show my general confusion with the topic. For example, the django example: I understand django is a web framework that runs on python to help you develop web apps quickly, however, the relationship between the server, html, and python is cloudy to me.
Does anyone know of a good source that can outline how all these puzzle pieces fit together (or feel like offering their description of such matters)?
Thanks :-)
I don't know of any resources that explains this the way you're looking for so I'll just add my take. Maybe we can see where I've goofed.
I like to split the technologies into two camps, Client Side and Server Side.
Client Side is anything that runs on or in the web browser on a user's computer, tablet, smartphone, etc. These technologies include:
HTML (for structure)
CSS (for designing the structure)
JavaScript (for making the structure do stuff)
Server Side is anything that requires a connection to a web server and resources on said machine. This may be a web server running on your localhost as a development machine or a server connected to the Internet. These technologies include:
Web server (Apache, nginx, ...) This is what the user actually connects to via www.example.com in their browser
Server Side Language (PHP, python, ruby, ASP.net, ...) This is what provides access to a physical data storage, like a...
Database (MySQL, SQLite, PostgreSql, MongoDB, ...) This is where the data about your website or app is stored
So, in your example a user would connect to a web server, access a file holding a python script that connects to the site's database and then produces the appropriate HTML, CSS and JavaScript to generate a webpage on the browser's screen.
Obviously this is overly simplified and there's a lot more that goes into it but this is it in a general nutshell.
I would also definitely read this post a lot.
I am creating a website with a friend to try and make some money. Basically, we want to let users aggregate data from different social networking site's APIs (FaceBook, Twitter, etc.) and do some cool things with the data.
My non-developer friend is sold on the Google App Engine because it costs nothing at first, and then you pay as your traffic/data increases. I am torn. I like being able to bootstrap the business like that and have no startup costs (other than time) but I am worried about learning a whole new "programming world" as Joel Spolsky would put it.
I am so comfortable with C#, ASP.NET MVC and SQL Server that I think moving to something like Java or Python on top of BigTable would end up taking about 3x longer to develop (if not more).
Can anyone give me some guidance on this? Basically, I am wondering if there is any way I can have the following with the Microsoft stack:
Free hosting up to some limit of traffic
Ability to scale out at a cost similar to what Google offers with GAE (maybe the hosting service would need to have support for a good scalable persistence solution--like Couch DB?)
For #1, I am OK if that means hosting it on my own server for the ALPHA/BETA phases. For #2 I am hoping that there is a good hosting service out there who can put me on shared hosting servers and charge by the traffic. Does that exist? Thanks!
Unfortunately when it comes to a similar platform then you won't find a MS Stack version. Windows Azure comes close but this is more akin to Amazon's EC2.
The python stack in GAE is really easy to use and was able to make the transition quite quickly. Django is a MVC that is really popular and quite simple to use. It also gives you a ORM to write to BigTable which means you don't actually have to care about it.
The Java implementation is very similar and you can use really well know MVC frameworks for creating your app like Spring
I am also a .NET expert, but I have been using Python-AppEngine for hobby/entrepreneurial purposes specifically because it allows me to bootstrap an new web application at no initial cost. That is critical for me, as I have no budget at all for side projects, and so far, with many deployed AppEngine applications, I haven't spent a penny on it.
Learning a new language can seem like a drag at first, but I have come to find my new expertise in Python to be invaluable. Remember that the best and most employable developers are usually generalists with a broad and flexible palette of skills. My resume features C# and .NET as well as Python and Ruby/Ruby on Rails, and I have gotten very positive reaction from potential clients and employers.
Learning Python was dead easy. Getting a handle on WebOb and Django templates took more effort, but nothing extraordinary. Over time, I built up my own framework layer on top of those things that incorporates the best ideas from Rails and ASP.NET MVC that I missed. You can take a look at it on Google Code, and you will see a number of ideas that specifically borrowed from ASP.NET MVC.
I have developed a site with google app engine using python and django, now I have another similar project to develop.
Well I have got some well-known problems using the datastore:
query: there's no "LIKE CLAUSULE" and GQL is not Sql
documentation is not so clear and easy to find
backup database is not so trivial
django support is not so great (I use google app engine patch)
I'm just a little scared about when my traffic go "into pay mode"
Now, I hope that this site will have a great number of visitors in my optimistic prevision :) so the question is, can an alternative hosting service offer me a professional service like google app engine?
Is it possible to make a professional web site that works starting from a 'conventional' hosting service?
An other stupid question, but I site like this where is hosted??
I'm a little bit confusing about which kind of hosting chosing...
Thanks for help :)
My individual opinion is that App Engine is ideal for prototyping for these reasons:
Free. Nowhere else can you run a web app for $0
Deployment and upgrading is extremely simple
You don't have to worry about backups or networking or anything besides programming
GQL is no problem. There are workarounds. It's a reasonable price to pay for free hosting and scaling.
However, once you think your site is popular, and especially if it becomes profitable, App Engine is not ideal.
Yes it scales. But as your site grows, you always wanting new reports on your data to gain knowledge. This is extremely tough in App Engine. You need case-by-case programming and possibly database changes. That takes time and resources. This is my #1 problem for App Engine for startups or small companies.
You want to control your backup and restore process
It is bad business to be locked in to a sole hosting provider
There is nobody to contact if something goes wrong. Forums schmorums. That's for hobbyists and discussion, not for time-critical problem-solving.
If you plan on having something you think will grow decently, maybe you should launch on something like linode or slicehost, where you have a VPS. That you, you control the instance of django, and have full control over your server. That way, your app doesn't have to contain some of hosting-specific code.
Yes, the initial setup for both may be a little bit of a headache, but you'll be able to create something that is a little more portable
really thanks, for link
yesterday I "discover" that exist IronPython and seems django compatible, or Ndjango for F#, so I love visual studio which one of best developer enviroments (in my opinion) so a good hosting service for microsoft product?
Thanks again I feel you are really an expert developer, so I take really care of your opinion