You are on page 1of 26

08/06/2016

RockfordLhotka

Rockford Lhotka's Blog


Home | Lhotka.net | CSLA .NET

Google Hosting
Service

Custom Domain &


Build Your Own Site
Start With Free
Google Apps Trial.

07JUNE2016

ASP.NETMVCeditcollectionof
items
Averycommonscenarioforlineofbusinessappsistoedita
collectionofitems.Oftenthis
isntabitcollection,justa
variablenumberofrowswitha
fewcolumnstoeditperrow.
TheMVCscaffoldingsupportsthisscenariobymakingiteasyto
createasetofpagesdisplaythelist,createanewitem,edit
anexistingitem,confirmremovalofanitem.Andthis
scaffoldingisquiteuseful,especiallyforscenarioswhereeach
rowofdatahasalotofpropertiestoedit.
Whereitisntsousefulisinanothercommoncase,whereeach
rowofdatahasasmallnumberofpropertiestoedit(andwhere
therearearelativelysmallnumberofrows).Inthiscasemost
userswouldprefertojusteditallthevaluesonasinglescreen,
nothavingtonavigatetothecreate/edit/deletepagesforeach
row,asthatisquiteawkward.
WhatIvefoundisthattherearesome(ok,lots)ofblogposts
andcodesnippetsshowingwaystosolvethisproblem.Muchof
thiscontentdatesbackmanyyears,oftentoMVC2,andshows
what(inmyview)aresomeprettyhackysolutionsinvolving
clientsideJavaScriptthatmanuallycreateshtmlstringsthat
replicate(oftenoutdated)htmlcomparabletothatgeneratedby
MVCinRazor.OthersolutionsuseWebGrid,aseeminglylittle
http://www.lhotka.net/weblog/

1/26

08/06/2016

RockfordLhotka

usedfeatureofMVCthatalsoneedssome(lesshacky)
JavaScripttosupportediting.
Formypurposes,Iwantedsomethingsimpler,moredirect.I
dontmindsomepostbacksyoudgetthosewiththestandard
MVCscaffoldingIjustwanttheusertofeelliketheyarejust
editingthelistofitemswithoutalotofpagenavigation.
Somethinglikethis:

IalsodontmindusingSessioninthiscase,becauseIm
buildingsomethingthatwill,atmost,beusedby0.3%ofour
employeebase,whichiscurrentlyaround600people.Ifwe
growenoughthatscalingisanissuewellobviouslyhave
TothatendIcreatedanewASP.NETMVC5projectinVisual
Studio2015andaddedthefilesinthisgistthatcontainthe
implementation.
TheProjectListControllerservesuptheinitialpage,andaccepts
POSToperationsfromthebrowser.
TheIndexmethoddisplaysthepagewiththecollectiondata.If
Sessionisemptythedataisloadedfromthedatabase,
otherwisethecachedSessiondataisusedtopopulatethepage.
Typicallythismeansthatthefirsttimetheuserarrivesatthe
pagetheyllgetfreshdatafromthedatabase,andonpostback
operationsthedatawillcomefromSession.BasicallyImusing
Sessionasaninmemoryscratchlocationforthedatauntilall
editsarecompleteandtheuserclicksthebuttontosavethe
data.
http://www.lhotka.net/weblog/

2/26

08/06/2016

RockfordLhotka

ThePOSTmethodworksdifferentlydependingonthebutton
clickedbytheuser,handlingadd,remove,cancel,andsubmit
operations.Theoperationisindicatedbythevalueofthe
button,whichflowsintothecontrollerthroughamethod
parameter.IneverycasethePOSTmethodhasthefullcontents
ofthecollectionfromtheUIthatflowsfromthebrowserinto
themethod.
Theaddoperationaddsanew/emptyitemtothecollection,
updatesthestateinSessionandallowsthepagetobe
redisplayed.Thismeansthenewlyaddeditemappearstothe
user,buthasntbeensavedtothedatabase.
Theremoveoperationremovestheselecteditemoritemsfrom
thecollection,updatesthestateinSessionandallowsthepage
toberedisplayed.Thismeanstheremoveditemsarenolonger
displayed,buthaventbeenremovedfromthedatabase.
Thecancel/refreshoperationclearsSessionandredisplaysthe
page,causingthepagetodisplayfreshdatafromthedatabase.
Thesubmitoperationsavesthedataintothedatabase,then
clearsSessiontoensurethatwhenthepageisredisplayedthat
theusergetsfreshdatafromthedatabase(includingthenewly
savedchanges).
TheIndex.cshtmlviewimplementsthepage,relyingonthe
Person.cshtmlviewtodisplayeachrowofdatafromthe
collection.TheIndexviewhasallthebuttonstheusercanclick
totriggerthepostbackoperationstothecontrollerasIjust
described.
ThePerson.cshtmlviewcreatestheeditcontrolsforthe
propertiestheusershouldview/editforeachrow.
ThePerson.csfileimplementsthemodelreallytheviewmodel.
NoticethatithasaRemovedpropertywhichisveryUIspecific,
sothisclearlyisnttheactualmodelyoudeverget/saveina
database.
http://www.lhotka.net/weblog/

3/26

08/06/2016

RockfordLhotka

ThecontrollerhasTODOcommentsindicatingwherecode
shouldgotoinvokethedataaccesslayertoretrieveandupdate
thedatabasebasedontheinmemorycollectionofPerson
objects.

ASP.NETMVC
07June201618:03:58(CentralStandardTime,UTC06:00)
Disclaimer
01JUNE2016

CSLA.NETVersion4.6.400
released
ThisreleaseofCSLA.NETis
focusedprimarilyonenhancing
theexistingXamarinsupport.
ThereisnowaCsla.dlltargeting
PCLProfile111,whichisthe
currentprofileforXamarin.Forms
projectsand.NETCore.
ThereisalsonowaCSLAXamarinNuGetpackagethatincludes
aCsla.Xaml.dllwithsupportforXamarin.Forms.Thisincludes
thesameviewmodelbaseclassesastheotherXAMLplatforms,
andanimplementationofthePropertyInfocontroltailoredforuse
inXamarin.Forms.
@JasonBockaddedevenmoreanalyzersforVisualStudio2015
tohelpdevelopersavoidcommoncodingmistakeswhen
buildingCSLA.NETbusinessclasses.
WenowhavesupportfortheprereleaseofEntityFramework7.
TheptandptBRresourcesforCsla.dllhavebeenupdated.
Otherlanguagesneedupdatesaswellpleasecontribute
ifyouareanativespeaker!
http://www.lhotka.net/weblog/

4/26

08/06/2016

RockfordLhotka

Thereisanewwaytocustomizetheserversidedataportalby
implementinganinterceptorthatisinvokedviathenew
DataPortalBroker.(#564)

Fulldetails:
https://github.com/MarimerLLC/csla/releases/tag/v4.6.400
TheassembliesandpackagesareallavailableviaNuGet.

.NETCore|CSLA.NET|Xamarin
01June201609:33:18(CentralStandardTime,UTC06:00)
Disclaimer
26MAY2016

CSLAPropertyInfocontrolfor
XamarinForms
Thereisnowa
Csla.Xaml.PropertyInfocontrolfor
XamarinFormsaswellas
WPF/UWP,soyoucanusethe
sametechniquetoaccessall
metastateabouteachproperty
fromyourXAML.
Thismeansthat(nowonXamarin
too)youcanbindtotheproperty
value,aswellasCanRead,CanWrite,IsValid,IsBusy,and
variousothermetastatevalues.
UsingthiscapabilityyourXAMLUIcanprovidetheuserwith
immediateandrichvisualcuesastowhethertheuserisallowed
toreadorwritethepropertyvalue,andwhetherthecurrent
propertyvalueisvalid(andifnot,why),aswellaswhetherthe
propertyhasanyoutstandingasyncbusinessrulescurrently
executing.
http://www.lhotka.net/weblog/

5/26

08/06/2016

RockfordLhotka

Inshort,allthegoodnessthatWPF/Silverlight/UWPdevelopers
haveenjoyedoverthepastmanyyearsisnowavailableon
Xamarin!
(orwillbeonceCSLA.NET4.6.400releasesinaboutaweek
thoughyoucantryitnowwiththe4.6.400prereleaseavailable
viaNuGet)

CSLA.NET|Xamarin
26May201615:57:07(CentralStandardTime,UTC06:00)
Disclaimer
25MAY2016

monoDisplayAttributeproblem
repro
TheCSLAPCLthatsupportsXamarinincludesan
implementationofSystem.ComponentModel.DataAnnotations,andthat
includesnumeroustypes,oneofwhichisDisplayAttribute.
ThePCLusestypeforwardingsoatruntimetheplatform's
DataAnnotationsimplementationisused(ifavailable),andthe
CSLAimplementationisonlyusedatruntimeforplatforms
wherethere'snotalreadyanimplementation(WinRTPhoneis
theonlyremainingplatformafaik).
ThereisaproblemwithXamarinhowever,wherealltypesseem
toforwardandworkfineexceptforDisplayAttribute.Theproblem
inthiscaseisthatatruntimeitseemsthatmonoisunableto
locatethecorrectctorforthetype:
"System.MissingMethodException: Method 'DisplayAttribute..ctor' not found.\n
pe type, System.String name) [0x00011] in <filename unknown>:0 \n

at (wrapper

at Csla.Core.FieldMana

Thisexceptionoccurswhentheconsumeappattemptstoaccess
http://www.lhotka.net/weblog/

6/26

08/06/2016

RockfordLhotka

theDisplayAttributeassociatedwithapropertytoretrievevalues
fromtheattribute.Itappearsthatmonoisunabletocreatean
instanceoftheattributeobjectbecauseitcan'tfindthector.
TheDisplayAttributeclasshasonlyadefaultctor,butistypically
initializedusingnamedparameters,suchas:
[Display(Name = "foo")]

Idon'tknowwhatkindofctormonoislookingforwhenitfails,
butitobviouslyisn'tfindingthedefaultctorandthensettingthe
propertyvalue,whichiswhatwouldbetheexpectedbehavior.
ImtrackingthisissueintheCSLAGitHubrepo:
https://github.com/MarimerLLC/csla/issues/579

Stepstoreproduceissue
TheCSLAProjectTrackerreferenceappinmyforkincludesa
reproofthisissue.Toseetheissue,dothefollowing:
1.ClonemyforkofCSLAfrom
https://github.com/rockfordlhotka/csla.git
2.Checkoutthe505xamarinbranch:
https://github.com/rockfordlhotka/csla/tree/505xamarin
3.Openthe\Samples\ProjectTracker\ProjectTracker.sln
solution
4.BuildthesolutionitllpulldowntheCSLA.NETframework
fromNuGet
5.Setabreakpointinthe
XamarinFormsUi.ViewModels.ProjectListclassasshown
here

6.SetthestartupapptoProjectTracker.Ui.Xamarin.Droid
7.Runtheappindebugmode(onanemulatorordevice)
http://www.lhotka.net/weblog/

7/26

08/06/2016

RockfordLhotka

8.OnthefirstscreenclicktheAllProjectsbutton

ThatllattempttoloadtheProjectListpageandProjectList
viewmodel.Atthispointtheexceptionwilloccurandyoullend
uponthebreakpointbecauseofthefailuretocreatean
instanceofProjectInfo,butthatfailsbecausemonocantcreate
aninstanceofDisplayAttribute(usedonsomepropertiesinthe
ProjectInfoclass).

CSLA.NET|mono|Xamarin
25May201612:51:26(CentralStandardTime,UTC06:00)
Disclaimer
20MAY2016

ctorbuginXamarin/mono?
Imighthavefoundabuginmono,butwanttoseeifanyone
thinksI'mmissingsomething.
TheCSLA.NETframeworkhaslongincludedanimplementation
oftheSystem.ComponentModel.DataAnnotationsnamespacefor
platformswhereMicrosoft/Xamarindidntprovidethat
functionality.ThesedaysIthinkthatisonlyWindowsPhone8.1,
butthatincludesPCLProfile111(whichiswhatXamarin
currentlytargetsaswell).

http://www.lhotka.net/weblog/

8/26

08/06/2016

RockfordLhotka

OfcoursetheCSLAimplementationincludesthe
DisplayAttributeclass,whichisusedtodecoratepropertiesin
consumingclasseslikethis:
[Display(Name = "blah")]

That"blah"valueisahumanreadablename/labelfora
property.
Becausemonoactuallyprovidesa
System.ComponentModel.DataAnnotationsimplementation,my
PCLusestypeforwardingsoatruntimethePCLimplementation
isignoredinfavoroftheplatformspecificimplementation
providedbymono.Forexample:

[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.ComponentModel.D

ThisworksgreatonallplatformsexceptXamarinAndroid/iOS
wheremonothrowsanexceptionbecauseitcan'tfinda
matchingconstructor.
ThethingisthattheDisplayAttributeclasshasonlythedefault
constructor.ThesyntaxbeingusedtosettheNamepropertyof
theattributeissupposedtousethedefaultctor,andthenthe
Namepropertyisexplicitlyset.Thisisarelativelyoldfeatureof
C#butIkindofsuspectmonohasabugaroundthisarea,as
itseemstobelookingforactorthatacceptsaparameterwhen
itshouldusethedefaultctor.

mono|Xamarin
20May201615:40:28(CentralStandardTime,UTC06:00)
Disclaimer
26APRIL2016

http://www.lhotka.net/weblog/

9/26

08/06/2016

RockfordLhotka

ThoughtsfromaWindows10user
Theresalotofspeculationat
themoment,mostlyIthinkfrom
thetechpress,thattheresno
futureforWindows10Mobile
(akaWindowsPhone).Tothe
pointthatTerryMyerson
apparentlyreleasedastatementtoclarifythatMicrosoftis
committedtomobileformanyyears.
OverthepastcoupleyearsIvebeenincreasinglycriticalof
Microsoftsmobilestrategyaswellitishardnottobewhen
theplatformhassuchlowmarketshare,theresbeenalackof
flagshipdevicesreleased,andtheresstillamajorissuewith
apps(thatdontexistorthatarequitepoorcomparedto
iPhone/Androidversions).
SoatthebeginningofthisyearIthrewinthetoweland
switchedtotheiPhone.Thiswasaftertalkingtoalotofpeople
inpersonandviatwitteraboutwhethertogoiPhoneorAndroid.
TheoverwhelmingadvicewasthatifyouliveintheUSyou
shouldgoiPhone,soIdidexactlythat.
AfteracoupleweekswiththeiPhoneIwroteacomparison
betweenWindows10MobileandtheiPhonefrommy
perspective.ImselfishImlookingforagoodanswerforme,
somyblogpostwasaboutmeandmypersonalexperience.
AfteracouplemoremonthsIrealizedthatthisisarealtradeoff,
becauseWindows10Mobiletheoperatingsystemismore
consistentandpolishedthaniOS,buttheappsontheiPhone
arealmostuniversallysuperior.
AtthatpointIthoughtIdtryAndroid.Thiswasrightafter
MicrosoftBuild2016,whereitseemedliketherewasalotof
loveforAndroid,andwhereIencounteredawholelotofmy
peerswhowereincredulousthatIhadaniPhoneinsteadofan
Android(wheretheywerelastfallwhenIwassolicitinginputI
http://www.lhotka.net/weblog/

10/26

08/06/2016

RockfordLhotka

havenoideaIbegintosuspectthatpeopleonlyadvocatefor
theirplatformwhenyouhavetheotherplatforminyour
pocket).Basically,someoftheiOSfrustrationsand
inconsistencieswerebuggingmeenoughIwantedtolook
elsewhere.
IdidntevenlastacoupleweeksonAndroidthough.Iboughta
OnePlus2ahighenddevicewithverygenericAndroid.It
turnsoutthatgenericAndroidprettymuchsucksmuchlike
genericLinux.Youneedtospend(inmyexperience)hoursand
hoursandhoursresearchingandtryingdifferentlaunchers,lock
screenapps,emailapps,calendarapps,contactapps,etc.Just
togetbasicfunctionalitythatworksoutoftheboxintheiPhone
andWindows10.O.M.G.Idontunderstandhowpeoplecan
wastethatmuchtimejustgettingthebasicstoworkontheir
phones!?!
NowImbacktoWindows10withaLumia950xl.AndIm
happy.
IkeephearinghowWindowslackspolish.Clearlythis
statementisbeingmadebypeoplewhohavenotactuallyused
Windows10,iOS,andAndroidbacktobacklikeIjustdid.In
somewaysiOSmighthavemorepolish,butitisfar,farless
consistentthanWindows,soIgivetheOSpolishnodto
Windows10.Androidisntevenintherunningithasnopolish
orconsistencythoughmaybewithanothermanyhoursof
researchandtestingIcouldhavefoundalauncherthatIliked?
ThatsnothowIwanttospendmylife.
IalsokeephearingabouttheWindowsappgap.Thatis
obviouslyarealproblem.Itisabsolutelythecasethatthe
iPhonehasalotmoreapps,andalmostalltheappsare
superior.ItisalsothecasethattheAndroidappsareplentiful,
buttheygenerallylooklikecrapcomparedtotheiriOS
counterparts.ButIllgiveittoAndroidthat,thoughitsappsare
inconsistentandoftencartoonish,theyarefullfeatured,unlike
Windowsapps.
http://www.lhotka.net/weblog/

11/26

08/06/2016

RockfordLhotka

Oneothernoteonapps:Androidisclearlydesignedtoworkwell
ifyouareaGoogleuser(mail/calendar/contacts)anditispretty
halfbakedforpeoplenotonGoogle.IcantsayIsupportthe
EUgoingafterGoogleanymorethanIdidwhentheywentafter
MicrosoftsolongagoIthinkthatsjustdumbbutatthe
sametime,Iunderstandtheirconsistentviewhere,because
GoogleisusingAndroidtodriveusageandlockinaroundtheir
cloudserviceofferings,notunlikewhatMicrosoftdid20years
agowithWindows.
Finally,IkeephearinghowWindowsphonehardwareisinferior.
IevenheardthatfromsomeoneatMicrosoft.Imskeptical.Itis
truethattheiPhone6sisareallynicedevice,andIlovethe
fingerprintunlockfeature.Androiddevicequalityvariesalot,
buttheOnePlus2isprettynice(ifabitheavy)andhasa
fingerprintreader(ifyoucanfindalockscreenappthat
supportsit).TheLumia950isnicerandlighterthantheAndroid
devicesIveseenandused(includingtheSamsungones).But
IllgrantthatitisntasniceastheiPhone.Attheendoftheday
though,Ithinkallthreeplatformshavehardwarethatare
basicallyinthesameballpark:reasonablystylish,light,fast,
withdecentbatterylife,andgreatcameras.Ifitwasjustdown
tohardwaremyrankingwouldbeiPhone6s,Lumia950,
SamsungAndroid,otherAndroidinthatorder.
AtthispointthoughIllremindyouthatImselfishhereIm
afterasolutionforme.
ThatmeansitcomesdowntoiPhonevsWindows10Mobile
theAndroidOSistoounpolished,clumsy,andinefficientand
itsappsaretoougly,inconsistent,andcartoonish.Itisclearly
thecheapestplatform,andyougetwhatyoupayfor.Imwilling
topaytogetamoreproductiveexperience.
Andattheendofthedaythereareonly3appsthatdontexist
ordontworkonWindowsthatIactuallyneed:Swarm,Waze,
andtheParrottBebopappformydrone.
MybankdoeshaveanapponiPhone/Android,butitsucks
http://www.lhotka.net/weblog/

12/26

08/06/2016

RockfordLhotka

andsonothavingitisntreallyaloss.Tosolvemybankapp
issueIneedtoswitchtoabetterbank,notadifferentphone.
Iweighedthevalueofthose3appsagainstWindows10smore
polishedandconsistentOSexperienceandIconsideredthat
SiriislikeCortanasdullardoldersister(yes,Siriisreallyan
idiotcomparedtoCortana,andCortanaontheiPhoneis
crippledcomparedtoWindowsorAndroid).
UltimatelyIvedecidedthatIdrathergowiththebestOSona
regularbasis.InmycaseImfortunateenoughthatIcancarry
asecondphone(sansSIM)soIcanstillflymydroneitjust
needstheappandwifiafterall.ThatalsogetsmeWazeand
Swarm,becausetheyalsoworkoverwifi,andmyLumiaworks
greatasawifihotspotwhenImoutandabout.
Attheendoftheday,untilFoursquare,Google,andParrot(and
mybank)gettheirheadsoutoftheir@$$sIamworking
aroundthemviaatwophonesolution.
Butmostimportantly,ImhappyusingWindows10andCortana
formy99%usecaseof
email/calendar/phone/text/messaging/Office/etc.
Andfwiw,IthinkthecontinuedrapidadoptionofWindows10
itself(onmySurfaceandDesktopforexample)willdrivemore
andmorecompaniestocreateUWPappsperhapsnotinitially
forthephone,butatleastforthe300million(andclimbing)
peoplerunningWindows10.Thethingis,onceyourapprunsin
UWP,gettingtothephoneisaprettysmallstepandone
companieswouldbefoolishnottodoforsuchlittleeffort.

Android|iOS|Windows10|WindowsPhone
26April201615:46:05(CentralStandardTime,UTC06:00)
Disclaimer
14APRIL2016

http://www.lhotka.net/weblog/

13/26

08/06/2016

RockfordLhotka

WindowstoiPhonetoAndroid
EarlierthisyearIembarkedonanadventure.Iwasfrustrated
withthelackofappsonWindowsPhone(Windows10)andI
keephearinghowmagicaltheiPhoneisforpeople.Aftera
coupleweekswiththeiPhoneIwroteacomparisonblogpost:
WindowsPhonevsiPhonecomparison
MorerecentlyIwroteaboutmyongoingfrustratingwiththe
iPhone,justifyingwhyIwasgoingtotryanAndroiddevice:
iPhonefrustration
Imtryingtogiveeachplatformafairtry,butafterafewshort
dayswithAndroid(IhaveaOnePlus2soveryvanilla
Android)Imalreadyfindingthatofthethreeoperatingsystems
Androidistheworst.ItiskindoflikedesktopLinuxcobbled
togetherbyalotofpeoplewhodontshareacommonvision,so
everythingsortofworks,butnothingfeelsconsistentandmost
thingsdontseemprofessionalorpolished.Kindofthediametric
oppositeoftheiPhone.
Ivealwaysthoughtthatyougetwhatyoupayfor,andIthink
Androidreinforcesthatworldview.Itischeap,thedevicesare
cheap,theappsarefreeorcheap.Andtheyallfeelcheapwhen
comparedtoWindows10oriOS.Butifyourphoneisnta
budgetarypriorityinyourlife,yetyouneedasmartphone,then
Androidisprobablytherightchoicewhichexplainswhyitis
themostpopularOSglobally.Clearlythemajorityoftheworlds
populationeithercantaffordaprofessionalphone/experience
(whichislargelytrueofcourse),ortheydontvaluetheirown
timeasmuchasmoney,sotheyarewillingtoinvestthattime
dealingwithAndroidinsteadofspendingtheextramoneyup
fronttogetaniPhoneorWindowsPhone.
NoticethatImstillputtingWindowsPhoneinthisdiscussion,
eventhoughithasalowUSmarketshare,andonlyaslightly
betterglobalmarketshare.Inmyexperiencewiththethree
platformsthusfar,myconclusionisthattheoperatingsystems
http://www.lhotka.net/weblog/

14/26

08/06/2016

RockfordLhotka

ranklikethis:
1.Windows10
2.iOS
3.Android
ThephysicaldevicesIvebeenusingranklikethis:
1.iPhone6s
2.Lumia950xl
3.OnePlus2
Theavailabilityandqualityofappsranklikethis:
1.iOS
2.Android
3.Windows10
Ifyouassignnumericscorestoeachcategory,youendupwith
thefollowingoverallratings:
iPhone(8)
Windows10(6)
Android(4)
SoatleastinmyopinionbasedonhowIusemyphoneand
whatIexpectoutofitIprobablyshouldkeepusingmy
iPhone,andkeepgrumblingabouthowdumbSiriiscompared
toCortana.OrIshouldgobacktoWindows10anddealwith
thesadrealitythatitdoesnthaveworkableWaze,Swarm,or
bankingapps.
AlotofpeopleIknowdocarrytwophones(personalandwork).
Imsortofconsideringcarrying2devicesaWindowsphone
withaSIMasmyprimary(soIhaveCortanaandalltheother
stuffIloveaboutWin10)andaniPhonewithoutaSIMtorun
theappsthatdontexistonWin10,becausetheyallrunover
WiFi.Justalittletwistonthework/personaldualphonescenario
butinmycaseIllhaveonephonethatsfuntouse(Win10),
http://www.lhotka.net/weblog/

15/26

08/06/2016

RockfordLhotka

andonephonethatrunsappsthatarefuntouse(iPhone).

14April201608:53:23(CentralStandardTime,UTC06:00)
Disclaimer
08APRIL2016

iPhonefrustration
EarliertodayItweetedthatIhave
anAndroidphoneonorder,
becauseImfrustratedwithmy
iPhone.
Notsurprisinglythatresultedin
peoplewonderingwhyIm
frustrated.
MyiPhoneexperiencestartedin
midJanuarywhenIswitchedfrom
Windows10MobiletoiOSbecauseIwasfrustratedbythelack
ofappsonmyWindowsphone.AcoupleweekslaterIwroteup
myWindowsPhonevsiPhonecomparison.Afteracouplemore
monthsofusingtheiPhoneIstandbywhatIwroteinthatpost
Windows10isfarsuperiortoiOS,butthelackofappson
Windowsphonesiscrippling.
ButtherearesomethingsthatreallybugmeabouttheiPhone
frustrationsIfaceliterallyeveryday.Mostnotably:
NolivetilesmandoImisslivetiles!
CortanaontheiPhoneiscrippled,andSiriisanidiot
ThebacknavigationconceptontheiPhoneisridiculously
inconsistentandpoorlyimplemented
Theconceptofsharingfromoneapptoanotherisrobust
oniOS,butisalsoridiculouslyinconsistentandconvoluted
SomanythingsthataresimpleonWin10Mobilerequirea
lotmoretaps/swipes/effortoniOS
http://www.lhotka.net/weblog/

16/26

08/06/2016

RockfordLhotka

IknowthatAndroidwontsolveoraddressalltheseissues.
Maybeitwontaddressanyofthem,IwontknowuntilItryit.
AndIsaythatbasedonmyexperienceswitchingtotheiPhone
everybodyprioritizesdifferentfeaturesandabilitiesdifferently,
soIfinditvirtuallyimpossibletogetattherealityofeachOS
bytalkingtootherpeople.
HereswhatIthinkIwillfindonAndroid:
Nolivetilesstillmynumber1issuewithanyotherphone
OS
CortanaonAndroidisreputedtobemuchbetterthaniOS
almostasgoodasWindowsandthenewWindows10
AnniversaryEditionmobileintegrationfeaturesworkwith
AndroidaswellasWindows10Mobile(butnotiOS)
Androidhasabackbutton,soIamhopefultheback
navigationexperiencewillbemoreconsistentthaniOS
(whichis,frankly,averylowbar)
Idontknowwhattoexpectaboutinterappsharing,butI
suspectAndroidisnobetterthaniOS(andletsbehonest,
thisisalsoaweakspotforWindowsphones)
IalsodontknowthatAndroidwillbeasoptimizedfor
commontasksasWin10,butIcantimagineitwillbemore
awkwardthaniOS
Attheendofthedaythough,mythreedailyfrustrationsare
simple:
1.Livetiles(andthelackthereof)
2.Cortana
3.Consistentnavigationpatterns(especiallytheback
navigationconcept)
Androidseemstohaveagoodchanceofaddressingtwoofthe
three,soperhapsIllbehappierdaytodaythanIamwiththe
iPhone?
Iguesstimewilltell.AtleastIllbeabletoknowfirsthandhow
allthreemobileoperatingsystemsworkforme.
http://www.lhotka.net/weblog/

17/26

08/06/2016

RockfordLhotka

WindowsPhone
08April201614:58:49(CentralStandardTime,UTC06:00)
Disclaimer
On thi sp a ge . . . .
ASP.NET MVC edit collection of
items
CSLA .NET Version 4.6.400
released
CSLA PropertyInfo control for
Xamarin Forms
mono DisplayAttribute problem
repro
ctor bug in Xamarin/mono?
Thoughts from a Windows 10
user
Windows to iPhone to Android
iPhone frustration

Sea rch
Search

Arc hiv es
June, 2016 (2)
May, 2016 (3)
April, 2016 (4)
March, 2016 (1)
February, 2016 (7)
January, 2016 (4)
http://www.lhotka.net/weblog/

18/26

08/06/2016

RockfordLhotka

December, 2015 (4)


November, 2015 (2)
October, 2015 (2)
September, 2015 (3)
August, 2015 (3)
July, 2015 (2)
June, 2015 (2)
May, 2015 (1)
February, 2015 (1)
January, 2015 (1)
October, 2014 (1)
August, 2014 (2)
July, 2014 (3)
June, 2014 (4)
May, 2014 (2)
April, 2014 (6)
March, 2014 (4)
February, 2014 (4)
January, 2014 (2)
December, 2013 (3)
October, 2013 (3)
August, 2013 (5)
July, 2013 (2)
May, 2013 (3)
April, 2013 (2)
March, 2013 (3)
http://www.lhotka.net/weblog/

19/26

08/06/2016

RockfordLhotka

February, 2013 (7)


January, 2013 (4)
December, 2012 (3)
November, 2012 (3)
October, 2012 (7)
September, 2012 (1)
August, 2012 (4)
July, 2012 (3)
June, 2012 (5)
May, 2012 (4)
April, 2012 (6)
March, 2012 (10)
February, 2012 (2)
January, 2012 (2)
December, 2011 (4)
November, 2011 (6)
October, 2011 (14)
September, 2011 (5)
August, 2011 (3)
June, 2011 (2)
May, 2011 (1)
April, 2011 (3)
March, 2011 (6)
February, 2011 (3)
January, 2011 (6)

http://www.lhotka.net/weblog/

20/26

08/06/2016

RockfordLhotka

December, 2010 (3)


November, 2010 (8)
October, 2010 (6)
September, 2010 (6)
August, 2010 (7)
July, 2010 (8)
June, 2010 (6)
May, 2010 (8)
April, 2010 (13)
March, 2010 (7)
February, 2010 (5)
January, 2010 (9)
December, 2009 (6)
November, 2009 (8)
October, 2009 (11)
September, 2009 (5)
August, 2009 (5)
July, 2009 (10)
June, 2009 (5)
May, 2009 (7)
April, 2009 (7)
March, 2009 (11)
February, 2009 (6)
January, 2009 (9)
December, 2008 (5)
November, 2008 (4)
http://www.lhotka.net/weblog/

21/26

08/06/2016

RockfordLhotka

October, 2008 (7)


September, 2008 (8)
August, 2008 (11)
July, 2008 (11)
June, 2008 (10)
May, 2008 (6)
April, 2008 (8)
March, 2008 (9)
February, 2008 (6)
January, 2008 (6)
December, 2007 (6)
November, 2007 (9)
October, 2007 (7)
September, 2007 (5)
August, 2007 (8)
July, 2007 (6)
June, 2007 (8)
May, 2007 (7)
April, 2007 (9)
March, 2007 (8)
February, 2007 (5)
January, 2007 (9)
December, 2006 (4)
November, 2006 (3)
October, 2006 (4)
September, 2006 (9)
http://www.lhotka.net/weblog/

22/26

08/06/2016

RockfordLhotka

August, 2006 (4)


July, 2006 (9)
June, 2006 (4)
May, 2006 (10)
April, 2006 (4)
March, 2006 (11)
February, 2006 (3)
January, 2006 (13)
December, 2005 (6)
November, 2005 (7)
October, 2005 (4)
September, 2005 (9)
August, 2005 (6)
July, 2005 (7)
June, 2005 (5)
May, 2005 (4)
April, 2005 (7)
March, 2005 (16)
February, 2005 (17)
January, 2005 (17)
December, 2004 (13)
November, 2004 (7)
October, 2004 (14)
September, 2004 (11)
August, 2004 (7)

http://www.lhotka.net/weblog/

23/26

08/06/2016

RockfordLhotka

July, 2004 (3)


June, 2004 (6)
May, 2004 (3)
April, 2004 (2)
March, 2004 (1)
February, 2004 (5)

Cat ego rie s


.NET Core
Android
Architecture
ASP.NET MVC
Books
Bxf
CSLA .NET
dasBlog
Distributed OO
git
h5js
Hololens
iOS
JavaScript
Magenic
Microsoft .NET
mono
MonoDroid
http://www.lhotka.net/weblog/

24/26

08/06/2016

RockfordLhotka

MonoTouch
MOslo
News
Programming
Service-Oriented
Silverlight
Surface
UWP
WCF
Web
Windows 10
Windows 8
Windows Azure
Windows Forms
Windows Phone
WinRT
WomenInTech
Work ow
WP7
WP8
WPF
Xamarin
Xbox
Zune

Abo ut
http://www.lhotka.net/weblog/

25/26

08/06/2016

RockfordLhotka

Powered by: newtelligence dasBlog


2.0.7226.0
Disclaimer
The opinions expressed herein are
my own personal opinions and do
not represent my employer's view in
any way.
Copyright 2016, Marimer LLC
E-mail

Sign In

http://www.lhotka.net/weblog/

26/26

You might also like