Porting Issues: CompositeUI assembly
Issue 1:
.NET
CF Does not support System.Runtime.Serialization
The
follow types have been given the Serializable attribute:
CyclicDependencyFoundException
State
StateElement
StateException
BuilderStrategyException
AdapterMapServiceException
CommandException
ConfigurationException
SolutionProfileReaderException
SolutionProfileElement
ModuleInfoElement
RoleElement
EventBrokerException
EventTopicException
ModuleEnumeratorException
ModuleLoadException
ServiceMissingException
StatePersistenceException
Can we simply make these types nonserializable for CF?
(resolution: ???)
Issue 2:
.NET
CF Does not support System.Diagnostics.TraceSource
(resolution: removed tracing)
commented
out ClassNameTraceSourceAttribute
Issue :3
.NET
CF does not support System.Configuration
(resolution: use xml file based configuration)
commented out ConfigurationPropertyAttribute in
ServiceElement.cs
ApplicationSettingsBase not
supported.
Created custom
Microsoft.Practices.CF.CompositeUI.Configuration.WM5.ConfigurationElement, ConfigurationElementCollection,
ConfigurationManager, ConfigurationProperty, ConfigurationSection, ConfigurationErrorsException
Commented out ConfigurationCollectionAttribute
Issue :4
.NET
CF does not support System.ComponentModel.Design namespace. Specifically
ComponentDesigner, System.ComponentModel.BrowsableAttribute
(resolution: need to research now CF provides Designer
functionality)
(resolution: moved Browsable attribute to custom attributes in
Class Diagram.
need to move ComponentDesigner to external assembly, for short
term we commented out designer)
.NET CF does not support
System.ComponentModel.TypeConverter.StandardValuesCollection
(CompositeUI:SmartPartInfo).
(resolution: need to move to same external assembly as
above)
Issue :5
.NET
CF does not support System.Security.Permissions.SecurityPermission
(resolution: ???)
.NET
CF does not support System.Security.Principal namespace and more specifically
the System.Security.Principal.PrincipalPolicy enum.
(resolution: ???)
for now, the Permissions were commented out
per edjez: remove principal from SolutionProfileReader and also
from XSD
Issue :6
.NET CF does not support System.IO.IsolatedStorage namespace.
Specifically IsolatedStorageScope
(CompositeUI:IsolatedStorageStatePersistenceService)
(resolution: removed IsolatedStorageStatePersistenceService.cs)
Issue :7
.NET CF does not support
System.Threading.ReaderWriterLock.
(CompositeUI:StateElement, WorkItem, LockBase, ReaderLock)
(resolution: ???)
commenting
out ReaderWriterLock references
exclude ReaderLock and WriterLock from project
Issue :8
.NET CF does not support System.CodeDom.CodeObject.(CompositeUI:DesignerCodeDomSerializer).
(resolution: ???)
exclude from project
Issue :9
.NET CF does not support
System.Security.Cryptography.DataProtectionScope
(CompositeUI:DataProtectionCryptographyService).
(resolution: ???)
removed
DataProtectionCryptographyService from
CabApplication.cs item.Services
Issue: 10
System.ComponentModel.TypeConverterAttribute not
supported[TypeConverter(typeof (TypeNameConverter))] attribute commented out pending
moving TypeConverter to external assembly.
Issue: 11
SynchronizationContext not supported: needs to be re-arch
Subscription.cs
(workaround: get back to the UI thread by
using a control and .Invoke?)(simplifying resolution: do not support Thread.UIThread)
Issue: 12
no support for CultureInfo.InstalledUICulture
(resolution: replaced with
CurrentUICulture)
Issue: 13
no support for Delegate.CreateDelegate (Publication.cs), Delegate.Target and Delegate.Method
(Command.cs), Delegate.DynamicInvoke (Subscription.cs)
(resolution: find out
how the heck += works and mimic that)
Issue: 14
no support for System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
(StreamStatePersistenceService.cs)
(resolution: remove this service - we can write another
implemnentation later)
Issue: 15
no support for AppDomain.CurrentDomain.BaseDirectory
(ReflectionModuleEnumerator.cs,
SolutionProfileReader.cs)
(resolution: remove reflection module enumerator; in solProfReader
use whatever the CF has to determine current dir )
Created BaseDirectory
property in ApplicationSettingsBase.cs.
Issue: 16
no support for System.Reflection.Assembly.LoadFile(ReflectionModuleEnumerator.cs)
(resolution: remove reflection
enumerator)
Issue: 17
no support
for System.Reflection.Assembly.CodeBase (ModuleInfo.cs)
(resolution: replace
assembly.CodeBase with assembly.GetName().CodeBase)
Issue: 18
Stream.Dispose() inaccessible due to "Protected"
protection level.(SolutionProfileReader.cs)
(resolution: utilize "using"
statement on stream assignment thus indirectly calling Dispose via IDisposable
interface)
Issue: 19
Verify SolutionProfileReader.cs
GetValidatingReader method: When should stream get disposed? Currently CAB
disposes reader immediately after creating schemaReader with stream as a param.
Will disposing stream effect schemaReader?
Issue: 20
no support for
System.Reflection.Assembly.GetEntryAssembly()
(CabApplication.cs)
(resolution:
substitute with GetExecutingAssembly)
Issue: 21
no support for
System.Reflection.Assembly.GetExportedTypes
()
(ModuleLoaderService.cs)
(resolution: wrote custom CFAssemblyUtil.GetExportedTypes(assembly))
Issue: 22
no support for
System.Reflection.MethodInfo.GetMethodFromHandle method with 2 params (method
and type).
(Subscription.cs)
(resolution:
eliminate type param???)