vid Dietrich, obin Millerwebdocs.cs.ualberta.ca/~zaiane/courses/cmput410/W11/pres/C410… ·...

Post on 06-Jul-2020

1 views 0 download

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’thassle­free

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,mod­mono­serverwhichhandlestherequestinsteadofapache.

Socket:TCP

hostmultipleindependentapplications

Results0 Canroutespeci`icURL’stodifferentmod­mono­serverprocessesrunningunderonevirtualmachineExample: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