GWT multi-module application - google-app-engine

I am a GWT beginner, thinking about developing a management software and deploy it on AppEngine.
In my mind there's a "tabbed" user interface.
Tab1= sales; Tab2= invoices; Tab3= stock ... and so on.
I just completed the Stockwatcher tutorial and it's very cool, but now I was wondering on how to organize my code.
I mean, is making a gwt module for each tab a nice idea? For example, I want to load the interface for the 'invoices' tab only when I select that tab. Even if my idea about multimodule is wrong, can you tell me how to avoid having all my code in a "Stockwatcher" class. E.g. i read about composite, but I can't understand.
Hoping you understand my doubts. Thank you all!

If you haven't done yet anything with GWT before or haven't had much experience do not bother yourself with questions how to organize the code. Just make it. Create the user interface and the backing code. Have your application running and then go back and think about the things that could be improved. Look for the code duplication, read few articles on refactoring and try to apply. First you need to create something, feel the joy of creation and form a foundation for further improvements.

Related

How can you build React on top of Drupal?

I've never used Drupal, but have been looking up tutorials online. My client would really like the adaptability of React and to have more flexibility in terms of design. I could make my own database and React app, but I have not studied security (I'm a team of one, so no one for security on my end, either). Security and access to a content management system was the main reason we decided to go with Drupal. However, I would still like to be able to code in React/something I'm familiar with to produce a site I am proud to say I made.
I've been Googling and Youtubing tutorials and help, but not having anyone to ask specific questions is making this difficult.
If anyone knows of a relatively easy way to build a React app on Drupal, I would really appreciate the advice. Or if there is a better way I should go about beginning a project as I've briefly mentioned above, I would also be open to that. Thank you in advance and sorry for the long message!
What you are asking is quite broad in concept and not easy to answer in just one answer post. Try to look for Headless / Decoupled Drupal.
https://www.acquia.com/drupal/decoupled-drupal
What this essentially means is that all the services and the content management are handled by Drupal while the core user experience or the way the site is displayed in a browser is controlled via a JavaScript framework such as React.js or backbone.js. This is achieved via Drupal’s RESTful API service.
Hope this helps.

gae-boilerplate documentation

In my search for a good social login package for App Engine, I am giving gae-boilerplate a try. But I find there is no documentation except the readme file, which I think it is not enough at all.
I have many questions, among them:
Should the boilerplate be used as a library or download and modify as needed?
How should the boilerplate be updated?
What does each model do?
Where should my templates go?
Should I have a different routes file?
Should I derive my Handlers from BaseHandler?
In general, what things should I implement in my pages? For example, I found out that I have to include a csrf_token in all POST requests. It would have been nice to know this in advance, and the many other things that I'm having to find out along the way, and which I implement without being sure if I'm supposed to be doing that.
And some more...
My biggest problem is that Social login is not working, and I feel this boilerplate is a big monster with which I don't know where to start. To make things worse, it is hard to debug social auth from any machine that is not the production one. Thats why I'm desperately looking for some docs.
I have not found anything in SO, and I guess there must be more people in my situation. So, any pointers to documentation that could help to understand gae-boilerplate a little bit better would be very appreciated.
EDIT: I switched to gae-boilerplate in a site that I had previously working. Maybe most of my problems come from the way that I have tried to integrate gae-boilerplate and my existing site. As a result I have tried to treat gae-boilerplate as a library, and keep my own templates, handlers, static files and such.
Thank you guys!
EDIT 2: After trying other options, I have to say that I am very happy with gae-simpleauth. It works really well, and Alex's support is superb.
I will try to answer most of your questions below:
Should the boilerplate be used as a library or download and modify as needed?
You can modify it as needed based on your specific requirements.
How should the boilerplate be updated?
What do you mean?
What does each model do?
User and SocialUser are pretty self explanatory. LogVisit and LogEmail are used for auditing purposes.
Where should my templates go?
In the templates directory
Should I have a different routes file?
No, you can use the existing file for all your routes.
Should I derive my Handlers from BaseHandler?
It't not mandatory but I would recommend to do so. BaseHandler is very handy and provides a lot of good stuff.
In general, what things should I implement in my pages?
What exactly do you mean?
In general, you can use gae-boilerplate as a reference on top of which you will built your own project. Study the code step by step, try to figure out what is the purpose of each file and library used and how they work together. This way you will gain good knowledge of a lot of things like jinja templating, oauth2, etc.
Hope this helps.

how to get a smartclient example on the web?

I'm pretty much totally lost.. I've posted twice on the smartclient forums and gotten no help so maybe the people here are more friendly than their own staff. (it really bothers me but they appear to have the best software for what I'm trying to do)
I'm trying to wrap my head around how I would get one of their examples (the demo showcase ones which I have downloaded etc) on my web host, just to see how it works/play with it, but I couldn't find any forum guides or videos etc on this (documentation is really abysmal for people that don't speak code yet).
Is there some special back-end I need on my web host? Where can I go to figure out how to link the stuff together? Do I have to compile something using java.. etc.
I'm used to just editing stuff in notepad++, uploading it, and hitting refresh, but I'm guessing smartclient isn't that simple, or is it? (I'm just going to use it to make tables from excel spreadsheets that I can filter through, that's it, no fancy application).
Sincerely,
Mr. Totally Lost.
Everything is covered by the guide (page 6) : http://www.smartclient.com/docs/8.2/docs/SmartClient_Quick_Start_Guide.pdf
SmartClient embed everything needed, you will only need a valid JDK installation and the zip provided in their website.

How can I develop a database for users to access via a browser

Years ago (pre-web) I used to be a Fortran developer (yes it was a very long time ago!) but these days I run a small non-IT business. I would like to develop a database application for my clients to access via a browser (or maybe down the line via a mobile phone). I haven't done any programming for a while apart from some VB macros in Microsoft Excel. I would be grateful if anyone could suggest the best language/technology to learn to get me heading in the right direction.
As Neil said in his comments there are dozens of different, valid answers to this.
Usually I would suggest going with a language you already know, but neither Fortran or VBA are really suited for this task, as far as I know.
Personally I would suggest Django, which is a web framework written in Python. It simplifies many common tasks and it is very well documented.
But there are many more possible solutions.
Before I started with a framework I'd break the problem into pieces. If you've never done anything with a database before you'll find that challenging enough without piling web or mobile on top of it.
Model your problem and get a good object or data model in place. Test that thoroughly without thinking about UI. Once you have that, perhaps you can expose it as services that any UI can call.
You'll quickly become overwhelmed if you try to do it all at once.
Here's another thought: If these are paying customers, why not do yourself and them a favor and hire someone that knows how to do this? It's great that you used to write Fortran, but if you haven't kept up you won't be doing your business any good by putting out a bad first effort for customers to see.
Do it right - get a professional. Do your learning on your own time.
You can use ASP.NET and SQL Server to get something online that will allow users to edit a database table fairly easily. They've simplified it to the point where you can drag and drop the necessary controls (GridView and a SqlDataSource for instance) and define your datasource in a wizard for most simple table CRUD functionality. Basically give users the ability to edit a table without writing any code.
If you need to do something a little more difficult it's easy to write code that will add functionality to the original drag/drop stuff you did.
There are lots of good resources out there for asp.net and C# also, so it will help you get up to speed quickly.
Keep in mind that I work almost entirely with .NET/SQL Server so my opinion will be slanted towards them...

How to write a Large WinForms application?

I'm going to write a rather big/complex WinForm application such as Paint.NET, SharpDevelop, etc. I think one of the most important things to build such an application is to structure the project properly to increase maintainability and control the complexity.
So what kind of patterns or practices show I use? Any blog posts, papers, open source projects are welcomed. I'm trying to learn something from SharpDevelop but it's rather huge for me to step into.
PS: I'm an experienced programmer formerly targeting to web developement(asp.net, rails, etc.). So I know some design principles and how to use them when implement business logics. Maybe I really need now is a sample to get started with a WinForm application so that I can realize how to handle the menus, controls and others. I've learnt something about the MVP pattern but still unconfident to start a large/complex application.
For big projects the methodology and the tools you are using are equally as important as the architectural design. You need to set up a source control system (like SVN) from day one. Also, it is very good to have a standard build procedure and perform builds in a daily basis. The build procedure should include running all tests, which you should also put some effort in implementing from the start.
Regarding the structure, I believe the single most important thing is to divide your project into building blocks with mimimal dependecies on each other. This way you will be able to think about one small part of the system at the same time and not have to face the full complexity of it. It will also help delegate some work to a fellow programmer, if you have this chance.
In order to get started, I recommend that you implement first something minimal as quick as possible. Then work to make it better and add functionality. This will keep you motivated as you will have something concrete to work with. It will also help you identify major design flaws and important issues early enough to correct them.
This is a good beginners guide from Microsoft itself:
http://msdn.microsoft.com/en-us/beginner/default.aspx
check the Windows track there.
After mastering basics - and since you are an experienced developer - you can check this book "patterns & practices Application Architecture Guide 2.0" from Microsoft also.
I would imagine that many of the techniques that make for successful web projects will translate to Winforms projects. Start small and grow the application incrementally. Try to keep the entire application building/working while you add features one at a time.

Resources