These are distinct but related questions about mapping functions to Associations and Datasets. Given:
assoc = <| a -> 1, b -> 2, c -> 3|>
And
data =
Dataset@{<| a -> 1, b -> 2, c -> 3|> , <|a -> 4, b -> 5, c -> 6|>}
Re MapAt:
MapAt[Framed, Key[b]][assoc]

Although Dataset is not explicitly mentioned in the doc page for MapAt, it's supposed to apply to generic expressions. However:
MapAt[Framed, Key[b]][data]

Next, consider mapping over a named Key with this syntax:
data[All, {Key[b] -> Framed}] // Normal

Why don't the following variations work on Dataset?
data[All, Key[b] -> Framed] // Normal

data[All, Key[b] -> Framed[#] &] // Normal

Finally, back to Association:
assoc[Key[b] -> Framed] // Normal

data[All, {Key[b] -> (Framed[#] &)}] // Normal– Rojo Jul 12 '14 at 23:40a->b&is grouped as(a->b)&instead ofa->(b&). It is a matter of precedence of the operators&versus->. Operator precedence is documented (tutorial/OperatorInputForms). It is easy to check by repeatedly clicking on the expression (or ctrl+.) and seeing how the selection grows. You can also check the precedences with the undocumentedPrecedence/@{Function, Rule}but I don't think it is too useful – Rojo Jul 14 '14 at 18:50data = Dataset@{<|"a" -> 1, b -> 2, c -> 3|>}thendata[1, Key@"a"] -> 1but notdata[1,"a"]; i.e. is thatKeyis needed also a bug? – Ronald Monson Aug 02 '14 at 08:02