Client-side vs server-side templating for large enterprise applications - jquery-templates

What makes most sense for large enterprise applications involving several jsps and many transactions (like a commercial banking application or a healthcare application with huge amounts of data) w.r.t templating? Is it just a matter of personal choice or is there a strong reason to lean towards server-side templating?

Client-side templating is more matter of UI and should not be confused with backend transactions in any way. When your site does something it is still doing HTTP POST which is processed by the server logic. I saw the development more like a natural continuum to build easier to use web enabled by the modern browsers and Javascript engines.
You might find some more info here:
https://github.com/leonidas/transparency/wiki/Frequently-Asked-Questions

Related

Read-access to SAP's DB directly?

We're an SME with SAP implemented. We're trying to use the transactional data in SAP to build another system in PHP for our trucking division for graphical reports, etc. This is because we don't have in-house expertise ABAP development and any SAP modifications are expensive.
Presently, I've managed to achieve our objectives with read-only access to our Quality DB2 server and any writes go to another DB2 server. We've found the CPU usage on the SELECT statements to be acceptable and the user is granted access only to specific tables/views.
SAP's Quality DB2 -> PHP -> Different DB2 client
Would like your opinion on whether it is safe to read from production the same way? Implementing all of this again via the RFC connector seems very painful. Master-Slave config is an option for us but again will involve external consultancy.
EDIT
Forgot to mention that our SAP guys don't want to build even reports for another 6-months - they want to leave the system intact. Which is why we're building this in PHP on the top.
If you don't have ABAP expertise, get it - it's not that hard, and you'll get a lot of stuff "for granted" (as in "provided by the platform") that you'll have to implement manually otherwise - like user authentication and authority management and software logistics (moving stuff from the development to the production repository). See these articles for a short (although biased) introduction. If you still need an external PHP application, fine - but you really should give ABAP a try first. For web applications, you might want to look into Web Dynpro ABAP. Using the IGS built'in chart engine with the BusinessGraphics element, you'll get a ton of the most custom chart types for free. You can also integrate PDF forms created with Adobe Livecycle Designer.
Second, while "any SAP modifications are expensive" might be a good approach, what you're suggesting isn't a modification. That's add-on development, and it's neither expensive nor more complex than any other programming language and/or environment out there. If you can't or don't want to implement your own application entirely using the existing infrastructure, at least use a decent interface - web services, RFC, whatever. From an ABAP point of view, RFC is always the easiest option, but you can use SOAP or REST as well, although you'll have to implement the latter manually. It's not that hard either.
NEVER EVER access the SAP database directly. Just don't. You'll have to implement all the constraints like client dependency or checks for validity dates and cancellation flags for yourself - that's hardly less complex than writing a decent interface, and it's prone to break every time the structure is changed. And if at some point you need to read some of the more complex contents like long texts, you're screwed - period. Not to mention that most internal or external auditors (if that happens to be an issue with your company and/or legal requirements) don't like direct database access to a system as critical as this one, which again can cause lots of trouble from people you really don't want to mess with. It's just not worth it.

Evaluate Asp.Net Enterprise CMS (Sitefinity vs N2CMS)

We are looking for a Asp.net CMS to integrate in our existing Enterprise-Webapplication. Some requirements:
Full integration in Visual Studio 2010 and our existing Application (so no Umbraco)
Common ASP.NET Web Forms Developing practices (Global.asax, Masterpages, User-/Custom-Controls)
Security (FormsAuthentication, custom Membership-/RoleProvider)
Very flexible and extendable (good API)
Lightweights CMS with good performance (thousands of simultaneous requests)
Easy content editing
At the moment we are looking at Sitefinity and N2CMS.
I really like the N2CMS approach (Integrate CMS engine in application) but is it mature enough for "real" usage scenarios? Is there another alternative to N2CMS?
Yes, N2 is mature. Company I work for is using it for more than three years now for various projects, and it is still our platform of choice. Best thing about it is that it is not CM System in a classic manner but rather CM Framework with several layers, meaning you have many things implemented, but they are not part of the core. As a result, you can change almost anything that is not usually changeable in other CMSes.
Also, whole architecture is organized in such a way that you can easily override almost any system behavior with your own implementation. Example? Imagine you reached 100s of news entries under News folder in site tree, and you decide to completely hide them from site tree, instead implementing plugin for manipulating them. Solution? Attribute-decorated class with 10 lines of code for hiding items in a tree based on your custom rule expressed in C# code.
I think N2 is pretty polished product and that you can go for it without too much worries.
We too are using N2. We've used it for a campaign site and now we are building our companies corporate website and the 20-or-so country specific subsidiary sites.
It is very fast to develop on (if you are a .net programmer it is a treat, an html-guy might find it difficult). Extremely flexible and extensible. And so far it seems to be very mature and stable. It has less features in terms of workflow-management than e.g. sitecore, but then again most customers put a lot of emphasis on those things, when they evaluate options, but end up not using them. So I don't think that is a problem.
The problem we are having is that it doesn't properly support preview, so website editors cannot preview their changes before publishing them. It is supposed to be done at some point, but there is no word on when.
Full disclosure, I work for Telerik and I'm the Sitefinity Evangelist.
Full integration in Visual Studio 2010 and our existing Application (so no Umbraco)
This is a difficult item to claim with a blanket statement.
I don't know much about your existing application. Our customers have accomplished a lot of Sitefinity integrations with various applications. This could be done through web services, custom controls or simply accounting for external URL's in Sitefinity's sitemap. Feel free to post to our Sitefinity forums for recommendations for your specific scenario.
Regarding Visual Studio integration, Sitefinity includes Telerik RadControls and OpenAccess ORM. We also try to align ourselves closely with traditional ASP.NET technologies.
Common ASP.NET Web Forms Developing practices
Sitefinity Templates = ASP.NET Master Pages
Editable CMS regions = ContentPlaceHolders
Sitefinity Widgets = ASP.NET Controls
Sitefinity Themes = ASP.NET Themes
We make the marketing claim "if you know ASP.NET, then you know Sitefinity". However, realistically all products comes with some learning curve. As much as possible we try to align ourselves with the experience ASP.NET developers already have.
Security (FormsAuthentication, custom Membership-/RoleProvider)
Sitefinity's authentication is based on traditional ASP.NET Membership & Role providers. We've included a couple (Sitefinity & Active Directory) but you can extend with your own.
Very flexible and extendable (good API)
Our API is LINQ enabled and we also have a Fluent API. We also have a full RESTful web service API.
Lightweight CMS with good performance (thousands of simultaneous requests)
Our own Telerik web sites run on Sitefinity, and many of our customers support web sites that handle a large volume of traffic.
However, I'm not sure what constitutes "lightweight". Many CMS's have little overhead, but also do very little. We've tried to deliver a lot of features and end-user friendliness with Sitefinity. This comes at the cost of some overhead.
Managing the balance between a CMS that "helps you" and "gets out of your way" is a constant challenge. The best I can promise is that we're aware of the challenge and we're doing our best to deliver effective results.
Easy content editing
Judge for yourself. Even better, download the product and let your content editors experiment. We welcome the comparison. Over & over again, this becomes our differentiator.
--
Hopefully this post doesn't sound like a lot of evangelist BS. I've tried to be accurate with my answers. Best of luck with your project.

What is the technology behind Google Buzz?

I am really curious to know how Google Buzz and Facebook implement their comment feature which is being updated instantly. is it similar to Google wave technology? are there any resources to learn that technology and implement it to our website?
Thanks !!
I work on the Google Buzz team, so hopefully I can give you a good answer for our side of the equation. I obviously won't go into any of the confidential backend stuff, but I'm happy to address the open standards we use and the open source projects involved.
Starting in the UI space, we use technologies like Closure and GWT to build rich, responsive user interfaces. We use a technology vaguely similar to what you see in the Google App Engine Channel API to push real-time updates to the users. GAE is a really good choice for real-time web applications right now.
On the API side of things, we try to use open standards wherever possible. We use the Atom syndication format to enable feed readers to consume Buzz content, and Pubsubhubbub to enable real-time pushes of the content. In fact, we use Pubsubhubbub for our activity firehose — it's possible to subscribe to the entire real-time stream of all updates that happen in Buzz. Needless to say, this sends a massive amount of traffic to your application. On the JSON side of the equation, we use Activity Streams, and we're actively working with the community to refine and improve that specification. Our Atom feeds include Activity Streams as well, but the focus there is on syndication. All our secured API endpoints for Buzz use the OAuth standard for authorization.
On the backend, I think the only thing we're willing to say publicly is that Protocol Buffers are pretty awesome.
The technology is called Real-time web (http://en.wikipedia.org/wiki/Real-time_web). You have many application models to achieve real-time and one of them is Comet (http://en.wikipedia.org/wiki/Comet_%28programming%29). Good server to use it in your implementation is APE (http://www.ape-project.org/). It supports many common javascript frameworks. More you can check in provided links.

Multi language CMS?

Is there any CMS such as expression engine or wordpress that allows a user to click a button and convert all the text to another language (it would have to be human generated otherwise it has too many mistakes probably).
I'd like to know if there are any good solutions out there that work for real world use, in like business company websites.
Tridion CMS is designed to assist in website translation. They even have translation services to help you through the process of translating your content. It is not a cheap solution but is a viable solution.
As noted above - this is a huge topic and not easily answered briefly. But here are some things to consider...
NO CMS on the market today elegantly interoperates, out of the box, with translation technology for use in real-world translation projects. Reports from clients we've worked with have even raised concerns about the SDL integration.
At best - a handful of CMS's either offer very light-weight features that "appear" to help (side-by-side editing that prevents use of TM) but don't scale or have modest oem connectors to captive translation providers (CQ5<>TDC).
If your needs are modest - these might work fine.
But if you're serious about localization and have a moderate to high volume of content and want to work with any translation provider - you need a proper, rich, scalable integration between your CMS and the TMS (translation management system) used by your Translation firm (LSP).
Regrettably - these are scarce. We do nothing BUT build these connectors and use a neutral platform to provide direct integration all sorts of translation providers and technologies, the full SDL suite included - and still we've only been able to build a few rich CMS plug-in connectors because they are very complicated and require substantial development effort - IF they are going to be useful.
But the CMS choice you make should be driven as much by your broader needs. Localization should only be one facet of the decision process.
I guess the harsh reality is that there is NO CMS that will do what you descibe without smoe modification or a connector.
RK
I would recoomend you to use Kentico CMS.
See the video on Multilingual support in Kentico CMS:
http://devnet.kentico.com/Blogs/Martin-Hejtmanek/March-2010/Webinar-5---Multilingual-support-in-Kentico-CMS.aspx
Kentico CMS offers multilingual functionality including Right-to-Left languages and Eastern languages. Please see some "live" examples:
Site in 10 languages (incl. Chinese) : http://www.chep.com
Site in 7 languages (incl. Japan, Korean): http://www.wayoutback.com
Arabic: http://www.scb.gov.sa/
Hebrew: http://www.medicsfile.co.il/
Chinese: http://www.royalcaribbean-asia.com/?lang=zh-CN
Hindi site: http://www.rajasthantourism.gov.in/
More details on multiple languages support:
http://www.kentico.com/cms-asp-net-features/Content-management/Multiple-languages.aspx
Kentico also offers Translation Management:
http://devnet.kentico.com/docs/devguide/index.html?translation_management_overview.htm
Especially the translation status overview makes it really easy to manage multilingual web sites. If only a part of web site is translated then you can set to combine the rest with the original language without adding the missing pages in it manually.
By default Hippo CMS utilizes Google Translate, but you can plugin your own translation engine / review process. See for more information: http://www.cmswire.com/cms/web-cms/hippo-cms-75-launched-introduces-drag-drop-layout-localization-channel-management-010391.php/
If your organization already uses SDL for translation services then using SDL Tridion is a natural choice because of the built-in connector to send Tridion content for translation using a right-click on the GUI item. After translation, it is updated in the CMS and the author is notified.
SDL Bought Tridion a few years ago and has been maturing this solution since then. Today it is available in the current release, Tridion 2011 SP1, and is compatible with both World Server and Translation Management Server.
This is all human translation and any solution that honestly recommends machine translation for final content is not serious about it.
Drupal 8 is the best option available for Multilingual capability... Although you have to wait a little bit for its release, You will get a good result. Also earlier versions of drupal including Drupal 7 supports multilingual functionality.
But Drupal 8 will have more features...With Drupal 8 multilingual functionality, it is possible to translate anything in the system.
The multilingual functionality provides language configuration, assignment and detection functionality. It also provides a user interface to the existing back-end support for automatic software translation. Now it’s more easier to translate contents with the build-in user interfaces.
Plz refer the link for more detailed info Drupal 8- What’s new and Expected Inside
Day Communique (CQ5 - now ADEP), in combination with a third-party translation vendor, can do this job.
In Communique/ADEP, you manage your pages in whatever native language you choose. Once they are done, you kick off a translations workflow. This will go to your translation vendor (of which there are several). The vendor will have a human translate it, and possibly also use software to speed up the translation process. It will come back to you for approval in the workflow, if you wish. Otherwise, it will just be published to your web site.
So yes, from the user's perspective, one click can indeed translate a page in multiple languages, and publish it to multiple web sites. Our company is doing this, only we are doing our own in-house translation.
I have not used this, but I looked into it awhile ago and this looks to be the best solutions I have seen.
http://umbraco.org/blog/2009/3/25/microsoft-translator-and-umbraco
That is not how major businesses do translation. It's good for quick and dirty, general idea translation, but it's not for anyone serious about messaging to multiple languages and cultures. Typically, businesses work with translation vendors and grow translation memories that help to guide content authors to creating a consistent message and to reuse content (keeping translation costs down).
This is a big subject, not a small one. Honestly, I'm kind of flabbergasted at how to answer this question, so I'll stop here.

SaaS-company structure

What is the most typical structure of business where you want to develop several web services? Should one establish a company for each of them or keep under one? I would like to hear your experiences maintaining such situation, keeping in mind the global focus.
By far the two most critical sets of issues determining the answer to this question are legal and financial (including, but not mainly, accounting). So it's hard to see how this question fits with the intent of this site.
It is advised to provide more background information on the topic. Business plans for SaaS companies can range from large cloud computing service vendors (with integrated solutions) and up to business analytics providers targeting specific market niche.
Business is a bit like programming: Keep It Simple (Stupid). Do not create multiple companies, unless there is a good reason to do it.
If You Planning to use python, you can use Django to build saas application,
this video Build SaaS application in Python django will explain about getting started with Sass.
Thanks