Department of InformatiX
Microsoft .NET Micro Framework Tools & Resources

3.0.7186.0

Finální verze publikována na Microsoft Downloads 24. 10. 2008, oficiální ohlášena o čtyři dny později na Embedded Systems Conference v Bostnu.

Pro ty, kteří nejsou seznámeni s novinkami v třetí verzi, zde je stručný přehled:

Změny narušující stávající projekty (od verze RC0):

AssemblyPodrobnosti
Microsoft.SPOT.Hardware.UsbClient.dll
Microsoft.SPOT.Hardware.UsbClient.Configuration.UsbInterfaceClassDescriptor[] classDescriptors místo samotného ClassDescriptor classDescriptor.
System.IO.dll
Protected System.IO.FileSystemInfo.FromFileTimeUtc(long fileTime) byla zrušena bez náhrady.
System.IO.StreamWriter.CurrentEncoding odstraněno (používejte Encoding).

Podpora pro více verzí frameworku (multitargeting) byla odsunuta do další verze.

Ostatní a interní změny: (český výpis momentálně nestíhám)

AssemblyPodrobnosti
MFDpwsExtensions.dll
System.Ext.Console.Write(string) byla implementována, a nová vlastnost Verbose určuje, zda bude text vypsán pomocí metody Debug.Print.
Microsoft.SPOT.Ink.dll
The Microsoft.SPOT.Ink.InkCanvas now initializes the DefaultDrawingAttributes in a constructor and checks for null in the OnStroke handler.
Microsoft.SPOT.IO.dll
Microsoft.SPOT.IO.RemovableMedia is now static.
Microsoft.SPOT.IO.VolumeInfo has new FlushAll method, and the IsFormatted property now returns false, if the TotalSize of the volume is zero.
Microsoft.SPOT.Native.dll
The Microsoft.SPOT.ResourceUtility now initializes the current UI culture in a try catch block. Microsoft.SPOT.IO.VolumeInfo has new FlushAll method, and the IsFormatted property now returns false, if the TotalSize of the volume is zero.
mscorlib.dll
There is a new System.IO.IOException.IOExceptionErrorCode.TooManyOpenHandles enum member.
System.IO.dll
System.IO.Directory.Delete throws an unauthorized access exception if you want to delete a file or a read-only directory.
System.IO.File.GetAttributes throws a file not found exception if the file does not exist, and returns FileAttributes.Normal instead of zero. The Delete method throws a DirectoryNotFound exception, if the directory in specified file path does not exist.
The Systme.IO.MemoryStream has improved performance of WriteByte method and private EnsureCapacity no longer throws an exception when a lower than actual capacity is to be ensured.
Some updates in the path normalization algorithm.
System.IO.StreamReader.Read() now uses CurrentEncoding instead of hard-coded UTF-8.
System.IO.StreamWriter.Write(char) now uses Encoding to get byte instead of direct cast, yet still sends the first byte only.
System.Net.Security.dll
Microsoft.SPOT.Security.SslStream.Read(byte[], int, int) now reads only data available, in case there are some.

3.0.5071.0

Announced on Tuesday, October 7, 2008. This release is named Release Candidate 0, and includes these features in addition to the ones in previous beta:

Porting kit is still not available in this release. Don't forget to read the release notes!

Breaking changes:

AssemblyDetails
MFDpwsExtensions.dll
System.Ext.Convert class removed, and its functionality was moved into System.Convert class in the mscrolib.dll assembly.
System.Ext.Guid removed, use System.Guid in the mscorlib.dll assembly.
Microsoft.SPOT.Hardware.dll
USB related stuff, namely Microsoft.SPOT.Hardware.UsbClient class and its and nested UsbController and Configuration classes, were moved into new separate Microsoft.SPOT.Hardware.Usb.dll assembly.
Serial port related stuff, namely the System.IO.Ports.SerialPort class, was moved into new separate Microsoft.SPOT.Hardware.SerialPort.dll assembly.
Microsoft.SPOT.Hardware.HardwareProvider.GetLCDMetrics(out int width, out int height, out int, out int, out int) exchanged the first two parameters.
Members of the System.IO.Ports.BaudRate enum were renamed from Baud# to Baudrate#.
Microsoft.SPOT.Native.dll
The Microsoft.SPOT.Hardware.SystemID class was nested into the Microsoft.SPOT.Hardware.SystemInfo class.
Microsoft.SPOT.IEvent replaced by Microsoft.SPOT.BaseEvent abstract class.
Microsoft.SPOT.IEventSource removed without replacement.
Static Microsoft.SPOT.Logging removed. Use the file system.
Microsot.SPOT.EventSink moved into Microsoft.SPOT.Hardware.dll assembly. The signature of InitializeForEventSource and OnEvent methods of Microsoft.SPOT.IEventListener was changed (the first one no longer takes parameters (without replacement), the latter now accepts BaseEvent).
Microsoft.SPOT.Touch.dll
Microsoft.SPOT.EventArgs moved into Microsoft.SPOT.Native.dll assembly.
Microsoft.SPOT.Ink.dll
The only Microsoft.SPOT.Ink.InkCanvas constructor now requires left and top parameters (before current width and height ones).
Microsoft.SPOT.IO.dll
The Microsoft.SPOT.IO.NativeIO class was made internal and most of its methods were removed. Use methods of System.IO.File and System.IO.Directory instead.
Microsoft.SPOT.Net.dll
Microsoft.SPOT.Net.SocketNative class became internal without replacement (and all methods accepts object instead of socket integer handle).
Microsoft.SPOT.Net.Security.SslProtocols.SSLv2 enum member removed.
System.IO.dll
The GetDirectories(string) and GetFiles(string) method of System.IO.DirectoryInfo where removed without replacement (though there are now similar methods in the Directory class).

What else is new:

AssemblyDetails
MFDpwsExtensions.dll
New System.Ext.Console class (without documentation and purpose yet). It is used throughout web services as a Debug.Print replacement.
Bug fixed in System.Ext.Xml.XmlWriter.WriteAttributeString(string, string, string, string) a WriteStartAttribute(string, string, string) (now accepts xmlns namespace without prefix).
Bug fixed in WriteEndAttribute() and WriteStartAttribute(string, string, string) (regarding quotes).
WriteStartAttribute(string) and WriteStartAttribute(string, string) now implemented.
MFWsStack.dll
As usually, all exception messages removed as moving towards the release build.
Bug fixed in Ws.Services.Serialization.DataContractSerializer.ReadAnyAttribute (reads prefixes now).
Ws.Services.Serialization.WsXmlConvert.ToDateTime now throws an exception if you supply a time zone, newly parses miliseconds and a bug was fixed in parsing invalid seconds. The ToString(DateTime) method now returns miliseconds as well.
New Ws.Services.Serialization.WsXmlConvert.ToSByte(string) and ToString(sbyte) methods.
Ws.Services.Utilities.WsDuration has new Ticks field, ToString(TimeSpan) method and a constructor taking a TimeSpan. The constructor using string now parses miliseconds as well (the parser si completely new).
Bug fixed in the Ws.Services.WsaAddressing.WsWsaHeader(string, string, string, string, string, WsXmlNodeList) (the from parameter was being ignored).
Ws.Services.SoapMessageBuilder.BuildSoapMessage(WsWsaHeader, DataContractSerializer, object) now checks the bodyContent parameter for null.
MFDpwsDevice.dll
Bugs fixed in the Dpws.Device.Services.DpwsHostedService.Subscribe (ID of the event is now prefixed with "urn:uuid:" and the ServiceID is used instead of EndpointAddress).
Dpws.Device.Services.DpwsWseSubscriptionMgr.FireEvent method now checks for null.
Microsoft.SPOT.Hardware.dll
New baud rates defined in the System.IO.Ports.BaudRate enum: 75, 150, 300, 600, 1200, 2400 and special value NONE. (Remember, you can still use any baud rate your hardware supports using explicit casting.)
Microsoft.SPOT.Native.dll
Bug fixed: Microsoft.SPOT.EventArgs.Empty now returns an instance of EventArgs instead of null.
New Storage and Network members of Microsoft.SPOT.EventCategory enum.
Microsoft.SPOT.Touch.dll
Microsoft.SPOT.Touch.Point a Microsoft.SPOT.Touch.Stroke are now marked as serializable. Microsoft.SPOT.Touch.TouchCollector now properly supports left and top positioning.
New static members of the Microsoft.SPOT.Touch.TouchCollectorConfiguration class: SamplingFrequency, StylusMoveFrequency properties and GetLastTouchPoint(ref int, ref int) method.
System.IO.dll
New fundamental classes: System.IO.TextReader, StreamReader, TextWriter and StreamWriter, although they do not fully support UTF-8.
System.IO.Directory.Exists now returns false, if the supplied path is a valid file path. The same way, System.IO.File.Exists returns false, if the supplied path is a valid directory path.
The Directory class has new GetDirectories(string, string) and GetFiles(string, string) methods allowing to search using wildcards.
New static System.IO.File.GetAttributes(string) and SetAttributes(string, FileAttributes) methods.
The File.Delete(string) won't delete any directory or read-only file.
System.IO.FileInfo.DirectoryName is now implemented.
New System.IO.FileShare.Delete enum member.
System.IO.FileSystemInfo has couple of new read-only properties: Attributes, CreationTime, CreationTimeUtc, LastAccessTime, LastAccessTimeUtc, LastWriteTime, LastWriteTimeUtc, and methods Refresh, RefreshIfNull (protected) and FromFileTimeUtc(long) (protected).
System.IO.MemoryStream no longer works after disposal (which is actually a bug fix).
System.IO.Path.InvalidPathChars now also contains colon and slash (':', '/').
Microsoft.SPOT.Net.dll
New Microsoft.SPOT.Net.NetworkInformation.NetworkChange class supplying static NetworkAddressChanged and NetworkAvailabilityChanged events.
New Microsoft.SPOT.Net.NetworkInformation.Wireless80211 class and its nested enums for the Wi-Fi functionality. The NetworkInterfaceType has also a new, corresponding member - Wireless80211.
Microsoft.SPOT.Graphics.dll
The Microsoft.SPOT.Bitmap now has a byte[] GetBitmap() method, which returns the underlaying bitmap as a byte array. However, I have not figured yet how to update the changes back.
Microsoft.SPOT.TinyCore.dll
The most noticable performance improvement is the removement of unnecessary calls to the Dispacther.VerifyAccess(), which prevents cross-thread calls on GUI objects. Members from which this call was removed include:
Microsoft.SPOT.Input.ButtonDevice.GetButtonState method and Target getter
Microsoft.SPOT.Presentation.Controls.Border.GetBorderThickness method
Microsoft.SPOT.Presentation.Controls.Canvas.GetAnchorValue method
Microsoft.SPOT.Presentation.Controls.ContentControl.Child gettter
Microsoft.SPOT.Presentation.Controls.Control.Font getter
Microsoft.SPOT.Presentation.Controls.ListBox.SelectedItem getter, .ListBoxItem.IsSelectable getter and IsSelected
Microsoft.SPOT.Presentation.Controls.Panel.Children getter
Microsoft.SPOT.Presentation.Controls.ScrollViewer.ExtentHeight, ExtentWidth, HorizontalOffset, LineHeight, LineWidth, ScrollingStyle, ScrollingStyle and VerticalOffset getters
Microsoft.SPOT.Presentation.Controls.StackPanel.Orientation getter
Microsoft.SPOT.Presentation.Controls.Text.Font, ForeColor, LineHeight, TextAlignment, TextContent, TextWrap and Trimming getters
Microsoft.SPOT.Presentation.Controls.TextFlow.LineCount, ScrollingStyle, TextAlignment and TopLine getters
Microsoft.SPOT.Presentation.Media.DrawingContext.GetClippingRectangle method
Microsoft.SPOT.Presentation.PresentationSource.RootUIElement getter
Microsoft.SPOT.Presentation.UIElement.GetDesiredSize, GetLayoutOffset, GetMargin, GetRenderSize, GetUnclippedSize, IsRenderable methods, ActualWidth, ActualHeight, Height, HorizontalAlignment, IsArrangeValid, IsEnabled, IsFocused, IsMeasureValid, IsVisible, Parent, RootUIElement, VerticalAlignment, Visibility, Width getters
Microsoft.SPOT.Presentation.UIElementCollection.Add, Clear, ConnectChild, DisconnectChild, Insert, RemoveAt methods (but this[int] setter newly does)
Microsoft.SPOT.Presentation.Window.Left, SizeToContent, Top, Topmost getters
Microsoft.SPOT.Application.DoShutdown, OnExit, OnStartup methods, Windows getter
Besides that, the Dispacther.VerifyAccess() performance was a little bit optimized.
Another performance improvement takes place in the Microsoft.SPOT.Presentation.UIElement.Arrange(int, int, int, int) in case the element is already measured.

The Microsoft.SPOT.Presentation.Controls.Border control now does not render the background, if it is set to null.
Microsoft.SPOT.Presentation.Controls.Control has now the background set to white by default instead of transparent.
Microsoft.SPOT.Presentation.Window has now the background set to white by default too.

Microsoft.SPOT.Input.ButtonEventArgs can now hold any button value!

Microsoft.SPOT.Input.RawGenericInputReport and RawStylusInputReport has new Target read-only field of UIElement type (and matching constructor).
Microsoft.SPOT.IO.dll
Contains new Microsoft.SPOT.IO namespace to support the file system. From the public classes, let's mention the VolumeInfo and RemovableMedia with the static Eject and Insert events (with an argument of type MediaEventArgs).
Microsoft.SPOT.Ink.dll
Microsoft.SPOT.Ink.DrawingAttributes has new Color field.
The Microsoft.SPOT.Ink.InkCanvas class has new SetPosition(int, int, int, int) method, and the default OnStroke handler uses the color specified in drawing attribute and left and top properties.
mscorlib.dll
New enum System.DateTimeKind enum, and the DateTime now supports the kind philosophy, with Kind property, static SpecifyKind(DateTime, DateTimeKind) and other methods adjustments. Considering all the troubles in .NET Framework, I would prefer the DateTimeOffset solution.
The System.Globalization.DateTimeFormat.FormatCustomized(DateTime, string, DateTimeFormatInfo) now formats any number of y with zeros filled from left (eg. yyyyyy is formatted as 002008)
New System.Guid struct, including guid generation.
The System.String now has Equals(object) overload.
The System.Double now has the NegativeInfinity and PositiveInfinity public constants. No, the NaN is not there. We have new System.Convert methods: ToByte, ToDouble, ToInt16, ToInt32, ToInt64, ToSByte, ToUInt16, ToUInt32, ToUInt64 and ToInt32(string, int base), which, however, does support base 16 only.
Finally there are also corresponding parsing methods available, all of Byte, Double, Int16, Int32, Int64, SByte, UInt16, UInt32, UInt64 now has the Parse method.
New nested enum System.IO.IOException.IOExceptionErrorCode, and the IOException has new ErrorCode property of this type.
System.Net.Security.dll
The Microsoft.SPOT.Net.Security.SslStream has new DataAvailable and Length read-only properties.

Further internal changes:

AssemblyDetails
MFWsStack.dll
The internal Ws.Services.Transport.IO.HttpStreamReader and HttpStreamWriter were removed and replaced by StreamReader resp. StreamWriter on NetworkStream.
Private Ws.Services.Serialization.WsXmlConvert.GetDoubleNumber(char[]) removed without replacement.
Redundant try catch blocks were removed from Ws.Services.Serialization.WsXmlConvert and its ToString(TimeSpan) and ToTimeSpan(string) methods now uses the WsDuration class for conversion.
Also the Ws.Services.Transport.HTTP.WsHttpMessageProcessor now uses the stream readers/writers over network stream instead of the HttpStreamReader/HttpStreamWriter. Both receive and send timeout are set to 5 seconds in the constructor (previously 100ms for receive only). This class supports UTF-8 only.
Added synchronization lock in internal Ws.Services.Tranport.WsMessageCheck.IsDuplicate property.
Ws.Services.Transport.HTTP.WsHttpClient.SendRequest(byte[], string, bool, bool, WsMtomParams) no longer sets socket's send and receive timeouts when connecting.
Microsoft.SPOT.Hardware.dll
There is a new internal static class System.IO.Ports.SerialPortName, with the only method ConvertNameToIndex, which converts eg. COM3 into 2.
Microsoft.SPOT.Touch.dll
New internal Microsoft.SPOT.Touch.TouchEventProcessor class for translating desired events into StylusEvents.
System.IO.dll
The internal System.IO.FileSystemManager moved into Microsoft.SPOT.IO.dll assembly.
System.IO.DirectoryInfo now uses System.IO.Directory and this now uses the FileSystemManager. The current directory is now kept in the FileSystemManager.
New internal static File.Copy(string, string, bool, bool deleteOriginal) which joines the copy/move file operations.
The public static File methods (Create, Open, OpenRead and OpenWrite) now uses zero buffer size, which I guess defaults to a default one specified in native code.
The System.IO.FileStream(string, FileMode, FileAccess, FileShare, int) constructor is now fully implemented and uses the new internal NativeFileStream class.
The System.IO.Path now works with normalized paths.
Microsoft.SPOT.Net.dll
The internal Microsoft.SPOT.Net.Security.SslNative became static and has new bool DataAvailable(object) method.
Microsoft.SPOT.TinyCore.dll
Microsoft.SPOT.Input.StylusDevice no longer keeps track of the last element caused the event.
Microsoft.SPOT.Presentation.Media.MediaContext.RenderMessageHandler(object) does not clear the bitmap (screen) before rendering.
mscorlib.dll
The IOException(string, int) constructor sets the Exception.m_HResult (protected) field.
System.dll
The NetworkStream.Read(byte[], int, int) now calls the Socket.ReceiveFrom even when the available count is zero.
System.Net.Security.dll
Exceptions during native SecureAccept and SecureConnect are no longer cathed (and secure context exited) in the SslStream.Authenticate(bool, string, X509Certificate, X509Certificate[], SslVerification, SslProtocols[]) method.

3.0.2968.0

Ohlášena v pondělí 28. 7. 2008, první veřejná beta verze .NET Micro Frameworku 3.0. S touto betaverzí přichází následující:

Souborový systém, Wi-Fi a porting-kit nevyžadující NDA nejsou v této betě implementovány.

Změny narušující stávající projekty (pevně věřím, že narozdíl od .NET Frameworku se zde podaří dávat přednost opravám a změnám k lepšímu než zachovávat zpětnou kompatibilitu):

AssemblyPodrobnosti
MFDpwsClient.dll
Dpws.Client.Eventing.DpwsSubscribeResponse přejmenována na Dpws.Client.Eventing.DpwsEventSubscription a typ SubscriptionID změněn z WsXmlNode na string (mající hodnotu WsXmlNode.Value).
MFDpwsDevice.dll
Z Dpws.Device.Services.DpwsWseEventSources byla odstraněna metoda IndexOf(DpwsEventSource).
Interní Dpws.Device.Services.DpwsWseEventSinks přestala být IEnumerable.
MFDpwsExtensions.dll
System.Ext.IO.MemoryStream přesunut do System.IO.MemoryStream v System.IO.dll.
Interní System.Ext.IO.NetworkStream přesunut do System.Net.Sockets.NetworkStream v System.dll a stala se veřejnou s podporou dědění.
Interní System.Ext.Net.WsdIPAddress byla odstraněna a nahrazena třídou System.Net.IPAddress.
Microsoft.SPOT.Graphics.dll
Microsoft.SPOT.Hardware.ScreenMetrics odstraněna a nahrazena (virtuální) Microsoft.SPOT.Hardware.GetLCDMetrics(out int length, out int width, out int bitPerPixel, out int orientationDeg) v Microsoft.SPOT.Hardware.dll.
Všechny metody třídy Microsoft.SPOT.Bitmap označené jako obsolentní byly odstraněny:
void BitBlt(int, int, int, int, Bitmap, int, int, int); (použijte DrawImage)
void Circle(int, int, int, int); (použijte DrawEllipse)
void DrawRectangle(int, int, int, int); (použijte jiné přetížení)
int DrawText(string, int, int, Font); (použijte jiné přetížení)
int DrawText(string, int, int, Font, float); (bez náhrady)
void DrawTextInRect(string, int, int, int, int, uint, Font); (použijte jiné přetížení)
bool DrawTextInRect(ref string, ref int, ref int, int, int, int, int, uint, Font); (použijte jiné přetížení)
void Line(int, int, int, int); (použijte DrawLine)
void MaskBlt(int, int, int, int, Bitmap, int, int, Bitmap); (bez náhrady)
void PatBlt(int, int, int, int, int); (bez náhrady)
void ResetClippingRectangle(); (použijte SetClippingRectangle(0, 0, Width, Height))
void RotateBlt(Bitmap, int, int, int, int, int); (bez náhrady)
void SetPixel(int, int, bool); (použijte jiné přetížení)
void TransparentBlt(int, int, int, int, Bitmap, int, int); (bez náhrady)
Microsoft.SPOT.Hardware.dll
Microsoft.SPOT.Hardware.GPIOInterruptEventHandler odstraněn a nahrazen delegátem Microsoft.SPOT.Hardware.NativeEventHandler(uint data1, uint data2, TimeSpan time). Jak můžete vidět, podpisy se liší, takže abyste mohli použít své stávající handlery, budete muset udělat drobné úpravy:

interruptPort.OnInterrupt += new NativeEventHandler(interruptPort_OnInterrupt); static void interruptPort_OnInterrupt(uint data1, uint data2, TimeSpan time) { Cpu.Pin pin = (Cpu.Pin)data1; bool state = data2 != 0; // váš stávající kód zde }
Microsoft.SPOT.Hardware.SerialPort přesunuta do System.IO.Ports.SerialPort. Třída SerialPort.Configuration je nyní interní, parametry se zadávají přímo do konstruktoru. Stejně tak Microsoft.SPOT.Hardware.HardwareProvider.GetSerialPins byla pozměněna a nyní vrací i CTS a RTS piny.
Micosoft.SPOT.TinyCore.dll
Microsoft.SPOT.Input.Button přesunut do Microsoft.SPOT.Hardware.Button v Microsoft.SPOT.Hardware.dll. Stačí aktualizovat seznam using. Dále bylo do tohoto enumu přidáno spoustu hodnot a Button.Last je nyní 288.
System.Xml.Utf8Decoder.dll
Assembly už není k dispozici. UTF8Decoder byl přesunut do System.Text namespace v mscorlib.dll a stal se private. Přestože to nezní příliš přívětivě, je to skvělá změna, jelikož je k dispozici nová abstraktní třída Decoder a dekodéry jsou přiřazeny třídám Encoding tak, jak by to mělo být. Pokud jste tedy ve své aplikaci používali UTF8Decoder, získáte jej nyní pomocí System.Text.Encoding.UTF8.GetDecoder().

Co dále je nového:

AssemblyDetails
MFDpwsClient.dll
Dpws.Client.Eventing.DpwsSubscribeRequest.EndTo už není readonly.
Nové přetížení SendRequest přijímající WsMtomBodyParts bylo přidáno do třídy Dpws.Client.Transport.DpwsHttpClient, stejně tak jako vlastnosti ReceiveTimeout a SendTimeOut.
Vlastnosti DiscoveryClient, EventingClient a MexClient třídy Dpws.Client.DpwsClient se staly public a metoda ProcessRequest byla upravena aby nespouštěla neveřejné metody.
MFDpwsDevice.dll
Opraven bug v Dpws.Device.Services.DpwsHostedService.Subscribe(WsWsaHeader, XmlReader) (kontrola null).
Zvýšení výkonu (DpwsWseEventSinkQMgr).
Opraven bug v metodě Dpws.Device.Services.DpwsWseEventSinks.Add(DpwsWseEventSink) (nyní porovnává absolutní adresy NotifyTo).
Vlastnost Port třídy Dpws.Device.Device může být nyní měněna (dokud není zařízení spuštěno).
MFDpwsExtensions.dll
Zásadní bug opraven ve struktuře System.Ext.Guid (Guid má nyní správnou délku).
System.Ext.Uri nyní rozpoznává IPv6 uri.
MFWsStack.dll
Nové namespace Ws.ServiceModel se třemi atributy a Ws.Services.Serialization s dalšími napovídajícími kompatibilitu s Windows Communication Foundation.
Mohla by se vám také hodit statická třída Ws.Services.Serialization.WsXmlConvert s několika parsovacími metodami.
Nové třídy Ws.Services.Xml.WsXmlElement a Ws.Services.SoapMessageBuilder, které zatím nejsou nikde využity.
Ws.Services.Transport.HTTP.WsHttpClient nyní rozpoznává Content-Type, Mime-Version a Expect HTTP hlavičky a navíc k IPv4 jménům přijímá i DNS.
Opraven bug v Ws.Services.Transport.IO.HttpStreamReader (nyní privátní metody GetNewBuffer a PeekChar čtou všechna data)
Ws.Services.WsServiceOperation nyní obsahuje proměnnou NamespaceUri.
Dva zásadní bugy opraveny v interní třídě Ws.Services.WsSoapMessageWriter (v urn:uuid: chyběla dvojtečeka, MessageNumber mělo být MessageId - také přejmenováno ve vnořené interní třídě AppSequence)
Konstanta SchemaNamespaceUri byla přidána do statické třídy Ws.Services.WsWellKnownUri.
Microsoft.SPOT.Graphics.dll
Třída Microsoft.SPOT.Presentation.Media.ColorUtility byla označena jako statická.
Microsoft.SPOT.Hardware.dll
Práce standardních portů byla od základů změněna s pomocí nové třídy Microsoft.SPOT.Hardware.NativeEventDispatcher a delegáta Microsoft.SPOT.Hardware.NativeEventHandler.
Statická třída Microsoft.SPOT.Hardware.Cpu byla rozšířena o enumy PinUsage, PinValidInterruptMode a PinValidResistorMode.
Microsoft.SPOT.Hardware.HardwareProvider byl rozšířen zásadním způsobem a všechen hardware nyní této třídy využívá. Obsahuje i metody pro zjištění schopností procesoru (jako třeba počet pinů, podporované režimy přerušení, maximální přenosová rychlost, atd.)
Třídy Microsoft.SPOT.Hardware.I2CDevice a Microsoft.SPOT.Hardware.SPI nyní implementují IDisposable.
Microsoft.SPOT.Native.dll
Třída Microsoft.SPOT.Reflection byla označena jako statická.
Nová statická třída Microsoft.SPOT.Hardware.SystemInfo obsahující informace o firmware.
Byly také přidány IEvent, IEventListener a IEventSource, enum EventCategory a třídy GenericEvent a StylusEvent na podporu stylusu a generického zařízení.
Microsoft.SPOT.Net.dll
V podstatě vše ve třídě Microsoft.SPOT.Net.NetworkInformation.NetworkInterface bylo obaleno blokem try finally.
Deklarace metod recv, recvfrom a sendto třídy Microsoft.SPOT.Net.SocketNative byla rozšířena o timeout parametr.
Microsoft.SPOT.TinyCore.dll
Metody Microsoft.SPOT.Input.ButtonDevice byly upraveny tak, aby kontrolovaly přístup k vláknu dispatcheru a k práci s více než 32 tlačítky.
Microsoft.SPOT.Input.InputManager také kontroluje přístup a byla přidána podpora pro stylus a generické zařízení. Microsoft.SPOT.Input.GenericDevice je nové zařízení, které vám umožňuje zasílát vlastní zprávy systémem WPF a zpracovávat je v metodě OnGenericEvent.
Všechny standardní ovládací prvky, Window, DrawingContext (a interní MediaContext, LayoutManager) byly také upraveny tak, aby kontroly přístup.
Přibyla nová událost Microsoft.SPOT.Presentation.WindowManager.PostRender, která je vyvolána po každém dokončení kreslení.
Enum Microsoft.SPOT.Presentation.Media.TextAlignment nyní obsahuje hodnotu Justify.
Microsoft.SPOT.Presentation.UIElement nyní obsahuje události související se stylusem a generickým zařízením, a navíc několik nových pomocných metod:
bool ContainsPoint(int x, int y) ke zjištění, zda se absolutní souřadnice nacházejí na tomto UIElementu,
UIElement GetPointerTarget(int x, int y) která najde viditelný prvek, který je nejvíce navrchu v logickém stromu tohoto UIElementu pod udanými absolutními souřadnicemi,
void GetUnclippedSize(out int width, out int height) která zpřístupňuje neoříznutou velikost tohoto UIElementu (požadovaná velikost se ořezává dostupnou velikostí),
UIElement ChildElementFromPoint(int x, int y) mi připadá stejná jako GetPointerTarget až na to, že nekontroluje viditelnost,
void PointToClient(ref int x, ref int y) překládající absolutní souřadnice do relativních vzhledem k tomuto UIElementu,
void PointToScreen(ref int x, ref int y) překládající souřadnice opačným směrem.
Metoda RenderRecursive se stala protected a virtual, ale stále je internal.
Microsoft.SPOT.Dispatcher a Microsoft.SPOT.DispatcherObject nyní obsahují metodu VerifyAccess aniž by bylo třeba definovat symbol TINYCLR_DEBUG_DISPATCHER a také kontrolují přístup k vláknu (např. při volání InvokeShutDown()).
mscorlib.dll
Vlastnosti ReadTimeout a WriteTimeout byly přidány do abstraktní třídy System.IO.Stream.
Deklarace System.Object.Finalize() byla opravena na virtual z původní override.
System.Xml.dll
System.Xml.XmlTextReader byl upraven k používání UTF8 dekodéru zmíněného výše.
System.dll
Vlastnosti ReceiveTimeout a SendTimeout byly přidány do třídy System.Net.Sockets.Socket.
Třída System.Net.IPAddress nyní umí parsovat řetězce a pole bajtů.
Comments
Sign in using Live ID to be able to post comments.