Microsoft Robotics Development Studio simulation project deployment - deployment

I am currently working on a project in Microsoft Robotics Development Studio, and I am having a little trouble deploying the solution for general use.
My problem is this. I am making a simulation, so I need to deploy the simulation engine along with my project. This is dependent on the Ageia PhysX engine, DirectX, and the Microsoft XNA framework. I understand this, and I understand that the deployment tool for MRDS (dssdeploy) isn't set up to deploy simulations by default. So, if anyone has worked with MRDS before, and has deployed a simulation, I could use some help with this.

Unfortunately, dssdeploy does not work with simulation projects. It won't package up all the required simulation libraries. I believe the reason for this is due to license and/or install issues for PhysX, DirectX, and XNA. I think you can still zip up your own service with dssdeploy, but you will have to have your target user install RDS first, then un-deploy your service.
FYI, because of this and many other headaches using dssdeploy, I have stopped using it to distribute my code. I simply zip up my service, then tell the end user to run dssprojectmigration on the code after they un-zip it.

Related

Can I use Python in Eclipse to develop Google Cloud Data Flow jobs

I've tried to run the HelloWorld example from the get started guide in an eclipse python project but get errors.
Should I be able to do this or can I only use the virtual environment at the moment?
Mez63
Short answer -- we did not spend time on the Eclipse developer scenario. Probably better to stick to virtual environments unless you know well how to configure Eclipse.

Prevent user from changing ClickOnce application files after installation

I'm developing a WPF application that I deploy with ClickOnce to a network share on the intranet from which clients can install it.
I need to make sure that the user can't modify any of the application files (especially DLLs and the main executable) on their machine. That is, if any of the application files have changed, the application should refuse to run. I was under the impression that, when using ClickOnce, this was available out of the box and that the application would refuse to start if the file hashes didn't match the manifest.
However, I tried to manually replace the executable or a DLL with a slightly different version after installation and the application still ran fine (executing the modified code).
Does ClickOnce provide what I'm looking for?
How can I enable the functionality?
I'm using a level 2 StartSSL code-signing certificate to sign the application manifest if this matters.
P.S.: just to be sure: I'm talking about the installed application files, not the installation files.
You can sign AND strong name each one of DLLs to prevent tampering but then, doing so has its own pain points when it comes to upgrades and distribution in general. Note that even doing so, doesn't entirely prevent someone from injecting code into your running process. It's a sticky subject.
I recommend going thru this question which already discusses these points in detail. Does code-signing without strong-naming leave your app open to abuse?
I think it will be a fairly manual process.
Doesn't look like the VS2013 deployment tools handle code obfuscation but they do support signing and app permissions. Start with that, then you might have to get the generated manifest as a starting point to build your own with obfuscated assemblies.
MS docs break it into 3 steps: 1. obfuscate, 2. build manifest, 3. manually publish
Here is what MS docs say...
Securing ClickOnce Applications
Deploying Obfuscated Assemblies
You might want to obfuscate your application by using Dotfuscator to prevent others from reverse engineering the code. However, assembly obfuscation is not integrated into the Visual Studio IDE or the ClickOnce deployment process. Therefore, you will have to perform the obfuscation outside of the deployment process, perhaps using a post-build step. After you build the project, you would perform the following steps manually, outside of Visual Studio:
Perform the obfuscation by using Dotfuscator.
Use Mage.exe or MageUI.exe to generate the ClickOnce manifests and sign them. For more information, see Mage.exe (Manifest Generation and Editing Tool) and MageUI.exe (Manifest Generation and Editing Tool, Graphical Client).
Manually publish (copy) the files to your deployment source location (Web server, UNC share, or CD-ROM).

What is the best way to automate windows azure deployment?

Newbie to automated azure deployment here! I have the happy task of automating our deployment to the cloud. I have also done some reading and discovered that the 2 main tools are MSbuild and Powershell. Please could anyone tell me why i would use one over the other or indeed if there are any better ways to automate the deployment. Keeping in mind that my main concern is performance and i need this deplymrnt to be as fast as possible.
Any insight would be most welcome.
I'm a fan of using PowerShell for deployments. It's pretty quick to set up and the script can be pretty straight forward.
MSBuild can be great too. I use MSBuild from TFS Team Build to kick off a PowerShell script to do the deployment. Works like a champ.
A good starting point would be http://blogs.msdn.com/b/tomholl/archive/2011/12/06/automated-build-and-deployment-with-windows-azure-sdk-1-6.aspx. This blog does a great job of showing you how to build and deploy with Team Build.
If you don't want/need the Team Build and MSBuild part, then just look at his PowerShell script. That covers the basics of getting a deployment from your dev environment to Windows Azure.
You should use Web Deploy, it only takes about a minute to deploy a fix. See these links
http://blogs.msdn.com/b/cloud/archive/2011/04/19/enabling-web-deploy-for-windows-azure-web-roles-with-visual-studio.aspx
http://channel9.msdn.com/Blogs/funkyonex/Speed-Up-Azure-Deployments-with-the-New-Web-Deployment-Feature
At SplendidCRM, we had a similar need to automate deployments to Azure, but as our need was to service our live customers, we had to develop using C#. We have been watching Azure for many years, but it was not until they provided a DNS service did it make sense to make the move. Using the Azure Resource Manager (ARM) libraries, we were able to automate VM creation, SQL database creation and DNS name creation. In addition to the Microsoft documentation for ARM, we found it particularly useful to be able to get the Microsoft source code for the PowerShell scripts that wrap ARM. This is because the documentation does not always provide a complete set of settings.
In the end, we decided to release the Azure deployment code as part of a new Ultimate edition that combines order and customer management with software deployment.

Choosing the right build and deployment tools

I have a very large, mostly HTML/SSI site that I manage part-time and do weekly deployments on in addition do being an enterprise Magento developer. The site in question has ~5000 static HTML files and requires a lot of upkeep to manage deployments.
In addition to that site, I manage numerous Magento installs. I currently manage them from SVN and do exports/checkouts from various production and qa branches/tags.
While this is manageable, I don't get some of the things that I know build tools provide. Some of those features would be:
Automatic Minification of CSS/JS
Revision History
Multi-server deployment
Runtime configuration
Stats of broken builds/build time/deployment frequency
Integration with Testing frameworks
The three tools I've been reviewing are
Apache Ant
phpUnderControl
Capistrano (at the insistence of a friend of mine who is a RoR dev)
I briefly looked at Hudson, and had a ton of problems trying to get it up and running.
My Questions:
What is the upside/downside of going to this type of strategy?
Any hidden pitfalls that you've experienced?
Which tool do you think would best fit for the deployment/management of the HTML site?
Does anyone have experience with deploying distributed Magento from a deployment/build management system?
Thanks in advance...
Update
Still no movement here, so I'm going to ask this:
Should I rather rebuild in HTML5 Boilerplate which has Ant build scripts out of the box? This would afford me the ability to use Ant, but the build scripts are already pre-made so I have a good starting point. Your thoughts and suggestions are welcome.
I've got one more tool for you to review: Jenkins (earlyer: Hudson).
Its a great tool to run and control your builds. Furthermore you can remote the console and get notifications via Jabber protocol.

How to build and deploy to Windows Azure using Powershell and Hudson?

I am looking at getting a continuous integration/continuous deployment environment set up for my windows azure project and I was wondering if anyone had managed to (can point me in the right direction to) build and deploy a windows azure cloud service using powershell and Hudson and perhaps has sample scripts.
I can get the project to build using MSBuild64 (I'm running x64 Windows 2008 R2 Standard).
I know 32 bit development works, but assume 64 bit development is better as i understand it as problems will be ironed out on my local box as opposed to once deployed in the Azure environment which i believe is 64 bit. (Please feel free to correct my thinking here)
I assume i have to get the cspack.exe file to package the deployment first as in a manual deployment via the development portal.
Ideally i would like to deploy it locally (with the development simulation) run unit tests against it (perhaps against cloud storage for integration tests), deploy it to staging (run the acceptance/bdd) tests and then switch from staging to production.
Any help with anyones experience in this which will speed this research up for me would be appreciated
Many Thanks
Mark
This may help to get you started: http://blog.smarx.com/posts/building-running-and-packaging-windows-azure-applications-from-the-command-line
Also see http://scottdensmore.typepad.com/blog/2010/04/windows-azure-deployment-for-your-build-server-part-2-deploy-certs.html.
Mark, I am looking at something similar. The best solution at this point appears to be a custom solution that uses the REST APIs.
Erick