.Net development on vista or XP - asp.net

I am wondering if it is better to develop .Net 2010 web application on XP as compare to Vista? I have developed many .Net applications on XP without any problem and personaly like XP over vista. Now i have started a new job and we are all mainly using Vista Ultimate 32 bit.
Are there any known issues with vista for VS2010 development?
Application will be published on Window Server 2003 or 2008 so my main concern is developing and running application localy.
Also, is Visual Source Safe 6.0 Compatiable with Vista?

You'll have some difficulty since XP is only 32 bit (unless you've got the 64-bit edition which is a little flakey re: drivers).
Also, certain features like XNA Game Studio, Windows Phone 7 development, DirectX 11, etc... just aren't supported on an XP development environment.
You may also hit issues with regards to integrating with the Azure cloud platform as it has some dependencies that don't work fully on XP.
That said, if you're only going for a simple Winforms/Console app/ASP.Net site, you probably won't ever notice the difference
Oh and .Net 4.5 isn't supported on XP
As an aside, please DO NOT USE visual source safe - it's truly awful. It doesn't guarantee consistency, has no concept of branching and merging, doesn't allow multiple users to work on the same files and is generally unreliable (not to mention the fact that it relies on every client playing nicely and a single malicious user can drop the entire data store since it's really just a windows share with some files, not an actual server). See this article: Visual SourceSafe Version Control: Unsafe at any Speed? for more details.
You should use TFS or an open source alternative (I've also played with SVN and used AnkhSVN to integrate into VS - Not perfect but pretty good). If you want to use TFS but don't have the servers/experience to set up a server yourself, There's a (currently free) beta being run by microsoft at tfspreview.com which integrates right into VS 2010 SP1 and later and provides all the same functionality as well as a whole slew of other features like bug/workitem tracking, analytics, etc...

Related

Developing ASP.NET application for a Linux Server [duplicate]

This question's answers are a community effort. Edit existing answers to improve this post. It is not currently accepting new answers or interactions.
For a developer with a Java background, I am interested in exploring software development using the ASP.NET tools/platform as well.
Java web applications (.jsp and servlets) can run on many server platforms.
Question: Will a .NET web application be able to run in a Linux based server? Considering the scenario of not being able to use a Windows server for hosting a web app.
So I know this is an older question but I think it could stand an updated answer.
Microsoft has officially released asp.net vnext and its open source and deploy-able to both Linux and Mac. Its all still pretty new but does rely on the latest builds of mono and thus currently needs you to compile the mono-framework but in time I suspect that it will be easier to access as various linux distros release updated versions of mono. This is a how to setup guide
This information may be somewhat volatile and with updates is due to change.
Update ASP.NET CORE 11/10/2017
asp.net vnext is now known as asp.net core.
asp.net core is being treated as a high priority in Microsoft due in part to its use with microservice architecture and docker and container technologies
It has become much more compatible with existing .net libraries due to .net standard 2.0.
It performs well when compared to other technology stacks such as go and node.js
It depends what specific .NET technologies you're using. The Mono Project provides an Apache module (mod_mono) for running ASP.NET sites, and from what I gather it works well.
Mono doesn't support all the .NET APIs, though - notably WPF (and possibly WCF too, I can't remember) - but it does provide good support for much else of the framework.
If you're starting from scratch and particularly want to target non-Windows servers, then ensuring your project works with Mono would be a good goal to aim for. However, if you need particular APIs or language features that are not supported by Mono, then you will need to use a Windows server for deployment. It's a design-time/architectural choice that should make up front.
You might want to consider this guide that helps Windows developers port their code to Mono/Linux:
Guide: Porting ASP.NET Applications - Mono
I can speak from experience. Even if your ASP.net website only uses .NET libraries supported by Mono you are going to have a hard time getting it to run if its anything beyond Hello World.
You won't have to re-write much code but you will spend hours/days/weeks dealing with little issues with mod_mono/xsp/apache configuration and file permissions and error handling and all the little things that go into a large website. (Be prepared to spend a lot of time asking questions on serverfault :) )
The problem is that a lot of people don't use Mono for ASP.net websites and so there aren't as many people reporting bugs so a lot of things that are minor bugs go un-fixed for a long time.
Now you can publish ASP.NET 5 app to Docker on Linux with Visual Studio. See the below post from Scott Haselman
http://www.hanselman.com/blog/PublishingAnASPNET5AppToDockerOnLinuxWithVisualStudio.aspx
Since the technologies evolve and this question is top ranked in google, we need to include beyond the mono the new asp.net core, which is a complete rewrite of the asp.net to run for production in Linux and Windows and for development for Linux, Windows and Mac:
You can develop and run your ASP.NET Core apps cross-platform on
Windows, Mac and Linux. ASP.NET Core is open source at GitHub.
Yes we can. get familiar with Mono Project and read this article to get started.
For ASP.NET on Linux, check out Mono.
That said, thousands of sites run on Windows Server without any issues. A poorly-configured server with any OS will be vulnerable; Linux won't save you from a poor admin.
So I guess my "best practice" for deplying an ASP.NET app would be to use Windows Server 2008 (likely Web edition). And hire a good administrator.
You can use Mono to run ASP.NET applications on Apache/Linux, however it has a limited subset of what you can do under Windows. As for "they" saying Windows is more vulnerable to attack - it's not true. IIS has had less security problems over the last couple of years that Apache, but in either case it's all down to the administration of the boxes - both OSes can be easily secured. These days the attack points are not the OS or web server software, but the applications themselves.
dotnet is the official home of .NET on GitHub. It's a great starting point to find many .NET OSS projects from Microsoft and the community, including many that are part of the .NET Foundation.
This may be a great start to support Linux.
Now a days .Net is run in multiple platforms,like linux ,Mac os etc.
but mono is not fully platform independent ,Because to deploy .NET in another OS required
third party software.so it is not like java platform independent.
Mono is running in different platform ,because of JIT is there in different os.
Mono is not fully success in moonlight(silver light in .NET) .Not only Research is going on.
Mono uses XSP2 server or apache . some of the big companies are using this project,Some of the robotic project are also running on mono.
For more details http://www.mono-project.com/Main_Page.
There is the Mono Project from Novell that will allow you to run ASP.Net on Apache.
http://www.mono-project.com/Main_Page
The Mono project is your best option. However, it has a lot of pitfalls (like incomplete API support in some areas), and it's legally gray (people like Richard Stallman have derided the use of Mono because of the possibility of Microsoft coming down on Mono by using its patent rights, but that's another story).
Anyway, Apache supports .NET/Mono through a module, but the last time I checked the version supplied with Debian, it gave Perl language support only; I can't say if it's changed since, perhaps someone else can correct me there.

migrating Microsoft apps from windows 2003 server to windows 2012 server

we have more than 30 classic asp and .net applications to be migrated to windows 2012 server from 2003 server.This is new task for me, so what are the steps/factors i need to consider or fulfill for this migration? with that I mean like there are COM objects, dependent dll's all stuff so what things I should ensure are in place for smooth migration.
Microsoft provides ACT tool for Application Compatibility test how much will that support? or are there any other better proven tools for the same purpose?
any insight/help would be appreciative.
Thanks.
First thing to assess is "what works and what doesn't work". There's a high chance that many of these apps will just work. That's the first thing to go do. Start by coming up with some test criteria by which the program is expected to work. Then deploy to the new OS.
One problematic area might be that these executable program require an older version of .NET or the MSVCRT DLLs that might not be on the box by default. The MSVCRT redist is easily available from Micrsoft's web site. You can install older versions of .NET from Control Panel->Programs and Features->"Turn Windows features on or off". Look for the ".NET" checkboxes near the top.
For classic ASP applications, same thing in the "Turn Windows features on or off". Look at "World Wide Web Services" node and make sure ASP (and most all of those other features) is selected.
Microsoft provides ACT tool for Application Compatibility test how much will that support? or are there any other better proven tools for the same purpose?
In my experience with automation tools, especially when working with older sets of technology (like classic asp)they rarely work near as well as advertised.

Recommended OS for Visual Studio 2008

Which Operating System would you recommend when working with Visual Studio 2008 and it's asp.net framework? I will only use it for Web-developing and Visual Studio is the only thing I need on it.
I do all my programming on a 2Ghz laptop with 2GB memory. Should I stick with XP? Windows Server 2008/2005 or perhaps Vista? Should I use a 64bit version?
Money is not an issue.
I would choose my desktop OS depending on my server OS, in order to have the same version of IIS. If the server uses 2003, you may choose XP Windows XP x64. If it uses 2008, you should choose Vista.
Even if your server runs 2003 you may choose Vista to learn the new features of IIS 7 and thus be prepared the day you choose to upgrade to 2008.
I really see no reason to run 32 bit, unless you plan to use some component that don't support 64 bit (such as WSE 2.0).
So, Vista 64 bit is probably the best choice or XP Windows XP x64 if you run Windows server 2003 and want to play safe.
Btw, if you like beta software, you may use Windows 7 Beta. I am currently running that in combination with VS2008 and have very few issues.
EDIT: Windows XP 32 Bit is not recommended since it uses IIS 5.1. The 64 bit version uses IIS 6.0 and is therefore the only recommended version of XP.
Furthermore, all the mentioned configurations should work fine with 2 GB of memory (including Vista and 7). However, if you plan to work with very large solutions and several instances of visual studio, memory consuming add-ins such as Resharper or your application in itself will be very memory consuming, an upgrade to 4 GB should be considered.
I have XP and have no reasons to complain.
Aside : "Money is not an issue" - I've always wanted to use this sentence. Not yet.
I use VS2008 on XP with less memory without a problem. It really shouldn't matter mostly just a personal preference.
With only 2GB of memory, I'd recommend going with 32-bit XP.
While you can code on a Windows Server OS, you may find that they are tuned quite differently. For example, Server 2008 shares a lot of code with Vista, but the audio stack has a considerably higher latency than you would want on a desktop OS.
See: Larry Osterman's article Why do people think that a server SKU works well as a general purpose operating system?
I've been doing all my development in Vista x64 lately and have found it to be quite usable. So that would be and is my choice.
If money isn't an object I'd really suggest sticking another 2 gigs of ram in your laptop. It shouldn't be all that expensive and the additional ram is really useful (and absolutely necessary if you're planning on doing anything like running a VM).
I run Visual Studio 2008 on a 2GHz/2GB RAM laptop with Vista Ultimate, all work PCs are 2GB RAM desktops with VS2008/Vista Business - with no issues.
I know this is about a recommended OS, but if you're after getting the best performance from Visual Studio, how about this gem, straight from ScottGu's mouth!
Tip/Trick: Hard Drive Speed and Visual Studio Performance
Scott seems to think having a fast hard-disk will considerably improve hard-disk performance, and I have to agree with him. He also gives some recommendations for memory and CPU.
I would also say that, OS-wise, Windows XP is fine, as is Vista. I run VS2005 & VS2008 on both XP and Vista (both 32-bit) and from the OS perspective, there's really no difference.
I've found 2005 and 2008 to run pretty equally with XP32 and Vista32. There may be some edge cases with Vista, but I have yet to experience them with asp.net.
HOWEVER, the 32/64 question is another one altogether:
Team is Going from XP32 to XP64 for .NET Development - Any Gotchas?
I usually mirror whatever environment things will be used most in. We're pretty XPrific around here, so I've been using VS2008 there.

Microsoft speech API 5.1, 5.3?

I'm a little confuse between the different SAPI version available.
First of all, I only find the SDK to develop with the 5.1 version, is there any SDK for the 5.3 version available, if not, why ?
Witch version can I use if I'm developing with the 3.5 version of the .Net framework.
Is there any good tutorial because the only one I found are pretty old (they use 2003 version of visual studio) : http://msdn.microsoft.com/en-us/library/ms986944.aspx
Is there any way I can use the speech API directly in Asp.Net web site in speech-to-text mode ?
Thx!
Wikipedia tells me that SAPI 5.3 was included in the Windows SDK, so go download that. SAPI 5.3 looks like it was included as part of Windows Vista, so I don't think you can use it in any other version of windows. The library is just a COM library, which means it's not dependent on your .NET version - i.e. you could use it in .NET version 1.0 even. In fact you could use it in almost any language because a lot of them support COM in some way these days.
I'll get your easy question out of the way, no you can't use the Speech API in any way from ASP.NET on the client's computer. If you're really serious about it though, you could look into either creating a Silverlight application which uses the Speech API on the client's computer, or alternatively look into constructing the voice data on the server and streaming it down to the user. However, both options would probably be quite difficult at the moment I think.
I learnt to use SAPI 5.1 from the tutorials on MSDN, just like the link you posted. They are old, I know, but they're all still relevant. SAPI 5.x hasn't changed for almost a decade now. Visual Studio 2008 can still do all the things Visual Studio 2003 could do (well, mostly I presume) and it definitely can use a COM library, so it's possible, you just got to use your brain a bit.
You should try the namespace System.Speech (it work's with VS2008 do not know if framework under 3.5 have it... and I am on Vista)
SpeechSynthesizer foo = new SpeechSynthesizer();
foo.Speak("Test");
You can have more detail here on MSDN

Visual Web Developer Express and .NET, et al

I'm coming from the open source world, and interested in giving ASP.NET a spin. But I'm having a little trouble separating the tools from the platform itself in regards to the licensing. I've downloaded Visual Web Developer 2008 Express, but not sure how different this is from one of the full-featured Visual Studio licenses -- and whether or not my Express license will prevent me from using all the features of ASP.NET.
Is a Visual Studio license just an IDE, or does it include pieces of .NET not available to the Express license? What about the other tools like IIS and SQL Server?
Thanks.
All of .net is available in the .net SDK, so in theory you will not need Visual Studio at all.
Now, there are some things that Express will not do. For example, the Database Designer is not very comprehensive and adding different remote databases is not or only very hardly possible. Still, in code you can connect to everything.
There is also no Remote Debugger, no support for creating Setup Files (well, that does not apply to ASP.net anyway), no real Publish Web Site Feature (although that can be added manually as it's just a Frontend for a SDK tool), no integrated Unit testing (and Microsoft loves to threaten people who add it), etc.
For a full comparison, see here:
Visual Studio 2008 Editions
But as said: Functionality of .net is all in the SDK, Visual Studio is just making it a bit easier to work with.
Visual Studio is just an IDE, you can do all your .NET development with the SDK and notepad if you choose. In fact there is something to be said for learning it that way so you understand better how the pieces fit together!
Microsoft have a version comparison matrix available so you can see exactly what is included each version.
IIS is a Windows component and considered part of the OS, there is nothing else to buy.
SQL Server comes in many flavours, SQL EXpress is free to use and whilst limited compared to the versions you pay for, it is more than enough to get started with ASP.Net
Visual Studio is the IDE and does not include the platform.
IIS and SQL Server are separate products. IIS is available as part of the windows install and the version is different depending on what version of Windows you are using.
SQL Server also has an express product which is not as full featured as the Full versions of SQL Server, yet it is still rather valuable and useful especially for learning purposes.
You can learn a lot from the free tutorials found on asp.net.
Visual Studio is just the IDE. You could theoretically create every file in Notepad and compile manually with just the .net framework.
IIS is an operating system feature, and SQL Server has different flavors with different capabilites.
SharpDevelop is a Open Source IDE for C# and VB.net

Resources