At our company we are going to develop more for the Windows platform than we have done up until now. As this scale of Windows development is new to us it would be nice with some feedback from experienced developers.
Requirements we have:
5 developers from the beginning.
15 developers a year from now.
All developers should be able to develop at the same time.
Be able to develop solution for ASP.NET and EpiServer 5.
Our idea:
A shared server which developers use for development through Terminal Services.
SQL Server Express.
Start with some free express edition of Visual Studio, upgrade to a commercial version if we need the additional features.
Use IIS and not the web server built into Visual Studio.
Questions:
Are we on the right track?
In terms of license costs the above should be cheapest, right?
What do you think about multiple developers doing development using a shared TS-server?
Do you know of any company which has a similar development environment?
Are we going to miss some features of the full Visual Studio version immediately? Is using Express version a bad choice?
Is IIS the best choice? If use IIS the developers may use the same port for deployment. If we use the built in web server each one has to set their own port as we're sharing a machine.
Comment answer:
We are thinking about a shared server as it will most likely decrease the license costs. So it's purely a cost issue. We are using CVS for version control. Our situation is that we develop on Mac and Linux, that's why buying 1 server license + Visual Studio licenses seems to be a cost effective way of starting this type of development.
Since you are referring to EPiServer my recommendation is to use Visual Studio's built in web server on each developer's PC. Then get some kind of Windows Server and run SQL Server and IIS on it. Also use some kind of DNS service that allows you to create sub domain host names that you use to run multiple port 80 sites on the IIS.
I don't know the exact terms but you might be able to run SQL Developer Edition in this scenario instead of Express. Then you get the full set of management tools, no size limit on databases and support to import and export data. If you got customers with both 2005 and 2008 SQL Servers you should run both versions as two different instances so that you can move, create and restore database backups easily between environments.
Developers all connect to the same database while developing and when appropriate deploy their projects to the server's IIS web site. If you like you can allow a customer to use it as test site.
I would put the free VisualSVN Server on the server too and use that instead of CVS.
I would also look into renting this as a virtual server somewhere and use some kind of VPN to access it.
If you can live with the limitations I don't see any problems using VS Express.
Good luck!
I second Numenor's comment -- go with a free source control like Subversion. I would be scared to develop on Terminal Services for the simple reason that Visual Studio can be a resource hog if you start doing any debugging. I'm assuming you're going to have more than one person on the project at a time, and I'd think you could get desktops that would work out better for a lower price than a large server that could accommodate those types of terminal server sessions.
On top of that, if you have multiple people working on a project on the same physical box, you're going to have problems with two people changing one file...back to the source control recommendation.
Andrew Siemer has some great articles outlining how to set up a development environment. Interestingly enough, they're in his series-in-progress about setting up a StackOverflow type of site. Start with this one, then follow the series to get the scoop on automated builds.
Edit: You probably don't want to use CodePlex as Andrew outlines, but a private Subversion server would work the same way with TortoiseSVN. You can get Subversion from CollabNet.
Related
So I have zero experience with deploying software or putting something live. The situation is like this:
I have developed a dashboard web application on a laptop. This application uses a microsoft SQL database that also runs locally. When I run it, it's a localhost address. Now, I need to be able to access my web application from other PCs within my company's network. This way I can do some user testing. What are ways to do this? I searched and things confuse me to no end.
I use:
.NET Framework 4.5
Visual Studio Ultimate 2012
IIS7
Thanks
There are a few things you'll need to do to make your local application visible on the network. I'm assuming you want your app running on something like http://foobar/myapp where foobar is the name of your machine
Here is what you need to do:
Add a URL reservation so your machine will allow IIS to serve content on the url http://foobar/myapp
Create an inbound rule in Windows Firewall to allow incoming connections on port 80
You can find the exact commands you need to run on Scott Hanselman's excellent blog post. Of course, he's focusing mainly on getting SSL to work with IIS Express, but it has enough pointers to get you going, too.
look at msdn.microsoft.com
you can learn about:
Prerequisites
Creating the Web Site
Creating a Test Page and Class
Publishing the Web Site
Testing the Published Web Site
Next Steps
How can i upload video files of large size more than 4GB in web server using web service written in c# under visual studio 2005, without going for the silverlight concepts and framework 4.0. I need to make available this service within 2008, because my server is configured to 2008. I cant use silverlight which is present in visual studio 2012.
Any suggestions for implementing this concept is welcomed.
Check out this post for the current IIS size limit and this post for additional timeout settings and this article for some suggestions on how to do what you want with a custom client app, I don't think it would work directly from the browser. Here is a summary of the IIS limits and the most popular browsers.
Based on the above I think the safest thing you can do is impose a limit to the end user; something like 500 megs per file sounds reasonable.
On a similar note, apparently Apache has removed this kind of limitations in 2005 ...
I'll try to keep the question simple and short - what are the best practices when publishing a windows forms application which is using a SQL Server database?
Using ClickOnce with prerequisites I can enforce SQL Server Express installation, but what if it's already installed? How do you build the connection string? How do you find the names of the instances of the server? What kind of authentication should be used - Windows or SQL? Can this process be automated or is user interaction inevitable?
Adding an answer since this is the way you decided to go anyway, glad to help :)
You could also consider using SQL Server Compact which requires no setup and runs directly in-process with your application. Of course does not offer all features of SQL Express so really depends on your needs.
Have a look at: Microsoft SQL Server Compact 4.0
Note: if you could easily get rid of your triggers either you have cut functionalities or you got rid of things you do not really needed. I am old school and never use triggers, they are ofthen misused, seen people creating triggers just to set a default value in a column because did not know could have used the default.
Hmm, in this scenario I would say you would have to take into account the use of the database, if the database is connected up to a network which will support many users authentication would be needed and would inevitibly face some kind of user interaction.
Is there any alternative to IIS/ASP.Net/ASP while still being able to code in C# (for web back end development) ? Is there any light weight open source alternative to IIS,ASP.Net combo ?
Mono is the open source alternative Mono project
Have you tried the new IIS Express? It provides you with a configurable IIS 7.5 style platform per website solution. It's really useful when developing on XP for instance where previously you would have been limited to 1 website per development machine.
It's now available as part of the Visual Studio 2010 SP 1 download.
Check it out here;
IIS Express Overview
Although I'm a bit unclear as to your actual project requirements there is nothing stopping you from creating a C# based application and then exposing a web service which your application could connect to written in any web based language of your choice. However you will still have to host the web service in IIS.
You can use Cassini:
http://ultidev.com/products/Cassini/index.htm
Cassini is very reliable but not designed for heavy usage which is why UltiDev have built UWS Ultidev Web Server Pro based on the original Cassini Server:
http://ultidev.com/products/UWS/
Is there a light weight version of SQL Server I could use that has the characteristics of:
Free (assuming my winforms app is semi-commercial)
Can be seemlessly packaged for deployment as part of the winforms click-once application? (i.e. ease in installation for the user).
Light weight for the user (ideally something that just runs when the winforms application that uses it is running - but better than using XML sererialization for persistance).
Thanks
Yes - SQL Server Compact Edition:
Build embedded database applications for desktops and mobile devices
SQL Server Compact 3.5 is a free, easy-to-use embedded database engine that lets developers build robust Windows Desktop and mobile applications that run on all Windows platforms including Windows XP, Vista, Pocket PC, and Smartphone.
SQL Server CE is a set of DLL's you can ship included in your app.
SQL Server 2008 Express is also free, but it's a stand-alone server installation.
Marc
I don't know about any such (Microsoft) SQL server version. But if I'm in such situation I'll definitely go for SQLite or Firebird
Compact:
- you don't need to change logic of you application;
- MS Sql Management studio could be use to edit,create data structure visually ;)
- deployment, second time deployments more easy :)
SQLite:
- look in google search for the problems:), there lot of people who works with it and have problems, not form begining but during implementation "conctetical" tasks /projects
- no exists native visual interface to work with dbase (exist 3party products for that but they aren't free);
- again 2nd, 3 ... deployments needs more attention,time money :) ...
so, for me is beeter to work with MSSqlCompact, because i am working with .net kind of projects, i have to support my results, i must provide stable application etc...
Best choice is SQLite. There's ADO.NET implementation on .NET so its as easy to use as any other DB. Well, good example is Google Chrome.
There's only one unresolved issue: security. It's a pain to restrict access to SQLite database file as far as I know.