You are on page 1of 3

WebEnd

============================================
1) MVC or Webforms
@ Webforms
+ Easy to start and learn
+ Good for creating fast prototypes using controls like UpdatePa
nel
+ lots of third-party controls
+ freedom with folder structure
- Code is bound to the page
- ViewState is a pain to manage
- can be hard to maintain if not thought out properly
@ MVC
+ convention-based design makes structure cleaner
+ clear seperation of business logic (model), design (views) and
display logic/flow (controller)
- strict folder structure makes it hard to create a custom one
- MVC has lots of files: views, viewmodels, controllers, models
2) Javascript/CSS
= No Javascript support
* Good design will be to degrade the site gracefully if without
script
- AJAX/JSON will be useless without javascript.
+ MVC might be able to handle script and non-script options usin
g its views
> Using a different view for script/non-script options
- Webforms have to be done with this support in mind
= Serving scripts (can also apply for CSS)
+ General rule is to minify all javascript/CSS to be sent into t
he page to reduce size
@ Handlers
+ can be used to combine scripts to reduce RTTs (Round-t
rip times)
+ can be used to detect gzip compression and compress if
supported
+ control and modify response headers (especially for cl
ient-caching)
+ can be used to minify/pack the combined script on the
fly
+ combined script can be cached in the server
+ available for both MVC and Webforms
- harder to debug scripts (since they are combined)
- tendency to include scripts that are not used
- response might take a little more time due to operatio
ns
- needs to structure script files into modules
- needs to have a way to determine what modules are need
ed
@ ScriptManager (Script only)
+ leverages MS's own structure to manage scripts
+ can also combine scripts
+ can add scripts programmatically if needed
- implicitly includes MSAjax even if it is not used
- Might only be available in WebForms
- implementations for MVC do not perform as well as Scri
ptManager
@ Embedded Resources (Script only, DLL)
+ DLL/Project can be transferred/used easily (portable)
+ can be used with ScriptManager to be able to more effe
ctively combine scripts
+ changes to resource needs only a compile for the proje
ct
- changes to resources needs to have access to project
- Doesn't make sense to use this with css
@ Script/Style Controller (MVC Only)
+ Clean route for getting scripts/styles
+ Can do compression/combination as needed
+ can use actions to segregate file combinations
- MVC only
- changes to resources might need a compile
3) Validation
@ Data Annotations
+ Can be used actually anywhere but most support is for MVC 2.
+ Clean way of validating input data, quite easy to create custo
m annotations
+ Custom annotations can be compiled in a library and used in ot
her projects
+ Has support for client-validation
- validation logic must be repeated for client-validation to wor
k
- complex validation logic is hard to implement, so it can only
be used for input validation
- the model should still validate again, data annotations is not
a sure-fire security solution
@ Manual Validation
+ Doing the validation yourself makes sure that it does what you
exactly want to do
- quite some time and technical know-how is required
4) Login and Membership
= Isolating the login to its own service/module (much like pecumax) seem
s to be a good idea
> Not much experience here since pecumax doesn't have logins
+ changes to implementation of login will not affect the consume
r too much
+ service can be used by more than one project/website reducing
redundancy
+ a user/consumer can implement its own UI and still use the sam
e service
- needs to have good documentation and API
= Login interfaces/dialog
@ Own Dialog
+ More control over the login process, be it a service o
r internal
+ Easy to integrate with our application
+ No dependence on client
- More work for us
@ Client's Dialog (if they have one)
+ Little to no work is involved in our side re: login
- Dependent on client to provide their login
- a bit more difficult to integrate with the application
5) Client Integration
@ IFrame (currently in pecumax)
+ easy integration with client
+ supported by many browsers, even older ones like IE6
+ no need to style parent page
- interaction with parent page is a chore and involves the two p
arties (client and us)
- problems with cross-domains
- interaction with outer page requires javascript
@ Own page
+ complete control of the page and its state
- involves asking the client to serve our page if needed
- all page styling will fall on us (we can copy though)
@ AJAX Call
+ easy integration with client (just a script call)
+ very efficient in regards to data sent in wire
- posting back data is more complicated
- useless without javascript
- Needs to install a library or something to the client and have
them call the method

You might also like