You are on page 1of 18

MicrosoftVisualStudio

WhatisVISUALSTUDIO.... MicrosoftVisualStudioisanIntegratedDevelopmentEnvironment(IDE)fromMicrosoft.Itcanbe usedtodevelopconsoleandgraphicaluserinterfaceapplicationsalongwithWindowsForms applications,websites,webapplications,andwebservicesinbothnativecodetogetherwithmanaged codeforallplatformssupportedbyMicrosoftWindows,WindowsMobile,WindowsCE,.NET Framework,.NETCompactFrameworkandMicrosoftSilverlight. VisualStudioincludesacodeeditorsupportingIntelliSenseaswellascoderefactoring.Theintegrated debuggerworksbothasasourceleveldebuggerandamachineleveldebugger.Otherbuiltintools includeaformsdesignerforbuildingGUIapplications,webdesigner,classdesigner,anddatabase schemadesigner.Itallowspluginstobeaddedthatenhancethefunctionalityatalmosteverylevel includingaddingsupportforsourcecontrolsystems(likeSubversionandVisualSourceSafe)toadding newtoolsetslikeeditorsandvisualdesignersfordomainspecificlanguagesortoolsetsforother aspectsofthesoftwaredevelopmentlifecycle(liketheTeamFoundationServerclient:Team Explorer). VisualStudiosupportslanguagesbymeansoflanguageservices,whichallowanyprogramming languagetobesupported(tovaryingdegrees)bythecodeeditoranddebugger,providedalanguage specificservicehasbeenauthored.BuiltinlanguagesincludeC/C++(viaVisualC++),VB.NET(via VisualBasic.NET),andC#(viaVisualC#).SupportforotherlanguagessuchasF#,M,Python,and Rubyamongothershasbeenmadeavailablevialanguageserviceswhicharetobeinstalledseparately. ItalsosupportsXML/XSLT,HTML/XHTML,JavaScriptandCSS.Languagespecificversionsof VisualStudioalsoexistwhichprovidemorelimitedlanguageservicestotheuser.Theseindividual packagesarecalledMicrosoftVisualBasic,VisualJ#,VisualC#,andVisualC++. Microsoftprovides"Express"editionsofitsVisualStudio2008componentsVisualBasic,VisualC#, VisualC++,andVisualWebDeveloperatnocost.VisualStudio2008and2005ProfessionalEditions, alongwithlanguagespecificversions(VisualBasic,C++,C#,J#)ofVisualStudio2005areavailable forfreetostudentsasdownloadsviaMicrosoft'sDreamSparkprogram.VisualStudio2010iscurrently inbetatestingandcanbedownloadedbythegeneralpublicatnocost.

Architecture
VisualStudiodoesnotsupportanyprogramminglanguage,solutionortoolintrinsically.Instead,it allowsvariousfunctionalitytobepluggedin.SpecificfunctionalityiscodedasaVSPackage.When

installed,thefunctionalityisavailableasaService.TheIDEprovidesthreeservices:SVsSolution, whichprovidestheabilitytoenumerateprojectsandsolutions;SVsUIShell,whichprovideswindowing andUIfunctionality(includingtabs,toolbarsandtoolwindows);andSVsShell,whichdealswith registrationofVSPackages.Inaddition,theIDEisalsoresponsibleforcoordinatingandenabling communicationbetweenservices.Alleditors,designers,projecttypesandothertoolsareimplemented asVSPackages.VisualStudiousesCOMtoaccesstheVSPackages.TheVisualStudioSDKalso includestheManagedPackageFramework(MPF),whichisasetofmanagedwrappersaroundthe COMinterfacesthatallowthePackagestobewrittenin.NETlanguages.However,MPFdoesnot provideallthefunctionalityexposedbytheVisualStudioCOMinterfaces.Theservicescanthenbe consumedforcreationofotherpackages,whichaddfunctionalitytotheVisualStudioIDE. SupportforprogramminglanguagesisaddedbyusingaspecificVSPackagecalledaLanguage Service.AlanguageservicedefinesvariousinterfaceswhichtheVSPackageimplementationcan implementtoaddsupportforvariousfunctionality.Functionalitythatcanbeaddedthiswayincludes syntaxcoloring,statementcompletion,bracematching,parameterinformationtooltips,memberlists anderrormarkersforbackgroundcompilation.Iftheinterfaceisimplemented,thefunctionalitywillbe availableforthelanguage.Languageservicesaretobeimplementedonaperlanguagebasis.The implementationscanreusecodefromtheparserorthecompilerforthelanguage.Languageservices canbeimplementedeitherinnativecodeormanagedcode.Fornativecode,eitherthenativeCOM interfacesortheBabelFramework(partofVisualStudioSDK)canbeused.Formanagedcode,the MPFincludeswrappersforwritingmanagedlanguageservices. VisualStudiodoesnotincludeanysourcecontrolsupportbuiltinbutitdefinestheMSSCCI(Microsoft SourceCodeControlInterface)byimplementingwhichsourcecontrolsystemscanintegratewiththe IDE.MSSCCIdefinesasetoffunctionsthatareusedtoimplementvarioussourcecontrol functionality.MSSCCIwasfirstusedtointegrateVisualSourceSafewithVisualStudio6.0butwas lateropenedupviatheVisualStudioSDK.VisualStudio.NET2002usedMSSCCI1.1,andVisual Studio.NET2003usedMSSCCI1.2.BothVisualStudio2005and2008useMSSCCIVersion1.3, whichaddssupportforrenameanddeletepropagationaswellasasynchronousopening. VisualStudiosupportsrunningmultipleinstancesoftheenvironment(eachwithitsownsetof VSPackages).Theinstancesusedifferentregistryhives(seeMSDN'sdefinitionoftheterm"registry hive"inthesenseusedhere)tostoretheirconfigurationstateandaredifferentiatedbytheirAppId (ApplicationID).TheinstancesarelaunchedbyanAppIdspecific.exethatselectstheAppId,setsthe roothiveandlaunchestheIDE.VSPackagesregisteredforoneAppIdareintegratedwithother VSPackagesforthatAppId.ThevariousproducteditionsofVisualStudioarecreatedusingthe differentAppIds.TheVisualStudioExpresseditionproductsareinstalledwiththeirownAppIds,but theStandard,ProfessionalandTeamSuiteproductssharethesameAppId.Consequently,theExpress editionscanbeinstalledsidebysidewithothereditions,unliketheothereditionswhichupdatethe sameinstallation.TheprofessionaleditionincludesasupersetoftheVSPackagesinthestandard editionandtheteamsuiteincludesasupersetoftheVSPackagesinbothothereditions.TheAppId systemisleveragedbytheVisualStudioShellinVisualStudio2008.

Features Codeeditor:

TheVisualStudiocodeeditorshowingIntelliSensesuggestionsandadockedTaskListwindow VisualStudio,likeanyotherIDE,includesacodeeditorthatsupportssyntaxhighlightingandcode completionusingIntelliSensefornotonlyvariables,functionsandmethodsbutalsolanguage constructslikeloopsandqueries.IntelliSenseissupportedfortheincludedlanguages,aswellasfor XMLandforCascadingStyleSheetsandJavaScriptwhendevelopingwebsitesandwebapplications. Autocompletesuggestionsarepoppedupinamodelesslistbox,overlaidontopofthecodeeditor.In VisualStudio2008onwards,itcanbemadetemporarilysemitransparenttoseethecodeobstructedby it.Thecodeeditorisusedforallsupportedlanguages. TheVisualStudiocodeeditoralsosupportssettingbookmarksincodeforquicknavigation.Other navigationalaidsincludecollapsingcodeblocksandincrementalsearch,inadditiontonormaltext searchandregexsearch.Thecodeeditoralsoincludesamultiitemclipboardandatasklist.Thecode editorsupportscodesnippets,whicharesavedtemplatesforrepetitivecodeandcanbeinsertedinto codeandcustomizedfortheprojectbeingworkedon.Amanagementtoolforcodesnippetsisbuiltin aswell.Thesetoolsaresurfacedasfloatingwindowswhichcanbesettoautomaticallyhidewhen unusedordockedtothesideofthescreen.TheVisualStudiocodeeditoralsosupportscoderefactoring includingparameterreordering,variableandmethodrenaming,interfaceextractionandencapsulation ofclassmembersinsideproperties,amongothers. VisualStudiofeaturesbackgroundcompilation(alsocalledincrementalcompilation).Ascodeisbeing written,VisualStudiocompilesitinthebackgroundwithinordertoprovidefeedbackaboutsyntax andcompilationerrors,whichareflaggedwitharedwavyunderline.Warningsaremarkedwitha greenunderline.Backgroundcompilationdoesnotgenerateexecutablecode,sinceitrequiresa differentcompilerthantheoneusedtogenerateexecutablecode.Backgroundcompilationwasinitially introducedwithMicrosoftVisualBasicbuthasnowbeenexpandedforallincludedlanguages.

Debugger:
VisualStudioincludesadebuggerthatworksbothasasourceleveldebuggeraswellasmachinelevel debugger.Itworkswithbothmanagedcodeaswellasnativecodeandcanbeusedfordebugging applicationswritteninanylanguagesupportedbyVisualStudio.Inaddition,itcanalsoattachto runningprocessesandmonitoranddebugthoseprocesses.Ifsourcecodefortherunningprocessis available,itdisplaysthecodeasitisbeingrun.Ifsourcecodeisnotavailable,itcanshowthe disassembly.TheVisualStudiodebuggercanalsocreatememorydumpsaswellasloadthemlaterfor debugging.Multithreadedprogramsarealsosupported.Thedebuggercanbeconfiguredtobe

launchedwhenanapplicationrunningoutsidetheVisualStudioenvironmentcrashes.

DatatooltipsinVisualStudio Thedebuggerallowssettingbreakpoints(whichallowexecutiontobestoppedtemporarilyatacertain position)andwatches(whichmonitorthevaluesofvariablesastheexecutionprogresses).Breakpoints canbeconditional,meaningtheygettriggeredwhentheconditionismet.Codecanbesteppedover, i.e.,runoneline(ofsourcecode)atatime.Itcaneitherstepintofunctionstodebuginsideit,orstep overit,i.e.,theexecutionofthefunctionbodyisn'tavailableformanualinspection.Thedebugger supportsEditandContinue,i.e.,itallowscodetobeeditedasitisbeingdebugged(32bitonly;not supportedin64bit).Whendebugging,ifanyvariableishoveredoverbythemousepointer,itscurrent valueisdisplayedinatooltip("datatooltips"),whereitcanalsobemodifiedifdesired.Duringcoding, theVisualStudiodebuggerletscertainfunctionsbeinvokedmanuallyfromtheImmediatetool window.TheparameterstothemethodaresuppliedattheImmediatewindow.

Designer
VisualStudioincludesahostofvisualdesignerstoaidinthedevelopmentofapplications.Thesetools include:

VisualStudio2005inDesignerview

TheWPFDesignerinVisualStudio2008

VisualStudioWebDesignerincodeeditorview

VisualStudio2005inClassDesignerview

WindowsFormsDesigner TheWindowsFormsdesignerisusedtobuildGUIapplicationsusingWindowsForms.It includesapaletteofUIwidgetsandcontrols(includingbuttons,progressbars,labels,layout containersandothercontrols)thatcanbedraggedanddroppedonaformsurface.Layoutcanbe controlledbyhousingthecontrolsinsideothercontainersorlockingthemtothesideoftheform. Controlsthatdisplaydata(liketextbox,listbox,gridview,etc.)canbedataboundtodata sourceslikedatabasesorqueries.TheUIislinkedwithcodeusinganeventdrivenprogramming model.ThedesignergenerateseitherC#orVB.NETcodefortheapplication. WPFDesigner TheWPFdesigner,codenamedCider,wasintroducedwithVisualStudio2008.Likethe WindowsFormsdesigneritsupportsusesthedraganddropmetaphor.Itisusedtoauthoruser interfacestargetingWindowsPresentationFoundation.ItsupportsallWPFfunctionality includingdatabindingandautomaticlayoutmanagement.ItgeneratesXAMLcodefortheUI. ThegeneratedXAMLfileiscompatiblewithMicrosoftExpressionDesign,thedesigneroriented product.TheXAMLcodeislinkedwithcodeusingacodebehindmodel.

Webdesigner VisualStudioalsoincludesawebsiteeditoranddesignerthatallowswebpagestobeauthored bydragginganddroppingwidgets.ItisusedfordevelopingASP.NETapplicationsandsupports HTML,CSSandJavaScript.ItusesacodebehindmodeltolinkwithASP.NETcode.From VisualStudio2008onwards,thelayoutengineusedbythewebdesignerissharedwithMicrosoft ExpressionWeb. Classdesigner TheClassDesignerisusedtoauthorandedittheclasses(includingitsmembersandtheiraccess) usingUMLmodeling.TheClassDesignercangenerateC#andVB.NETcodeoutlinesforthe classesandmethods.Itcanalsogenerateclassdiagramsfromhandwrittenclasses. Datadesigner Thedatadesignercanbeusedtographicallyeditdatabaseschemas,includingtypedtables, primaryandforeignkeysandconstraints.Itcanalsobeusedtodesignqueriesfromthegraphical view. Mappingdesigner FromVisualStudio2008onwards,themappingdesignerisusedbyLINQtoSQLtodesignthe mappingbetweendatabaseschemasandclassesthatencapsulatethedata.

Othertools
OpenTabsBrowser Theopentabsbrowserisusedtolistallopentabsandswitchbetweenthem.Itisinvokedusing CTRL+TAB.

OpenTabBrowserinVisualStudio2008inWindowsVista PropertiesEditor ThePropertiesEditortoolisusedtoeditpropertiesinaGUIpaneinsideVisualStudio.Itlistsall availableproperties(bothreadonlyandthosewhichcanbeset)forallobjectsincludingclasses, forms,webpagesandotheritems.

OpenTabBrowserandPropertiesEditorinWindowsXP ObjectBrowser TheObjectBrowserisanamespaceandclasslibrarybrowserforMicrosoft.NET.Itcanbeused tobrowsethenamespaces(whicharearrangedhierarchically)inmanagedassemblies.The hierarchymayormaynotreflecttheorganizationinthefilesystem. SolutionExplorer InVisualStudioparlance,asolutionisasetofcodefilesandotherresourcesthatareusedto buildanapplication.Thefilesinasolutionarearrangedhierarchically,whichmightormightnot reflecttheorganizationinthefilesystem.TheSolutionExplorerisusedtomanageandbrowse thefilesinasolution. TeamExplorer TeamExplorerisusedtointegratethecapabilitiesofTeamFoundationServer,theRevision ControlSystemintotheIDE(andthebasisforMicrosoft'sCodePlexhostingenvironmentfor opensourceprojects).Inadditiontosourcecontrolitprovidestheabilitytoviewandmanage individualworkitems(includingbugs,tasksandotherdocuments)andtobrowseTFSstatistics. ItisincludedaspartofaTFSinstallandisalsoavailableasadownloadforVisualStudio2005 and2008.TeamExplorerisalsoavailableasastandaloneenvironmentsolelytoaccessTFS services. DataExplorer DataExplorerisusedtomanagedatabasesonMicrosoftSQLServerinstances.Itallowscreation andalterationofdatabasetables(eitherbyissuingTSQLcommandsorusingtheDatadesigner). Itcanalsobeusedtocreatequeriesandstoredprocedures,withthelatterineitherTSQLorin managedcodeviaSQLCLR.DebuggingandIntelliSensesupportisavailableaswell. ServerExplorer TheServerExplorertoolisusedtomanagedatabaseconnectionsonanaccessiblecomputer.Itis alsousedtobrowserunningWindowsServices,performancecounters,WindowsEventLogand messagequeuesandusethemasdatasource. DotfuscatorSoftwareServicesCommunityEdition VisualStudioincludesafree'light'versionofPreEmptiveSolutions'Dotfuscatorproductfor codeobfuscationandapplicationsizereduction.StartingwithVisualStudio2010,thisversionof DotfuscatorwillincludeRuntimeIntelligencecapabilitiesthatallowauthorstogatherenduser usage,performance,andstabilityinformationfromtheirapplicationsrunninginproduction.

Extensibility
VisualStudioallowsdeveloperstowriteextensionsforVisualStudiotoextenditscapabilities.These extensions"pluginto"VisualStudioandextenditsfunctionality.Extensionscomeintheformof macros,addins,andpackages.Macrosrepresentrepeatabletasksandactionsthatdeveloperscan recordprogrammaticallyforsaving,replaying,anddistributing.Macros,however,cannotbeusedto implementnewcommandsorcreatetoolwindows.TheyarewrittenusingVisualBasicandarenot compiled.AddInsprovideaccesstotheVisualStudioobjectmodelandcaninteractwiththeIDE tools.AddInscanbeusedtoimplementnewfunctionalityandcanaddnewtoolwindows.AddInsare pluggedintotheIDEviaCOMandcanbecreatedinanyCOMcompliantlanguages.Packagesare createdusingtheVisualStudioSDKandprovidethehighestlevelofextensibility.Itisusedtocreate designersandothertools,aswellastointegrateotherprogramminglanguages.TheVisualStudioSDK providesbothunmanagedaswellasamanagedAPItoaccomplishthesetasks.However,themanaged APIisn'tascomprehensiveastheunmanagedone.ExtensionsaresupportedintheStandard(and higher)versionsofVisualStudio2005.ExpressEditionsdonotsupporthostingextensions. VisualStudio2008introducedtheVisualStudioShellthatallowsfordevelopmentofacustomized versionoftheIDE.TheVisualStudioShelldefinesasetofVSPackagesthatprovidethefunctionality requiredinanyIDE.Ontopofthat,otherpackagescanbeaddedtocustomizetheinstallation.The IsolatedmodeoftheshellcreatesanewAppIdwherethepackagesareinstalled.Thesearetobestarted withadifferentexecutable.Itisaimedfordevelopmentofcustomdevelopmentenvironments,either foraspecificlanguageoraspecificscenario.TheIntegratedmodeinstallsthepackagesintotheAppId oftheProfessional/Standard/TeamSystemeditions,sothatthetoolsintegrateintotheseeditions.The VisualStudioShellisavailableasafreedownload. AfterthereleaseofVisualStudio2008,MicrosoftcreatedtheVisualStudioGallery.Itservesasthe centrallocationforpostinginformationaboutextensionstoVisualStudio.Communitydevelopersas wellascommercialdeveloperscanuploadinformationabouttheirextensionstoVisualStudio.NET 2002throughVisualStudio2008.Usersofthesitecanrateandreviewtheextensionstohelpassessthe qualityofextensionsbeingposted.

Supportedproducts Includedproducts
MicrosoftVisualC++ MicrosoftVisualC++isMicrosoft'simplementationoftheCandC++compilerandassociated languagesservicesandspecifictoolsforintegrationwiththeVisualStudioIDE.Itcancompile eitherinCmodeorC++mode.ForC,itfollowstheISOCstandardwithpartsofC99specalong withMSspecificadditionsintheformoflibraries.[33]ForC++,itfollowstheANSIC++spec alongwithafewC++0xfeatures.[34]ItalsosupportstheC++/CLIspectowritemanagedcode, aswellasmixedmodecode(amixofnativeandmanagedcode).MicrosoftpositionsVisualC++ fordevelopmentinnativecodeorcodethatcontainsbothnativeaswellasmanagedcomponents. VisualC++supportsCOMaswellastheMFClibrary.ForMFCdevelopment,itprovidesaset ofwizardsforcreatingandcustomizingMFCboilerplatecode,andcreatingGUIapplications usingMFC.VisualC++canalsousetheVisualStudioformsdesignertodesignUIgraphically.

VisualC++canalsobeusedwiththeWindowsAPI.Italsosupportstheuseofintrinsic functions,[35]whicharefunctionsrecognizedbythecompileritselfandnotimplementedasa library.IntrinsicfunctionsareusedtoexposetheSSEinstructionsetofmodernCPUs.VisualC+ +alsoincludestheOpenMP(version2.0)spec.[36] MicrosoftVisualC# MicrosoftVisualC#isMicrosoft'simplementationoftheC#language,thattargetsthe.NET Framework,alongwiththelanguageservicesthatletstheVisualStudioIDEsupportC#projects. WhilethelanguageservicesareapartofVisualStudio,thecompilerisavailableseparatelyasa partofthe.NETFramework.TheVisualC#2008compilersupportsversion3.0oftheC# languagespecifications.VisualC#supportstheVisualStudioClassdesigner,Formsdesigner, andDatadesigneramongothers. MicrosoftVisualBasic MicrosoftVisualBasicisMicrosoft'simplementationoftheVB.NETlanguageandassociated toolsandlanguageservices.ItwasintroducedwithVisualStudio.NET(2002).Microsofthas positionedVisualBasicforRapidApplicationDevelopment.VisualBasiccanbeusedtoauthor bothconsoleapplicationsaswellasGUIapplications.LikeVisualC#,VisualBasicalsosupports theVisualStudioClassdesigner,Formsdesigner,andDatadesigneramongothers.LikeC#,the VB.NETcompileralsoisavailableasapartof.NETFrameworkbutthelanguageservices,that letVB.NETprojectsbedevelopedwithVisualStudio,areavailableasapartofthelatter. MicrosoftVisualWebDeveloper MicrosoftVisualWebDeveloperisusedtocreatewebsites,webapplicationandwebservices usingASP.NET.EitherC#orVB.NETlanguagescanbeused.VisualWebDevelopercanuse theVisualStudioWebDesignertographicallydesignwebpagelayouts. TeamFoundationServer IncludedonlywithVisualStudioTeamSystem,TeamFoundationServerisintendedfor collaborativesoftwaredevelopmentprojectsandactsastheserversidebackendprovidingsource control,datacollection,reporting,andprojecttrackingfunctionality.ItalsoincludestheTeam Explorer,theclienttoolforTFSservices,whichisintegratedinsideVisualStudioTeamSystem.

Previousproducts
VisualFoxPro VisualFoxProisadatacentricobjectorientedandproceduralprogramminglanguageproduced byMicrosoft.ItisderivedfromFoxPro(originallyknownasFoxBASE)whichwasdeveloped byFoxSoftwarebeginningin1984.VisualFoxProistightlyintegratedwithitsownrelational databaseengine,whichextendsFoxPro'sxBasecapabilitiestosupportSQLqueryanddata manipulation.VisualFoxProisafullfeatured,dynamicprogramminglanguagethatdoesnot requiretheuseofanadditionalgeneralpurposeprogrammingenvironment.Microsoftannounced in2007thatVisualFoxProhasbeendiscontinuedafterversion9ServicePack2,butwillremain supporteduntil2015. VisualSourceSafe

MicrosoftVisualSourceSafeisasourcecontrolsoftwarepackageorientedtowardssmall softwaredevelopmentprojects.TheSourceSafedatabaseisamultiuser,multiprocessfile systemdatabase,usingtheWindowsfilesystemdatabaseprimitivestoprovidelockingand sharingsupport.Allversionsaremultiuser,usingSMB(fileserver)networking.[39] [41] [40] However,withVisualSourceSafe2005,otherclientservermodeswereadded(LanBoosterand VSSInternet),possiblyusingsomeotherprotocol?VisualSourceSafe6.0wasavailableasa standaloneproductandwasincludedwithVisualStudio6.0,andotherproductssuchasOffice DeveloperEdition.VisualSourceSafe2005wasavailableasastandaloneproductandincluded withthe2005TeamSuite.VisualStudioTeamSystemincludedTeamFoundationServerfor sourcecontrol. MicrosoftVisualJ++/MicrosoftVisualJ# MicrosoftVisualJ++wasMicrosoft'simplementationoftheJavalanguage(withMicrosoft specificextensions)andassociatedlanguageservices.Itwasdiscontinuedasaresultofa litigationfromSunMicrosystems,andthetechnologywasrecycledintoVisualJ#,Microsoft's Javacompilerfor.NETFramework.J#wasavailablewithVisualStudio2005buthasbeen discontinuedinVisualStudio2008. VisualInterDev VisualInterDevwasusedtocreatewebapplicationsusingMicrosoftActiveServerPages(ASP) technologies.Itsupportscodecompletionandincludesdatabaseservermanagementtools.Ithas beenreplacedwithMicrosoftVisualWebDeveloper.

Editions

DiagramshowingtherelationshipofvariousVisualStudioEditions MicrosoftVisualStudioisavailableinthefollowingeditions:

VisualStudioExpress VisualStudioExpressEditionsareasetoffreelightweightindividualIDEswhichareprovided asstrippeddownversionsoftheVisualStudioIDEonaperlanguagebasis,i.e.,itinstallsthe languageservicesforthesupportedlanguagesontoindividualVisualStudioShellAppIds.It includesonlyasmallsetoftoolsascomparedtotheothersystemsdevoidofremotedatabase supportfordatadesigner,classdesignerandseveralothertoolsandfeaturesaswellassupport forplugins.x64compilersarenotavailablefortheVisualStudioExpresseditionIDEs. MicrosofttargetstheExpressIDEsatstudentsandhobbyists.Expresseditionsalsodonotusethe fullMSDNLibrarybutusetheMSDNExpressLibrary.Thelanguagesavailableaspartofthe ExpressIDEsare: VisualBasicExpress VisualC++Express VisualC#Express VisualWebDeveloperExpress VisualStudioStandard VisualStudioStandardEditionprovidesanIDEforallsupportedproductsandcansupportthe entireMSDNlibrary.ItsupportsXMLandXSLTediting,objecttestbenches,andcancreate deploymentpackagesthatonlyuseClickOnce.However,itdoesnotincludetoolslikeServer ExplorerorincludeintegrationwithMicrosoftSQLServer.Ofthethreeextensibility mechanismsitonlysupportsAddIns.MobiledevelopmentsupportwasincludedinVisual Studio2005Standard,however,withVisualStudio2008,itisonlyavailableinProfessionaland highereditions.RemotedebuggingsupportisincludedinVisualStudio2008Professionaland TeamEditiononly. VisualStudioProfessional VisualStudioProfessionalEditionincludesthetoolsinVisualStudioStandardandaugmentsit withotherfunctionalitysuchasMicrosoftSQLServerintegration(whichallowsdatabasestobe createdfromwithinVisualStudio)andaremotedebugger(for2005Editions)(thatallows debuggingaremotesystemfromwithinVisualStudiodebuggerprovidedadebuggingserveris runningontheremotesystem).VisualStudioProfessionalacceptsallthreeextensibility mechanisms. VisualStudioToolsforOffice VisualStudioToolsforOfficeisanSDKandanaddinforVisualStudiothatincludestoolsfor developingfortheMicrosoftOfficeplatform.Previously,thatis,forVisualStudio.NET2003 andVisualStudio2005,itwasaseparateSKUthatsupportedonlyVisualC#andVisualBasic languagesorwasincludedintheTeamSuite.WithVisualStudio2008,itisnolongeraseparate SKUbutisincludedwithProfessionalandhighereditions.Aseparateruntimeisrequiredwhen deployingVSTOsolutions.

VisualStudioTeamSystem

VisualStudioTeamSystemprovidesasetofsoftwaredevelopment,collaboration,metrics,and reportingtoolsinadditiontothefeaturesprovidedbyVisualStudioProfessional.VSTSoffers differenttoolsetsbasedonthesoftwaredevelopmentroleitisbeingusedfor.Therolespecific flavorsare: TeamExplorer(basicTFSclient) ArchitectureEdition DatabaseEdition DevelopmentEdition TestEdition ThecombinedfunctionalityofthefourTeamSystemEditionsisprovidedinaTeamSuite Edition.TheDatabaseEdition,codenamed"DataDude",wasinitiallyreleasedasaseparate editionafterVisualStudio2005'sinitialrelease.ItisincludedwithVisualStudio2008asa separateedition,butthefunctionalitywillberolledintotheDevelopmentEditionforthe upcoming2010release. AlongwiththeclientSKUs,VisualStudioTeamSystemalsoincludesTeamFoundationServer forsourcecodecontrol,workitemtracking,reportingandteammanagement.TeamExploreris theTFSclient,whichisintegratedintotheVSTSIDE,withotherapplicationdevelopment functionality.

Editionsfeaturegrid:
Product Extension External s Tools minimal Yes Yes Yes Setup Projects MSDN Class Integration Designer No Yes Yes Yes Debugging reduced functionality Yes Yes Yes TargetNative VisualStudio 64bit ToolsforOffice No Yes Yes Yes No No Yes Yes No No Yes Yes VisualStudio No Express VisualStudio Yes Standard VisualStudio Yes Professional VisualStudio TeamSystem Yes editions reduced MSDN functionality Express reduced Yes functionality Yes Yes Yes Yes

Wind

VersionHistory
VisualStudio97
MicrosoftfirstreleasedVisualStudioin1997,bundlingmanyofitsprogrammingtoolstogetherforthe firsttime.VisualStudio97wasreleasedintwoeditions,ProfessionalandEnterprise.ItincludedVisual

Basic5.0andVisualC++5.0,primarilyforWindowsprogramming;VisualJ++1.1forJavaand Windowsprogramming;andVisualFoxPro5.0fordatabase,specificallyxBaseprogramming.It introducedVisualInterDevforcreatingdynamicallygeneratedwebsitesusingActiveServerPages.A snapshotoftheMicrosoftDeveloperNetworklibrarywasalsoincluded.. VisualStudio97wasMicrosoft'sfirstattemptatusingthesamedevelopmentenvironmentformultiple languages.VisualC++,VisualJ++,InterDev,andtheMSDNLibraryallusedoneenvironment,called DeveloperStudio.VisualBasicandVisualFoxProusedseparateenvironments.

VisualStudio6.0
Thenextversion,version6.0,wasreleasedinJune1998andisthelastversiontorunontheWindows 9xplatform.Theversionnumbersofallofitsconstituentpartsalsomovedto6.0,includingVisualJ++ whichjumpedfrom1.1,andVisualInterDevwhichwasat1.0.Thisversionwasthebasisof Microsoft'sdevelopmentsystemforthenextfouryears,asMicrosofttransitionedtheirdevelopment focustothe.NETFramework. VisualStudio6.0wasthelastversiontoincludetheCOMbasedversionofVisualBasic;subsequent versionswouldincludetheversionofthelanguagebasedon.NET.Itwasalsothelastversionto includeVisualJ++,whichwasremovedaspartofasettlementwithSunMicrosystemsthatrequired MicrosofttostopproducingprogrammingtoolsthattargetedtheJavaVirtualMachine. VisualBasic,VisualC++,andVisualFoxProhadseparateIDEs,whileVisualJ++andVisualInterDev sharedacommonnewenvironment.ThisnewIDEwasdesignedwithextensibilityinmind,andwould goon(afterseveralinternalrevisions)tobecomethecommonenvironmentforalllanguageswiththe releaseofVisualStudio.NET.VisualStudio6.0wasalsothelastversiontoincludeVisualFoxPro. Asusual,VisualStudio6.0cameinseveraleditions:Standard,Professional&Enterprise.The EnterpriseeditioncontainsextrafeaturesnotfoundinStandardorProfessionaledition,whichincludes:

ApplicationPerformanceExplorer AutomationManager MicrosoftVisualModeler RemAutoConnectionManager VisualStudioAnalyzer

VisualStudio.NET(2002)
TheMicrosoftVisualStudio.NETlogo. MicrosoftreleasedVisualStudio.NET,codenamedRainier(forWashington'sMountRainier),in February2002(thebetaversionwasreleasedontheMicrosoftdevelopernetworkin2001).Thebiggest changewastheintroductionofamanagedcodedevelopmentenvironmentusingthe.NETFramework. Programsdevelopedusing.NETarenotcompiledtomachinelanguage(likeC++is,forexample)but insteadtoaformatcalledMicrosoftIntermediateLanguage(MSIL)orCommonIntermediate Language(CIL).WhenanMSILapplicationisexecuted,itiscompiledwhilebeingexecutedintothe appropriatemachinelanguagefortheplatformitisbeingexecutedon,therebymakingcodeportable

acrossseveralplatforms.ProgramscompiledintoMSILcanbeexecutedonlyonplatformswhichhave animplementationofCommonLanguageInfrastructure.ItispossibletorunMSILprogramsinLinux orMacOSXusingnonMicrosoft.NETimplementationslikeMonoandDotGNU. ThiswasthefirstversionofVisualStudiotorequireanNTbasedWindowsplatform.Theinstaller enforcesthisrequirement. VisualStudio.NET2002shippedinfoureditions:Academic,Professional,EnterpriseDeveloper,and EnterpriseArchitect.MicrosoftintroducedC#(Csharp),anewprogramminglanguage,thattargets .NET.ItalsointroducedthesuccessortoVisualJ++calledVisualJ#.VisualJ#programsuseJava's languagesyntax.However,unlikeVisualJ++programs,VisualJ#programscanonlytargetthe.NET Framework,nottheJavaVirtualMachinethatallotherJavatoolstarget. VisualBasicwasdrasticallychangedtofitthenewframework,andthenewversionwascalledVisual Basic.NET.MicrosoftalsoaddedextensionstoC++,calledManagedExtensionsforC++,sothatC++ programmerscouldcreate.NETprograms. VisualStudio.NETcanbeusedtomakeapplicationstargetingWindows(usingWindowsForms,part ofthe.NETFramework),Web(usingASP.NETandWebServices)and,withanaddin,portable devices(usingthe.NETCompactFramework). TheVisualStudio.NETenvironmentwasrewrittentopartiallyuse.NET.Alllanguagesareunified underoneenvironment.ComparedtopreviousversionsofVisualStudio,ithasacleanerinterfaceand greatercohesiveness.Itisalsomorecustomizablewithtoolwindowsthatautomaticallyhidewhennot inuse.WhileVisualFoxPro7startedoutaspartofVisualStudio7,andearlyVSbetasallowed debugginginsideVFPbasedDLLs,itwasremovedbeforereleasetofollowitsowndevelopmenttrack. TheinternalversionnumberofVisualStudio.NETisversion7.0.MicrosoftreleasedServicePack1 forVisualStudio.NET2002inMarch,2005.

VisualStudio.NET2003
InApril2003,MicrosoftintroducedaminorupgradetoVisualStudio.NETcalledVisualStudio.NET 2003,codenamedEverett(forthecityofthesamename).Itincludesanupgradetothe.NET Framework,version1.1,andisthefirstreleasetosupportfordevelopingprogramsformobiledevices, usingeitherASP.NETorthe.NETCompactFramework.TheVisualC++compiler'sstandards compliancewasimproved,especiallyintheareaofpartialtemplatespecialization.VisualC++Toolkit 2003isafreeversionofthesameC++compilershippedwithVisualStudio.NET2003withoutthe IDE,thoughitisnolongeravailableandnowsupersededbytheExpressEditions.Theinternalversion numberofVisualStudio.NET2003isversion7.1whilethefileformatversionis8.0. VisualStudio.NET2003shippedinfoureditions:Academic,Professional,EnterpriseDeveloper,and EnterpriseArchitect.TheVisualStudio.NET2003EnterpriseArchitecteditionincludesan implementationofMicrosoftVisio2002'smodelingtechnologies,whichincludestoolsforcreating UnifiedModelingLanguagebasedvisualrepresentationsofanapplication'sarchitecture,anda powerfulObjectRoleModeling(ORM)andlogicaldatabasemodelingsolution."Enterprise Templates"werealsointroduced,tohelplargerdevelopmentteamsstandardizecodingstylesand enforcepoliciesaroundcomponentusageandpropertysettings. ServicePack1wasreleasedSeptember13,2006.

VisualStudio2005
VisualStudio2005,codenamedWhidbey(areferencetoWhidbeyIslandinPugetSound),wasreleased onlineinOctober2005andtoretailstoresafewweekslater.Microsoftremovedthe".NET"moniker fromVisualStudio2005(aswellaseveryotherproductwith.NETinitsname),butitstillprimarily targetsthe.NETFramework,whichwasupgradedtoversion2.0.Itisthelastversionavailablefor Windows2000.VisualStudio2005'sinternalversionnumberis8.0whilethefileformatversionis9.0. [51]MicrosoftreleasedServicePack1forVisualStudio2005on14December2006.[53]An additionalupdateforServicePack1thatoffersWindowsVistacompatibilitywasmadeavailableon3 June2007.[54] VisualStudio2005wasupgradedtosupportallthenewfeaturesintroducedin.NETFramework2.0, includinggenericsandASP.NET2.0.TheIntelliSensefeatureinVisualStudiowasupgradedfor genericsandnewprojecttypeswereaddedtosupportASP.NETwebservices.VisualStudio2005also includesalocalwebserver,separatefromIIS,thatcanbeusedtohostASP.NETapplicationsduring developmentandtesting.ItalsosupportsallSQLServer2005databases.Databasedesignerswere upgradedtosupporttheADO.NET2.0,whichisincludedwith.NETFramework2.0.C++alsogota similarupgradewiththeadditionofC++/CLIwhichisslatedtoreplacetheuseofManagedC++.[55] OthernewfeaturesofVisualStudio2005includethe"DeploymentDesigner"whichallowsapplication designstobevalidatedbeforedeployments,animprovedenvironmentforwebpublishingwhen combinedwithASP.NET2.0andloadtestingtoseeapplicationperformanceundervarioussortsof userloads.VisualStudio2005alsoaddedextensive64bitsupport.Whilethedevelopment environmentitselfisonlyavailableasa32bitapplication,VisualC++2005supportscompilingfor x8664(AMD64andIntel64)aswellasIA64(Itanium).[56]ThePlatformSDKincluded64bit compilersand64bitversionsofthelibraries. MicrosoftalsoannouncedVisualStudioToolsforApplicationsasthesuccessortoVisualBasicfor Applications(VBA)andVSA(VisualStudioforApplications).VSTA1.0wasreleasedto manufacturingalongwithOffice2007.ItisincludedwithOffice2007andisalsopartoftheVisual Studio2005SDK.VSTAconsistsofacustomizedIDE,basedontheVisualStudio2005IDE,anda runtimethatcanbeembeddedinapplicationstoexposeitsfeaturesviathe.NETobjectmodel.Office 2007applicationscontinuetointegratewithVBA,exceptforInfoPath2007whichintegrateswith VSTA.ThecurrentversionofVSTA(version2.0,basedonVisualStudio2008)wasreleasedinApril, 2008.Itissignificantlydifferentfromthefirstversion,includingfeaturessuchasdynamic programmingandsupportforWPF,WCF,WF,LINQ,and.NET3.5.

VisualStudio2008
VisualStudio2008Logo

VisualStudio2008,codenamedOrcas,wasreleasedtoMSDNsubscriberson19November2007 alongside.NETFramework3.5.ThecodenameOrcasis,likeWhidbey,areferencetoanislandin PugetSound,OrcasIsland.ThesourcecodefortheVisualStudio2008IDEwillbeavailableundera sharedsourcelicensetosomeofMicrosoft'spartnersandISVs.MicrosoftreleasedServicePack1for VisualStudio2008on11August2008.TheinternalversionnumberofVisualStudio2008isversion 9.0.

VisualStudio2008isfocusedondevelopmentofWindowsVista,2007Officesystem,andWeb applications.Forvisualdesign,anewWindowsPresentationFoundationvisualdesignerandanew HTML/CSSeditorinfluencedbyMicrosoftExpressionWebareincluded.J#isnotincluded.Visual Studio2008requires.NETFramework3.5andbydefaultconfigurescompiledassembliestorunon .NETFramework3.5,butitalsosupportsmultitargetingwhichletsthedeveloperschoosewhich versionofthe.NETFramework(outof2.0,3.0,3.5,SilverlightCoreCLRor.NETCompact Framework)theassemblyrunson.VisualStudio2008alsoincludesnewcodeanalysistools,including thenewCodeMetricstool(onlyinTeamEditionandTeamSuiteEdition).ForVisualC++,Visual StudioaddsanewversionofMicrosoftFoundationClasses(MFC9.0)thataddssupportforthevisual stylesandUIcontrolsintroducedwithWindowsVista.Fornativeandmanagedcodeinteroperability, VisualC++introducestheSTL/CLR,whichisaportoftheC++StandardTemplateLibrary(STL) containersandalgorithmstomanagedcode.STL/CLRdefinesSTLlikecontainers,iteratorsand algorithmsthatworkonC++/CLImanagedobjects. VisualStudio2008featuresaXAMLbaseddesigner(codenamedCider),workflowdesigner,LINQto SQLdesigner(fordefiningthetypemappingsandobjectencapsulationforSQLServerdata),XSLT debugger,JavaScriptIntellisensesupport,JavaScriptDebuggingsupport,supportforUACmanifests,a concurrentbuildsystem,amongothers.ItshipswithanenhancedsetofUIwidgets,bothforWindows FormsandWPF.Italsoincludesamultithreadedbuildengine(MSBuild)tocompilemultiplesource files(andbuildtheexecutablefile)inaprojectacrossmultiplethreadssimultaneously.Italsoincludes supportforcompilingPNGcompressediconresourcesintroducedinWindowsVista.AnupdatedXML SchemadesignerwillshipseparatelysometimeafterthereleaseofVisualStudio2008. TheVisualStudiodebuggerincludesfeaturestargetingeasierdebuggingofmultithreaded applications.Indebuggingmode,intheThreadswindow,whichlistsallthethreads,hoveringovera threadwilldisplaythestacktraceofthatthreadintooltips.Thethreadscandirectlybenamedand flaggedforeasieridentificationfromthatwindowitself.Inaddition,inthecodewindow,alongwith indicatingthelocationofthecurrentlyexecutinginstructioninthecurrentthread,thecurrently executinginstructionsinotherthreadsarealsopointedout.TheVisualStudiodebuggersupports integrateddebuggingofthe.NETFramework3.5BCL.ItcandynamicallydownloadtheBCLsource codeanddebugsymbolsandallowsteppingintotheBCLsourceduringdebugging.Currentlyalimited subsetoftheBCLsourceisavailable,withmorelibrarysupportplannedforlaterintheyear.

VisualStudio2010
VisualStudio2010Logo

VisualStudio2010featuresanewUIdevelopedusingWPF VisualStudio2010,codenamed"Hawaii",isunderdevelopment.Acommunitytechnologypreview (CTP)versionofVisualStudio2010wasreleasedin2008asapreinstalledVirtualHardDisk containingWindowsServer2008astheOS.OnMay18,2009,VisualStudio2010Beta1wasreleased tousersoftheMicrosoftdevelopernetwork,withapublicversionofthesamebetabeingreleasedon May20,2009.Thisbetaisaninstallableversionoftheapplication,unliketheaforementionedCTP whichwasbuiltintoaVirtualHardDisk.OnOctober19,2009,VisualStudio2010Beta2was releasedtousersoftheMicrosoftdevelopernetwork,withapublicversionofthesamebetabeing releasedonOctober21,2009.TheBeta2wasreleasedwith"golive"license.Thefinalversionof VisualStudio2010isexpectedonMarch22,2010. TheVisualStudio2010IDEhasbeenredesignedwhich,accordingtoMicrosoft,clearstheUI organizationand"reducesclutterandcomplexity."ThenewIDEbettersupportsmultipledocument windowsandfloatingtoolwindows,whileofferingbettermultimonitorsupport.TheIDEshellhas beenrewrittenusingtheWindowsPresentationFoundation(WPF),whereastheinternalshavebeen redesignedusingManagedExtensibilityFramework(MEF)thatoffersmoreextensibilitypointsthan previousversionsoftheIDEthatenabledaddinstomodifythebehavioroftheIDE.Thenewmulti paradigmprogramminglanguageMLvariantF#programminglanguagewillbeapartofVisualStudio 2010;aswillbetheM,thetextualmodellinglanguage,andQuadrant,thevisualmodeldesigner, whichareapartoftheOsloinitiative. VisualStudio2010willcomewithversion4.0ofthe.NETFrameworkandwillsupportdeveloping applicationstargetingWindows7.ItwillsupportIBMDB2andOracledatabases(seeIBM.comand TeamFuze.netformoreinfomation),inadditiontoMicrosoftSQLServer.Itwillhaveintegrated supportfordevelopingMicrosoftSilverlightapplications,includinganinteractivedesigner.Visual Studio2010willofferseveraltoolstomakeparallelprogrammingsimpler:inadditiontotheParallel Extensionsforthe.NETFrameworkandtheParallelPatternsLibraryfornativecode,VisualStudio 2010includestoolsfordebuggingparallelapplications.ThenewtoolsletparallelTasksandtheir runtimestackstobevisualized.Toolsforprofilingparallelapplicationscanbeusedforvisualizationof threadwaittimesandthreadmigrationsacrossprocessorcores.IntelandMicrosofthavejointly pledgedsupportforanewConcurrencyRuntimeinVisualStudio2010andIntelhaslaunched parallelismsupportinParallelStudioasanaddonforVisualStudio. TheVisualStudio2010codeeditornowhighlightsreferences;wheneverasymbolisselected,allother usagesofthesymbolarehighlighted.ItalsooffersaQuickSearchfeaturetoincrementallysearch acrossallsymbolsinC++,C#andVB.NETprojects.QuickSearchsupportssubstringmatchesand camelCasesearches.TheCallHierarchyfeatureallowsthedevelopertoseeallthemethodsthatare calledfromacurrentmethodaswellasthemethodsthatcallthecurrentone.IntelliSenseinVisual Studiosupportsaconsumefirstmode,whichcanbeoptedintobythedeveloper.Inthismode, IntelliSensewillnotautocompleteidentifiers;thisallowsthedevelopertouseundefinedidentifiers (likevariableormethodnames)anddefinethoselater.VisualStudio2010canhelpinthisalsoby automaticallydefiningthem,ifitcaninfertheirtypesfromusage.

Latestversion:VISUALSTUDIOTEAMSYSTEM
VisualStudioTeamSystem2010,codenamedRosario,isbeingpositionedforapplicationlifecycle management.Itwillincludenewmodellingtools,includingtheArchitectureExplorerthatgraphically displaystheprojectsandclassesandtherelationshipsbetweenthem.ItsupportsUMLactivitydiagram, componentdiagram,(logical)classdiagram,sequencediagram,andusecasediagram.VisualStudio TeamSystem2010alsoincludesTestImpactAnalysiswhichprovideshintsonwhichtestcasesare impactedbymodificationstothesourcecode,withoutactuallyrunningthetestcases.Thisspeedsup testingbyavoidingrunningunneededtestcases. VisualStudioTeamSystem2010alsoincludesaHistoricalDebugger.Unlikethecurrentdebugger, thatrecordsonlythecurrentlyactivestack,thehistoricaldebuggerrecordsalleventslikepriorfunction calls,methodparameters,events,exceptionsetc.Thisallowsthecodeexecutiontoberewoundincase abreakpointwasn'tsetwheretheerroroccurred.Thehistoricaldebuggerwillcausetheapplicationto runslowerthanthecurrentdebugger,andwillusemorememoryasadditionaldataneedstobe recorded.Microsoftallowsconfigurationofhowmuchdatashouldberecorded,ineffectallowing developerstobalancespeedofexecutionandresourceusage.TheLabManagementcomponentof VisualStudioTeamSystem2010usesvirtualizationtocreateasimilarexecutionenvironmentfor testersanddevelopers.Thevirtualmachinesaretaggedwithcheckpointswhichcanlaterbe investigatedforissues,aswellastoreproducetheissue.VisualStudioTeamSystem2010also includesthecapabilitytorecordtestruns,thatcapturethespecificstateoftheoperatingenvironmentas wellastheprecisestepsusedtorunthetest.Thesestepscanthenbeplayedbacktoreproduceissues.