Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 35 reacties
Submitter: EDIT

Microsoft heeft de broncode van versie 4.0 van zijn .NET Micro Framework beschikbaar gesteld onder de Apache 2.0-licentie. Niet alle onderdelen van het embedded .NET-platform voor internetapparaten worden echter vrijgegeven.

.NET Framework

Microsoft heeft de beslissing tot de gedeeltelijke openbaarmaking bekendgemaakt op het Professional Developer Conference in Los Angeles. Het .NET Micro Framework is de embedded ontwikkelomgeving voor wat Microsoft omschrijft als 'apparaten met beperkte resources'. Versie 4.0 ondersteunt onder andere multitouch en biedt een emulator voor ssl en https, plus een xml-parser voor native code.

Het gebruik van het framework is gratis en de licentie maakt het gebruik van de broncode mogelijk, maar niet van alle onderdelen komt de broncode beschikbaar: de tcp/ip-stack en de libraries op het gebied van cryptografie blijven onbereikbaar. Reden is volgens Microsoft dat het de tcp/ip-stack van EBSNet in licentie heeft genomen en dus niet de broncode mag vrijgeven. De code van de cryptografie-functies valt simpelweg buiten het framework, maar deze libraries kunnen vervangen worden, volgens Colin Miller, Program Manager voor .NET Micro Framework.

De bedoeling is dat Microsoft-ontwikkelaars aan het .NET Micro Framwork blijven werken en dat bijdragen van opensource-ontwikkelaars erin verwerkt kunnen worden. Hiertoe roept de softwarefabrikant een speciaal team in het leven, terwijl er ook een community rondom de ontwikkeling moet groeien.

Moderatie-faq Wijzig weergave

Reacties (35)

god zeg, zo zie je maar dat microsoft alleen maar trends volgt... "iedereen komt tegenwoordig met open source producten, dus doen wij dat ook"....

straks heb ik geen evil-company meer op tegen te schoppen!

maar ff serieus, microsoft zal hier wel weer iets diepers mee bedoelen, een gedeelte code is open, maar om het bruikbaar te hebben zonder tc/ip? wat is tegenwoordig nou niet meer met het internet verbonden? dit is gewoon weer een kansloze actie om te kunnen zeggen tegen mevrouw kroes: "Zie je wel dat we meer vrijgeven"....

Ik ben echt benieuwd op het hun lukt Łberhaupt een community met serieuze developers op te bouwen, aangezien ze het beroemdste open source besturing systeem regelmatig bedreigt hebben hun developers op te jagen als een heks in de middel-eeuwen, dan is hun niet in dank afgenomen!

maar in de microsoft towers kunnen ze elkaars ego weer lekker strelen met hun "goede daad" naar de mensheid toe.
Apple doet dat niet veel anders, er zijn een paar zaken openbaar (de kernel, wat libs) maar het overgrote deel van de code is gewoon gesloten en alleen als API toegankelijk.

Maar MS is uiteraard bezig om devs te paaien. Even terug in de tijd: MS was vroegah (dan hebben we het over jaren 80/90) altijd de meest dev-vriendelijke. Hun concurrenten IBM en Apple vonden rekening houden met 3rd party devs maar lastig, documentatie was slecht, zonder waarschuwing werden grote veranderingen in het OS doorgevoerd, en eigenlijk bouwden ze het liefst alle software gewoon zelf. Dat was 1 van de grootste redenen van het succes van Windows: het OS zelf was niets speciaals maar doordat het makkelijk coden was voor Windows kwam er een enorme hoeveelheid software. En de "altijd backwards compatible blijven" houding die Windows zo'n spaghetti van legacy code maakte was wel bijzonder populair bij devs: je eenmaal goed debuggede 16-bit code bleef gewoon werken van Windows 3.0 tot aan XP, en had je een aardig Win32 progje geschreven voor Win 3.11 of W95 dan doet dat programma het met grotendeels ongewijzigde code in principe nog steeds.

Maar dat was toen: Apple heeft met OS X het roer volledig omgegooid en is bijzonder dev-friendly geworden (zie ook de moeite die ze doen om iPhone app devs zo makkelijk mogelijk te maken), en Linux is nu de API's ook een beetje fatsoenlijk gedocumenteerd zijn en de dependency hell opgeschoond is ook voor devs veel handiger om voor te coden.

[Reactie gewijzigd door Dreamvoid op 17 november 2009 23:32]

De documentatie bij apple is inderdaad best heel goed (lees vergelijkbaar met bijvoorbeeld de java api documentatie) maar ze mogen van mij nog hard werken aan de tools want werken met xcode is toch niet echt geweldig, geen refactoring (ja wat basale mogelijkheden) geen in code documentatie via tooltips e.d. ) matige code completion, zeer onduidelijke foutmelding bij compilatie (dit vindt ik nog het ergst), als ik het vergelijl met visual studio of eclipse dan lopen ze nog een paar jaar achter.
Opmerkelijk! De Apache 2.0 license is GPLv3 compatible, en kan dit worden gebruikt in projecten van de open source community. Ook zou dit bij moeten dragen aan de ontwikkeling van Mono (hoewel die veel meer .NET moet implementeren dan de Micro-editie).

Toch snap ik waarom Microsoft dit doet. .NET Micro is in eerste instantie ontwikkeld voor Windows Mobile, dat momenteel _zwaar_ aandeel aan het verliezen is. Als MS wil dat het .NET Framework op andere (open source) besturingssystemen als Android en Maemo kan worden gebruikt, moesten ze dit wel doen. Ook zijn Apple, RIM en Palm nu vrij dit als library voor hun OS aan te bieden als ze het hebben geport.
Is dat zo? Verwar je het dan niet met het .NET compact framework dat voor Windows Mobile apparatuur geschikt is? Het micro framework draait al op ARM7 architectuur zoals een LPC2478 met maar 72 (?) MHz. onder de kap.

Een voorbeeld van een bordje dat .NET micro ondersteunt: http://www.antratek.nl/EmbeddedMaster.html

Het blijft een terrein waarvan ik mij afvraag of er vraag is naar Microsoft producten en naar oplossingen die hun eigen 'virtuele machine' nodig hebben om te draaien. De capaciteit van dergelijke microcontrollers is vaak beperkt en om dan een framework te gaan draaien wat nogal zwaar is voor je resources is meestal niet logisch. Zodra aan zulke microcontrollers wordt gedacht is juist de prijs/performance verhouding heel belangrijk.
Als je een voor de gemiddelde programmeur bekend framework en daarmee dus ook programmeertalen en ontwikkelmodel hebt, wordt ontwikkelen dus goedkoper en bereikbaarder t.o.v. gespecialiseerde programmeurs voor het ARM platform.

Ik heb zelf het .net micro framework al zien draaien op een 1.2 GHz ARM en dat vloog als een tierelier.
Dan heb je het ook over een GHz+ processor. Dat geloof ik graag, maar een LPC2478 zou het .net micro framework ook moeten kunnen draaien en dat is echt maar 72 MHz. Binnen ons bedrijf gebruiken wij het compact framework op 400 MHz. (former) Intel PXA processoren (een gewone Pocket PC dus). Bij zulke processoren en een 1.2 GHz ARM draait het micro framework dan vast ook prima.

[Reactie gewijzigd door Contagion op 17 november 2009 17:06]

Dat draaien als een tierelier is natuurlijk relatief. Had hier eens een eenvoudig test voorbeeld, een soort van spreadsheet applicatie met 4 classes (spreadsheet, row, column, cell). Idee was om naar new/delete te kijken t.o.v garbage collection. Eerst een oplossing gemaakt met ClassBuilder, een C++ code generator, in 15 minuten ontwikkel effort. Daarnaast heeft een collage het in C++ met STL gedaan, die had beduident meer ontwikkel tijd nodig, maar deze oplossing was in runtime ongeveer 10 keer langzamer, dan de ClassBuilder oplossing. In een loop werden rijen en kolommen weggegooid en vervolgens weer toegevoegd. Een ander collega die meer een C# expert is heeft het in C# nagebouwd analoog de STL oplossing. Resultaat, deze oplossing kwam niet tot een eind. Waar de ClassBuilder oplossing ongeveer 40 seconden nodig had en de STL ongeveer 400 seconden, is de C# oplossing na een paar uur maar afgebroken. Deze verloor zich helemaal in zijn interne bezigheden.
Dit wil niet zeggen dat C# of .NET niet een geschikte omgeving is, veel heel veel dingen is dit een prima geschikte omgeving, maar er zijn ook duidelijk bepaalde toepassingen waar het minder geschikt voor is.
Managed code draait trager dan unmanaged code. Weird.
Nee. Micro framework is bedoeld om direct op de hardware te draaien. De versie voor windows mobile en windows CE is het .net Compact framework.
Ah, daar heb ik het mis. Dan doet Microsoft dit om de software makkelijker te porten te maken?
Ik denk dat de belangrijkste reden is dat het voor 'goodwill' onder ontwikkelaars zorgt. De gemiddelde ontwikkelaar staat positiever tegenover opensource frameworks dan tegenover closed-source (maar wel gratis) frameworks. Ik denk dat Microsoft hoopt dat uiteindelijk meer mensen gebruik gaan maken van .Net.
Ik denk dat het voor .NET programmeurs wat minder van toepassing is dan voor andere talen. Wil je een echt krachtige IDE gebruiken, dan zit je al gauw aan MS Studio gebonden en dat is een (duur) betaald pakket. Als je toch al betaald hebt voor je IDE, ben je (neem ik aan) minder kritisch tegen (semi) gesloten frameworks.
Misschien dat het meer bedoeld is om de programmeurs voor andere talen over te halen. ;)
Visual Studio Express is gratis en ook prima, de betaalde versies hebben niet zoveel meerwaarde. Bovendien, hoeveel is de professional editie, 200 a 300 euro? Dat is een schijntje in vergelijking met je andere licentiekosten.

Voor bedrijven zijn het vaak niet de kosten die het grootste nadeel zijn van gesloten frameworks. De zwakte van gesloten frameworks is de afhankelijkheid van een enkel bedrijf. Verliest dat bedrijf zijn interesse, biedt het niet die ene feature die jij nodig hebt of lost het jouw blocker bugs niet op, dan loop je de kans goed de sigaar te zijn. Met een voldoende populair open source framework heb je veel meer zekerheid.
Bij ons op het werk gaan we waarschijnlijk zelfs overstappen op de express versie. Je mist niets als je projecten met beperktere teams hebt.
De grote bedrijven zitten vast aan de dure licenties als ze een volledige implementatie willen gebruiken.
Toch snap ik waarom Microsoft dit doet. .NET Micro is in eerste instantie ontwikkeld voor Windows Mobile
Dat is het .NET Compact Framework. Het Micro Framework is voor embedded devices met weinig resources. Heeft niets met telefoons te maken.
Kan iemand mij toelichten wat het verschil / overeenkomst is met het Mono project? Of haal ik hier nu dingen door elkaar?
Het Mono-project heeft voor zover ik weet tot doel om het dotnet-framework zo volledige mogelijk na te bouwen, dus inclusief de normale dotnet-versies...

In het artikel staat wat het micro-framework tot doel heeft:
Het .NET Micro Framework is de embedded ontwikkelomgeving voor wat Microsoft omschrijft als 'apparaten met beperkte resources'.
Verder is het mono-project volgens mij vrijgegeven onder de GPL-licentie en voor deze code wordt de ASL 2.0 gebruikt...
Heel fijn nieuws. Ik heb met 3.5 en de beta's van 4.0 gewerkt en het lijkt me een veelbelovende techniek voor de toekomst.

Simpel gezegd biedt het .NET Micro Framework de mogelijkheid om in managed c# applicaties te ontwikkelen voor kleine apparaten (ARM processor met maar 512 KB rom zou voldoende moeten zijn). Het kan dus gebruikt worden in bijvoorbeeld home automation, media spelers of navigatie apparatuur.

Het is volledig geintegreerd in Visual Studio, waarmee de code direct op target kan worden gedebugd. En omdat het dus C# is gaat de ontwikkeling van software een stuk sneller dan in native C.

En het allermooiste (vind ik dan) is dat de porting kit nu gratis beschikbaar wordt gesteld (die kostte voorheen iets van $15k). Het framework is al beschikbaar voor een heleboel bestaande ARM platformen, maar mocht dit niet het geval zijn dan is het vrij eenvoudig om het te porteren naar je eigen platform. Daarvoor moeten maar iets van 10 modules met tussen de 5 en 10 functies per module worden geimplementeerd. De API is aardig gedocumenteerd en met behulp van wat meegeleverde tools kan je portering worden getest. Geweldig.

Op http://www.microframework.nl/ en http://www.microframeworkprojects.com/ staan een aantal mooie projecten, waaronder een aantal spellen.

[Reactie gewijzigd door drZymo op 18 november 2009 09:15]

Alle samenzwerings-theorieŽn die de revue passeren terzijde gelaten. Als ontwikkelaar wil je je alleen met die open source bezig houden die als volwaardig product kan bestaan los van een leverancier die het in gang zet.

Stel je maakt open source Word macro's om iets raars te noemen, dan zit je nog met handen en voeten gebonden aan de omgeving Word en de producent Microsoft. De producent bepaalt de koers voor het geheel en je zult ook nooit echt los van die producent kunnen.

Een open source project moet zo van opzet zijn dat er niet een partij is die de touwtjes in handen heeft. Je moet een volledige omgeving hebben zonder dat je proprietary componenten nodig hebt om tot een werkend geheel te komen en je moet onbeperkt andere open source componenten kunnen toevoegen.

Ik mis bij Microsoft het commitment om echt de open source weg te gaan bewandelen. Dat is ook niet iets dat je als onderneming bij het ene project wel kunt doen om bij een volgende gelegenheid de gehele open source community in de wielen te rijden. Dat maakt je als partij totaal ongeloofwaardig en dat is Microsoft helaas meerdere keren overkomen.
Ow wacht... jij dacht dat Microsoft een liefdadigheids instelling was? Het is gewoon een bedrijf met een businessmodel... commitment hebben ze wel (anders deden ze niet wat ze nu doen), maar tot een bepaalde hoogte... waarom? Microsoft heeft simpelweg ook niet het doel om alles gratis weg te geven.

Terecht wat mij betreft.

Ik zie het maar zo; alles van Microsoft in de openbaarheid brengt is een een bonus. Wil je echt 100% open source, dan zijn er zat alternatieven.
Oh en Apple(voorbeeld) is wel een liefdadigheids instelling?

Het slaat nergens op om open-source met liefdadigheid te vergelijken. Open-source kan namelijk erg handig zijn ivm meer en makkelijker te ontwikkelen applicaties. Dat zou het platform wat mij betreft aantrekkelijker kunnen maken wat ook weer geld in het laatje voor Microsoft kan opbrengen.
offtopic:
Zijn ze bij microsoft ook open-source ontmaagd :X
Kan iemand mij toelichten wat het verschil / overeenkomst is met het Mono project? Of haal ik hier nu dingen door elkaar?

[Reactie gewijzigd door himlims_ op 17 november 2009 16:47]

Niet helemaal, ze hebben een vrij slimme open source strategie. Sommigen zullen moord en brand schreeuwen, maar ze doen op open source gebied dingen die bedrijfsmatig zeer zinnig zijn:
  • Gebruik de gemeenschap om concepten te testen (Barrelfish)
  • Open een dataformaat om interactie te bevorderen (.PST)
  • Dump drivers in de community om van de support af te zijn.
  • Verdedigen tegen overtreding van de GPL licentievoorwaarden.
  • Maak een community met gemotiveerde ontwikkelaars om uit te putten
  • CreŽer een afhankelijkheid van jouw product.
Het laatste is met name heel slim en gebeurt hier. In de woorden van Steve Ballmer:
Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works.
Vul voor Linux het .NET framework in, en je ziet hoe slim dit is.

Er ontbreekt nog een laatste bedrijfskundige reden en dat is:
  • Gebruik het open source ontwikkelmodel om je product te verbeteren
Dus, eindelijk een mogelijkheid om zelf een eind te maken aan de ergernissen in Windows. Ik voorspelde een paar maanden geleden dat het volgende OS van Microsoft open source zou zijn. Wellicht nog steeds te ver gezocht, maar het komt dichterbij.

edit @ hieronder:
Dit is wat ik bedoelde met
Verdedigen tegen overtreding van de GPL

[Reactie gewijzigd door snirpsnirp op 17 november 2009 17:25]

Toch vraag ik me af of de dingen die je noemt nu direct vrijwillig gedaan zijn, denk hierbij o.a. aan de Hyper-V drivers. Voor zover ik weet moest Microsoft wel, omdat ze in deze drivers reeds GPL'd code van derden gebruikt hadden.

Ook de openheid is er een die door derden afgedwongen is (impliciet dan wel), want als ze dit formaat niet zelf openbaar maken (onder eigen voorwaarden) dan is er een grote kans dat bijvoorbeeld de EU/EC dit af zal gaan dwingen. (Dit vanwege het marktaandeel van msoutlook in de zakelijke wereld).
Ik voorspelde een paar maanden geleden dat het volgende OS van Microsoft open source zou zijn. Wellicht nog steeds te ver gezocht, maar het komt dichterbij.
Lijkt me sterk dat men dit zal doen, en het vrijgeven van een klein stukje code in nu niet direct een signaal dat men een open source besturingssysteem uit zal gaan brengen...
De kernel van Windows CE (= de basis van Windows Mobile) is al open.

Er zijn trouwens 2 manieren om "open source" te zijn:
- de source code is openbaar in te zien: de oorspronkelijke definitie van OS, en hetgene waar de klanten/EC/FTC om vragen.
- de source code vrijgeven om voor iedereen zelf mee te gaan coden/forken: de 'nieuwe' definitie van OS, wat de thuisknutselaars, concurrenten en organisatie OSI graag willen.
Dit denken veel mensen, maar is een misverstand. De term Open Source software is geintroduceerd door Eric Raymond en gedefinieerd door OSI. Software waar je de broncode niet vrij van mag verspreiden is geen open source.

De term begint al een beetje te verwateren, maar is er nog wel genoeg consensus hierover dat open source eigenlijk alleen maar OSI-open source betekent.
Niet moeilijk om verwarring te krijgen als GPLv2 populair is, mensen niet graag overgaan op GPLv3 want dat is plots evil en dan ook nog eens alle grote bedrijven een eigen versie of een versie van een ander groot bedrijf overnemen.
Dump drivers in de community om van de support af te zijn.
Maar dit wil de community toch juist? Linux heeft altijd de community filosofie gehad: niet 1 groot bedrijf schrijft de code maar de community bouwt gezamenlijk aan het OS. Werkt een driver niet, dan gaat enthousiaste devs aan de slag om het te laten werken. Werkt je WiFi kaart niet of crasht je filesystem? Niet klagen en coden met je donder.
Het laatste is met name heel slim en gebeurt hier. In de woorden van Steve Ballmer:
Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works.
Vul voor Linux het .NET framework in, en je ziet hoe slim dit is.
Met het verschil dat Ballmer doelt op de virale eigenschappen van de GPL die niet in de apache licentie te vinden zijn. Oftewel: Complete onzin wat je hier meldt.
Het is niet zo bijzonder als het lijkt...

Microsoft lijkt nauwelijks iets geheel openen. Het is altijd een gedeelte. Als je een gave app wilt maken, moet je alsnog gebruik maken het gedeelde wat niet geopend is, en nooit geopend wordt. Zo is je software alsnog net zo gebonden als voorheen.

Verder is het .net micro framework is niet de gehele .net omgeving, maar een variant voor het programmeren van embedded devices. In deze markt heeft Microsoft een klein/teruglopend marktaandeel, en zijn biedt de concurrentie open alternatieven. Ze moeten wel openen om nog enigszins interessant te blijven voor de embedded markt.

[Reactie gewijzigd door YaPP op 18 november 2009 09:33]

Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.
Mono bouwt een .NET compatible omgeving die open source en multi-platform is.
Zijn ze bij microsoft ook open-source ontmaagd
Microsoft is al jaren bezig met open source licensies en projecten...

[Reactie gewijzigd door Edmond Dantes op 17 november 2009 16:58]

Mono is een open source framework dat compatibel is met .NET en werkt zowel op windows als op linux omgevingen
Het .NET framework is..wel...het .NET framework: Specifiek voor windows.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True