Comments (2)
I've only got VS 2010, so the maximum comfortable framework for me is 4.0 without having to jump through some hurdles (at least that's what google is telling me).
The project started in 3.5 about two years ago, so targeting a slightly older framework than the latest 4.0 made sense for distribution at the time. Now it does not and we can comfortably target the latest and greatest.
Regardless of new features or us using them, I would go to 4.5.1 just so the release sets the initial precedent and requirement of 4.5.1 minimum.
As it stands I think we can move to 4.0, but I know their were changes from 3.5 to 4.0 in regards to security in .net, so the appdomain that sandboxes plugins would potentially break if we just changed the target now. I'll have a look at this tomorrow.
If I some how fell over a legitimate copy of VS 2013 I would move to 4.5.1, but this can be a very expensive hobby for me when I don't do any paying work in .NET :)
from potato.
I've moved everything on to 4.0, which did require some changes in how we handled the leases on the MarshalByRefObject. We would usually override MarshalByRefObject.InitializeLifetimeService and simply return null so the proxy never expires, but given 4.0's changes in security the MarshalByRefObject object demands full permissions to be able to override this method or, do anything really. Same with ILease, so from what I could see you pretty much can't manage the proxy from the remote end like we used to.
Since we don't want to grant plugins full permissions we now renew the leases ourselves every minute.
This method gets us to 4.0, with at least what I've read and understand on 4.0 security changes still remains secure. As I read up on this more in the coming weeks there may be additional changes.
All tests pass and the plugins are functional. I'm running a test build locally for a couple hours to profile memory and performance just to make sure I have not inadvertently introduced something worse. Expect a commit soonish.
Going from 4.0 to 4.5 I think will just be changing the target framework. If I can get VS 2013 then we can go to that. I don't have much interest in changing working code to a new version of working code though. Given this projects time line, I'd rather this project had something out there being used than being perfect. The outstanding issues we have and features still to be implemented will take precedence.
from potato.
Related Issues (20)
- Investigate move from Remoting to WCF
- Replace obsolete "Additional" within IProtocol
- Include Guest group as a default pool for players
- Accounts should be able to set their own language
- Command.ToConfigCommand nulling scope
- Simple configuration via command line arguments
- Include simple security commands to setup initial accounts/groups/permissions
- Users should not be able to lock themselves out of the system
- Add localisation for new vehicle kill codes in BF4
- Ensure Myrcon.* packages originate from official source HOT 1
- Periodically save configs
- Packages are not being pulled from the repository
- Remove ProtocolState from protocol events HOT 1
- Add session tokens to player account
- Include license in compiled package
- Simplify streaming account permissions HOT 1
- Include encryption on config commands HOT 1
- Include AbbreviatedName in game mode HOT 2
- Potato.Tools.NetworkConsole outputs to debug directory
- Create plugin developer tool
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from potato.