VisualStudio2005 debug into remote Linux webserver - linux

I am debugging VisualStudio 2005 webservice client software, accessing a Linux webserver.
VisualStudio has MSVSMON.exe for remote debugging of webserver code.
Is there an equivalent debug-monitor for Linux?

Yes, but it's not quite ready yet. You can sign up for the preview though (you didn't specify which language, but if it is C# or VB.Net this should work).

Related

Remote development of Visual C++ applications from Linux

Remote development on Linux from Windows is easily doable via SSH.
However, what about the other way? I need to build and debug my Visual C++ application on Windows, but I want to work on a Linux system.
Cross-compiling via MinGW doesn't work because of MSVC-specific libraries
Ubuntu on Windows is a good start, but I'd like to work on a real Linux system
RDP/VNC or something like that doesn't help either, because than I'd work on Windows again
So does a virtual machine
Maybe something like Powershell on Linux + SSH to the Windows Powershell?
I regularly develop Visual C# applications remotely from Linux, not MSVC for the most part, but, like you, I wanted to find a way to build and debug Windows-targeted applications and libraries on remote Windows machines without working directly in the box using RDP, Visual Studio, etc.
It's difficult to answer this question without more information about the development and debugging tools you prefer to use on Linux for the types of applications you develop. I'll try to provide a general overview and update the answer for details you add about your workflow.
Cygwin, similar to MinGW's MSYS, provides a Unix-like environment for Windows. Most importantly, Cygwin, unlike MinGW/MSYS, includes an implementation of the OpenSSH server that enables us to connect to the Windows box over SSH from Linux (or any other device with an SSH client, really). We can install the sshd package using Cygwin's setup utility. After connecting, Cygwin drops us into a Bash shell by default. With this capability, we can:
Execute remote commands and scripts over SSH.
Edit files using our favorite *nix command-line text editor (Vim, Emacs, etc.)
Mount remote filesystems locally using SSHFS (if Windows shares are unavailable).
Forward or tunnel ports if needed.
The availability of a general-purpose shell makes almost anything possible. We can execute batch files, PowerShell scripts, and native Windows executables from Cygwin's shell environment in addition to Linux scripts and Cygwin programs.
For example, we could run msbuild from the SSH session command line to build our VC++ application or we could configure our local GUI editor or IDE running in Linux to execute msbuild over SSH when we click the "build" button.
We could set up a similar environment in recent versions of Windows using the Windows Subsystem for Linux ("WSL", Bash on Windows). I personally prefer Cygwin for greater portability and ease of configuration. Cygwin's sshd can run as a Windows service, and, as an established project, Cygwin integrates very well with Windows systems (user accounts, filesystems, Windows APIs, etc.).
Working with Code
We can choose from several workflows depending on our tools and comfort-level with the command-line:
Completely text-based—all work performed through the SSH session
Use local tools on files mounted in a remote filesystem
Use local tools and synchronize files
I use the first approach. I'm a heavy Vim user, so I connect to Windows machines over SSH to do my work on the command-line using the tools and environment provided by Cygwin. The availability of tools typically found on Linux simplifies many tasks that are hard to do from the default Windows console. We can write shell scripts to automate tasks that Visual Studio might normally do for us. For example, I wrote a wrapper script around mstest that reads the XML test results and outputs them in a format that's easy to read in a terminal.
If we prefer to use a GUI editor or IDE, we can mount the remote code locally so tools can read and write files as if they were part of the Linux machine's local filesystem. We likely still need to use SSH to execute commands needed to build the projects, but many editors allow us to configure this command as the project's "build" action.
Sometimes a remote filesystem is too slow for effective editing. In these cases, we can synchronize files between the Linux development machine and the Windows host using a tool like rsync or the editor's "upload on save" feature (over SFTP, for example), if available.
Debugging
Everything works pretty well until we try to find a way to debug our applications. As of now, there is no reasonable substitute for Visual Studio's debugger when working with Visual C++ projects. We can debug managed C# applications running on the CLR using MDbg, but no comparable tool exists for C++ programs.
We can try to use gdb (from MinGW, Cygwin, etc.) for basic, low-level debugging of native binaries, like reading memory addresses, but the debugger does not yet support reading Microsoft's debugging symbols, so the debugging experience is very limited. Microsoft began documenting the PDB format a couple years ago, so we may see some compatibility in the future. Even so, it will take a long time to produce a satisfactory alternative to Visual Studio's excellent debugging tools.
For debugging, RDP is currently our best—and probably, only—option. For a more native-feeling experience, we can run Visual Studio using rdesktop (or other RDP client) and seamlessrdp to create a single-window RDP session of the Visual Studio IDE instead of a full desktop which integrates with whatever window manager we're using on Linux.
Sometimes we can get around launching a full Visual Studio debugging session for simple debugging scenarios by adding tracing to our application that outputs values to the console or to a log file. In many cases, this is faster than starting the debugger anyway.
We can also try to use Eclipse's CDT debugger configured for the Visual C++ toolchain. This may enable us to perform remote debugging using an Eclipse instance on the Linux machine. I have never tried this approach, and I expect there may be some issues when the application is linked against Microsoft's libraries.
I don't know all your requirements, but maybe you could use a gdbserver on Windows (from MinGW) and remote debug from VSCode on Linux - or any other environment you like. You can find more details in this post here. (Watch out, VSCode prevents you from running gdb unless it’s signed as mentioned in the first link.)
There is also a Native Debug VSCode extension that could be helpful.
Another solution I can think of is to use Visual Studio Online (free for small teams up to 5 persons) as build server.
As you have said, the other way around is pretty easy and nowadays even officially supported by Visual Studio 2017.
Most probably, the VS remote debugging tools for Windows wont be helpful for you.

Eclipse CDT multiuser configuration

We are trying to setup Eclipse CDT (version Helios or Indigo) for our development environment. It is a multiuser environment, with about 100+ designers using a pool of 10 linux servers. The source code is in Clearcase.
Developers has Windows PCs and use vnc to login to development servers.
One option is using different Eclipse installation on each Windows desktop - but then not sure how complicated setup is to enable remote code browsing/compile/debug/test execution or cross compiling. Is this going to be a IT support/maintenance nightmare?
The other option is to have a single copy of Eclipse on the server and everyone uses the same one. Hoe feasible is this? How difficult is to manage different users' preferences in this setup? Is it possible to have that (different setups) at all? What about required hardware configuration to support this kind of working environment - when multiple sessions are active on the same server at the same time? Is this kind of configuration going to scale?
Which option is better/more suitable for our environment? Any other option that we should consider?
I checked this question and it is useful but not sure about specific of the development environment that they were trying to address.
I would like to hear some experiences from anyone who managed to successfully set it up in a similar development environment (or tried to do it) and would appreciate any guidelines/recommendations in this regard.

How to setup IIS?

i want to setup IIS(internet information service) on my laptop. what is the setup formality or setup.
Installing IIS
This question should be moved to Server Fault however. Also, once posted there, you should provide a lot more information about what version of Windows, what version of IIS, and so forth.
Also, if you're just doing development, Visual Studio comes with a small development server, so IIS installations aren't usually needed for development.

Executing C# win form apps in linux machine

How to execute Windows Forms Application in Linux 5.0. I installed mono 2.8 on my linux machine. Here i am very new.Please help me. For console application of C#, it is executed successfully. But C# windows application it is not executed. Can u tell me what is the pre requisite condition for executing the C# windows application on Linux machine. Please.......
Take a look at the Mono guide to porting Winforms applications
I dont think you can without running it in wine or something like that.
You can code in .net but i think the front end still needs to be in GTK or linux UI equivalent

Starting Development for Google Chrome....Getting Started Issues!

Our organization has decided that my project will be developed for internal use with the Google Chrome browser. So yesterday I started looking around the internet for just how I would go about doing that.
I found the WebKit.org development tool and have been trying to install it using the instructions found here:
http://webkit.org/building/tools.html
I am installing on a Windows machine that does not have Visual Studio 2005, so following the directions I downloaded Visual C++ Express 2005. Now I am at:
Install the Windows Server 2003 R2 Platform SDK, then follow steps 2 and 3 of “How to: Use Visual C++ Express Edition with the Microsoft Platform SDK.”
Except I can't follow steps 2 and 3 because when I go to try and run the program all I have in the menu is:
Start -> Programs -> Visual C++ 2005 Express Edition -> Visual Studio Tools -> Visual Studio 2005 Command Prompt
which opens a command prompt.
Can anyone tell me what I've done incorrectly?
Additionally, do you HAVE to develop in WebKit? Or is that just the best way to work with the Chrome engine?
Thanks!
Leslie
You shouldn't need to 'build chrome'
If you need anything special, the Chrome Extension framework is pretty awesome: http://code.google.com/chrome/extensions/overview.html
But I imagine if you are moving from IE to Chrome, as a client for a webapp, things should just work.
Leslie,
I found this Google I/O talk to be useful as an intro.
step 2 and 3 are on Microsoft's web site referred in the building instructions. The steps describes steps you need to do after opening Visual C++. If you have only the command prompt in the Visual Studio start menu folder, reinstall your Visual C++ Express edition.
I don't think writing your own webkit-based browser satisfies your decision to use the Google Chrome browser. By the way. From your limited description of your requirement I don't see why it cannot be a B/S application. If you have too many C++ code to port to web, you can try host Google Chorme Frame as an ActiveX. I am not sure if this is the best approach for you, since it does not have any API documentation for developers.
Writing a browser based app could mean:
You run code (perhaps in .Net, Java, Ruby, PHP, Python, etc...) on a server with potentially Javascript, flash, etc... running in the browser. The browser communicates with the server through HTTP requests. If that is the case you certainly don't need to worry about installing webkit.
It could mean writing a Chrome extension which would again likely mean running .Net, Java, Ruby, Python, PHP, or some other language of your choice on the server and Javascript in the Chrome extension. Again in this case there is no need to install webkit.
It's possible it could mean writing an app based on webkit, but that would be replacing your old desktop app with another desktop app which doesn't seem likely. With this solution, you are no longer running Chrome, but your own custom made browser. Not to mention this seems like overkill for a jury management system.
I would guess you want to do option 1. That is typically what people mean by a browser based app. It would be a much better use of your time to read a book on web development than to fool around with webkit.
You should find the executable file to launch Visual Studio Express in this folder: "C:\Program Files\Microsoft Visual Studio 8.0\Common7\IDE\"

Resources