Starting a new web projects - web

I`m starting a new website project, and I would like to hear your experience and recommendations for the correct tools to be used. I have no limitations, aka open source, commercial, languages, etc.
Website features:
User generated content
Administrator content managment
Custom API for frontal and 3rd party usage of the website content
Selling physical and digital products
There are a lot of frameworks out there, such as MVC, Symphony, django, drupal and many more.
I would like to here from first hands experience what worked best for you, and more importantly what didn't.

Languages that I suggest to you:
PHP
ASP.Net
HTML
Python
Javascript
Java
Products:
Microsoft Visual Studio
Eclipse
Netbeans
Apache
ViM Or your favorite text editor
If you want to choose a framework do like this:
Python - Django
ASP.Net - MVC, LINQ, WPF, Silverlight, .Net in general...
PHP - Zend Framework
Java - Struts
I also suggest you to read some books about these suggestions that I gave to you. ;)

Use DotNetNuke. It is webforms based but is stable, with rich functionality and vibrant community.

it really depends upon you
I recently finished a project & used Java Struts 2 & MySQL. Simple & clean it went well.
Before that I did a project in Java Tapestry, Spring & Hibernate and MySQL as a database.
The thing is that you should keep things simple & use the tool/framework you are best with & plus consider what level of complexity is required by the problem domain.
Sometimes simple Servlets & JSP would suffice well you wont need any fancy frameworks.
The same goes for .NET & PHP or Ruby developers.

Related

XPages for iPhone6: Which controls or framework do you use?

Just got a request for a fresh XPages project where an existing traditional Domino Web application should be modernized and mobilified (iPhone 6 being the target).
I'm comfortable with Boostrap, especially Mark Leuksinks add-on, and that is my first gut feeling.
On the other hand I'm aware of specific Mobile Controls, both from IBM and from Teamstudio, and was wondering if there is a 'best way' you would recommend.
I can pretty much control everything on the server. I'm aiming for quickest effect for minimum effort.
TeamStudio tools are good if you want offline or do other development that does offline (XControls can also be used online, so could give consistent look and feel and development experience).
XPages Mobile Controls require a single XPage in order to get transitions. So if it's a large application, that can make the XPage quite cumbersome. You need to become comfortable with the settings on each mobile page, to know when to refresh and when not to.
If you're familiar with Bootstrap and can "encourage" the end users towards your preference, then as a developer, that would make sense to me (leveraging existing skills means quicker development).
If you're comfortable with Bootstrap and responsive design, we'd certainly encourage going down that route. I take it you are aware that Bootstrap is now part of the XPages Extension Library on OpenNTF ? It was first released there in Nov 2014 and has been continuously updated since. And it will migrate to the core XPages runtime as part of the next GA release
I would use the DAS components and let Domino read/write JSON and implement the frontend using the IONIC framework. It uses AngularJS as JS framework, is conceptually not that different from Bootstrap l, but has all the hooks (using Cordova) to use native phone features.

Lotus Notes Application, Web Based Converting

Does anyone have tips or an ebook that can give me a good foundation on how to create applications in lotus notes using web browsers instead of clients. Links or tips are much appreciated.
Thanks!
Books are a good starter. But you'll find there is alot more to it than you see in books. So, here is a quick list of places to look.
Books
You've got these options for books (all downloadable as eBooks to)
Classic Web development prior to Notes 8.5 -- Reviews here and here
Latest Web stuff with Xpages if you have Notes 8.5+ (kindle/paper)
There are IBM wiki's (html). But have found the IBM wiki experience underwhelming. (The adjectives "half-ar$ed" and "piece-meal" comes to mind alot when reading these.)
IBM's redbook site (pdf/html) has better produced content than the wiki's.
Sites
One of the best web development tip/technique sites for the trickier problems is codestore.net and nsftools.com
OpenNtf a well used site for free code and solutions written by alot of smart people.
Quite a few good bloggers have "coagulated" on planetLotus
Try Searching for XPages in Google. Or start here
If you enable http on the server, you should be able to see your domino applications from the web. You then need to modify them to make them a bit more web friendly. The basic technique for this is to have 2 design elements with the same alias, hide one from notes and the other from the web. This will make it a bit easier to make it functional from both the client and the web browser.
Other functionality which makes this a bit easier would be 'Pass through HTML', the Domino CGI Variables and the 'WebQueryOpen' and 'WebQuerySave' events. As Jasper points out, XPages is the new sparkling way to do this, but it might not be an option for existing systems (It requires the latest version of Domino server). Good Luck!
What version of Domino are you running? If it's an 8.5 variant, I would suggest you use XPages to bring your old client apps to the web (XPages are not an option in releases prior to 8.5).
As to how you go about this, that's well beyond the scope of an answer on Stack Overflow: it's a book in and of itself! To learn about web development with XPages, I suggest visiting some of the well-known sites out there, and perhaps picking up a course or two. Here are some links:
http://xpages101.net
http://www.qtzar.com/blogs/qtzar.nsf/htdocs/LearningXPages.htm
http://notesin9.com/
(Also, IBM publish a book on XPages development, although I've not read it).
With regards "classic" Domino development, your best bet is to view your existing Notes app in a web browser and then start hacking on the default HTML generated (which is nasty). The best single resource out there for classic Domino web development tips and hacks is Jake Howlett's Codestore
Start small, build yourself a small database with a subset of data and explore what you can do. I've been a notes client developer for 10+ years and doing domino web work for last three or four years and still on steep learning curve. Its a very powerful platform but you also need to know html as on many occasions the html that you see in the browser helped me pin down the faults in my application code.

Examples of Struts2 applications

I am working on a static analysis for detecting security vulnerabilities in web applications, and I am looking for some web applications to run my analysis on.
More specifically I am right now looking for open-source web applications that use the Struts2 framework, but I have a hard time finding such applications.
Does anyone know of some more or less complete and open-source web applications written using Struts2 (or possibly just plain JSP)?
The very complete and stable Struts2 application i use for log file analysis is KonaKart. The advantage is that you can set it up on your server, including demo data and configure it and use it as you wish.
In terms of openness:
"Only the customizable parts of KonaKart are open source. These include the Struts action classes and
forms, the JSPs, the payment modules, order total modules, shipping modules and the GWT One Page
Checkout code. They are shipped under the GNU Lesser General Public License."
If you need 100% open source it is not for you.
Projects Using WebWork or Struts2
https://cwiki.apache.org/S2WIKI/projects-using-webwork-or-struts2.html
Others
http://api.cnn.com/
http://www.allhomes.com.au/
Check these tutorials. there downloads are available. link1, link2

Simple CMS for building a small company presentation-website

I'm looking for a free, simple and efficient CMS for building website for a small company.
Prerequisites are:
The website is nothing more than a presentation - with informative content and gallery. The website should contain a nice-looking gallery with js/ajax flavour. Nothing more is planned for now, but it would be nice if CMS would feature some more generic modules/extensions in case I would like to use them in future.
Design templates should be easy to adopt and change.
Coding as little as possible.
I thought about Drupal, but is there any other CMS which would better fit to these requirements?
Please don't list available CMS-es here. Give it a reason!
Wordpress is nice too :p It has a big community behind...
I say Drupal.
Drupal is really good in content management. You can create different content types, and assign them fields (in Drupal 6, you will need the CCK contrib module). You can create a gallery with Views and it's output plugins. There are dozens of them, using different layout and JavaScript effects (mostly different jQuery plugins, but there are plugins for lightbox and thickbox also).
Drupal has a group of themes called "starter themes". These themes are half-ready, and it is very easy to create your own custom themes with them. All you need is to create a subtheme. (Basically making an info file and copy some other files. There are really a lot of howtos out there.) There are also starter themes for 960 (CSS framework), so you can make the site layout really fast. The most famous starter theme is called Zen. You might want to use that.
Except for the theme, I don't think that you have to write any code. Writing a theme for Drupal is not hard, since it uses PHP to render the themes.
Still in beta (0.5) phase but looking very promising: Orchard, a new ASP.NET MVC based CMS created by the people from Microsoft.
Orchard will create shared components for building ASP.NET applications and extensions, and specific applications that leverage these components to meet the needs of end-users, scripters, and developers. Additionally, we seek to create partnerships with existing application authors to help them achieve their goals. Orchard is delivered as part of the ASP.NET Open Source Gallery under the CodePlex Foundation. It is licensed under a New BSD license, which is approved by the OSI.
The intended output of the Orchard project is three-fold:
Individual .NET-based applications that appeal to end-users , scripters, and developers
A set of re-usable components that makes it easy to build such applications
A vibrant community to help define these applications and extensions
In the near term, the Orchard project is focused on delivering a .NET-based CMS application that will allow users to rapidly create content-driven Websites, and an extensibility framework that will allow developers and customizers to provide additional functionality through module extensions and themes.
It depends on what kind of CMS you are after
pity you don't like programming otherwise i would suggest django, an awsome CMS framework
if you are after something simple like a few static pages and a news feed or something like that then wordpress might suit your needs well, except i have found i don't like how it handles gallery's
if you need anything more, like more advanced custom content types for products, i would recommend Joomla or Drupal, and have plug-ins that has good support for photo galleys
Joomla! will probably be a better choice. It is very easy to use and is highly extensible.
Have a look at:
CMS Made Simple
CMS Made Simple provides a fast and
easy way to create a professional web
site and manage its content, whether
it's for a small business or a
multinational corporation!
Features
General Features
SEO Friendly URLs
Integrated and online help
Modular and extensible
Easy user and group management
Group-based permission system
Full template support, for unlimited looks without changing a line of content
Easy wizard based install and upgrade procedures
Minimal server requirements
Admin panel with multiple language support
Content hierarchy with unlimited depth and size
Integrated file manager w/ upload capabilities
Integrated audit log
Friendly support in forums and irc
Small footprint
Design Features
Accessibility WAI, WCGA, Section 508
XHTML and CSS compliant
Auto-generated menu
Every page can have different theme
Design protected from content editors
Multiple content areas on one page
If you have a little C# experience then you can try Umbraco.
It is a very powerfull CMS written in C# for ASP.NET
It is one of the most powerfull both free and commercial CMS out there.
i recommend to check out the Feature Matrix so you can see if it fulfills your needs.
As an example http://asp.net uses Umbraco
have you tried DotNetNuke ?

Which technology for business web application?

I am pondering on building a CRM for consulting business and am looking for best technology to build on. It will be web based with maybe a plugin that integrates with Outlook. What I don't want is to spend a lot of time doing HTML-fu and CSS-fu just to get basic grids, data entries and so on up. I don't mind picking up a new language. Preference goes to FLOSS projects. If it works with Python + 50 points :)
Projects on my mind:
Google's GWT - great ecosystem. Pity that it is in old-fashioned Java, but there's Pyjamas too!
Django - has all the nice widgets for web, but requires maintaining essentially a dual code base - backend language and front-end. Does not work with JS challenged browsers :(
Any suggestions how to quickly build and maintain web based business app are welcome.
My vote is with Adobe Flex. Some high-level advantages of flex:
Browser compatibility: any browser with a flash player will run the site (currently over 90% I believe). No need to fudge with html/css.
Data binding: the flex framework's strongest suit is dynamic scalable data binding.
Server-side technology: Flex can couple with any server-side technology for back-end operations (Java, PHP, RESTful web services, and Coldfusion to name a few)
Open source: flex is open source (however, buying the eclipse-based Flash Builder is usually a good idea)
Customization: every flex component is completely customizable and skinnable. Nice for business apps that do not want to simply look the same as everyone else.
Desktop: Using Adobe AIR Desktop Environment users can interact with the OS.

Resources