Alternative to Ria Services - web-services

Hi I'm looking for another approach than use Ria Services with silverlight.
We are using Silverlight 4 and .NET 4.0
Have someone make any nice solution with shared assemblies (maybe linked files so domain logic are spread). And maybe any nice framwork to make communicating with the wcf services in a clean way?? It would be really nice if it could support preservereferences :)
I'm looking for links and blogs.
I prefer to not use Ria Services cause its Data Driven mind with need to implemmenting ID's everywhere and lack of support for value objects. I'll also using MVVM so all the logic to undo, notify and so on isn't used.

I would take a look at DevForce by IdeaBlade ( http://www.ideablade.com/ ).
The DevForce product has been around for a number of years and definitely has MVVM support. I looked at it for a project recently and I found the team very helpful. There is an evaluation light edition so you can try before you commit to a purchase.

Related

Is Managed Addin Framework alive

I need to implement solution with add-ins executed in their AppDomain. I came across MAF, which is - by description - what I needed.
However the documentaion and its CodePlex project seems to be a bit outdated, some pages in docs do not exist for "Current version" of .NET.
I also found posts about gotchas and complexity of MAF.
So I'm now not sure if I should use it or rather do all the work by myself (add-in management, loading/unloading AppDomains, etc).
Any thought and/or experience appreciated
MAF is a supported piece of the .Net framework, but it hasn't received much attention in years.
Pros
Supports out of process/app domain loading of Addins
Supports backward compatibility for AddIns
Cons
Complex (Requires 5 DLLs in the pipeline)
Requires investment in tooling (You need to update/maintain your own copy of the Pipeline generation code)
Hasn't received any updates in functionality since it was released
There is not a lot of information on the web on best practices or issues people have run into
While there are more cons in that list, it does work and mostly does what you expect. My suggestion is to try it out and see how it works. At the end of the day, the consumers of your API are using an interface and you can always swap out the MAF layer in the future and your AddIns wouldn't need to change.

Web Services using C++

I am building a server-client application that involves heavy signal processing (e.g. FFT). I have a working application written in C++/Qt, where everything (signal processing and other calculations) is done in client and server just sends raw data. Now I feel it would be easier to implement these features on the server. So, that maintenance becomes easier.
As I am doing signal processing, I think I should stick to C++ for performance. But I am open to new ideas.
Constraints:
I need type checking so javascript is out of discussion.
Scaling includes adding more server and each server will have at the max
10-12 users. So, Hardware cost is important. I cannot use x number of
i7 processors.
No option of using cloud services.
So, right now my question is as follows:
How can I create web services using C++ for Linux server? (Although cross platform is not important, I would appreciate if I can achieve it.)
EDIT [02:09:2015]
Right now, I think the choice is between poco and C++ Rest SDK. I feel I should go for C++ Rest SDK. Mainly because it has only those features that I need. And Also it is supported by microsoft and uses boost internally. So, I feel in future, this might be well integreated with standard.
You could use cross-platform Poco library to implement HTTP server, it is really straightforward with this framework, and they have a lot of examples. You can also use JSON serialization (like rapidjson library) to implement REST service on top of HTTP - this way your Web service will be accesable by most of the modern Web frameworks.
You might want to take a look at the C++ Rest SDK, an open source, cross platform API from Microsoft.
Like #nogard suggested, I also recommend POCO for now. It's the most serious and feature-full solution. Given you mentioned Qt, I suggest you to take a look at Tufão.
EDIT:
I forgot to mention one comparison of mine on the C++ HTTP server frameworks.
If you directly handle HTTP requests, you might loose the functionality what Web Servers does well what it was build to do. I had a similar issue, what I did was wrap up my Qt c++ code inside a PHP extension. In your case you can do the same. Wrap your logic inside what ever technology you are about to use, doesn't matter it's PHP, net , Java or anything else.

Which technology (Spring Roo / Django) to build my 'CMS-like' application on GAE?

I would like to create my company based upon a tourism project (WEB 2.0 / CMS like).
Firstly, I want to argue why I think, in my case, that I should develop it (from scratch, but with a good plateform or tool). Indeed, I think that today (but maybe I am wrong...), some tools (or plateform...) are very powerfull and we can be very productive with it.
Moreover, these requesite 'could' jutify to implement my own software :
- my software may interact with other applications (or other tourism database)
- I need to do an 'inline administration' such as MAGNOLIA (not all CMS have it I think)
- I have no monney to buy one good CMS doing the work I need (such as Alfresco, or Magnolia or Liferay...)
- I think that for a long term project, it could be more rentable to develop it in order to have a better control on its evolution.
- I would like to use GAE because it is a cheaper and more flexible solution for the hosting (I do not think that all CMS work on it)
Secondly, now, if you agree with me (but if I am wrong about the liscence, or other solution, tell me please), I really like some help about the technologies...I think that SPRING ROO is a very good tool to develop my CMS. But maybe I should use DJANGO (can you argue about the choice between these 2 solutions to develop my software ?).
My CMS functionalities needed are mainly :
- versionning of the articles (talking about touristic places...) and a repository for them.
- a search (Solr is include in Spring Roo)
- using the AJAX technology (quick refresh)...I would like to use GWT
- permissions (administrator, visitor, contributor, manager...)
- multi-langage and maybe multi-domain websites (or I should have a big portal that give acces to all countries)
- a Backend management for the adverts (I am not sur if delegating this task to dfp (DoubleClick For Publisher) is a good idea ?
- User authentication (LDAP)...I do not know if SPRING ROO manage this ?
- Having simple workflow (such as editing, validating then publishing the article...)
- Think about Mobile App (Android)...so I think that if I choose JAVA, it will be easier to 'translate' on the Android Plateform...
Then, I am sorry if there is a lot of 'topics' in my thread but it is very complicated for me. So I would like to know if, as supposed, I used SPRING ROO + GAE + GWT, so I should use BIGTABLE (the Google NoSQL) ?
At last but not least, I have not found a website that explain how to create my own CMS...what I want to know is how to do the architecture of the software, because there is a lot of technologies interacting (OSGi, Solr, JPA...) and I do not masterize them, so I would know in what order do I need to process...
For the security part, do you think that taking care about the XSS injection is enought ?
To conclude, I know that it is difficult to help me because I ask a lot of things, but here I am now...and in order to explain in what context I am, I would like to take the time to learn 'interesting technologies' because if my project fail, I would reconvert myself in an 'expert' of the tool I have learned (ready to spend until 6 month, 24/24, 7/7 :D to create my CMS-LIKE).
Thank you,
I would suggest to avoid inserting too much information in your question :) Better throw smaller questions so people answer's are more suitable to your problem.
If you plan to deploy on GAE, well my answer is:
GWT for web-dev platform (I don't use neither GXT nor SmartGWT)
Objectify (for persistence on GAE only, kind of vendor lock-in but a good choice)
Use Google App for business and use their OpenID to handle authentication (will reduce a lot your work stack, and especially security concerns).
Optionally, you could use a framework to assist your presentation layer like GWT-platform which is really great. They also offer a nice command pattern implementation. The framework as it's limitations but the guys working for the project are just great.
Try to stay away from Spring-Roo for production app. I tried a few prototypes, buy going further is hard. At least it was in my experience.

How does one port c++ functions to the internet?

I have a few years experience programming c++ and a little less then that using Qt. I built a data mining software using Qt and I want to make it available online. Unfortunately, I know close to nothing about web programming. Firstly, how easy or hard is this to do and what is the best way to go about it?
Supposing I am looking to hire someone to make me a secure, long-term, extensible, website for an online software service, what skill set should I be looking for?
Edit:
I want to make my question a little more specific:
How can I take a bunch of working c++ functions and port the code so I can run it server side on a website?
Once this is done, would it be easy to make changes to the c++ code and have the algorithm automatically update on the site?
What technologies would be involved? Are there any cloud computing platforms that would be good for something like this?
#Niklaos-what does it mean to build a library and how does one do that?
You might want to have a look at Wt[1]. Its a C++ web framework which is programmed more or less like a desktop GUI application. One of the use cases quoted is to bring legacy apps into the web.
[1] http://www.webtoolkit.eu
Port the functions to Java, easily done from C++, you can even find some tools to help - don't trust them implicitly but they could provide a boost.
See longer answer below.
Wrap them in a web application, and deploy them on Google App-Engine.
Java version of a library would be a jar file.
If you really want to be able to update the algorithm implementation dynamically, then you could implement them in Groovy, and upload changes through a form on your webapp, either as files or as a big text block, need to consider version control.
The effort/skillset involved to perform the task depends on how your wrote your code. If it is in a self-contained library, and has a clean (re-entrant, thread safe) API, you could probably hire a web developer (html/php/asp etc) to write the UI interface to the library for a relatively small cost. The skills required would be dependant on the technologies you wanted to use. For Windows development I would suggest C#/ASP. The applicant would require knowledge of interfacing with native libraries from a managed language. This is assuming that you dont mind the costs of Windows deployment for your application.
On the otherhand, if the library is complex or needs to be re-written to support the extensibility you are looking for, asking here will not get you much.
BTW: here is a great article on Marshalling if you chose to implement using C#/ASP
http://msdn.microsoft.com/en-us/magazine/cc164193.aspx
First, DO NOT USE PHP :D
I used it for some projects (the last one with symphony framework) and i almost shoot my self !
If you are very familiar with C++, ASP .NET could be a good solution because if you like C++ you are going to love C#.
Any ways, I personally use Ruby on Rails for 6 months now and I LOVE IT. I won't write you a book here but the framework is pure gold !
The only problem is that Ruby is a very special language. You will probably be a bit lost a the beginning. But as every one you will learn to love it.
But that was only for the server side. Indeed, there 3 technologies you won't be able to avoid if you want to start to develop web applications.
HTML, CSS and JavaScript are presents every where. This is why i'm thinking you should start by HTML and CSS then JavaScript (with jQuery).
When you've got some basics with these 3 technologies you should be able to choose the server side language.
But you've got to tell you one thing, it's not going to be easy !
PS : Ruby on Rails uses HAML and SASS. These 2 languages replaces HTML and CSS you should have a look at them quickly because they are awesome.

Is Coldfusion more than a presentation technology?

I've been looking recently at Coldfusion for an upcoming job. My background is in ASP.net/MVC and JSP/Servelets.
From what I can tell, Coldfusion is mostly a presentation technology that interfaces with a business layer implemented in some other technology. For the trivial cases, it also looks like you can go straight from the markup to the database much like PHP.
I know this is probably a simplistic view of the product. So what more does it do and what is the business case for using Coldfusion over more heavily hyped web technologies like ASP.net/JSP?
You can definitely write your business layer in ColdFusion, and as you say you can extend that with easy hooks to java and .net objects.
The business case for ColdFusion is that it is a rapid application development platform - the speed that you as a developer can get things done is just insane. There is a lot of built-in functionality, from MS Exchange integration, charting, Excel generation, all the way through to a Hibernate ORM implementation (new in CF9).
There are a few popular, mature MVC frameworks (Model-Glue, Coldbox, Fusebox, onTap, etc) that you can work with, or you can run up your own framework using a pattern that suits your style.
What might be confusing you is that you can choose to write the presentation layer and business layer in ColdFusion tags, and that might be why you think it's not a powerful option for the business layer. CF tags wrap a lot of functionality in an easy to use syntax, but with CF9 you have the option to write ColdFusion Components (CFCs) completely with a script based syntax - that might help you distinguish between presentation (tags) and business logic (script).
The developer edition is free to try, so you really only are losing some time if you give it a go, and I highly recommend you check it out.
Riding on Antony's suggestions, he forgot to mention another MVC framework, ColdFusion on Wheels! We're rapidly approaching a 1.0 release by next month and have an active community developing a slew of plugins. With built a ORM that follows Rails' design, it's easy to pick up. Check it out and give us some feedback.