Is it a good idea to develop a SharePoint 2010 solution under Win 7? - windows-7

SharePoint 2010 is supported on Win 7 x64, but is it really a good idea to develop under this kind of standalone environment, when the developed solution is expected to be deployed on a Win 2K8 R2 farm?

Officially it is not supported on Windows 7 but it's allowed / ok for development purposes (which is already a good candidate to say officially "no")
The biggest reasons why I usually say no to that kind of environment if one asks for my opinions :
can only be installed as “stand alone”, which is the worst kind of installation (completely automated but also completely unrealistic). No SharePoint expert will ever suggest a standalone installation on production. Why the hell should we develop on a “stand alone mode” single server farm that is completely unrelated to the target environment ?
cannot know if it’s environment related when something is / seems broken (eg : taxonomy service provisioning, broken due to environment or code issue ? -> no time to do Windows 7 + SharePoint 2010 cohabitation issues debugging on corporate projects
when Arpan Shah, Director of SharePoint tools & technlogie says that there are limitations, I guess he knows them better than anyone else : http://reddevnews.com/articles/2010/06/02/sharepoint-qa-arpan-shah.aspx. Since theses limitations have not been fully listed (outside of the user profile service), I better not waste my time wondering if the issue I am facing is related to a limitation / environment gotcha.
The reason why I say "might be ok"
Prototyping / Client OM development / Middle Tier developments / not so complex solution developments are the kind of configuration / development on which a Windows 7 installation might be pretty handy.

I'm developing for SharePoint 2010 on a Windows 7 box for about 10 months. I have not encountered any issues by now.
The only issue I know of is that the "User Profile Service" is not supported under Windows 7.
There is an official installation guide by Microsoft:
Setting Up the Development Environment for SharePoint 2010 on Windows Vista, Windows 7, and Windows Server 2008
What kind of issues do you expect?

Substitute ASP.NET for SharePoint 2010 and ask the question:
[ASP.NET] is supported on Win 7 x64, but is it really a good idea to develop under this kind of standalone environment, when the developed solution is expected to be deployed on a Win 2K8 R2 farm?
I can't imagine anyone answering "no" when the question is phrased that way. It is the same with SharePoint (after all, SharePoint is just a framework library built on top of ASP.NET).
A SharePoint solution package contains different types of files: XML files, ASPX pages, DLLs, images, CSS files, etc. Other than the DLLs, these files are text and binary files that are portable to any Windows environment. And just like the DLLs compiled in a ASP.NET project, the DLLs from your SharePoint project will work perfectly fine on the server even when compiled on Windows 7.

Related

VS2010 web setup project needs IIS6 (metabase) compatibility on IIS7. Consequences or other issues for the application?

When trying to install a web setup project (MSI) created in Visual Studio 2010 on Windows Vista, Windows 7 or Windows 2008 Server the setup will fail, with some generic error.
According to http://devio.wordpress.com/2011/04/26/pitfalls-installing-web-setup-msi-on-iis-7/ this is because of a compatibility problem between the setup project en IIS7.
To resolve this I've to enable/install IIS6 metabase compatibility in my windows configuration. This workaround did fix the problem, but raises 2 questions:
Does this have any (negative) impact on functionality of IIS 7?
How can I notify a user running the installation of this problem so he or she can take proper action and install the metabase compatibility component? Is it possible to pop-up the windows component configuration dialog from this install, to make life easier for the user?
I don't think this will have any impact on the application itself, as long as it's implemented the way to talk to IIS7 via its native API. Otherwise, if it doesn't support IIS7 you'd have to enable IIS6 compatibility anyway.
The standard approach to search for anything on a target machine is searching registry and file system. I don't know how it is possible in VS setup project, but e.g. WiX has special elements for this (RegistrySearch, DirectorySearch, FileSearch). Basically, this post to WiX Tips and Tricks thread shows how to check for IIS6 compatibility in WiX and block the installation if it's not enables/installed. It's rather straight-forward even if you don't know WiX, but know the concepts of Windows Installer, and it can help you translate the code into the similar thing in VS setup project.
We seem to be having one negative impact on our servers.
Everytime we roll out a .NET 4.0 application with a msi made in Visual Studio, We get a recycle of ALL our application pools, even the ones not affected by the install.
Apparently the root cause of this is the IIS 6 compatibility. ( This was reported to us by a developer of microsoft in response to our support question about this.
At the moment we have no solution. It's impossible to convert all our installers to Wix.

Building webparts with Visual Studio 2010 Express

I'm trying to get started with building my own webparts, planning to follow this MSDN article.
I've downloaded Visual C# 2010 Express - I'm not quite at the point where I feel comfortable dropping 1000 big ones yet, and I installed Visual Web Developer 2010 Express via the WPInstaller.
Following through the tutorial, aside from the fact that I don't get the option to create a "Web Control Library", a gap I filled with this article, I can't seem to find the sn.exe tool (or the "Visual Studio 2005 Command Prompt"!).
I know it's not quite a direct programming related question, but I can't even get the thing going yet!
Any help is appreciated.
Thanks
EDIT:-
I think I may be jumping the gun quite considerably, I wrote a simple hello world example and tried to build it but it doesn't have any references to the Microsoft.SharePoint packages and they don't appear in my lists.
Am I understanding some more research I've done (namely this) correctly, in that I have to actually have a full installation of actual SharePoint on the machine I'm developing on?
sn.exe is part of the .Net Framework SDK tools - not actually part of Visual Studio.
If you've got the SDK installed (which I think you must have if you're using VS) then it will be in a directory such as (depending on which version of .NET SDK you've got installed)
c:\program files\microsoft.net\SDK\v2.0\Bin
You can develop SharePoint web parts with VS express but you won't be able to use extensions like VSeWSS which can make your life a little easier.
You don't have develop on a machine with SharePoint installed upon - you can just copy the Microsoft.SharePoint.dll assembly from a machine with it installed on and reference it in your project.
There are pros and cons to developing on a SharePoint machine.
Its easier to get started -
especially debugging locally rather
than remote debugging.
Harder to be
sure that you're code will work a
'real server' - are you sure you
don't have any dependencies that may
not be installed.
Harder to work with
multiple versions of SharePoint (2007
WSS and MOSS and 2010 foundation,
server etc).
If you do want to work with a locally installed SharePoint then
You can install windows server OS with SharePoint and Visual Studio.
there is a hack for installing SharePoint 2007 on vista (referenced in the SO article you link to)
you can install SharePoint Foundation 2010 on Windows 7 (but I am not sure what the licensing restrictions are - is this maybe something thats given through MSDN?)
If you decide to go with the remote server installation then save yourself some grief and use virtualization such as VMWare Server, Virtual PC or Hyper-V.
If you are doing SharePoint development trying to reference the Microsoft.SharePoint namespaces you need to have SharePoint installed on the machine if you want to do things like debugging, etc. For SP 2010 you CAN install SharePoint on a Win 7 machine. For previous versions of SharePoint, you will need to setup a Server that is Server 2003 or Server 2008 (you can't install SP 2007 and earlier on client machines). Generally this is a Virtual Machine for developers.
Having said all of that, there are relatively few reasons you need SharePoint to develop a WebPart. The vast majority of the WebPart functionality is part of the System.Web.UI.WebControls.WebParts namespace. Even if I am accessing SharePoint data, I generally use the ASP.NET web part.
If you are trying to use the new SharePoint VS 2010 functionality to create Visual Web Parts, etc, then you will need to install SP 2010, since that functionality is not supported in earlier version of SharePoint.
John

How to transform Win2K3 into a Workstation Developement OS?

Here is a question not directly related to programming.
Being fed up with Microsoft Windows XP Professional, and the lots of eye-candy, I want to try Microsoft Windows Server 2003 as the main OS on my development PC. (The other reason is a better version of IIS than 5.1). And knowing that Win2K3 was originally designed as a Server OS, I think that I should make it somehow more "workstation friendly".
My question is: How do I transform Win2K3 (Standard Edition most probably) into a Workstation OS? Any articles or links are highly appreciated.
PS: My development PC must run mainly MS Visual Studio 2008, MS SQL Server 2008, MS Expression Studio 2, different Oracle software (10gR2, ExpressEdition, 11g) and other little utilities (a testing framework, a subversion tool - TFS, a web browser, a bittorrent client, etc). All of this are compatible with Win2K3, as I previously checked.
Tnks
I only server OS as my workstation, I had Server 2003 before I switched to Server 2008. There's a guide you can find here http://www.msfn.org/win2k3/.
You shouldn't run into any problems. Most of windows xp drivers will work on server 2003, however, some apps won't. Especially those that check for the OS version before installing. But you shouldn't have any problems with VS2008, Expression and anything you posted.
For me the only thing that was troublesome was running iTunes on server 2003, it doesn't look as good.
And if you like the eye candy you can turn it on by starting the Theme service and changing a few settings.
You shouldn't run into any issues running those applications on Server 2003.
The last time I personally ran 2003 on a workstation the only real big change was changing the security settings of internet explorer.
If you run one of the free anti-virus software packages you may find that they will not install on a Server OS.
edit: As another poster has suggested I would also go straight to server 2008 if it is an options. Server 2008 runs very well as a workstation OS and if you're hardware supports it the virtual server works very well.
Here's links for turning 2003 into workstation:
http://www.google.com/search?hl=en&q=windows+server+2003+workstation+converter
If you'd like use Windows Server 2008 as a workstation, runs much better (faster) than a regular Vista install:
http://www.google.com/search?hl=en&q=windows+server+2008+workstation+converter&aq=1&oq=windows+server+2008+work
or try getting your hands on Windows 7 RC1 which runs quite well.
None of the software types you've listed has any workstation-biased dependencies that I'm aware of. Expression Blend may suffer a bit depending on your hardware and drivers, as WPF is a little more demanding of visual goo than most other development tools for Windows forms.

Has anyone ran into any issues developing on Windows 7?

I want to trial Windows 7 but wondered if anyone who has done so already ran into any issues specifically related to development?
i.e. problems with VS2008, SQL Management Studio and SQL Server, MySQL, PHP etc. etc.
Examples from XP -> Vista: in Vista there was a sudden loss of an SMTP server. And there were initially (if I remember correctly) issues with VS2005 with I seem to remember a patch coming out later to remedy.
EDIT: or on the contrary any big advantages or benefits to developing on Windows 7!
I been using windows 7 for a while now.
I been using VS2008, netbeans, tomcat, sql manager studio, mysql etc...
And i actually find it more stable and faster then windows vista.
There aren't many advantages to developing on Windows 7 before it's released. Most development features are a function of the IDE, not the OS. So, you might want to consider instead if you should be developing on Visual Studio 2010 instead of VS2008. Instead, you're more likely to have compatibility issues, although for the most part, Windows 7 is much more compatible with existing software than Vista was when it was in beta.
There could be one advantage to developing for Windows 7 before it's released -- you have a head start in taking advantage of features that competitors haven't yet, giving you an advantage in the market. That's the theory at least. That assumes you're going to develop something that uses a feature only available in Windows 7. That assumes you wouldn't be better off with the larger number of sales you'd get by developing something that works on existing platforms.
The only issue I've encountered so far involves compiling older vanilla C programs with Visual C++. You're usually presented with an error like so:
mt.exe : general error c101008d:
Failed to write the updated manifest
to the resource of file
".\Release\SomeProgram.exe". The
binary is not a valid Windows image.
You have to add an empty resource file to the solution.
More on the issue here.
I've never gotten any of the new audio stack examples working; thus this question. API works, documentation is... a bit lacking at the moment; sure to be fixed by RTM.
Other than that, Windows 7 has been faster than and just as stable as Vista (2 crashes from RTM, 0 crashes after SP1) was for me. Truly, you should be developing on Vista and testing on Windows 7 RC as a general practice with respect to pre-release operating systems; but I think we'll get away with it just fine in this particular case.
My advice would be to not develop on Windows 7. Note that I don't mean you shouldn't target it as a platform, just that you should be doing your development on a stable platform.
I personally won't trust a new release of Windows (or Linux for that matter) until it's been in the wild as a proper product (not release candidate) for many months. For Windows, I tend to wait until the first real service pack plus a month for all the nigglies to be fixed.
For Linux, I'm still using Ubuntu 8.04 LTS, not 8.1, and certainly not the 9 alphas.
Test machines are another matter, you should always have one at the "latest and greatest" level for testing, but I consider the development machine of prime importance, needing a stable platform.
No problems from my end yet, been working on a c# app with visual studio 2008 x64, and php web apps with dreamweaver cs3 and netbeans.
Windows7 seems to be just vista with more bells and wistles and a bit more responsive, not to sure if to much really change "under the hood" so to speak. But I have nothing to back that statement up with...
I've been using Win7 for a couple of months now and never had a problem. I went straight from XP to 7 and the only problems I faced were related to configuring SourceGear Vault to work with IIS7...other than that,it's been all good.
I use VS 2005, VS 2008, SQL Server 2005, Infragistics NetAdvantage, and a couple of third party components.
Although I haven't seen any advantages for the development side of the applications, I'd recommend you to upgrade to Win7 only for the better feel of a complete OS. I mean XP was good, but I really dig Win7.

Does anybody have experience with Visual Studio 2008 on Windows 7?

Has anyone already tried this, anything particulair that I need to be aware of?
Yep, been running it for a while and I haven't hit any problems yet. Can't say I've use it all day every day, but I've built WPF, WinForms, Web and Console apps with it for testing various things and haven't had any hitches.
I have it on my Dell X1, which is effectively my "NetBook", and it's really pretty rapid. The only glitch I have had at all is some problems with graphics acceleration, but that's down to the Intel driver I'm using being an old XP driver, and it was easily worked around.
I've been running it inside a VM in Parallels Desktop 4 on a MacBook Pro. Absolutely no problems to speak of.
(There's no sound in Windows 7 as virtualized through Parallels, which is a known issue — but not very pertinent to the operation of Visual Studio.)
Jeroen,
I've been unable to install the 2008 Team Developer edition - keep getting a permission error. I was, however, able to insall the 2008 Team Database edition. I normally install both editions, so am kind of bummed about not getting the Developer edition to install. Screenshot of the error is here if you're curious.
No Problem with team edition, but only using it for web projects.
I've been using it at work since RC1 and have not run into any issues. Have developed a WinForms app, a WebForms site and now working on a MVC project.
I have had zero problems running Visual Studio 2008 Pro on 32 bit and 64 bit editions of Windows 7 for full-time C++ development.
If the application you are developing doesn't behave correctly under UAC you may will need to run the IDE as admin otherwise it won't run correctly under debug (this is the applications problem, not Windows 7 or Visual Studios).
Others seem to have problems with access rights/permissions, this should also be fixable by running the IDE as admin (via right click) or more permanently via the compatibility tab in the shortcut properties.
I don't know why this happens, is probably related to their particular user account settings.

Resources