Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change namepsaces/project structure to match .NET #20

Open
NightOwl888 opened this issue Oct 10, 2019 · 0 comments
Open

Change namepsaces/project structure to match .NET #20

NightOwl888 opened this issue Oct 10, 2019 · 0 comments

Comments

@NightOwl888
Copy link
Owner

The port was originally done from ICU4J, whose namespaces were meant to match the JDK. Looking at the structure of ICU4C, its structure is completely different.

Many (or most) of the classes defined in com.ibm.icu.text would likely be in System.Globalization if they were in .NET. For example, the Collator class is a close match for System.Globalization.CompareInfo, so it should be moved to a Globalization namespace as well.

CompareInfo is also a property of CultureInfo, so we should probably look at moving the collator functionality (or at least part of it) into the main library.

Other classes, such as BreakIterator also seem like good candidates for the Globalization namespace. More analysis is needed to determine if anything really belongs in the Text namespace.

Keeping in Sync with ICU

Ideally, we would keep the project structure exactly the same as ICU4J so it is easy to port the diff between tags over to ICU4N file by file. However, if we take the approach the ICU team is using, there are simply headers in each file indicating which file(s) it is a port of so syncing is made easier. More thought needs to be given as to best do this, as ICU4N would best not be a complete line-by-line port of ICU4J because of the gaps in functionality between Java and .NET.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant