Online development VS local development - odoo

I'm working on my first project in Odoo. If I understand correctly there are 2 ways to develop a project in Odoo: local development and online development.
I have an existing database but I'm wondering if it's best to develop the website locally or online. Or is this a totally different approach?
Is there an advantage to develop locally?

I don't know Odoo but normally programmers works on local because of easy to debug. Also if you are works online you have to change server files of all time, its waste of time especially huge projects.
Advantage of online is accessible of everywhere and also there is no hardware limitation.

Related

Visualizing a desktop application

I have a legacy VB.NET application that I would like to virtualize so my clients can access it from the cloud. Currently, I have an Azure VM that hosts the app and exposes it to the customers via RDS. Everything is working fine, but I am not 100% happy with the performance.
I would love to be able to convert it into a web application, but unfortunately this is not feasible at the moment.
I was wondering if there is a better way of doing this or perhaps there is a better platform that I could use.
Thank you.

How to rapidly publish web role cloud service, uploading only binaries, avoiding wholly restarting the VM?

Possible ways to accomplish it:
Creating dedicated WCF service for this purpose (currently my favorite option)
Using the REST API?
Azure PowerShell?
Explanation:
Publishing a web-role cloud-service takes about 10 minutes. It's much too long during development - I try to do as much as I can offline, unit-test-ish and modular, but it's just impossible to completely avoid development cycles altogether with the VM.
Apparently, the long time is mostly a result of the machine being wholly restarted, so I'm trying to find an automatic solution, like uploading and installing the binaries.
What is the best way to accomplish it?
What do you think? would it cut at least 50% of the publishing time?
Do you expect any critical problems?
The solutions proposed below are definitely against best practices and should NEVER-EVER be used in production environment.
If your objective is to quickly test your changes in your development environment, there are two ways you can go about it.
Enable RDP and copy your modified binaries or other files directly in the appropriate folders on the VM. You could enable Remote Desktop on your web role and copy the files manually in appropriate folders.
Use Web Deploy: This will only work for web roles in your project but you could enable Web Deploy on your Web Roles and use that to make faster deployment. Please see this link for more details on how to use this feature: https://msdn.microsoft.com/en-us/library/azure/ff683672.aspx.

Repository, live site, all in one same server

Honestly, I don't really know how to begin.
I have a live site in a VPS. My development flow is usually making changes on my local machine, then pushes to live via capistrano. I use git, but I don't really know the setup (as it was done by a friend). So I am not sure my git repo is local, or in the server.
Now I wanna do something more manageable. I want to use Redmine to track my development. Having said this, I would like to host my repo in the same server as my live server. This can give easy access to the other remote developers. Is it a good idea to host this repo in a same server?
Also, in future, I will need to have a unit test and functional test server. I reckon this should be separated from the live server right?
What is a good arrangement? Of course I am pretty tight with budget, and I don't wanna buy my own physical server.
Thanks.
I've hosted dev and live versions in the same VPS, e.g. dev.site.com. I usually make it basic auth to give at least a little privacy into its development. But if your source repository is also on the same VPS, then you need to have a standard backup process that gives you an off-VPS copy. You definitely don't want all your eggs in one basket.
For multi-developer use, you just need a repo that everyone can access. The dev instance is better split to the developer machines, plus a regular build cycle for dev version that includes everyone's changes. That would be your test/QA server. Unit tests can just be a local version.
Does that help? Not sure if this answer is as technical as you want.

Suggestions for software to ease setting up a build server

I'm currently setting up a new build server and I'm interested in any suggestions the community may have about software such as Hudson or CruiseControl.NET that may simplify and add additional value to the build process.
Previously I had a build server set up using custom batch files which would run msbuild and other such tools and these were triggered by subversion hooks to allow for a continuous builds to be done per branch. The idea was that eventually we would also execute automated tests and/or static analysis although we never really got that far. This server also acted as our source code repository, a test machine for web project builds, and a web server for custom dashboard and portal for developers on the team.
At this point my thoughts are to separate some of the responsibilities of the old build server and at least a Build Server which is responsible only for creating builds, a web server which is responsible for acting as the intranet style dashboard site for developers, and perhaps an additional web server as the Subversion repository. If it turns out to be better or easier to keep the Subversion code on the same server as SvnServe then I'll probably opt to place the Subversion repository on the web server but still keep the build server separate. Having no personal experience with any of the popular build server and CI solutions out there I'm curious how CruiseControl.NET, Hudson or other solutions would fit into this type of configuration. It appears that both of CC.NET and Hudson have web interfaces for example but the documentation doesn't clearly layout how this plays out with different hardware/system configurations so I'm not sure if either requires the web portion to be on the build server itself or not.
As far as technologies I'm dealing with .NET/C# based code which is a mix of Web/WinForms/WPF and we use a few separate Subversion repositories to host these projects. Additionally it would be nice to support Visual FoxPro and Visual Source Safe for some legacy applications. I would also like to get more team members involved in monitoring builds and would like to eventual have developers create build setups for their own projects as well with as much simplicity as possible. Also I should mention that I have no experience setting up a Java based web application in IIS but I do have quite a bit of experience setting up and managing ASP.NET applications so if that may make .NET based products more favorable unless I can be convinced otherwise.
UPDATE (after researching Hudson): After all the recommendations for Hudson I started looking into what is involved to get it up and running on my two Windows 2008 servers. From what I can gather the web portion (master) would run on my webserver but it seems that IIS isn't supported so this would greatly complicate things since I want to host it on the same machine as my other web applications. On the build server, I would be installing a second copy of Hudson that would act as a slave and only perform builds that are delegated to it by the master. To get this to work I would be installing Hudson as a Windows Service and would also need to install some unix compatibility utilities. Unfortunately the UnxUtils download link appears to be broken when I checked as well so I can't really move forward until I get that resolved. All of this is really sounding just as complex if not more complex than installing CruseControl.NET. For now this unfortunately leaves me to looking into CruiseControl.NET and TeamCity.
UPDATE (about TeamCity): After looking into TeamCity a little closer I realized that at least the server portion is also written in Java and is deployed in a manner very similar to Hudson. Fortunately it appears that Tomcat can be used to host servlets inside IIS although I can't find a good straight forward guide to describe how to actually do accomplish this. So skipping that for now I looked further when I ran into what looks like what might be a major snag.
TeamCity Professional edition only
supports TeamCity Default
Authentication and does not support
changing the authentication scheme.
Since windows authentication is likely the direction we will want to go, it's now looking like it might be back to evaluating CruiseControl.NET or possibly Hudson if I can get my hands on the UnxUtils and also find out more about how I can host the dashboard portion of Hudson within my existing IIS configuration. Any pointers?
UPDATE (about Jenkins): I ended up experimenting enough with Hudson that I ended up with a reasonable build server setup that I'm happy with and that can be extended to do much more if I need. Of course I went the rout of converting to Jenkins once Oracle took over Hudson and Jenkins is what I'm using today with little bits of powershell to help tie things together. I'm very happy with this approach right now and besides being Java based, Jenkins has quite a bit of support for other development environments such as .NET and MSBuild.
I'd vote for TeamCity here. Its is very, very easy to get stood up and running, integrates with all your .NET stuff without any trouble. The builds themselves are run by agents which can be on the build server or another machine depending on requirements--they could even be on a machine running an entirely different OS on a different network in a different country.
I highly recommend using Hudson. Not only will it allow you to build .NET applications on a continual basis, but you can also run code analysis and unit tests as well. It's easy to install (just deploy a WAR file to a web server such as Tomcat) and has many configuration options. There is also a large number of plugins available that you can use, many written by other Hudson users. Best of all, it is free and actively supported.
For our decision making process we started with following overview.
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix
Our main objective was java, easy to configure/use even after nobody created a job for 6 months. We moved away from a old version of Cruise Control, since nobody really knew how to use it. Some of the commercial products are nice if you want to go beyond just continuous integration. Have a look and decide for yourself.
Be careful, I don't know how up to date this matrix is. So some of the projects might have implemented more functions right now.
An interesting alternative could be Jira studio by Atlasian. If you use the hosted version you don't have much on support issues and it comes with subversion, bamboo, and goodies (jira+greenhopper, confluence, crucible, fisheye). http://www.atlassian.com/hosted/studio/
I agree with Wyatt Barnett. TeamCity is the best choice. It is very easy to configure and use. Moreover, TeamCity has a Free Professional Edition. Previously we used CruiseControl.NET on our project. This is also a powerful tool, but it is very complicated and hard to understand.
What s.ermakovich said: Both TeamCity and Hudson separate the web UI from build agents. You shouldn't need to install IIS on a build agent. You'd need to install a JVM and the agent software on any build node - very straightforward.

What does your ideal web development (ASP.NET) environment consist of?

I start at a new client on Monday. They’re just beginning to do web development (ASP.NET) and I’m going to help them with setting up a proper development environment.
I don’t think I’ll have a say on what type of machines the developers will be using, so this is more of a backend scenario.
So far the main things I’ve come up with include:
Versioning control system (source control).
Bug Database
Doc Repo / Project Management / Tasks
(They are currently using Base Camp by 37 signals, which is a good sign to me.)*
Dev / QA / Staging / Build servers (web, db)
So far this is what I have come up with. I don’t know what budget they have right now, but in your ideal development environment, what else would you recommend that I propose?
Thanks!
You said you won't have input on the machines, but I'd put dual monitors pretty high on the list as far as productivity goes for web development or just computer use in general.
I think, there is no ultimate answer for this. Because each developer has their own opinion - what software they use for VCS, Bug Tracking, etc...
And here is my opinion :)
Ideal for Microsoft Technologies is TFS (Team Foundation Server), which has all the features you want.
And here my list in case you don't want TFS:
Version control system
SVN
Mercurial
GIT
Bug Database / Project Management / Tasks
JIRA
FogBugz
Developers environment
Dual screen
Powerful PC
Quality chair
Whiteboard
Free coffee
This is all very cheap if you compare it to their salary for six months
Development machine: Visual Studio 2008 + VisualSVN/TortoiseSVN + Resharper
Buildserver: Teamcity
LAN testing server: Webserver with build by buildserver + DB with daily copy of live
QA/Staging depends on the project size.