There are a million ways to scale pixel art. You could just use point sampling without a custom shader and see if that works for you. If not, you’re gonna have to be clearer about what kind of result you want.
You can draw everything to a texture of any size and then scale that texture to the window. That way you can do your drawing and logic and stuff on e.g. a texture that is only 100x100. Afterwards just resize that texture.
You probably mean point sampling? If you just render a texture at larger scale using SpriteBatch, by default it will use a linear sampling scheme. For pixel art you likely don’t want that and use point sampling instead, so there’s no interpolation between pixel colors. You can pass one of the SamplerState.Point* sampler states to SpriteBatch.Begin to use it. Also for upscaling pixel art usually you want to scale by an integer factor.