I am new to sharepoint 2010 development and need help setting up the dev environment (virtual machine setup).
I have a new Windows 7 laptop (64bit and 4gb ram).
I have downloaded the vhd files (2010-10a.part01.exe etc) from the microsoft website.
I am unsure as to what the next step is. Do i need to install windows server 2008 r2 next? Will this work on laptop?
What i am asking is do i need to install 'windows server 2008 r2' on my laptop
Here is an alternative guide we used to install a SharePoint 2010 development environment, it can even be done on Windows 7 if you wish...
http://msdn.microsoft.com/en-us/library/ee554869.aspx
(We just use our company AD for user handling in our development environments, not best practice I guess, but starting with SharePoint is a monster hassle IMO, so going for the simplest solution to get started first is my recommendation)
You will wan't more RAM for a VM developer setup. Personally I use 8GB+ of memory (and SSD's) for the Developer VM's I have running.
Obviously a Virtual Environment can be very desired for SharePoint development (rolling back etc.). So going with a VM ain't a bad choice, your machine just won't handle it very well as is now...
A few things:
First, the virtual images they reference and are talking about require sever 2008 hyper-V. So you can scratch the use of these images on your laptop. (unless you blow out your existing OS, and install hyper-V on it, and the windows + windows server 2008 on top of of hyper-v). Windows 8 will have some versions that come with hyper-v, but let's not go down that road as of yet.
Next up, is at noted, these server based systems need quite a bit of ram. To run a WHOLE SharePoint server is REALLY quite large of a system. This system has to SQL server, has to run the web server, and THEN has an amazing number of additional services that need to startup and run such as workflows, Excel services, Access Services, indexing services and several web servers such as the admin site. – and this is the short list!
You need a min of 4 gigs of ram to just setup + install + setup SharePoint 2010. In fact, the min requirement is stated as 8 gig, but it will run quite nice in 4 gigs for testing.
Next up, as noted you cannot use the free edition of Virtual PC on your laptop to run such a virtual system such as 2008 r2 since VPC ONLY supports x32 bit operating systems as guests and you need a x64 bit VM here to run server 2008 of which then SharePoint runs on top of.
Assuming you bump your laptop up to 8 gigs, then you can most certainly grab something free like Oracle/Suns Virtual box and it does support x64 systems. And this setup will then run SharePoint 2010, but you cannot use those supplied images since they are not compatible with v-box (Not looked, but v-box does have support for VHD images from VPC, and they often also have additional images.
There might be some conversion utility, but that's another question.
So, unless you have 8 gigs, and unless you running hyper-V (server 2008) as your host system, then you cannot use such a VM setup on your laptop.
With more ram, you would have to install + setup hyper-V on your laptop.
With your current setup, you could consider to install + setup SharePoint on your laptop, but such a massive install would forever cause so many changes to your laptop that I would not being to consider such a setup on a dev box anyway. And again, you cannot use those VM images for such a setup + install on your laptop if you choose to NOT use VM technology as is being suggested with this idea.
And to be fair, you would never un-tangle the mess of systems that such a large server system with a GAZILLION services etc. that is installed anyway. In other words, I would build a box from the computer graveyard and use that!
So these VM's are not setup for your laptop environment you have. A longer shot would be if you had 8 gigs, and the disk vm images could be used with something like v-box (since it supports x64 VM's and you need this ability).
You need more hardware here regardless, and using the above images suggests that you have to install hyper-v on your laptop.
If you take a look at this website, In the overview it states that virtualmachine A is the windows 2008 R2 installation with sharepoint already on it.
B is a win2008 R2 with exchange
and C is 2008 with lync on it installed.
But i think you will need to have at least 8GB of ram for this to perform...
I don't know what processor you have but it has to be an I7 2nd or 3rd gen at least.
I tried the VM setup with only 4GB of RAM one time, it was terrible. I echo the other statements, you need a beefy PC to go that route.
I would reiterate many of what people have said about the 8GB of RAM. This thread explains other option for running the download you already have
https://sharepoint.stackexchange.com/questions/10461/sharepoint-2010-vhd-for-vmware
You can also try Cloudshare service for 14 days. It is a full featured Sharepoint server environment which you can access through RDC.
Related
I have built a working C# application, a multi-threaded application that crunches numbers for research.
I can only go so far with my own PC, so I'm wondering if there exists a service where I can rent a high powered computer that can run my C# code. Something with a lot of processor cores, so I could run... say, 64 threads concurrently.
Windows Azure can do that. Just install a VM and create an as big machine as you need.
Troy Hunt wrote a good blog post about how he used a cloud SQL Server for that kind of job.
In windows Azure you can create your service model, can specify the size to which to deploy an instance of your role, depending on its resource requirements.
Amazon EC2 also provides a number of options to choose an instance as per your requirement.
I need to create an application that does the following:
The application is going to be installed on multiple computers on the same network
There is going to be a computer that contains the database other computers will connect to that database. (So there is a server version of the software and a client version)
All the computers that have the application installed should be able to do CRUD (create, read,...) operations in the database.
Database will be small, that is it should be less than 1GB in size.
Problems that I have:
I don't know which database to use:
SQLite - From researching on the internet this seems like a great database. It is fast, very easy to deploy . The problem is that from researching I think it is not that good handling multiple connections. When I say multiple I mean 5 computers using the database simultaneously.
MySQL - I work with this database and I know it is great handling multiple connections. The problem with that database is that I don't know how I will be able to deploy that database. I am required to deploy a database when installing the software. I know that if I require the users to instal MySQL doing a separate installation that will work. Maybe there is a way of deploying MySQL when doploying a project in visual studio.
SQL Server Express - I believe this will be my best option. I have researched on the internet and I found out that it is possible to deploy a SQL Server Express database with a application. I believe it will be easy to figure out how to deploy such database with a project but it will be nice if someone can point me on the right direction on how to connect to that database remotely from a computer on the same network. The database will obviously be shared in the network in order to achieve this.
Microsoft Access Database - I never use this database. I know it can handle multiple connections. Maybe it is a good choice.
It will be nice if someone can point me on the right direction of how to be able to deploy a database when installing my application. Moreover how will I be able to connect to that database from a computer remotely on the same network. Since the database is small and it will just contain text I think that the best idea will be to keep the database on the internet but I cannot do that. The software is required to work without an internet connection.
EDIT
From looking at your answers it looks like I have to install SQL Server express or MySql on the server computer. The problem is that I am required to do one installation. Is there a way of deploying MySql or SQL Server Express when deploying my application. Perhaps I have to embed mysql in the application and make my application install it somehow. My boss want to be able to install the software without having a internet connection.
EDIT 2
I been thinking and this part will be very hard to implement. Do you guys have any ideas how QuickBooks implement their database? I guess I need something similar. When you install Quickbooks you perform just one installation. Quick-books handles pretty well simultaneous connections. Do they use their own database? Oracle? MySQL? I agree with all of you. It will be so easy to perform two installations. Also it will be cleaner. The software that I am creating is supposed to run on windows xp, and latter versions of windows.
If you want a dbms as your backend you are installing two things, It could look to the user like one thing, but I can tell you from bitter experience, that can be a lot of fun.
For instance to install 2005/ 2008 express, there are various prerequisites. Like a .net framework. Then there's patches and updates, then opening up the firewall(s), depends on set up. Different topology / os choices. Peer to peer, domain based, Active directory, Terminal Services, citrix.
So automagically installing without an internet connection, and using the installer for the db, is nigh on impossible, unless you have rigid control over the user environments.
Welcome to a world of hurt.
Oh did I mention permissions, shares, UAC, 32/64 bit (for sql server dmo and smo, maybe)
Do you want to block installs on "incompatible" environments.
Oh and what about upgrades. To the db, to your apps.
What if your client already has a server install and doesn't want to clutter up their kit with another...
and many many more.
And I bet you just can't wait to test all the potential combinations.
You haven't said what your target environments are going to be, so I can't say how many worms are in the tin, but its's very big time with plenty of room for lots of worms.
Ours is a long running legacy app, so we are pretty much snookered, I'd never willingly start with this design again though. Locally deployed web app would take a lot of the pain out of it.
Go back and scare the crap out of your boss.
I would recommend Sql Server Express installed on a server on your network.
Microsoft Access doesn't handle multiple simultaneous connections very well and is not very efficient when accessed from a remote machine.
You don't need to worry about deploying the database with your client application, you can install Sql Server Express directly on the server. (This only needs to be done once). You will need to configure Sql Server Express to accept remote connections after it is installed on the server.
SQLexpress supports multiple connections. So if you attach database on "server" computer you can than connect from clients same way as you would to local database.(provided those computers are in LAN or VPN).
Several articles on the Internet mention that SQLite is not that good handling multiple connections if all the connections are writing to the same database. I finally managed to deploy my application with SQL Server 2008 express. I also deployed my application with SQLite (downloaded the latest version for .NET framework 4). Since I plan to use this database just on a local network (LAN) I gave SQLite a try. I was impressed on how efficient SQLite was. I tested the Database by connecting with 4 computers symoltaniously and constantly writing data (inserts) to the database. No data was lost. When I did this with SQL express it was also very efficient and I could not tell a obvious difference. Maybe you get to see a real difference once there are 50 computers connected like on a web server for example.
Other nice things about SQLite are that it does not take time to deploy. Also there are no heavy services constantly running. I guess that SQLite is a better choice than SQL express. Moreover SQLexpress will only use 1 CPU and the database is limited to 2GB.
I am going to mist the Linq to SQL classes thought. They where very easy to implement with SQL Server Express. So in short I think that every database is good at something. And in this scenario I guess SQLite was a better option for me and for the users.
P.S.
I am interested in seeing how SQLite lattest version will hanle multiple connections compared to SQLexpress. I will try to test soon with more computers and each computer running multiple threads, each thread performing an insert in the database. maybe I,ll see a big difference with that scenario.
We have an instance of SQL Notifcation Services for which we have written a custom delivery channel. We had this process up and running in our QA environment running Windows Server 2003 with SQL Server 2005. It took a little bit of tweaking to the get the custom DLL trusted however we got it all working.
We have since deployed this code to our Live environment. This runs Windows Server 2008 with an Instance of SQL 2005 for Notification Services but then we have an instance of SQL 2008 which hosts the actual DB instance for Notification Services. Notification Services works as it should however we cannot get the custom DLL to be trusted as a result the custom delivery channel won't work. We simply get the error
That assembly does not allow partially trusted callers
We have tried using the .NET configuration utility and caspol.exe to give the .dll full trust with no luck at all. The .dll is compiled as a .NET 2 dll as notification service requires this.
We are pretty much out of ideas at the moment and hoping someone can suggest something?
We have managed to fix our issue. It would appear that Windows Server 2008 is stricter in its implementation of code access. By giving granting access to the .DLL by it's strong name rather than it's path allowed Notification Services to access the code.
Notification Services was not at fault.
I think you have one of two choices:
Embrace SQL 2008 and get rid of Notification Services because it was deprecated. Use Reporting Services or SSIS to do what you need.
Revert back to SQL 2005.
IMHO, I'd go option 1. Continuing to build with deprecated tools is going to quickly find you in a situation where support (community or vendor) is going to be extremely hard to come by.
update
This was too long for comments.
Not to beat your head too much, but continuing to develop applications for a technology that was EOL'd (end of life) over 3 years ago was the first mistake. The EOL statement was made quite public.
The second was having a QA environment that is radically different from production. Before deploying anything to production, the QA environment should have been identical... same type of hardware, same OS's, same server versions and patch levels. Otherwise QA is a joke, as you've found.
Now, as to the "resolution", there really is only one path: Revert your production environment back to SQL 2005 with the appropriate patches in place.
I wish you luck.
I've got a web app written in asp.net 3.5 / sql server 2005 and it runs extremely fast on my local machine (winXP) & test server (win2003) however some pages run very slowly when on the production server which is running win2008 r2. The web app isn't compiled but it does use two 32-bit dll's (intelligencia urlrewriter & campaign monitor api). I've configured iis7.5 to enable 32-bit apps for the application pool but this hasn't made a difference. Also the pages in question don't use the dll's mentioned any more than any other pages which load fine. The page in question does do very heavy database work so i'm thinking maybe it's got something to do with the fact the production server is running 32-bit sql!?!
Has anyone experience these symptoms or could anyone offer some advice on how i go about getting to the bottom of this?
Cheers
Tim
Use a performance profiler such as dotTrace or Ants Performance profiler to profile your application and find the bottlenecks.
You point these tools at your application, let them run for a while and then check the performance statistics they provide in order to find what is being called and how long it takes.
In my experience, the whole 32bit running on 64bit is a red herring - chances are that the application or the database are doing something that is taking long and slowing things down.
The title is all-explaining I think. I want to develop .Net GUI application for Windows that will also run on Mac with no much extra effort. I guess WPF is not right choice here. Anyway, what do I do to make my Silverlight out-of-browser application to run on Mac ? Just install Silverlight on that machine ?
Silverlight's Out of Browser model works great on Mac, and has since its inception. Just develop the app and test it on Windows, it's basically guaranteed to act identically on Mac, unless you rely on a Windows-only feature (such as COM interop in Silverlight 4 Trusted Applications).
Edit: To further clarify my answer, nothing beyond the Silverlight Runtime install is needed to run OOB apps on a Mac. So if the user is able to run you app in-browser to do the install sequence, then they will be able to install the app OOB and use it.
This works with Silverlight 3+ only, of course, as that's when the feature was released. SO if the end-user has Silverlight 1 or 2 installed, they won't be able to install your app, but they could upgrade to the latest runtime to be able to do so (unless they're on a PPC Mac, as that only supports Silverlight 1. But most Macs these days are Intel anyway, so that's not really worth mentioning).
According to Getting Started with Silverlight 3, OOB is available on both Windows and Mac without an additional runtime. Here's a demo of the install process from channel9.
As far as specific hangups, that's beyond my experience. But it sounds like, in general, there are no special requirements to run SL apps out-of-browser on OS X.
I have built a state wide Silverlight 4.0 application that runs in browser and out of browser. In my experience it runs very well on a Mac, however I would say that it's not exactly the same. It's very close, but there are small differences in the install experience, and I've received some errors in Isolated Storage that I don't get on a Windows machine.
Overall I would definitely say Silverlight is the best cross platform development platform that I've ever used.
Having built a SL app for OOB on mac, I discovered one bug that gave me hard time. If you are using domain services, and have a method that try's to get the current authentication context to pull the userID on the server side, this will fail. It will work on Windows OOB, but not on Mac OOB.
The work around is pass in the userID from the client side to the domain service queries that need it.
I've had this issue using the standard SL Business app template and confirmed with various users on SL forums.