In order to take advantage of the changes in Drupal 7, Views has gone through several API changes. Here's what you should know.

Handler registry

Views now uses Drupal's dynamic-loading code registry. You can safely remove your implementations of hook_views_handlers(), since they are no longer used. Please remember to specify the handlers in your module's .info file. For example:
name = Example module
description = "Gives an example of a module."
core = 7.x
files[] = example.module
files[] = example.install

; Views handlers
files[] = includes/views/handlers/example_handler_argument_string.inc

Removed handlers

Note that views_handler_filter_float has been removed. This functionality is now handled by views_handler_filter_numeric. There's no need for having a special handler any more, thanks to the new DB layer in Drupal 7. views_handler_sort_formula has been removed. Everyone who used it can extend from views_handler_sort, too.

Ctools dependency

Views requires ctools now, so it can use the dependency system of ctools. The only thing you have to do is to replace
'#process' => array('views_process_dependency')
with
'#process' => array('ctools_dependent_process'),

Changed add_where api

If your field is a plain sql field: $this->query->add_where($this->options['group'], "$this->table_alias.$this->real_field " . $this->operator . " '%s'", $this->value); has to be converted to $this->query->add_where($this->options['group'], "$this->table_alias.$this->real_field", $this->value, $this->operator); If your field is a complex where condition: $this->query->add_where($this->options['group'], "$upper($field) NOT LIKE $upper('%%%s')", $this->value); has to be converted to $placeholder = $this->placeholder(); $this->query->add_where_expression($this->options['group'], "$field LIKE $placeholder", array($placeholder => '%' . db_like($this->value))); placeholder() generates a automatic unique placeholder for you. add_where with operator 'formula' can be converted to add_where_expression. add_having with operator 'formula' can be converted to add_having_expression.

Changed place for display specific settings

In the new ui the new place for display settings is at the top of the second column. Therefore use something like this code in your display plugin: $categories['block'] = array( 'title' => t('Block settings'), 'column' => 'second', 'build' => array( '#weight' => -10, ), );

Changed filter settings and associated class variables

'optional' and 'single' are now 'required' and 'multiple', the logic is now opposite. Also, the 'no_single' and 'no_optional' class variables (known as "object flags" in the API docs) are now 'always_multiple' and 'always_required'.