vid Dietrich, obin Millerwebdocs.cs.ualberta.ca/~zaiane/courses/cmput410/W11/pres/C410… ·...
Transcript of vid Dietrich, obin Millerwebdocs.cs.ualberta.ca/~zaiane/courses/cmput410/W11/pres/C410… ·...
MitchellBosecke,GregBurlet,DavidDietrich,PeterLorimer,RobinMiller
0 Introduction0 ASP.NET0 WebServicesandCommunication0 MicrosoftVisualStudio20100 Mono0 SupportandUsageMetrics
.NETWhatis.NET?0 FrameworkfordevelopingsoftwareinMicrosoftWindows
0 Largelibrary0 Severallanguagessupported,allowslanguageinteroperability
0 InitialRelease:February,20020 CurrentVersion:.NET4.0
C#andVB.NETC#0 SyntaxextremelysimilartoJavaandC0 ExtremelycommonlanguageforWindowsdevelopment
VB.NET0 Relativelyeasytolearn0 Friendlyfornon‐developerstouse
LambdaExpressions0 Greatlyreducetheamountofcodeneeded0 Supportedstartingin.NET3.50 CustomSorting!(a,b)=>a.Length.CompareTo(b.Length);
NothinglikeitinJava,plannedforJDK8,notuntillate2012
0 Introduction0 ASP.NET0 WebServicesandCommunication0 MicrosoftVisualStudio20100 Mono0 SupportandUsageMetrics
ASP.NETWhatisit?0 Webapplicationframework0 Supportsdynamicwebsites,webapplications,andwebservices
0 Developercanuseany.NETlanguage
ASP.NET
Browserrequests
ASP.NET`ile
IIS1passesrequesttoASP.NETengineontheserver
Enginereadsthe`ilelinebylineand
executesthescriptsinthe`ile
ASP.NET`ileisreturnedtobrowserasplainHTML
1IIS–InternetInformationServices
ASP.NETPros0 CanprograminVB.NET,C#,Delphi.NET,Chrome,etc.0 Canevenusemultiplelanguagesinoneapplication
0 Objectorientedprogrammingapproach0 Supportforwebservices0 VeryeasytouseXMLsupport0 Easymigrationforwindowsdeveloperstoswitchtowebdevelopment
ASP.NETCons0 Microsoftplatformneededfordeployment0 Notopensource0 Possiblysteeplearningcurve
ASP.NETASP.NETvs.PHP0 ASP.NETiscompiledwherePHPisscripted0 Roomforbetterperformancewithcompilation
0 UpdatestoASP.NETaremuchmoredrasticthanPHPsomoreeffortisneededtokeepup
0 UseASP.NETifdevelopersalreadyhaveexperiencewithWindows
0 Introduction0 ASP.NET0 WebServicesandCommunication0 MicrosoftVisualStudio20100 Mono0 SupportandUsageMetrics
WebServicesandCommunication
0 Manymodernwebapplicationsrequiretheabilitytointerfacewithotherapplications0 SOAP(SimpleObjectAccessProtocol)0 SendscommandstoasingleserverviaPOSTinXMLdocuments
0 Singleendpoint0 REST(RepresentationalStateTransfer)0 Usestheweb'sinfrastructure(likeURLs)tosendcommands
0 Distributableendpoint
WebServicesandCommunication
0 (WCF)WindowsCommunicationFoundationAPI0 SupportsSOAPnativelyandRESTwithaddonpackage
0 Other3rdpartypackages0 XMLParsing(ex.Chilkat)
0 Canintegrateotherservices0 ex:GoogleMaps0 ex:AmazonStore
0 Introduction0 ASP.NET0 WebServicesandCommunication0 MicrosoftVisualStudio20100 Mono0 SupportandUsageMetrics
VisualStudio20100 Microsoft’sSolutiontoDevelopment0 Acollectionofproductsintegratedintooneenvironmentrangingfromdesigntodeployment.
0 DividedintopackagessuchasVisualStudioUltimate,Premium,ProfessionalandExpress.
DevelopmentMadeEasyVisualStudio2010Pros0 Allowsfordevelopmentinmultiplelanguagesformultipleplatforms.i.e.PC,XBOXandWindows7phone
0 Easyprojectcreationandmanagement.0 EasydesignanddeploymentofASP.NETapplications0 Intellisense‐advancedcodecompletion.0 Easylayoutmanagement0 Greattechnicalsupport.
MaybeNotThatEasyVisualStudio2010Cons0 Proprietary.0 It’snotcheapeitherrangesfrom$800‐$12000.0 Largeoverheadforsmallprojects.0 Heavyresourceconsumption.
.NETandVisualStudio0 .NET4SDK‐developmentoptimizedinVisualStudio.0 VisualStudiohassupportforALL.NETlanguagesC#,ASP.NET,VB.NET,etc..
0 Microsoftproductsplaywelltogether.
0 Introduction0 ASP.NET0 WebServicesandCommunication0 MicrosoftVisualStudio20100 Mono0 SupportandUsageMetrics
HypotheticalSituation0 Economicrecessionforcesyourcompanytoreducecosts.YoulookintoLinuxbecausenotonlyisitfree,butithasfree,open‐sourcesoftwareleadingtosigni`icantcostreductions.
0 Yourcodebasecontainsvarious.NETapplicationscriticaltoyourbusiness.
0 Yourbusinessemploysdevelopersskilledin.NETandVS.Eitheremploynewdevelopers(costsgoup)orpushcurrentdevelopersoutoftheircomfortzoneleadingtoalearningcurve,initialmistakes(costsgoup)
0 Problem:.NETapplicationsdonotrunintheLinuxenvironment
Anopensourceimplementationof.NETframework.Asoftwareplatformdesignedtopromoteeasydevelopmentofcross‐platform.NETapplications.
Options,options,options
Portability Flexibility
0 Developandrun.NETapplicationsonLinux,MicrosoftWindows,MacOSX,BSD,SunSolaris,NintendoWii,SonyPlayStation3,AppleiPhone
0 Monoiscross‐platformitself.Itrunsontheaforementionedplatforms
0 WritecodeinyourfavouriteprogramminglanguagesupportedbyCLR(CommonLanguageRuntime).
0 CodeisinteroperablebetweenCLRlanguages.
Hassle‐FreeInstallation0 Linux Distributionpackages(apt‐get)ormanualsource‐codecompilation
disclaimer:manualcompilationprobablyisn’thasslefree
0 Windows,OSX,BSD,SolarisAutomatedinstallers
Compatibility
0 Nowsupportseverythingincludedin.NET4.0except:WindowsPresentationFoundation(WPF),WindowsCommunicationFoundation(WCF),andWindowsForms(WF)
0 ThesefeaturesareprojectedtobecompletedinMono3.0Olive
0 Aswellassupportingmostof.NET4.0features,Monoalsohasit’sownextendedframeworks
MonoToolsforVisualStudio0 MicrosoftVisualStudiopluginallowsdeveloperstocreate.NETapplicationstodeployonmono‐enabledplatforms.
0 Setseverythingupforyou
Monocaterstowebaswellasdesktopapplications!
MonofortheWeb
Apache/NginxWebServices/ConsumingDatabaseConnection
Apache:Mod_Mono0 Mod_MonoisamoduleprovidingASP.NETsupportforthewidelyusedHTTPwebserverApache.
0 Mod_MonopassesASP.NETpagerequeststoexternalprogram,modmonoserverwhichhandlestherequestinsteadofapache.
Socket:TCP
hostmultipleindependentapplications
Results0 Canroutespeci`icURL’stodifferentmodmonoserverprocessesrunningunderonevirtualmachineExample:testingserverrunsexperimentalcodeapartfromproductioncode.
0 Setspeci`icquotas(CPU,disk,memory)todifferentserverprocesses
0 Mod_MonoCon`igurationTool–automaticallygeneratesconf.d`iletodeployapplicationimmediately
Con:workswellforsimpleapplications.Anythingmorecomplexrequiresextensivecon`igurationtext`iletweaking
PortingApplicationsbetweenOS
0 WebapplicationseasiertoportthandesktopappsComplicationsmostlyarisewithdataaccess,authentication,andotherOSspeciQiccodeanddatabasemigration(i.e.MicrosoftSQLServer>PostgreSQL)
MoMa(MonoMigrationAnalyzer)0 Toolthathelpsidentifyplatformspeci`iccalls
*MoMamightfailtoreportmorecomplexproblemsorreportproblemswhicharenotreallyissues.
0 UsefulmethodtoestimatetheeaseofportingyourcodebasetotheMonoframeworkbeforeinvestinglotsoftime.
0 Introduction0 ASP.NET0 WebServicesandCommunication0 MicrosoftVisualStudio20100 Mono0 SupportandUsageMetrics
SupportDocumentation• MSDNAPIReference• OnlineTutorials&CodeSnippets
Community• Blogs• Forums/MailingLists• Askadeveloper
Tracking• MicrosoftConnect:bugreportsandsuggestions• Changelogs
StackOver`lowTags
StackOver`lowTags